OP(mov,l) TW(IMM_DETAGGED_FIXNUM_MINUS_ONE,REG(eax))
ret
\f
-define_c_label(sse_read_mxcsr)
-IFSSE(` enter IMM(4),IMM(0)
- stmxcsr IND(REG(esp))
- OP(mov,l) TW(IND(REG(esp)),REG(eax))
- leave')
- ret
-
-define_c_label(sse_write_mxcsr)
-IFSSE(` ldmxcsr LOF(4,REG(esp))')
- ret
-
-define_c_label(x87_clear_exceptions)
-IF387(` fnclex')
- ret
-
-define_c_label(x87_trap_exceptions)
-IF387(` fwait')
- ret
-
-define_c_label(x87_read_control_word)
-IF387(` enter IMM(4),IMM(0)
+define_c_label(i387_read_fp_control_word)
+IF387(` OP(cmp,l) TW(IMM(0),ABS(EVR(i387_presence)))
+ je i387_read_fp_control_word_lose
+ enter IMM(4),IMM(0)
fnstcw IND(REG(esp))
OP(mov,w) TW(IND(REG(esp)),REG(ax))
- leave')
- ret
-
-define_c_label(x87_write_control_word)
-IF387(` fldcw LOF(4,REG(esp))')
+ leave
ret
+')
-define_c_label(x87_read_status_word)
-IF387(` enter IMM(4),IMM(0)
- fnstsw IND(REG(esp))
- OP(mov,w) TW(IND(REG(esp)),REG(ax))
- leave')
+i387_read_fp_control_word_lose:
+ OP(xor,l) TW(REG(eax),REG(eax))
ret
-define_c_label(x87_read_environment)
-IF387(` OP(mov,l) TW(LOF(4,REG(esp)),REG(eax))
- fnstenv IND(REG(eax))')
+define_c_label(i387_write_fp_control_word)
+IF387(` OP(cmp,l) TW(IMM(0),ABS(EVR(i387_presence)))
+ je i387_write_fp_control_word_lose
+ fldcw LOF(4,REG(esp))
ret
+')
-define_c_label(x87_write_environment)
-IF387(` OP(mov,l) TW(LOF(4,REG(esp)),REG(eax))
- fldenv IND(REG(eax))')
+i387_write_fp_control_word_lose:
ret
\f
IFDASM(`end')