浏览代码

Merged revisions 1373 via svnmerge from
svn+ssh://[email protected]/FPC/svn/fpc/trunk

r1373 (florian)
* synched with i386

git-svn-id: branches/fixes_2_0@1435 -

peter 20 年之前
父节点
当前提交
04ca9513ac
共有 1 个文件被更改,包括 16 次插入26 次删除
  1. 16 26
      rtl/x86_64/math.inc

+ 16 - 26
rtl/x86_64/math.inc

@@ -168,7 +168,7 @@
             fwait
             fwait
             fldt d
             fldt d
             frndint
             frndint
-            fnclex
+            fwait
             fldcw -4(%rbp)
             fldcw -4(%rbp)
       end;
       end;
 
 
@@ -181,39 +181,29 @@
         newcw : word;
         newcw : word;
         res   : int64;
         res   : int64;
       asm
       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;
       end;
 
 
 
 
     {$define FPC_SYSTEM_HAS_ROUND}
     {$define FPC_SYSTEM_HAS_ROUND}
     function fpc_round_real(d : ValReal) : int64;assembler;compilerproc;
     function fpc_round_real(d : ValReal) : int64;assembler;compilerproc;
       var
       var
-        oldcw,
-        newcw : word;
         res   : int64;
         res   : int64;
       asm
       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;
       end;