tw2158.pp 807 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. { %cpu=i386 }
  2. { Source provided for Free Pascal Bug Report 2158 }
  3. { Submitted by "Maxim Voronov" on 2002-10-03 }
  4. { e-mail: [email protected] }
  5. Program test;
  6. {$asmmode intel}
  7. Function GetXminusYintel(x,y : extended):extended; assembler;
  8. asm
  9. fld x
  10. fld y
  11. fsubp st(1),st(0)
  12. end;
  13. {$asmmode att}
  14. Function GetXminusYatt(x,y : extended):extended; assembler;
  15. asm
  16. fld y
  17. fld x
  18. fsubp %st,%st(1)
  19. end;
  20. var
  21. eatt,eintel : extended;
  22. Begin
  23. writeln;
  24. eintel:= GetXminusYintel(2.0,1.0);
  25. writeln(eintel);
  26. eatt:= GetXminusYatt(2.0,1.0);
  27. writeln(eatt);
  28. if eintel<>eatt then
  29. begin
  30. writeln('intel fsubp is not translated properly into fsubrp');
  31. halt(1);
  32. end;
  33. End.