Browse Source

* transform into a real test that fails if wrong code is generated

pierre 23 years ago
parent
commit
9abb839d34
1 changed files with 26 additions and 11 deletions
  1. 26 11
      tests/webtbs/tw2158.pp

+ 26 - 11
tests/webtbs/tw2158.pp

@@ -4,23 +4,38 @@
 { Submitted by "Maxim Voronov" on  2002-10-03 }
 { e-mail: [email protected] }
 
+Program test;
+
 {$asmmode intel}
+  Function GetXminusYintel(x,y : extended):extended; assembler;
+      asm
+        fld     x
+        fld     y
+        fsubp   st(1),st(0)
+      end;
 
-  Function TestProc:single;
-    begin
+{$asmmode att}
+  Function GetXminusYatt(x,y : extended):extended; assembler;
       asm
-        push    eax
-        fldz
-        fldz
-        fldz
-        fsubp   st(2),st(0)
-        fstp    st(0)
-        pop     eax
+        fld     y
+        fld     x
+        fsubp   %st,%st(1)
       end;
-    end;
+
+  var
+    eatt,eintel : extended;
 
   Begin
     writeln;
-    writeln(TestProc);
+
+    eintel:= GetXminusYintel(2.0,1.0);
+    writeln(eintel);
+    eatt:= GetXminusYatt(2.0,1.0);
+    writeln(eatt);
+    if eintel<>eatt then
+      begin
+        writeln('intel fsubp is not translated properly into fsubrp');
+        halt(1);
+      end;
   End.