diff --git a/tests/ts/ts010027.pp b/tests/ts/ts010027.pp new file mode 100644 index 0000000000..c89308f006 --- /dev/null +++ b/tests/ts/ts010027.pp @@ -0,0 +1,25 @@ +{$IFDEF FPC} +{$ASMMODE INTEL} +{$ENDIF} +{$N+} + +FUNCTION Floor(M2:Comp):LONGINT;assembler; + +VAR X : COMP; + X2 : LONGINT; + X3 : Double; + s : single; + +ASM + FLD QWord Ptr X // Here S_IL must be changed to + // S_FL, i.e. the compiler must generate + // fldl "X" instead of fldq "X" which is wrong + fld X2 // No mem64, so no problem + FLD QWord Ptr X3 // This one goes wrong under AS + FilD QWord Ptr X // This one translates to fildq and is accepted? + fild X2 // No mem64, so no problem + FiLD QWord Ptr X3 // This one translates to fildq and is accepted? +end; + +BEGIN +END.