Changeset 7988
- Timestamp:
- Jan 2, 2008, 6:00:08 PM (17 years ago)
- File:
-
- 1 edited
-
branches/ia32/level-0/X86/X8632/x8632-float.lisp (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/ia32/level-0/X86/X8632/x8632-float.lisp
r7985 r7988 260 260 261 261 262 ;;; Manipulate the MXCSR. It's 32 bits wide, and we have to load and 263 ;;; store it through memory. Use the scratch-mxcsr field in the TCR. 264 ;;; The upper half of the MXCSR is reserved (must be zero). 262 ;;; Manipulate the MXCSR. It'll fit in a fixnum, but we have to 263 ;;; load and store it through memory. On x8664, we can hide the 264 ;;; 32-bit MXCSR value in a fixnum on the stack; on a 32-bit x86, 265 ;;; we might need to use a scratch location in the TCR or something. 265 266 266 267 ;;; Return the MXCSR as a fixnum … … 275 276 ;;; so that only known control and status bits are written to. 276 277 (defx86lapfunction %set-mxcsr ((val arg_z)) 277 (unbox-fixnum arg_zimm0)278 (unbox-fixnum val imm0) 278 279 (andl ($ x86::mxcsr-write-mask) (% imm0)) 279 280 (movl (% imm0) (@ (% :rcontext) x8632::tcr.scratch-mxcsr))
Note:
See TracChangeset
for help on using the changeset viewer.
