Changeset 9482
 Timestamp:
 May 15, 2008, 2:19:30 AM (12 years ago)
 File:

 1 edited
Legend:
 Unmodified
 Added
 Removed

branches/ia32/level0/X86/X8632/x8632float.lisp
r9476 r9482 90 90 91 91 (movl (@ x8632::doublefloat.valhigh (% n)) (% imm1)) 92 (movl ( % imm1) (% imm0))93 ( sarl ($ 31) (% imm0)) ;propagate sign94 ( shll ($ 31) (% imm0))95 ( boxfixnum imm0 arg_y)92 (movl ($ '1) (% arg_y)) 93 (movl ($ '1) (% imm0)) 94 (btl ($ 31) (% imm1)) 95 (cmovcl (% imm0) (% arg_y)) 96 96 (movl (% arg_y) (@ sign (% esp))) 97 97 98 98 (movl (% imm1) (% imm0)) 99 99 (andl ($ #x7ff00000) (% imm0)) ;exponent 100 (sh ll ($ ( 20 x8632::fixnumshift)) (% imm0))100 (shrl ($ ( 20 x8632::fixnumshift)) (% imm0)) 101 101 (movl (% imm0) (@ exp (% esp))) 102 102 … … 104 104 (andl ($ #x000fffff) (% imm1)) ;high 20 bits of fraction 105 105 (shldl ($ 4) (% imm0) (% imm1)) ;shift in 4 bits from low word 106 ( testl ($ 0) (@ exp (% esp)))107 (j z@denorm)108 (or ($ (ash 1 ( ieeedoublefloathiddenbit 32))) (% imm1))106 (cmpl ($ 0) (@ exp (% esp))) 107 (je @denorm) 108 (or ($ (ash 1 ( ieeedoublefloathiddenbit 28))) (% imm1)) 109 109 @denorm 110 110 (boxfixnum imm1 arg_y) … … 112 112 113 113 (shll ($ 4) (% imm0)) ;shift out bits included in hi 114 (shrl ($ ( 4 x8632::fixnumshift)) (% imm0)) ;and box 28 low bits114 (shrl ($ x8632::fixnumshift) (% imm0)) ;and box 28 low bits 115 115 (movl (% imm0) (@ lo (% esp)))) 116 116 (markasnode temp0) … … 241 241 (singlevaluereturn)) 242 242 243 (defx8632lapfunction %doublefloat>shortfloat ((src arg_ z))243 (defx8632lapfunction %doublefloat>shortfloat ((src arg_y) (result arg_z)) 244 244 (getdoublefloat src fp1) 245 245 (cvtsd2ss (% fp1) (% fp1)) 246 (putsinglefloat fp1 arg_z)246 (putsinglefloat fp1 result) 247 247 (singlevaluereturn)) 248 248
Note: See TracChangeset
for help on using the changeset viewer.