fpc/tests/webtbs/tw2668.pp
Jonas Maebe 61522d00a2 * fixed tests now that i386 assembler code is checked for correct PIC
usage in case PIC generation is on (some by adding PIC-versions of
    the assembler code, most by adding -Cg- to the options to be used).

    Note: the Intel assembler reader does not yet support the Delphi
    PIC construct, so tests with that (like test/tasmread and test/tcg1)
    do not work with -Cg on non-Darwin (Darwin needs a different PIC
    construct)

git-svn-id: trunk@9370 -
2007-12-01 14:34:50 +00:00

40 lines
885 B
ObjectPascal

{ %cpu=i386 }
{ %OPT=-Cg- }
{ %version=1.1 }
{ Source provided for Free Pascal Bug Report 2668 }
{ Submitted by "Marco" on 2003-09-06 }
{ e-mail: marco+bugs@freepascal.org }
{$ifdef fpc}{$MODE DELPHI} {$ASMMODE INTEL} {$endif}
type
TFloatingPointClass =
(
fpZero, // zero
fpNormal, // normal finite <> 0
fpDenormal, // denormalized finite
fpInfinite, // infinite
fpNaN, // not a number
fpInvalid // unsupported floating point format
);
const
FPClasses: array [0..5] of TFloatingPointClass =
(
fpInvalid,
fpNaN,
fpNormal,
fpInfinite,
fpZero,
fpDenormal
);
asm
MOV ECX,0
MOV EDX,0
MOVZX EAX, TFloatingPointClass(FPClasses[EDX])
MOVZX EAX, TFloatingPointClass([ECX].FPClasses[EDX])
LEA ECX,FPClasses
MOVZX EAX, TFloatingPointClass([ECX].1+2[EDX])
end.