Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ((:GENERATOR 7
- (SB-ASSEM:INST SB-VM::LEA SB-VM::NEW-UWP (SB-VM::UNWIND-BLOCK-EA SB-C:TN))
- (STORE-TL-SYMBOL-VALUE SB-VM::NEW-UWP *CURRENT-UNWIND-PROTECT-BLOCK*))
- (:GENERATOR 10 (STORE-TL-SYMBOL-VALUE CATCH *CURRENT-CATCH-BLOCK*))
- (:GENERATOR 0 (SB-ASSEM:EMIT-LABEL SB-ASSEM:LABEL)
- (NOTE-THIS-LOCATION SB-VM::VOP :NON-LOCAL-ENTRY))
- (:GENERATOR 1 (LOAD-BINDING-STACK-POINTER SB-VM::RES))
- (:GENERATOR 13 (LOAD-TL-SYMBOL-VALUE CATCH *CURRENT-CATCH-BLOCK*))
- (:GENERATOR 30 (SB-ASSEM:EMIT-LABEL SB-ASSEM:LABEL)
- (NOTE-THIS-LOCATION SB-VM::VOP :NON-LOCAL-ENTRY)
- (COND ((ZEROP SB-VM::NVALS))
- ((= SB-VM::NVALS 1)
- (LET ((SB-VM::NO-VALUES (SB-ASSEM:GEN-LABEL)))
- (SB-ASSEM:INST SB-VM::MOV (TN-REF-TN VALUES) NIL-VALUE)
- (SB-ASSEM:INST SB-VM::JRCXZ SB-VM::NO-VALUES)
- (LOADW (TN-REF-TN VALUES) SB-VM::START -1)
- (SB-ASSEM:EMIT-LABEL SB-VM::NO-VALUES)))
- (T
- (COLLECT ((SB-VM::DEFAULTS))
- (DO ((SB-VM::I 0 (1+ SB-VM::I))
- (SB-C:TN-REF VALUES (TN-REF-ACROSS SB-C:TN-REF)))
- ((NULL SB-C:TN-REF))
- (LET ((SB-VM::DEFAULT-LAB (SB-ASSEM:GEN-LABEL))
- (SB-C:TN (TN-REF-TN SB-C:TN-REF))
- (SB-VM::FIRST-STACK-ARG-P (= SB-VM::I REGISTER-ARG-COUNT)))
- (SB-VM::DEFAULTS
- (CONS SB-VM::DEFAULT-LAB
- (CONS SB-C:TN SB-VM::FIRST-STACK-ARG-P)))
- (SB-ASSEM:INST SB-VM::CMP COUNT (FIXNUMIZE SB-VM::I))
- (SB-ASSEM:INST SB-VM::JMP :LE SB-VM::DEFAULT-LAB)
- (WHEN SB-VM::FIRST-STACK-ARG-P (STOREW RDX-TN RBX-TN -1))
- (SC-CASE SB-C:TN
- ((SB-VM::DESCRIPTOR-REG SB-VM::ANY-REG)
- (LOADW SB-C:TN SB-VM::START
- (FRAME-WORD-OFFSET (+ SP->FP-OFFSET SB-VM::I))))
- ((SB-VM::CONTROL-STACK)
- (LOADW SB-VM::MOVE-TEMP SB-VM::START
- (FRAME-WORD-OFFSET (+ SP->FP-OFFSET SB-VM::I)))
- (SB-ASSEM:INST SB-VM::MOV SB-C:TN SB-VM::MOVE-TEMP)))))
- (LET ((SB-VM::DEFAULTING-DONE (SB-ASSEM:GEN-LABEL)))
- (SB-ASSEM:EMIT-LABEL SB-VM::DEFAULTING-DONE)
- (SB-ASSEM:ASSEMBLE (*ELSEWHERE*)
- (DOLIST (SB-VM::DEFAULT (SB-VM::DEFAULTS))
- (SB-ASSEM:EMIT-LABEL (CAR SB-VM::DEFAULT))
- (WHEN (CDDR SB-VM::DEFAULT) (SB-ASSEM:INST PUSH RDX-TN))
- (SB-ASSEM:INST SB-VM::MOV (SECOND SB-VM::DEFAULT) NIL-VALUE))
- (SB-ASSEM:INST SB-VM::JMP SB-VM::DEFAULTING-DONE))))))
- (SB-ASSEM:INST SB-VM::MOV RSP-TN SB-VM::SP))
- (:GENERATOR 22
- (SB-ASSEM:INST SB-VM::LEA BLOCK (SB-VM::UNWIND-BLOCK-EA SB-C:TN))
- (LOAD-TL-SYMBOL-VALUE SB-VM::TEMP *CURRENT-UNWIND-PROTECT-BLOCK*)
- (STOREW SB-VM::TEMP BLOCK SB-VM::UNWIND-BLOCK-UWP-SLOT)
- (STOREW RBP-TN BLOCK SB-VM::UNWIND-BLOCK-CFP-SLOT)
- (SB-ASSEM:INST SB-VM::LEA SB-VM::TEMP
- (MAKE-FIXUP NIL :CODE-OBJECT SB-VM::ENTRY-LABEL))
- (STOREW SB-VM::TEMP BLOCK UNWIND-BLOCK-ENTRY-PC-SLOT))
- (:GENERATOR 1 (MOVE SB-VM::RES RSP-TN))
- (:GENERATOR 44 (SB-ASSEM:INST SB-VM::LEA BLOCK (CATCH-BLOCK-EA SB-C:TN))
- (LOAD-TL-SYMBOL-VALUE SB-VM::TEMP *CURRENT-UNWIND-PROTECT-BLOCK*)
- (STOREW SB-VM::TEMP BLOCK SB-VM::CATCH-BLOCK-UWP-SLOT)
- (STOREW RBP-TN BLOCK SB-VM::CATCH-BLOCK-CFP-SLOT)
- (SB-ASSEM:INST SB-VM::LEA SB-VM::TEMP
- (MAKE-FIXUP NIL :CODE-OBJECT SB-VM::ENTRY-LABEL))
- (STOREW SB-VM::TEMP BLOCK CATCH-BLOCK-ENTRY-PC-SLOT)
- (STOREW SB-VM::TAG BLOCK CATCH-BLOCK-TAG-SLOT)
- (LOAD-TL-SYMBOL-VALUE SB-VM::TEMP *CURRENT-CATCH-BLOCK*)
- (STOREW SB-VM::TEMP BLOCK CATCH-BLOCK-PREVIOUS-CATCH-SLOT)
- (STORE-TL-SYMBOL-VALUE BLOCK *CURRENT-CATCH-BLOCK*))
- (:GENERATOR 30 (SB-ASSEM:EMIT-LABEL SB-ASSEM:LABEL)
- (NOTE-THIS-LOCATION SB-VM::VOP :NON-LOCAL-ENTRY)
- (SB-ASSEM:INST SB-VM::LEA SB-VM::RSI
- (SB-VM::MAKE-EA :QWORD :BASE SB-VM::SOURCE :DISP
- (- N-WORD-BYTES)))
- (MOVE SB-VM::RDI SB-VM::TOP) (MOVE SB-VM::RESULT SB-VM::RDI)
- (SB-ASSEM:INST SB-VM::SUB SB-VM::RDI N-WORD-BYTES) (MOVE SB-VM::RCX COUNT)
- (MOVE SB-VM::NUM SB-VM::RCX)
- (SB-ASSEM:INST SB-VM::SHR SB-VM::RCX N-FIXNUM-TAG-BITS)
- (SB-ASSEM:INST SB-VM::JRCXZ SB-VM::DONE) (SB-ASSEM:INST SB-VM::STD)
- (SB-ASSEM:INST SB-VM::REP) (SB-ASSEM:INST SB-VM::MOVS :QWORD)
- (SB-ASSEM:INST SB-VM::CLD) SB-VM::DONE
- (SB-ASSEM:INST SB-VM::LEA RSP-TN
- (SB-VM::MAKE-EA :QWORD :BASE SB-VM::RDI :DISP N-WORD-BYTES)))
- (:GENERATOR 5 (MOVE SB-VM::DST SB-VM::LO) (MOVE SB-VM::TMP SB-VM::HI)
- (SB-ASSEM:INST SB-VM::UNPCKLPD SB-VM::DST SB-VM::TMP))
- (:GENERATOR 5 (SB-ASSEM:INST SB-VM::MOVD SB-VM::DST SB-VM::LO)
- (SB-ASSEM:INST SB-VM::MOVD SB-VM::TMP SB-VM::HI)
- (SB-ASSEM:INST SB-VM::PUNPCKLQDQ SB-VM::DST SB-VM::TMP))
- (:GENERATOR 5 (MOVE SB-VM::DST SB-VM::X)
- (SB-ASSEM:INST SB-VM::UNPCKLPS SB-VM::DST SB-VM::Z)
- (MOVE SB-VM::TMP SB-VM::Y)
- (SB-ASSEM:INST SB-VM::UNPCKLPS SB-VM::TMP SB-VM::W)
- (SB-ASSEM:INST SB-VM::UNPCKLPS SB-VM::DST SB-VM::TMP))
- (:GENERATOR 5
- (SC-CASE FLOAT
- (SB-VM::DOUBLE-REG (SB-ASSEM:INST SB-VM::MOVSD SB-VM::TEMP FLOAT)
- (MOVE SB-VM::HI-BITS SB-VM::TEMP))
- (SB-VM::DOUBLE-STACK
- (LOADW SB-VM::HI-BITS EBP-TN (FRAME-WORD-OFFSET (TN-OFFSET FLOAT))))
- (SB-VM::DESCRIPTOR-REG
- (LOADW SB-VM::HI-BITS FLOAT DOUBLE-FLOAT-VALUE-SLOT
- OTHER-POINTER-LOWTAG)))
- (SB-ASSEM:INST SB-VM::SAR SB-VM::HI-BITS 32))
- (:GENERATOR 3 (SB-ASSEM:INST SB-VM::MOVD SB-VM::DST SB-VM::X))
- (:GENERATOR 5 (MOVE SB-VM::DST SB-VM::LO) (MOVE SB-VM::TMP SB-VM::HI)
- (SB-ASSEM:INST SB-VM::UNPCKLPD SB-VM::DST SB-VM::TMP))
- (:GENERATOR 4
- (SC-CASE SB-VM::RES
- (SB-VM::SINGLE-STACK
- (SC-CASE SB-VM::BITS
- (SB-VM::SIGNED-REG (SB-ASSEM:INST SB-VM::MOV SB-VM::RES SB-VM::BITS))
- (SB-VM::SIGNED-STACK (AVER (LOCATION= SB-VM::BITS SB-VM::RES)))))
- (SB-VM::SINGLE-REG
- (SC-CASE SB-VM::BITS
- (SB-VM::SIGNED-REG
- (SB-ASSEM:INST SB-VM::MOVD SB-VM::RES (REG-IN-SIZE SB-VM::BITS :DWORD)))
- (SB-VM::SIGNED-STACK
- (SB-ASSEM:INST SB-VM::MOVSS SB-VM::RES
- (SB-VM::MAKE-EA :DWORD :BASE RBP-TN :DISP
- (FRAME-BYTE-OFFSET
- (TN-OFFSET SB-VM::BITS)))))))))
- (:GENERATOR 3 (MOVE SB-VM::TMP SB-VM::X)
- (SB-ASSEM:INST SB-VM::PSRLDQ SB-VM::TMP 8)
- (SB-ASSEM:INST SB-VM::MOVD SB-VM::DST SB-VM::TMP))
- (:GENERATOR 5 (MOVE SB-VM::DST SB-VM::X)
- (SB-ASSEM:INST SB-VM::UNPCKLPS SB-VM::DST SB-VM::Z)
- (MOVE SB-VM::TMP SB-VM::Y)
- (SB-ASSEM:INST SB-VM::UNPCKLPS SB-VM::TMP SB-VM::W)
- (SB-ASSEM:INST SB-VM::UNPCKLPS SB-VM::DST SB-VM::TMP))
- (:GENERATOR 5
- (LET ((SB-VM::DWORD-LO-BITS (REG-IN-SIZE SB-VM::LO-BITS :DWORD)))
- (SC-CASE FLOAT
- (SB-VM::DOUBLE-REG (SB-ASSEM:INST SB-VM::MOVSD SB-VM::TEMP FLOAT)
- (SB-ASSEM:INST SB-VM::MOV SB-VM::DWORD-LO-BITS
- (SB-VM::MAKE-EA :DWORD :BASE RBP-TN :DISP
- (FRAME-BYTE-OFFSET
- (TN-OFFSET SB-VM::TEMP)))))
- (SB-VM::DOUBLE-STACK
- (SB-ASSEM:INST SB-VM::MOV SB-VM::DWORD-LO-BITS
- (SB-VM::MAKE-EA :DWORD :BASE RBP-TN :DISP
- (FRAME-BYTE-OFFSET (TN-OFFSET FLOAT)))))
- (SB-VM::DESCRIPTOR-REG
- (SB-ASSEM:INST SB-VM::MOV SB-VM::DWORD-LO-BITS
- (MAKE-EA-FOR-OBJECT-SLOT-HALF FLOAT
- DOUBLE-FLOAT-VALUE-SLOT
- OTHER-POINTER-LOWTAG))))))
- (:GENERATOR 2 (MOVE SB-VM::TEMP SB-VM::HI-BITS)
- (SB-ASSEM:INST SB-VM::SHL SB-VM::TEMP 32)
- (SB-ASSEM:INST OR SB-VM::TEMP SB-VM::LO-BITS)
- (SB-ASSEM:INST SB-VM::MOVD SB-VM::RES SB-VM::TEMP))
- (:GENERATOR 5 (SB-ASSEM:INST SB-VM::MOVD SB-VM::DST SB-VM::LO)
- (SB-ASSEM:INST SB-VM::MOVD SB-VM::TMP SB-VM::HI)
- (SB-ASSEM:INST SB-VM::PUNPCKLQDQ SB-VM::DST SB-VM::TMP))
- (:GENERATOR 13
- (SB-C:FIXED-ALLOC SB-VM::DST SIMD-PACK-WIDETAG SIMD-PACK-SIZE SB-VM::NODE)
- (STOREW SB-VM::TAG SB-VM::DST SIMD-PACK-TAG-SLOT OTHER-POINTER-LOWTAG)
- (STOREW SB-VM::LO SB-VM::DST SIMD-PACK-LO-VALUE-SLOT OTHER-POINTER-LOWTAG)
- (STOREW SB-VM::HI SB-VM::DST SIMD-PACK-HI-VALUE-SLOT OTHER-POINTER-LOWTAG))
- (:GENERATOR 4
- (SC-CASE FLOAT
- (SB-VM::SINGLE-REG
- (LET ((SB-VM::DWORD-BITS (REG-IN-SIZE SB-VM::BITS :DWORD)))
- (SB-ASSEM:INST SB-VM::MOVD SB-VM::DWORD-BITS FLOAT)
- (SB-ASSEM:INST SB-VM::MOVSXD SB-VM::BITS SB-VM::DWORD-BITS)))
- (SB-VM::SINGLE-STACK
- (SB-ASSEM:INST SB-VM::MOVSXD SB-VM::BITS
- (SB-VM::MAKE-EA :DWORD :BASE RBP-TN :DISP
- (FRAME-BYTE-OFFSET (TN-OFFSET FLOAT)))))
- (SB-VM::DESCRIPTOR-REG (MOVE SB-VM::BITS FLOAT)
- (SB-ASSEM:INST SB-VM::SAR SB-VM::BITS 32))))
- (:GENERATOR 0)
- (:GENERATOR 1
- (SC-CASE SB-VM::RES
- (SB-VM::SINGLE-STACK (SB-ASSEM:INST SB-VM::MOV SB-VM::RES SB-VM::BITS))
- (SB-VM::SINGLE-REG
- (SB-ASSEM:INST SB-VM::MOVSS SB-VM::RES
- (REGISTER-INLINE-CONSTANT :DWORD SB-VM::BITS)))
- (SB-VM::DESCRIPTOR-REG
- (SB-ASSEM:INST SB-VM::MOV SB-VM::RES
- (LOGIOR (ASH SB-VM::BITS 32) SINGLE-FLOAT-WIDETAG)))))
- (:GENERATOR 12
- (LET ((SB-VM::SECOND-VALUE SB-VM::DUP) (SB-VM::FIRST-VALUE SB-VM::R))
- (FLET ((SB-VM::DUPLICATE (SB-VM::X)
- (LET ((WORD
- (LDB (BYTE 64 0)
- (LOGIOR
- (ASH
- (SB-KERNEL:SINGLE-FLOAT-BITS (IMAGPART SB-VM::X))
- 32)
- (LDB (BYTE 32 0)
- (SB-KERNEL:SINGLE-FLOAT-BITS
- (REALPART SB-VM::X)))))))
- (REGISTER-INLINE-CONSTANT :OWORD (LOGIOR (ASH WORD 64) WORD)))))
- (SC-CASE SB-VM::Y
- (SB-VM::FP-SINGLE-IMMEDIATE
- (SETF SB-VM::DUP
- (SB-VM::DUPLICATE
- (COMPLEX (SETF SB-VM::SECOND-VALUE (TN-VALUE SB-VM::Y))
- (TN-VALUE SB-VM::Y)))))
- (SB-VM::FP-SINGLE-ZERO
- (SB-ASSEM:INST SB-VM::XORPS SB-VM::DUP SB-VM::DUP))
- (T (MOVE SB-VM::DUP SB-VM::Y) (SETF SB-VM::SECOND-VALUE SB-VM::Y)
- (SB-ASSEM:INST SB-VM::SHUFPS SB-VM::DUP SB-VM::DUP 0)))
- (SC-CASE SB-VM::X
- (SB-VM::FP-COMPLEX-SINGLE-IMMEDIATE
- (SB-ASSEM:INST SB-VM::MOVAPS SB-VM::R
- (SB-VM::DUPLICATE
- (SETF SB-VM::FIRST-VALUE (TN-VALUE SB-VM::X)))))
- (SB-VM::FP-COMPLEX-SINGLE-ZERO
- (SB-ASSEM:INST SB-VM::XORPS SB-VM::R SB-VM::R))
- (T (MOVE SB-VM::R SB-VM::X) (SETF SB-VM::FIRST-VALUE SB-VM::X)
- (SB-ASSEM:INST SB-VM::UNPCKLPD SB-VM::R SB-VM::R)))
- (SB-VM::NOTE-FLOAT-LOCATION '/ SB-VM::VOP SB-VM::FIRST-VALUE
- SB-VM::SECOND-VALUE)
- (SB-ASSEM:INST SB-VM::DIVPS SB-VM::R SB-VM::DUP)
- (SB-ASSEM:INST SB-VM::MOVQ SB-VM::R SB-VM::R))))
- (:GENERATOR 5
- (COND
- ((SC-IS REAL SB-VM::FP-DOUBLE-ZERO)
- (SB-ASSEM:INST SB-VM::XORPD SB-VM::R SB-VM::R)
- (UNLESS (SC-IS SB-VM::IMAG SB-VM::FP-DOUBLE-ZERO)
- (SB-ASSEM:INST SB-VM::UNPCKLPD SB-VM::R SB-VM::IMAG)))
- ((LOCATION= REAL SB-VM::IMAG) (MOVE SB-VM::R REAL)
- (SB-ASSEM:INST SB-VM::UNPCKLPD SB-VM::R SB-VM::R))
- (T (MOVE SB-VM::R REAL)
- (UNLESS (SC-IS SB-VM::IMAG SB-VM::FP-DOUBLE-ZERO)
- (SB-ASSEM:INST SB-VM::UNPCKLPD SB-VM::R SB-VM::IMAG)))))
- (:GENERATOR 13
- (SB-C:FIXED-ALLOC SB-VM::Y SIMD-PACK-WIDETAG SIMD-PACK-SIZE SB-VM::NODE)
- (STOREW
- (FIXNUMIZE
- (SC-CASE SB-VM::X
- (SB-VM::SINGLE-SSE-REG 1)
- (SB-VM::DOUBLE-SSE-REG 2)
- (SB-VM::INT-SSE-REG 0)
- (T 0)))
- SB-VM::Y SIMD-PACK-TAG-SLOT OTHER-POINTER-LOWTAG)
- (LET ((SB-VM::EA
- (MAKE-EA-FOR-OBJECT-SLOT SB-VM::Y SIMD-PACK-LO-VALUE-SLOT
- OTHER-POINTER-LOWTAG)))
- (IF (FLOAT-SSE-P SB-VM::X)
- (SB-ASSEM:INST SB-VM::MOVAPS SB-VM::EA SB-VM::X)
- (SB-ASSEM:INST SB-VM::MOVDQA SB-VM::EA SB-VM::X))))
- (:GENERATOR 2 (MOVE SB-VM::R SB-VM::X)
- (SB-ASSEM:INST SB-VM::SHUFPS SB-VM::R SB-VM::R 241))
- (:GENERATOR 4
- (SB-ASSEM:INST SB-VM::MOVD (REG-IN-SIZE SB-VM::Y :DWORD) SB-VM::X)
- (SB-ASSEM:INST SB-VM::SHL SB-VM::Y 32)
- (SB-ASSEM:INST OR SB-VM::Y SINGLE-FLOAT-WIDETAG))
- NIL (:GENERATOR 0)
- (:GENERATOR 22 (MOVE SB-VM::SAVED-FUNCTION FUNCTION)
- (SB-ASSEM:INST SB-VM::SUB RSP-TN (* UNWIND-BLOCK-SIZE N-WORD-BYTES))
- (MOVE BLOCK RSP-TN)
- (LOADW SB-VM::TEMP SB-VM::UWP SAP-POINTER-SLOT OTHER-POINTER-LOWTAG)
- (STOREW SB-VM::TEMP BLOCK SB-VM::UNWIND-BLOCK-UWP-SLOT)
- (LOADW SB-VM::TEMP SB-VM::OFP SAP-POINTER-SLOT OTHER-POINTER-LOWTAG)
- (STOREW SB-VM::TEMP BLOCK SB-VM::UNWIND-BLOCK-CFP-SLOT)
- (SB-ASSEM:INST SB-VM::LEA TEMP-REG-TN
- (MAKE-FIXUP NIL :CODE-OBJECT SB-VM::ENTRY-LABEL))
- (STOREW TEMP-REG-TN BLOCK UNWIND-BLOCK-ENTRY-PC-SLOT)
- (SB-VM::INVOKE-ASM-ROUTINE 'SB-VM::JMP 'SB-C:UNWIND SB-VM::VOP TEMP-REG-TN)
- SB-VM::ENTRY-LABEL (MOVE BLOCK SB-VM::SAVED-FUNCTION) (ZEROIZE RCX-TN)
- (SB-ASSEM:INST SB-VM::LEA RSP-TN
- (SB-VM::MAKE-EA :QWORD :BASE RBP-TN :DISP
- (* (- SP->FP-OFFSET 3) N-WORD-BYTES)))
- (PUSHW RBP-TN (FRAME-WORD-OFFSET RETURN-PC-SAVE-OFFSET))
- (SB-ASSEM:INST SB-VM::JMP
- (SB-VM::MAKE-EA :QWORD :BASE BLOCK :DISP
- (- (* CLOSURE-FUN-SLOT N-WORD-BYTES)
- FUN-POINTER-LOWTAG))))
- (:GENERATOR 13
- (SB-C:FIXED-ALLOC SB-VM::Y DOUBLE-FLOAT-WIDETAG DOUBLE-FLOAT-SIZE
- SB-VM::NODE)
- (SB-ASSEM:INST SB-VM::MOVSD (EA-FOR-DF-DESC SB-VM::Y) SB-VM::X))
- (:GENERATOR 3
- (COND
- ((AND (ZEROP INDEX) (NOT (LOCATION= SB-VM::X SB-VM::DST)))
- (SB-ASSEM:INST SB-VM::XORPS SB-VM::DST SB-VM::DST)
- (SB-ASSEM:INST SB-VM::MOVSS SB-VM::DST SB-VM::X))
- (T (MOVE SB-VM::TMP SB-VM::X)
- (WHEN (PLUSP INDEX) (SB-ASSEM:INST SB-VM::PSRLDQ SB-VM::TMP (* 4 INDEX)))
- (SB-ASSEM:INST SB-VM::XORPS SB-VM::DST SB-VM::DST)
- (SB-ASSEM:INST SB-VM::MOVSS SB-VM::DST SB-VM::TMP))))
- (:GENERATOR 17 (LOAD-TL-SYMBOL-VALUE BLOCK *CURRENT-UNWIND-PROTECT-BLOCK*)
- (LOADW BLOCK BLOCK SB-VM::UNWIND-BLOCK-UWP-SLOT)
- (STORE-TL-SYMBOL-VALUE BLOCK *CURRENT-UNWIND-PROTECT-BLOCK*))
- (:GENERATOR 2 (MOVE SB-VM::R SB-VM::X)
- (SB-ASSEM:INST SB-VM::SHUFPD SB-VM::R SB-VM::R 1))
- (:GENERATOR 2
- (SC-CASE SB-VM::X
- (SB-VM::DESCRIPTOR-REG (MOVE SB-VM::TMP SB-VM::X)
- (SB-ASSEM:INST SB-VM::SHR SB-VM::TMP 32)
- (SB-ASSEM:INST SB-VM::MOVD SB-VM::Y (REG-IN-SIZE SB-VM::TMP :DWORD)))
- (SB-VM::CONTROL-STACK (SB-ASSEM:INST SB-VM::MOVQ SB-VM::Y SB-VM::X)
- (SB-ASSEM:INST SB-VM::SHUFPS SB-VM::Y SB-VM::Y 253))))
- (:GENERATOR 2 (MOVE SB-VM::TMP SB-VM::X)
- (SB-ASSEM:INST SB-VM::SHR SB-VM::TMP 32)
- (LET ((SLOT
- (SB-VM::MAKE-EA :DWORD :BASE RBP-TN :DISP
- (FRAME-BYTE-OFFSET (TN-OFFSET SB-VM::Y)))))
- (SB-ASSEM:INST SB-VM::MOV SLOT (REG-IN-SIZE SB-VM::TMP :DWORD))))
- NIL NIL
- (:GENERATOR 1
- (SB-ASSEM:INST SB-VM::MOVSD SB-VM::RES
- (REGISTER-INLINE-CONSTANT :QWORD
- (LOGIOR (ASH SB-VM::HI 32)
- SB-VM::LO))))
- (:GENERATOR 3
- (SB-ASSEM:INST SB-VM::CMP SB-VM::X
- (CONSTANTIZE
- (DPB (SB-KERNEL:SINGLE-FLOAT-BITS SB-VM::Y) (BYTE 32 32)
- SINGLE-FLOAT-WIDETAG))))
- (:GENERATOR 0 (MOVE SB-VM::Y SB-VM::X))
- (:GENERATOR 3
- (WHEN
- (OR (LOCATION= SB-VM::Y SB-VM::XMM)
- (AND (NOT (SB-VM::XMM-REGISTER-P SB-VM::X))
- (SB-VM::XMM-REGISTER-P SB-VM::Y)))
- (ROTATEF SB-VM::X SB-VM::Y))
- (SC-CASE SB-VM::X
- (SB-VM::SINGLE-REG (SETF SB-VM::XMM SB-VM::X))
- (SB-VM::SINGLE-STACK
- (SB-ASSEM:INST SB-VM::MOVSS SB-VM::XMM (EA-FOR-SF-STACK SB-VM::X)))
- (SB-VM::FP-SINGLE-IMMEDIATE
- (SB-ASSEM:INST SB-VM::MOVSS SB-VM::XMM
- (REGISTER-INLINE-CONSTANT (TN-VALUE SB-VM::X)))))
- (SB-VM::NOTE-FLOAT-LOCATION '= SB-VM::VOP SB-VM::XMM SB-VM::Y)
- (SC-CASE SB-VM::Y
- (SB-VM::SINGLE-STACK (SETF SB-VM::Y (EA-FOR-SF-STACK SB-VM::Y)))
- (SB-VM::FP-SINGLE-IMMEDIATE
- (SETF SB-VM::Y (REGISTER-INLINE-CONSTANT (TN-VALUE SB-VM::Y))))
- (T))
- (SB-ASSEM:INST SB-VM::COMISS SB-VM::XMM SB-VM::Y))
- (:GENERATOR 2 (SB-ASSEM:INST SB-VM::MOVSD SB-VM::Y (EA-FOR-DF-DESC SB-VM::X)))
- (:GENERATOR 1
- (UNLESS (LOCATION= SB-VM::X SB-VM::Y)
- (SB-ASSEM:INST SB-VM::XORPD SB-VM::Y SB-VM::Y))
- (SB-VM::NOTE-FLOAT-LOCATION 'SQRT SB-VM::VOP SB-VM::X)
- (SB-ASSEM:INST SB-VM::SQRTSD SB-VM::Y SB-VM::X))
- (:GENERATOR 4
- (SC-CASE SB-VM::Y
- ((SB-VM::INT-SSE-REG SB-VM::DOUBLE-SSE-REG SB-VM::SINGLE-SSE-REG)
- (UNLESS (LOCATION= SB-VM::X SB-VM::Y)
- (IF (OR (FLOAT-SSE-P SB-VM::X) (FLOAT-SSE-P SB-VM::Y))
- (SB-ASSEM:INST SB-VM::MOVAPS SB-VM::Y SB-VM::X)
- (SB-ASSEM:INST SB-VM::MOVDQA SB-VM::Y SB-VM::X))))
- ((SB-VM::INT-SSE-STACK SB-VM::DOUBLE-SSE-STACK SB-VM::SINGLE-SSE-STACK)
- (IF (FLOAT-SSE-P SB-VM::X)
- (SB-ASSEM:INST SB-VM::MOVUPS (EA-FOR-SSE-STACK SB-VM::Y SB-VM::FP)
- SB-VM::X)
- (SB-ASSEM:INST SB-VM::MOVDQU (EA-FOR-SSE-STACK SB-VM::Y SB-VM::FP)
- SB-VM::X)))))
- (:GENERATOR 3
- (WHEN
- (OR (LOCATION= SB-VM::Y SB-VM::XMM)
- (AND (NOT (SB-VM::XMM-REGISTER-P SB-VM::X))
- (SB-VM::XMM-REGISTER-P SB-VM::Y)))
- (ROTATEF SB-VM::X SB-VM::Y))
- (SC-CASE SB-VM::X
- (SB-VM::DOUBLE-REG (SETF SB-VM::XMM SB-VM::X))
- (SB-VM::DOUBLE-STACK
- (SB-ASSEM:INST SB-VM::MOVSD SB-VM::XMM (EA-FOR-DF-STACK SB-VM::X)))
- (SB-VM::FP-DOUBLE-IMMEDIATE
- (SB-ASSEM:INST SB-VM::MOVSD SB-VM::XMM
- (REGISTER-INLINE-CONSTANT (TN-VALUE SB-VM::X))))
- (SB-VM::DESCRIPTOR-REG
- (SB-ASSEM:INST SB-VM::MOVSD SB-VM::XMM (EA-FOR-DF-DESC SB-VM::X))))
- (SB-VM::NOTE-FLOAT-LOCATION '= SB-VM::VOP SB-VM::XMM SB-VM::Y)
- (SC-CASE SB-VM::Y
- (SB-VM::DOUBLE-STACK (SETF SB-VM::Y (EA-FOR-DF-STACK SB-VM::Y)))
- (SB-VM::FP-DOUBLE-IMMEDIATE
- (SETF SB-VM::Y (REGISTER-INLINE-CONSTANT (TN-VALUE SB-VM::Y))))
- (SB-VM::DESCRIPTOR-REG (SETF SB-VM::Y (EA-FOR-DF-DESC SB-VM::Y)))
- (T))
- (SB-ASSEM:INST SB-VM::COMISD SB-VM::XMM SB-VM::Y))
- (:GENERATOR 3
- (COND
- ((SC-IS SB-VM::X SB-VM::COMPLEX-DOUBLE-REG) (MOVE SB-VM::R SB-VM::X)
- (SB-ASSEM:INST SB-VM::XORPD SB-VM::ZERO SB-VM::ZERO)
- (ECASE SB-VM::OFFSET
- (0 (SB-ASSEM:INST SB-VM::UNPCKLPD SB-VM::R SB-VM::ZERO))
- (1 (SB-ASSEM:INST SB-VM::UNPCKHPD SB-VM::R SB-VM::ZERO))))
- ((SC-IS SB-VM::X SB-VM::COMPLEX-SINGLE-REG) (MOVE SB-VM::R SB-VM::X)
- (ECASE SB-VM::OFFSET
- (0 (SB-ASSEM:INST SB-VM::SHUFPS SB-VM::R SB-VM::R 252))
- (1 (SB-ASSEM:INST SB-VM::SHUFPS SB-VM::R SB-VM::R 253))))
- ((SC-IS SB-VM::R SB-VM::SINGLE-REG)
- (LET ((SB-VM::EA
- (SC-CASE SB-VM::X
- (SB-VM::COMPLEX-SINGLE-STACK
- (ECASE SB-VM::OFFSET
- (0 (EA-FOR-CSF-REAL-STACK SB-VM::X))
- (1 (EA-FOR-CSF-IMAG-STACK SB-VM::X))))
- (SB-VM::DESCRIPTOR-REG
- (ECASE SB-VM::OFFSET
- (0 (EA-FOR-CSF-REAL-DESC SB-VM::X))
- (1 (EA-FOR-CSF-IMAG-DESC SB-VM::X)))))))
- (SB-ASSEM:INST SB-VM::MOVSS SB-VM::R SB-VM::EA)))
- ((SC-IS SB-VM::R SB-VM::DOUBLE-REG)
- (LET ((SB-VM::EA
- (SC-CASE SB-VM::X
- (SB-VM::COMPLEX-DOUBLE-STACK
- (ECASE SB-VM::OFFSET
- (0 (EA-FOR-CDF-REAL-STACK SB-VM::X))
- (1 (EA-FOR-CDF-IMAG-STACK SB-VM::X))))
- (SB-VM::DESCRIPTOR-REG
- (ECASE SB-VM::OFFSET
- (0 (EA-FOR-CDF-REAL-DESC SB-VM::X))
- (1 (EA-FOR-CDF-IMAG-DESC SB-VM::X)))))))
- (SB-ASSEM:INST SB-VM::MOVSD SB-VM::R SB-VM::EA)))
- (T (ERROR "COMPLEX-FLOAT-VALUE VOP failure"))))
- NIL
- (:GENERATOR 17 (LOAD-TL-SYMBOL-VALUE BLOCK *CURRENT-CATCH-BLOCK*)
- (LOADW BLOCK BLOCK CATCH-BLOCK-PREVIOUS-CATCH-SLOT)
- (STORE-TL-SYMBOL-VALUE BLOCK *CURRENT-CATCH-BLOCK*))
- NIL
- (:GENERATOR 13
- (SB-C:FIXED-ALLOC SB-VM::Y COMPLEX-DOUBLE-FLOAT-WIDETAG
- COMPLEX-DOUBLE-FLOAT-SIZE SB-VM::NODE)
- (SB-ASSEM:INST SB-VM::MOVAPD (EA-FOR-CDF-DATA-DESC SB-VM::Y) SB-VM::X))
- (:GENERATOR 3
- (COND
- ((AND (ZEROP INDEX) (NOT (LOCATION= SB-VM::X SB-VM::DST)))
- (SB-ASSEM:INST SB-VM::XORPD SB-VM::DST SB-VM::DST)
- (SB-ASSEM:INST SB-VM::MOVSD SB-VM::DST SB-VM::X))
- (T (MOVE SB-VM::TMP SB-VM::X)
- (WHEN (PLUSP INDEX) (SB-ASSEM:INST SB-VM::PSRLDQ SB-VM::TMP (* 8 INDEX)))
- (SB-ASSEM:INST SB-VM::XORPD SB-VM::DST SB-VM::DST)
- (SB-ASSEM:INST SB-VM::MOVSD SB-VM::DST SB-VM::TMP))))
- (:GENERATOR 13
- (SB-C:FIXED-ALLOC SB-VM::Y COMPLEX-SINGLE-FLOAT-WIDETAG
- COMPLEX-SINGLE-FLOAT-SIZE SB-VM::NODE)
- (SB-ASSEM:INST SB-VM::MOVQ (EA-FOR-CSF-DATA-DESC SB-VM::Y) SB-VM::X))
- NIL NIL NIL
- (:GENERATOR 5
- (COND
- ((SC-IS REAL SB-VM::FP-SINGLE-ZERO)
- (SB-ASSEM:INST SB-VM::XORPS SB-VM::R SB-VM::R)
- (UNLESS (SC-IS SB-VM::IMAG SB-VM::FP-SINGLE-ZERO)
- (SB-ASSEM:INST SB-VM::UNPCKLPS SB-VM::R SB-VM::IMAG)))
- ((LOCATION= REAL SB-VM::IMAG) (MOVE SB-VM::R REAL)
- (SB-ASSEM:INST SB-VM::UNPCKLPS SB-VM::R SB-VM::R))
- (T (MOVE SB-VM::R REAL)
- (UNLESS (SC-IS SB-VM::IMAG SB-VM::FP-SINGLE-ZERO)
- (SB-ASSEM:INST SB-VM::UNPCKLPS SB-VM::R SB-VM::IMAG)))))
- (:GENERATOR 2
- (LET ((SB-VM::EA
- (MAKE-EA-FOR-OBJECT-SLOT SB-VM::X SIMD-PACK-LO-VALUE-SLOT
- OTHER-POINTER-LOWTAG)))
- (IF (FLOAT-SSE-P SB-VM::Y)
- (SB-ASSEM:INST SB-VM::MOVAPS SB-VM::Y SB-VM::EA)
- (SB-ASSEM:INST SB-VM::MOVDQA SB-VM::Y SB-VM::EA)))))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement