From 04ca9513ac557ccaa72a13a6302c97c8175e5479 Mon Sep 17 00:00:00 2001 From: peter Date: Sun, 16 Oct 2005 20:46:55 +0000 Subject: [PATCH] Merged revisions 1373 via svnmerge from svn+ssh://peter@www.freepascal.org/FPC/svn/fpc/trunk r1373 (florian) * synched with i386 git-svn-id: branches/fixes_2_0@1435 - --- rtl/x86_64/math.inc | 42 ++++++++++++++++-------------------------- 1 file changed, 16 insertions(+), 26 deletions(-) diff --git a/rtl/x86_64/math.inc b/rtl/x86_64/math.inc index 46f15af390..e75e0af527 100644 --- a/rtl/x86_64/math.inc +++ b/rtl/x86_64/math.inc @@ -168,7 +168,7 @@ fwait fldt d frndint - fnclex + fwait fldcw -4(%rbp) end; @@ -181,39 +181,29 @@ 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;