commit b387c096a163b42798c02e5fde91b38fcf40804f
parent 87d1e760954eaf9e4810b1a67ec0d1eb00931871
Author: Commit-Bot <unknown>
Date: Thu, 29 Jul 2010 19:34:46 +0000
Automatic commit from picoLisp.tgz, From: Thu, 29 Jul 2010 19:34:46 GMT
Diffstat:
1 file changed, 1 insertion(+), 5 deletions(-)
diff --git a/src64/arch/x86-64.l b/src64/arch/x86-64.l
@@ -606,14 +606,10 @@
(asm fix ()
(prinst "sub" "$8" "%rsp") # Space for buffer
- (prinst "movsd" "%xmm0" "(%rsp)") # Get value
- (prinst "mov" "6(%rsp)" "%ax") # Mantissa [s111 1111 1111 xxxx]
- (prinst "and" "$0x7FF0" "%rax") # Infinite/NaN?
- (prinst "cmp" "$0x7FF0" "%rax")
- (prinst "jz" "2f") # Yes: Skip
(prinst "shr" "$4" "%rbx") # Normalize scale
(prinst "cvtsi2sd" "%rbx" "%xmm7") # Mulitply with scale
(prinst "mulsd" "%xmm7" "%xmm0")
+ (prinst "movsd" "%xmm0" "(%rsp)") # Keep result
(prinst "call" "lround")
(prinst "mov" "%rax" "%rbx") # Get into E
(prinst "or" "%rax" "%rax") # Negative?