Raymond Toy pushed to branch issue-356-x87-status-word-in-low-part at cmucl / cmucl

Commits:

1 changed file:

Changes:

  • src/compiler/x86/float-sse2.lisp
    ... ... @@ -1396,8 +1396,10 @@
    1396 1396
        (inst byte #x66)			; operand size prefix
    
    1397 1397
        (inst or sw-reg cw-stack)
    
    1398 1398
        (inst xor sw-reg #x3f)		; invert exception mask
    
    1399
    -    (move res sw-reg)
    
    1400
    -    (inst rol res 16)))
    
    1399
    +   (move res sw-reg)
    
    1400
    +   ;; Put status word in the low 16 bits and the control word in the
    
    1401
    +   ;; high 16 bits.
    
    1402
    +   (inst rol res 16)))
    
    1401 1403
     
    
    1402 1404
     ;; Set the control and status words from the FPU.  The low 16 bits
    
    1403 1405
     ;; contain the control word, and the high 16 bits contain the status.
    
    ... ... @@ -1414,6 +1416,8 @@
    1414 1416
       (:temporary (:sc unsigned-reg) new)
    
    1415 1417
       (:generator 6
    
    1416 1418
        (move new new-modes)
    
    1419
    +   ;; Put the status word in the high 16 bits and the control word in
    
    1420
    +   ;; the low 16 bits.
    
    1417 1421
        (inst rol new 16)
    
    1418 1422
        (inst mov cw-stack new)
    
    1419 1423
        (inst xor cw-stack #x3f)  ; invert exception mask