daily pastebin goal
69%
SHARE
TWEET

asm

a guest Sep 14th, 2018 72 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ((:GENERATOR 7
  2.           (SB-ASSEM:INST SB-VM::LEA SB-VM::NEW-UWP (SB-VM::UNWIND-BLOCK-EA SB-C:TN))
  3.           (STORE-TL-SYMBOL-VALUE SB-VM::NEW-UWP *CURRENT-UNWIND-PROTECT-BLOCK*))
  4.   (:GENERATOR 10 (STORE-TL-SYMBOL-VALUE CATCH *CURRENT-CATCH-BLOCK*))
  5.   (:GENERATOR 0 (SB-ASSEM:EMIT-LABEL SB-ASSEM:LABEL)
  6.           (NOTE-THIS-LOCATION SB-VM::VOP :NON-LOCAL-ENTRY))
  7.   (:GENERATOR 1 (LOAD-BINDING-STACK-POINTER SB-VM::RES))
  8.   (:GENERATOR 13 (LOAD-TL-SYMBOL-VALUE CATCH *CURRENT-CATCH-BLOCK*))
  9.   (:GENERATOR 30 (SB-ASSEM:EMIT-LABEL SB-ASSEM:LABEL)
  10.           (NOTE-THIS-LOCATION SB-VM::VOP :NON-LOCAL-ENTRY)
  11.           (COND ((ZEROP SB-VM::NVALS))
  12.             ((= SB-VM::NVALS 1)
  13.              (LET ((SB-VM::NO-VALUES (SB-ASSEM:GEN-LABEL)))
  14.                (SB-ASSEM:INST SB-VM::MOV (TN-REF-TN VALUES) NIL-VALUE)
  15.                (SB-ASSEM:INST SB-VM::JRCXZ SB-VM::NO-VALUES)
  16.                (LOADW (TN-REF-TN VALUES) SB-VM::START -1)
  17.                (SB-ASSEM:EMIT-LABEL SB-VM::NO-VALUES)))
  18.             (T
  19.              (COLLECT ((SB-VM::DEFAULTS))
  20.                (DO ((SB-VM::I 0 (1+ SB-VM::I))
  21.                 (SB-C:TN-REF VALUES (TN-REF-ACROSS SB-C:TN-REF)))
  22.                ((NULL SB-C:TN-REF))
  23.              (LET ((SB-VM::DEFAULT-LAB (SB-ASSEM:GEN-LABEL))
  24.                    (SB-C:TN (TN-REF-TN SB-C:TN-REF))
  25.                    (SB-VM::FIRST-STACK-ARG-P (= SB-VM::I REGISTER-ARG-COUNT)))
  26.                (SB-VM::DEFAULTS
  27.                    (CONS SB-VM::DEFAULT-LAB
  28.                      (CONS SB-C:TN SB-VM::FIRST-STACK-ARG-P)))
  29.                (SB-ASSEM:INST SB-VM::CMP COUNT (FIXNUMIZE SB-VM::I))
  30.                (SB-ASSEM:INST SB-VM::JMP :LE SB-VM::DEFAULT-LAB)
  31.                (WHEN SB-VM::FIRST-STACK-ARG-P (STOREW RDX-TN RBX-TN -1))
  32.                (SC-CASE SB-C:TN
  33.                  ((SB-VM::DESCRIPTOR-REG SB-VM::ANY-REG)
  34.                   (LOADW SB-C:TN SB-VM::START
  35.                      (FRAME-WORD-OFFSET (+ SP->FP-OFFSET SB-VM::I))))
  36.                  ((SB-VM::CONTROL-STACK)
  37.                   (LOADW SB-VM::MOVE-TEMP SB-VM::START
  38.                      (FRAME-WORD-OFFSET (+ SP->FP-OFFSET SB-VM::I)))
  39.                   (SB-ASSEM:INST SB-VM::MOV SB-C:TN SB-VM::MOVE-TEMP)))))
  40.                (LET ((SB-VM::DEFAULTING-DONE (SB-ASSEM:GEN-LABEL)))
  41.              (SB-ASSEM:EMIT-LABEL SB-VM::DEFAULTING-DONE)
  42.              (SB-ASSEM:ASSEMBLE (*ELSEWHERE*)
  43.                (DOLIST (SB-VM::DEFAULT (SB-VM::DEFAULTS))
  44.                  (SB-ASSEM:EMIT-LABEL (CAR SB-VM::DEFAULT))
  45.                  (WHEN (CDDR SB-VM::DEFAULT) (SB-ASSEM:INST PUSH RDX-TN))
  46.                  (SB-ASSEM:INST SB-VM::MOV (SECOND SB-VM::DEFAULT) NIL-VALUE))
  47.                (SB-ASSEM:INST SB-VM::JMP SB-VM::DEFAULTING-DONE))))))
  48.           (SB-ASSEM:INST SB-VM::MOV RSP-TN SB-VM::SP))
  49.   (:GENERATOR 22
  50.           (SB-ASSEM:INST SB-VM::LEA BLOCK (SB-VM::UNWIND-BLOCK-EA SB-C:TN))
  51.           (LOAD-TL-SYMBOL-VALUE SB-VM::TEMP *CURRENT-UNWIND-PROTECT-BLOCK*)
  52.           (STOREW SB-VM::TEMP BLOCK SB-VM::UNWIND-BLOCK-UWP-SLOT)
  53.           (STOREW RBP-TN BLOCK SB-VM::UNWIND-BLOCK-CFP-SLOT)
  54.           (SB-ASSEM:INST SB-VM::LEA SB-VM::TEMP
  55.                  (MAKE-FIXUP NIL :CODE-OBJECT SB-VM::ENTRY-LABEL))
  56.           (STOREW SB-VM::TEMP BLOCK UNWIND-BLOCK-ENTRY-PC-SLOT))
  57.   (:GENERATOR 1 (MOVE SB-VM::RES RSP-TN))
  58.   (:GENERATOR 44 (SB-ASSEM:INST SB-VM::LEA BLOCK (CATCH-BLOCK-EA SB-C:TN))
  59.           (LOAD-TL-SYMBOL-VALUE SB-VM::TEMP *CURRENT-UNWIND-PROTECT-BLOCK*)
  60.           (STOREW SB-VM::TEMP BLOCK SB-VM::CATCH-BLOCK-UWP-SLOT)
  61.           (STOREW RBP-TN BLOCK SB-VM::CATCH-BLOCK-CFP-SLOT)
  62.           (SB-ASSEM:INST SB-VM::LEA SB-VM::TEMP
  63.                  (MAKE-FIXUP NIL :CODE-OBJECT SB-VM::ENTRY-LABEL))
  64.           (STOREW SB-VM::TEMP BLOCK CATCH-BLOCK-ENTRY-PC-SLOT)
  65.           (STOREW SB-VM::TAG BLOCK CATCH-BLOCK-TAG-SLOT)
  66.           (LOAD-TL-SYMBOL-VALUE SB-VM::TEMP *CURRENT-CATCH-BLOCK*)
  67.           (STOREW SB-VM::TEMP BLOCK CATCH-BLOCK-PREVIOUS-CATCH-SLOT)
  68.           (STORE-TL-SYMBOL-VALUE BLOCK *CURRENT-CATCH-BLOCK*))
  69.   (:GENERATOR 30 (SB-ASSEM:EMIT-LABEL SB-ASSEM:LABEL)
  70.           (NOTE-THIS-LOCATION SB-VM::VOP :NON-LOCAL-ENTRY)
  71.           (SB-ASSEM:INST SB-VM::LEA SB-VM::RSI
  72.                  (SB-VM::MAKE-EA :QWORD :BASE SB-VM::SOURCE :DISP
  73.                          (- N-WORD-BYTES)))
  74.           (MOVE SB-VM::RDI SB-VM::TOP) (MOVE SB-VM::RESULT SB-VM::RDI)
  75.           (SB-ASSEM:INST SB-VM::SUB SB-VM::RDI N-WORD-BYTES) (MOVE SB-VM::RCX COUNT)
  76.           (MOVE SB-VM::NUM SB-VM::RCX)
  77.           (SB-ASSEM:INST SB-VM::SHR SB-VM::RCX N-FIXNUM-TAG-BITS)
  78.           (SB-ASSEM:INST SB-VM::JRCXZ SB-VM::DONE) (SB-ASSEM:INST SB-VM::STD)
  79.           (SB-ASSEM:INST SB-VM::REP) (SB-ASSEM:INST SB-VM::MOVS :QWORD)
  80.           (SB-ASSEM:INST SB-VM::CLD) SB-VM::DONE
  81.           (SB-ASSEM:INST SB-VM::LEA RSP-TN
  82.                  (SB-VM::MAKE-EA :QWORD :BASE SB-VM::RDI :DISP N-WORD-BYTES)))
  83.   (:GENERATOR 5 (MOVE SB-VM::DST SB-VM::LO) (MOVE SB-VM::TMP SB-VM::HI)
  84.           (SB-ASSEM:INST SB-VM::UNPCKLPD SB-VM::DST SB-VM::TMP))
  85.   (:GENERATOR 5 (SB-ASSEM:INST SB-VM::MOVD SB-VM::DST SB-VM::LO)
  86.           (SB-ASSEM:INST SB-VM::MOVD SB-VM::TMP SB-VM::HI)
  87.           (SB-ASSEM:INST SB-VM::PUNPCKLQDQ SB-VM::DST SB-VM::TMP))
  88.   (:GENERATOR 5 (MOVE SB-VM::DST SB-VM::X)
  89.           (SB-ASSEM:INST SB-VM::UNPCKLPS SB-VM::DST SB-VM::Z)
  90.           (MOVE SB-VM::TMP SB-VM::Y)
  91.           (SB-ASSEM:INST SB-VM::UNPCKLPS SB-VM::TMP SB-VM::W)
  92.           (SB-ASSEM:INST SB-VM::UNPCKLPS SB-VM::DST SB-VM::TMP))
  93.   (:GENERATOR 5
  94.           (SC-CASE FLOAT
  95.         (SB-VM::DOUBLE-REG (SB-ASSEM:INST SB-VM::MOVSD SB-VM::TEMP FLOAT)
  96.                    (MOVE SB-VM::HI-BITS SB-VM::TEMP))
  97.         (SB-VM::DOUBLE-STACK
  98.          (LOADW SB-VM::HI-BITS EBP-TN (FRAME-WORD-OFFSET (TN-OFFSET FLOAT))))
  99.         (SB-VM::DESCRIPTOR-REG
  100.          (LOADW SB-VM::HI-BITS FLOAT DOUBLE-FLOAT-VALUE-SLOT
  101.             OTHER-POINTER-LOWTAG)))
  102.           (SB-ASSEM:INST SB-VM::SAR SB-VM::HI-BITS 32))
  103.   (:GENERATOR 3 (SB-ASSEM:INST SB-VM::MOVD SB-VM::DST SB-VM::X))
  104.   (:GENERATOR 5 (MOVE SB-VM::DST SB-VM::LO) (MOVE SB-VM::TMP SB-VM::HI)
  105.           (SB-ASSEM:INST SB-VM::UNPCKLPD SB-VM::DST SB-VM::TMP))
  106.   (:GENERATOR 4
  107.           (SC-CASE SB-VM::RES
  108.         (SB-VM::SINGLE-STACK
  109.          (SC-CASE SB-VM::BITS
  110.            (SB-VM::SIGNED-REG (SB-ASSEM:INST SB-VM::MOV SB-VM::RES SB-VM::BITS))
  111.            (SB-VM::SIGNED-STACK (AVER (LOCATION= SB-VM::BITS SB-VM::RES)))))
  112.         (SB-VM::SINGLE-REG
  113.          (SC-CASE SB-VM::BITS
  114.            (SB-VM::SIGNED-REG
  115.             (SB-ASSEM:INST SB-VM::MOVD SB-VM::RES (REG-IN-SIZE SB-VM::BITS :DWORD)))
  116.            (SB-VM::SIGNED-STACK
  117.             (SB-ASSEM:INST SB-VM::MOVSS SB-VM::RES
  118.                    (SB-VM::MAKE-EA :DWORD :BASE RBP-TN :DISP
  119.                            (FRAME-BYTE-OFFSET
  120.                             (TN-OFFSET SB-VM::BITS)))))))))
  121.   (:GENERATOR 3 (MOVE SB-VM::TMP SB-VM::X)
  122.           (SB-ASSEM:INST SB-VM::PSRLDQ SB-VM::TMP 8)
  123.           (SB-ASSEM:INST SB-VM::MOVD SB-VM::DST SB-VM::TMP))
  124.   (:GENERATOR 5 (MOVE SB-VM::DST SB-VM::X)
  125.           (SB-ASSEM:INST SB-VM::UNPCKLPS SB-VM::DST SB-VM::Z)
  126.           (MOVE SB-VM::TMP SB-VM::Y)
  127.           (SB-ASSEM:INST SB-VM::UNPCKLPS SB-VM::TMP SB-VM::W)
  128.           (SB-ASSEM:INST SB-VM::UNPCKLPS SB-VM::DST SB-VM::TMP))
  129.   (:GENERATOR 5
  130.           (LET ((SB-VM::DWORD-LO-BITS (REG-IN-SIZE SB-VM::LO-BITS :DWORD)))
  131.         (SC-CASE FLOAT
  132.           (SB-VM::DOUBLE-REG (SB-ASSEM:INST SB-VM::MOVSD SB-VM::TEMP FLOAT)
  133.                      (SB-ASSEM:INST SB-VM::MOV SB-VM::DWORD-LO-BITS
  134.                             (SB-VM::MAKE-EA :DWORD :BASE RBP-TN :DISP
  135.                                     (FRAME-BYTE-OFFSET
  136.                                      (TN-OFFSET SB-VM::TEMP)))))
  137.           (SB-VM::DOUBLE-STACK
  138.            (SB-ASSEM:INST SB-VM::MOV SB-VM::DWORD-LO-BITS
  139.                   (SB-VM::MAKE-EA :DWORD :BASE RBP-TN :DISP
  140.                           (FRAME-BYTE-OFFSET (TN-OFFSET FLOAT)))))
  141.           (SB-VM::DESCRIPTOR-REG
  142.            (SB-ASSEM:INST SB-VM::MOV SB-VM::DWORD-LO-BITS
  143.                   (MAKE-EA-FOR-OBJECT-SLOT-HALF FLOAT
  144.                                 DOUBLE-FLOAT-VALUE-SLOT
  145.                                 OTHER-POINTER-LOWTAG))))))
  146.   (:GENERATOR 2 (MOVE SB-VM::TEMP SB-VM::HI-BITS)
  147.           (SB-ASSEM:INST SB-VM::SHL SB-VM::TEMP 32)
  148.           (SB-ASSEM:INST OR SB-VM::TEMP SB-VM::LO-BITS)
  149.           (SB-ASSEM:INST SB-VM::MOVD SB-VM::RES SB-VM::TEMP))
  150.   (:GENERATOR 5 (SB-ASSEM:INST SB-VM::MOVD SB-VM::DST SB-VM::LO)
  151.           (SB-ASSEM:INST SB-VM::MOVD SB-VM::TMP SB-VM::HI)
  152.           (SB-ASSEM:INST SB-VM::PUNPCKLQDQ SB-VM::DST SB-VM::TMP))
  153.   (:GENERATOR 13
  154.           (SB-C:FIXED-ALLOC SB-VM::DST SIMD-PACK-WIDETAG SIMD-PACK-SIZE SB-VM::NODE)
  155.           (STOREW SB-VM::TAG SB-VM::DST SIMD-PACK-TAG-SLOT OTHER-POINTER-LOWTAG)
  156.           (STOREW SB-VM::LO SB-VM::DST SIMD-PACK-LO-VALUE-SLOT OTHER-POINTER-LOWTAG)
  157.           (STOREW SB-VM::HI SB-VM::DST SIMD-PACK-HI-VALUE-SLOT OTHER-POINTER-LOWTAG))
  158.   (:GENERATOR 4
  159.           (SC-CASE FLOAT
  160.         (SB-VM::SINGLE-REG
  161.          (LET ((SB-VM::DWORD-BITS (REG-IN-SIZE SB-VM::BITS :DWORD)))
  162.            (SB-ASSEM:INST SB-VM::MOVD SB-VM::DWORD-BITS FLOAT)
  163.            (SB-ASSEM:INST SB-VM::MOVSXD SB-VM::BITS SB-VM::DWORD-BITS)))
  164.         (SB-VM::SINGLE-STACK
  165.          (SB-ASSEM:INST SB-VM::MOVSXD SB-VM::BITS
  166.                 (SB-VM::MAKE-EA :DWORD :BASE RBP-TN :DISP
  167.                         (FRAME-BYTE-OFFSET (TN-OFFSET FLOAT)))))
  168.         (SB-VM::DESCRIPTOR-REG (MOVE SB-VM::BITS FLOAT)
  169.                        (SB-ASSEM:INST SB-VM::SAR SB-VM::BITS 32))))
  170.   (:GENERATOR 0)
  171.   (:GENERATOR 1
  172.           (SC-CASE SB-VM::RES
  173.         (SB-VM::SINGLE-STACK (SB-ASSEM:INST SB-VM::MOV SB-VM::RES SB-VM::BITS))
  174.         (SB-VM::SINGLE-REG
  175.          (SB-ASSEM:INST SB-VM::MOVSS SB-VM::RES
  176.                 (REGISTER-INLINE-CONSTANT :DWORD SB-VM::BITS)))
  177.         (SB-VM::DESCRIPTOR-REG
  178.          (SB-ASSEM:INST SB-VM::MOV SB-VM::RES
  179.                 (LOGIOR (ASH SB-VM::BITS 32) SINGLE-FLOAT-WIDETAG)))))
  180.   (:GENERATOR 12
  181.           (LET ((SB-VM::SECOND-VALUE SB-VM::DUP) (SB-VM::FIRST-VALUE SB-VM::R))
  182.         (FLET ((SB-VM::DUPLICATE (SB-VM::X)
  183.              (LET ((WORD
  184.                 (LDB (BYTE 64 0)
  185.                      (LOGIOR
  186.                       (ASH
  187.                        (SB-KERNEL:SINGLE-FLOAT-BITS (IMAGPART SB-VM::X))
  188.                        32)
  189.                       (LDB (BYTE 32 0)
  190.                        (SB-KERNEL:SINGLE-FLOAT-BITS
  191.                         (REALPART SB-VM::X)))))))
  192.                (REGISTER-INLINE-CONSTANT :OWORD (LOGIOR (ASH WORD 64) WORD)))))
  193.           (SC-CASE SB-VM::Y
  194.             (SB-VM::FP-SINGLE-IMMEDIATE
  195.              (SETF SB-VM::DUP
  196.                (SB-VM::DUPLICATE
  197.                 (COMPLEX (SETF SB-VM::SECOND-VALUE (TN-VALUE SB-VM::Y))
  198.                      (TN-VALUE SB-VM::Y)))))
  199.             (SB-VM::FP-SINGLE-ZERO
  200.              (SB-ASSEM:INST SB-VM::XORPS SB-VM::DUP SB-VM::DUP))
  201.             (T (MOVE SB-VM::DUP SB-VM::Y) (SETF SB-VM::SECOND-VALUE SB-VM::Y)
  202.                (SB-ASSEM:INST SB-VM::SHUFPS SB-VM::DUP SB-VM::DUP 0)))
  203.           (SC-CASE SB-VM::X
  204.             (SB-VM::FP-COMPLEX-SINGLE-IMMEDIATE
  205.              (SB-ASSEM:INST SB-VM::MOVAPS SB-VM::R
  206.                     (SB-VM::DUPLICATE
  207.                      (SETF SB-VM::FIRST-VALUE (TN-VALUE SB-VM::X)))))
  208.             (SB-VM::FP-COMPLEX-SINGLE-ZERO
  209.              (SB-ASSEM:INST SB-VM::XORPS SB-VM::R SB-VM::R))
  210.             (T (MOVE SB-VM::R SB-VM::X) (SETF SB-VM::FIRST-VALUE SB-VM::X)
  211.                (SB-ASSEM:INST SB-VM::UNPCKLPD SB-VM::R SB-VM::R)))
  212.           (SB-VM::NOTE-FLOAT-LOCATION '/ SB-VM::VOP SB-VM::FIRST-VALUE
  213.                           SB-VM::SECOND-VALUE)
  214.           (SB-ASSEM:INST SB-VM::DIVPS SB-VM::R SB-VM::DUP)
  215.           (SB-ASSEM:INST SB-VM::MOVQ SB-VM::R SB-VM::R))))
  216.   (:GENERATOR 5
  217.           (COND
  218.         ((SC-IS REAL SB-VM::FP-DOUBLE-ZERO)
  219.          (SB-ASSEM:INST SB-VM::XORPD SB-VM::R SB-VM::R)
  220.          (UNLESS (SC-IS SB-VM::IMAG SB-VM::FP-DOUBLE-ZERO)
  221.            (SB-ASSEM:INST SB-VM::UNPCKLPD SB-VM::R SB-VM::IMAG)))
  222.         ((LOCATION= REAL SB-VM::IMAG) (MOVE SB-VM::R REAL)
  223.          (SB-ASSEM:INST SB-VM::UNPCKLPD SB-VM::R SB-VM::R))
  224.         (T (MOVE SB-VM::R REAL)
  225.            (UNLESS (SC-IS SB-VM::IMAG SB-VM::FP-DOUBLE-ZERO)
  226.              (SB-ASSEM:INST SB-VM::UNPCKLPD SB-VM::R SB-VM::IMAG)))))
  227.   (:GENERATOR 13
  228.           (SB-C:FIXED-ALLOC SB-VM::Y SIMD-PACK-WIDETAG SIMD-PACK-SIZE SB-VM::NODE)
  229.           (STOREW
  230.            (FIXNUMIZE
  231.         (SC-CASE SB-VM::X
  232.           (SB-VM::SINGLE-SSE-REG 1)
  233.           (SB-VM::DOUBLE-SSE-REG 2)
  234.           (SB-VM::INT-SSE-REG 0)
  235.           (T 0)))
  236.            SB-VM::Y SIMD-PACK-TAG-SLOT OTHER-POINTER-LOWTAG)
  237.           (LET ((SB-VM::EA
  238.              (MAKE-EA-FOR-OBJECT-SLOT SB-VM::Y SIMD-PACK-LO-VALUE-SLOT
  239.                           OTHER-POINTER-LOWTAG)))
  240.         (IF (FLOAT-SSE-P SB-VM::X)
  241.             (SB-ASSEM:INST SB-VM::MOVAPS SB-VM::EA SB-VM::X)
  242.             (SB-ASSEM:INST SB-VM::MOVDQA SB-VM::EA SB-VM::X))))
  243.   (:GENERATOR 2 (MOVE SB-VM::R SB-VM::X)
  244.           (SB-ASSEM:INST SB-VM::SHUFPS SB-VM::R SB-VM::R 241))
  245.   (:GENERATOR 4
  246.           (SB-ASSEM:INST SB-VM::MOVD (REG-IN-SIZE SB-VM::Y :DWORD) SB-VM::X)
  247.           (SB-ASSEM:INST SB-VM::SHL SB-VM::Y 32)
  248.           (SB-ASSEM:INST OR SB-VM::Y SINGLE-FLOAT-WIDETAG))
  249.   NIL (:GENERATOR 0)
  250.   (:GENERATOR 22 (MOVE SB-VM::SAVED-FUNCTION FUNCTION)
  251.           (SB-ASSEM:INST SB-VM::SUB RSP-TN (* UNWIND-BLOCK-SIZE N-WORD-BYTES))
  252.           (MOVE BLOCK RSP-TN)
  253.           (LOADW SB-VM::TEMP SB-VM::UWP SAP-POINTER-SLOT OTHER-POINTER-LOWTAG)
  254.           (STOREW SB-VM::TEMP BLOCK SB-VM::UNWIND-BLOCK-UWP-SLOT)
  255.           (LOADW SB-VM::TEMP SB-VM::OFP SAP-POINTER-SLOT OTHER-POINTER-LOWTAG)
  256.           (STOREW SB-VM::TEMP BLOCK SB-VM::UNWIND-BLOCK-CFP-SLOT)
  257.           (SB-ASSEM:INST SB-VM::LEA TEMP-REG-TN
  258.                  (MAKE-FIXUP NIL :CODE-OBJECT SB-VM::ENTRY-LABEL))
  259.           (STOREW TEMP-REG-TN BLOCK UNWIND-BLOCK-ENTRY-PC-SLOT)
  260.           (SB-VM::INVOKE-ASM-ROUTINE 'SB-VM::JMP 'SB-C:UNWIND SB-VM::VOP TEMP-REG-TN)
  261.           SB-VM::ENTRY-LABEL (MOVE BLOCK SB-VM::SAVED-FUNCTION) (ZEROIZE RCX-TN)
  262.           (SB-ASSEM:INST SB-VM::LEA RSP-TN
  263.                  (SB-VM::MAKE-EA :QWORD :BASE RBP-TN :DISP
  264.                          (* (- SP->FP-OFFSET 3) N-WORD-BYTES)))
  265.           (PUSHW RBP-TN (FRAME-WORD-OFFSET RETURN-PC-SAVE-OFFSET))
  266.           (SB-ASSEM:INST SB-VM::JMP
  267.                  (SB-VM::MAKE-EA :QWORD :BASE BLOCK :DISP
  268.                          (- (* CLOSURE-FUN-SLOT N-WORD-BYTES)
  269.                         FUN-POINTER-LOWTAG))))
  270.   (:GENERATOR 13
  271.           (SB-C:FIXED-ALLOC SB-VM::Y DOUBLE-FLOAT-WIDETAG DOUBLE-FLOAT-SIZE
  272.                 SB-VM::NODE)
  273.           (SB-ASSEM:INST SB-VM::MOVSD (EA-FOR-DF-DESC SB-VM::Y) SB-VM::X))
  274.   (:GENERATOR 3
  275.           (COND
  276.         ((AND (ZEROP INDEX) (NOT (LOCATION= SB-VM::X SB-VM::DST)))
  277.          (SB-ASSEM:INST SB-VM::XORPS SB-VM::DST SB-VM::DST)
  278.          (SB-ASSEM:INST SB-VM::MOVSS SB-VM::DST SB-VM::X))
  279.         (T (MOVE SB-VM::TMP SB-VM::X)
  280.            (WHEN (PLUSP INDEX) (SB-ASSEM:INST SB-VM::PSRLDQ SB-VM::TMP (* 4 INDEX)))
  281.            (SB-ASSEM:INST SB-VM::XORPS SB-VM::DST SB-VM::DST)
  282.            (SB-ASSEM:INST SB-VM::MOVSS SB-VM::DST SB-VM::TMP))))
  283.   (:GENERATOR 17 (LOAD-TL-SYMBOL-VALUE BLOCK *CURRENT-UNWIND-PROTECT-BLOCK*)
  284.           (LOADW BLOCK BLOCK SB-VM::UNWIND-BLOCK-UWP-SLOT)
  285.           (STORE-TL-SYMBOL-VALUE BLOCK *CURRENT-UNWIND-PROTECT-BLOCK*))
  286.   (:GENERATOR 2 (MOVE SB-VM::R SB-VM::X)
  287.           (SB-ASSEM:INST SB-VM::SHUFPD SB-VM::R SB-VM::R 1))
  288.   (:GENERATOR 2
  289.           (SC-CASE SB-VM::X
  290.         (SB-VM::DESCRIPTOR-REG (MOVE SB-VM::TMP SB-VM::X)
  291.                        (SB-ASSEM:INST SB-VM::SHR SB-VM::TMP 32)
  292.                        (SB-ASSEM:INST SB-VM::MOVD SB-VM::Y (REG-IN-SIZE SB-VM::TMP :DWORD)))
  293.         (SB-VM::CONTROL-STACK (SB-ASSEM:INST SB-VM::MOVQ SB-VM::Y SB-VM::X)
  294.                       (SB-ASSEM:INST SB-VM::SHUFPS SB-VM::Y SB-VM::Y 253))))
  295.   (:GENERATOR 2 (MOVE SB-VM::TMP SB-VM::X)
  296.           (SB-ASSEM:INST SB-VM::SHR SB-VM::TMP 32)
  297.           (LET ((SLOT
  298.              (SB-VM::MAKE-EA :DWORD :BASE RBP-TN :DISP
  299.                      (FRAME-BYTE-OFFSET (TN-OFFSET SB-VM::Y)))))
  300.         (SB-ASSEM:INST SB-VM::MOV SLOT (REG-IN-SIZE SB-VM::TMP :DWORD))))
  301.   NIL NIL
  302.   (:GENERATOR 1
  303.           (SB-ASSEM:INST SB-VM::MOVSD SB-VM::RES
  304.                  (REGISTER-INLINE-CONSTANT :QWORD
  305.                                (LOGIOR (ASH SB-VM::HI 32)
  306.                                    SB-VM::LO))))
  307.   (:GENERATOR 3
  308.           (SB-ASSEM:INST SB-VM::CMP SB-VM::X
  309.                  (CONSTANTIZE
  310.                   (DPB (SB-KERNEL:SINGLE-FLOAT-BITS SB-VM::Y) (BYTE 32 32)
  311.                    SINGLE-FLOAT-WIDETAG))))
  312.   (:GENERATOR 0 (MOVE SB-VM::Y SB-VM::X))
  313.   (:GENERATOR 3
  314.           (WHEN
  315.           (OR (LOCATION= SB-VM::Y SB-VM::XMM)
  316.               (AND (NOT (SB-VM::XMM-REGISTER-P SB-VM::X))
  317.                (SB-VM::XMM-REGISTER-P SB-VM::Y)))
  318.         (ROTATEF SB-VM::X SB-VM::Y))
  319.           (SC-CASE SB-VM::X
  320.         (SB-VM::SINGLE-REG (SETF SB-VM::XMM SB-VM::X))
  321.         (SB-VM::SINGLE-STACK
  322.          (SB-ASSEM:INST SB-VM::MOVSS SB-VM::XMM (EA-FOR-SF-STACK SB-VM::X)))
  323.         (SB-VM::FP-SINGLE-IMMEDIATE
  324.          (SB-ASSEM:INST SB-VM::MOVSS SB-VM::XMM
  325.                 (REGISTER-INLINE-CONSTANT (TN-VALUE SB-VM::X)))))
  326.           (SB-VM::NOTE-FLOAT-LOCATION '= SB-VM::VOP SB-VM::XMM SB-VM::Y)
  327.           (SC-CASE SB-VM::Y
  328.         (SB-VM::SINGLE-STACK (SETF SB-VM::Y (EA-FOR-SF-STACK SB-VM::Y)))
  329.         (SB-VM::FP-SINGLE-IMMEDIATE
  330.          (SETF SB-VM::Y (REGISTER-INLINE-CONSTANT (TN-VALUE SB-VM::Y))))
  331.         (T))
  332.           (SB-ASSEM:INST SB-VM::COMISS SB-VM::XMM SB-VM::Y))
  333.   (:GENERATOR 2 (SB-ASSEM:INST SB-VM::MOVSD SB-VM::Y (EA-FOR-DF-DESC SB-VM::X)))
  334.   (:GENERATOR 1
  335.           (UNLESS (LOCATION= SB-VM::X SB-VM::Y)
  336.         (SB-ASSEM:INST SB-VM::XORPD SB-VM::Y SB-VM::Y))
  337.           (SB-VM::NOTE-FLOAT-LOCATION 'SQRT SB-VM::VOP SB-VM::X)
  338.           (SB-ASSEM:INST SB-VM::SQRTSD SB-VM::Y SB-VM::X))
  339.   (:GENERATOR 4
  340.           (SC-CASE SB-VM::Y
  341.         ((SB-VM::INT-SSE-REG SB-VM::DOUBLE-SSE-REG SB-VM::SINGLE-SSE-REG)
  342.          (UNLESS (LOCATION= SB-VM::X SB-VM::Y)
  343.            (IF (OR (FLOAT-SSE-P SB-VM::X) (FLOAT-SSE-P SB-VM::Y))
  344.                (SB-ASSEM:INST SB-VM::MOVAPS SB-VM::Y SB-VM::X)
  345.                (SB-ASSEM:INST SB-VM::MOVDQA SB-VM::Y SB-VM::X))))
  346.         ((SB-VM::INT-SSE-STACK SB-VM::DOUBLE-SSE-STACK SB-VM::SINGLE-SSE-STACK)
  347.          (IF (FLOAT-SSE-P SB-VM::X)
  348.              (SB-ASSEM:INST SB-VM::MOVUPS (EA-FOR-SSE-STACK SB-VM::Y SB-VM::FP)
  349.                     SB-VM::X)
  350.              (SB-ASSEM:INST SB-VM::MOVDQU (EA-FOR-SSE-STACK SB-VM::Y SB-VM::FP)
  351.                     SB-VM::X)))))
  352.   (:GENERATOR 3
  353.           (WHEN
  354.           (OR (LOCATION= SB-VM::Y SB-VM::XMM)
  355.               (AND (NOT (SB-VM::XMM-REGISTER-P SB-VM::X))
  356.                (SB-VM::XMM-REGISTER-P SB-VM::Y)))
  357.         (ROTATEF SB-VM::X SB-VM::Y))
  358.           (SC-CASE SB-VM::X
  359.         (SB-VM::DOUBLE-REG (SETF SB-VM::XMM SB-VM::X))
  360.         (SB-VM::DOUBLE-STACK
  361.          (SB-ASSEM:INST SB-VM::MOVSD SB-VM::XMM (EA-FOR-DF-STACK SB-VM::X)))
  362.         (SB-VM::FP-DOUBLE-IMMEDIATE
  363.          (SB-ASSEM:INST SB-VM::MOVSD SB-VM::XMM
  364.                 (REGISTER-INLINE-CONSTANT (TN-VALUE SB-VM::X))))
  365.         (SB-VM::DESCRIPTOR-REG
  366.          (SB-ASSEM:INST SB-VM::MOVSD SB-VM::XMM (EA-FOR-DF-DESC SB-VM::X))))
  367.           (SB-VM::NOTE-FLOAT-LOCATION '= SB-VM::VOP SB-VM::XMM SB-VM::Y)
  368.           (SC-CASE SB-VM::Y
  369.         (SB-VM::DOUBLE-STACK (SETF SB-VM::Y (EA-FOR-DF-STACK SB-VM::Y)))
  370.         (SB-VM::FP-DOUBLE-IMMEDIATE
  371.          (SETF SB-VM::Y (REGISTER-INLINE-CONSTANT (TN-VALUE SB-VM::Y))))
  372.         (SB-VM::DESCRIPTOR-REG (SETF SB-VM::Y (EA-FOR-DF-DESC SB-VM::Y)))
  373.         (T))
  374.           (SB-ASSEM:INST SB-VM::COMISD SB-VM::XMM SB-VM::Y))
  375.   (:GENERATOR 3
  376.           (COND
  377.         ((SC-IS SB-VM::X SB-VM::COMPLEX-DOUBLE-REG) (MOVE SB-VM::R SB-VM::X)
  378.          (SB-ASSEM:INST SB-VM::XORPD SB-VM::ZERO SB-VM::ZERO)
  379.          (ECASE SB-VM::OFFSET
  380.            (0 (SB-ASSEM:INST SB-VM::UNPCKLPD SB-VM::R SB-VM::ZERO))
  381.            (1 (SB-ASSEM:INST SB-VM::UNPCKHPD SB-VM::R SB-VM::ZERO))))
  382.         ((SC-IS SB-VM::X SB-VM::COMPLEX-SINGLE-REG) (MOVE SB-VM::R SB-VM::X)
  383.          (ECASE SB-VM::OFFSET
  384.            (0 (SB-ASSEM:INST SB-VM::SHUFPS SB-VM::R SB-VM::R 252))
  385.            (1 (SB-ASSEM:INST SB-VM::SHUFPS SB-VM::R SB-VM::R 253))))
  386.         ((SC-IS SB-VM::R SB-VM::SINGLE-REG)
  387.          (LET ((SB-VM::EA
  388.             (SC-CASE SB-VM::X
  389.               (SB-VM::COMPLEX-SINGLE-STACK
  390.                (ECASE SB-VM::OFFSET
  391.                  (0 (EA-FOR-CSF-REAL-STACK SB-VM::X))
  392.                  (1 (EA-FOR-CSF-IMAG-STACK SB-VM::X))))
  393.               (SB-VM::DESCRIPTOR-REG
  394.                (ECASE SB-VM::OFFSET
  395.                  (0 (EA-FOR-CSF-REAL-DESC SB-VM::X))
  396.                  (1 (EA-FOR-CSF-IMAG-DESC SB-VM::X)))))))
  397.            (SB-ASSEM:INST SB-VM::MOVSS SB-VM::R SB-VM::EA)))
  398.         ((SC-IS SB-VM::R SB-VM::DOUBLE-REG)
  399.          (LET ((SB-VM::EA
  400.             (SC-CASE SB-VM::X
  401.               (SB-VM::COMPLEX-DOUBLE-STACK
  402.                (ECASE SB-VM::OFFSET
  403.                  (0 (EA-FOR-CDF-REAL-STACK SB-VM::X))
  404.                  (1 (EA-FOR-CDF-IMAG-STACK SB-VM::X))))
  405.               (SB-VM::DESCRIPTOR-REG
  406.                (ECASE SB-VM::OFFSET
  407.                  (0 (EA-FOR-CDF-REAL-DESC SB-VM::X))
  408.                  (1 (EA-FOR-CDF-IMAG-DESC SB-VM::X)))))))
  409.            (SB-ASSEM:INST SB-VM::MOVSD SB-VM::R SB-VM::EA)))
  410.         (T (ERROR "COMPLEX-FLOAT-VALUE VOP failure"))))
  411.   NIL
  412.   (:GENERATOR 17 (LOAD-TL-SYMBOL-VALUE BLOCK *CURRENT-CATCH-BLOCK*)
  413.           (LOADW BLOCK BLOCK CATCH-BLOCK-PREVIOUS-CATCH-SLOT)
  414.           (STORE-TL-SYMBOL-VALUE BLOCK *CURRENT-CATCH-BLOCK*))
  415.   NIL
  416.   (:GENERATOR 13
  417.           (SB-C:FIXED-ALLOC SB-VM::Y COMPLEX-DOUBLE-FLOAT-WIDETAG
  418.                 COMPLEX-DOUBLE-FLOAT-SIZE SB-VM::NODE)
  419.           (SB-ASSEM:INST SB-VM::MOVAPD (EA-FOR-CDF-DATA-DESC SB-VM::Y) SB-VM::X))
  420.   (:GENERATOR 3
  421.           (COND
  422.         ((AND (ZEROP INDEX) (NOT (LOCATION= SB-VM::X SB-VM::DST)))
  423.          (SB-ASSEM:INST SB-VM::XORPD SB-VM::DST SB-VM::DST)
  424.          (SB-ASSEM:INST SB-VM::MOVSD SB-VM::DST SB-VM::X))
  425.         (T (MOVE SB-VM::TMP SB-VM::X)
  426.            (WHEN (PLUSP INDEX) (SB-ASSEM:INST SB-VM::PSRLDQ SB-VM::TMP (* 8 INDEX)))
  427.            (SB-ASSEM:INST SB-VM::XORPD SB-VM::DST SB-VM::DST)
  428.            (SB-ASSEM:INST SB-VM::MOVSD SB-VM::DST SB-VM::TMP))))
  429.   (:GENERATOR 13
  430.           (SB-C:FIXED-ALLOC SB-VM::Y COMPLEX-SINGLE-FLOAT-WIDETAG
  431.                 COMPLEX-SINGLE-FLOAT-SIZE SB-VM::NODE)
  432.           (SB-ASSEM:INST SB-VM::MOVQ (EA-FOR-CSF-DATA-DESC SB-VM::Y) SB-VM::X))
  433.   NIL NIL NIL
  434.   (:GENERATOR 5
  435.           (COND
  436.         ((SC-IS REAL SB-VM::FP-SINGLE-ZERO)
  437.          (SB-ASSEM:INST SB-VM::XORPS SB-VM::R SB-VM::R)
  438.          (UNLESS (SC-IS SB-VM::IMAG SB-VM::FP-SINGLE-ZERO)
  439.            (SB-ASSEM:INST SB-VM::UNPCKLPS SB-VM::R SB-VM::IMAG)))
  440.         ((LOCATION= REAL SB-VM::IMAG) (MOVE SB-VM::R REAL)
  441.          (SB-ASSEM:INST SB-VM::UNPCKLPS SB-VM::R SB-VM::R))
  442.         (T (MOVE SB-VM::R REAL)
  443.            (UNLESS (SC-IS SB-VM::IMAG SB-VM::FP-SINGLE-ZERO)
  444.              (SB-ASSEM:INST SB-VM::UNPCKLPS SB-VM::R SB-VM::IMAG)))))
  445.   (:GENERATOR 2
  446.           (LET ((SB-VM::EA
  447.              (MAKE-EA-FOR-OBJECT-SLOT SB-VM::X SIMD-PACK-LO-VALUE-SLOT
  448.                           OTHER-POINTER-LOWTAG)))
  449.         (IF (FLOAT-SSE-P SB-VM::Y)
  450.             (SB-ASSEM:INST SB-VM::MOVAPS SB-VM::Y SB-VM::EA)
  451.             (SB-ASSEM:INST SB-VM::MOVDQA SB-VM::Y SB-VM::EA)))))
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top