Browse Source

* synched with i386

git-svn-id: trunk@1373 -
florian 20 years ago
parent
commit
78abb1603d
1 changed files with 16 additions and 26 deletions
  1. 16 26
      rtl/x86_64/math.inc

+ 16 - 26
rtl/x86_64/math.inc

@@ -190,7 +190,7 @@ FPC_ABSMASK_DOUBLE:
             fwait
             fldt d
             frndint
-            fnclex
+            fwait
             fldcw -4(%rbp)
       end;
 
@@ -203,39 +203,29 @@ FPC_ABSMASK_DOUBLE:
         newcw : word;
         res   : int64;
       asm
-            fnstcw oldcw
-            fwait
-            movw oldcw,%cx
-            orw $0x0c3f,%cx
-            movw %cx,newcw
-            fldcw newcw
-            fwait
-            fldt d
-            fistpq res
-            movq res,%rax
-            fnclex
-            fldcw oldcw
+        fnstcw oldcw
+        fwait
+        movw oldcw,%cx
+        orw $0x0c3f,%cx
+        movw %cx,newcw
+        fldcw newcw
+        fldt d
+        fistpq res
+        fwait
+        movq res,%rax
+        fldcw oldcw
       end;
 
 
     {$define FPC_SYSTEM_HAS_ROUND}
     function fpc_round_real(d : ValReal) : int64;assembler;compilerproc;
       var
-        oldcw,
-        newcw : word;
         res   : int64;
       asm
-            fnstcw oldcw
-            fwait
-            movw $0x1372,newcw
-            fnclex
-            fldcw newcw
-            fwait
-            fldt d
-            fistpq res
-            movq res,%rax
-            fnclex
-            fldcw oldcw
+        fldt d
+        fistpq res
+        fwait
+        movq res,%rax
       end;