Changeset 7214
- Timestamp:
- Sep 14, 2007, 4:58:13 AM (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/ia32/compiler/X86/x862.lisp
r7063 r7214 176 176 (defvar *x862-result-reg* x8664::arg_z) 177 177 178 (defvar *x862-arg-z* nil) 179 (defvar *x862-arg-y* nil) 180 (defvar *x862-temp0* nil) 178 181 179 182 (declaim (fixnum *x862-vstack* *x862-cstack*)) … … 296 299 (x862-copy-register seg x8664::arg_z valreg) 297 300 (x862-stack-to-register seg ea x8664::arg_x) 298 (x862-lri seg x8664::arg_y0)299 (! call-subprim-3 x8664::arg_z (subprim-name->offset '.SPgvset) x8664::arg_x x8664::arg_yx8664::arg_z))301 (x862-lri seg *x862-arg-y* 0) 302 (! call-subprim-3 x8664::arg_z (subprim-name->offset '.SPgvset) x8664::arg_x *x862-arg-y* x8664::arg_z)) 300 303 ((memory-spec-p ea) ; vstack slot 301 304 (x862-register-to-stack seg valreg ea)) … … 451 454 (*x862-vstack* 0) 452 455 (*x862-cstack* 0) 456 (*x862-result-reg* (target-arch-case 457 (:x8632 x8632::arg_z) 458 (:x8664 x8664::arg_z))) 459 (*x862-arg-z* (target-arch-case (:x8632 x8632::arg_z) 460 (:x8664 x8664::arg_z))) 461 (*x862-arg-y* (target-arch-case (:x8632 x8632::arg_y) 462 (:x8664 x8664::arg_y))) 463 (*x862-temp0* (target-arch-case (:x8632 x8632::temp0) 464 (:x8664 x8664::temp0))) 465 466 453 467 (*x862-target-num-arg-regs* (target-arch-case 454 468 (:x8632 $numx8632argregs) … … 551 565 (instruction (x86::make-x86-instruction)) 552 566 (end-code-tag (gensym)) 567 (srt-tag (gensym)) 568 (*x86-lap-self-reference-offsets* nil) 553 569 debug-info) 554 570 (make-x86-lap-label end-code-tag) 555 (x86-lap-directive frag-list :long `(ash (+ (- (:^ ,end-code-tag ) 8) 556 *x86-lap-entry-offset*) -3)) 557 (x86-lap-directive frag-list :byte 0) ;regsave PC 558 (x86-lap-directive frag-list :byte 0) ;regsave ea 559 (x86-lap-directive frag-list :byte 0) ;regsave mask 560 571 ;; xxx conditionalize for 32 bit here 572 (target-arch-case 573 (:x8664 574 (x86-lap-directive frag-list :long `(ash (+ (- (:^ ,end-code-tag ) 8) 575 *x86-lap-entry-offset*) -3)) 576 (x86-lap-directive frag-list :byte 0) ;regsave PC 577 (x86-lap-directive frag-list :byte 0) ;regsave ea 578 (x86-lap-directive frag-list :byte 0)) ;regsave mask 579 (:x8632 580 (make-x86-lap-label srt-tag) 581 ;; room for imm word count 582 (x86-lap-directive frag-list :short 0))) 561 583 (x862-expand-vinsns vinsns frag-list instruction) 562 584 (when (or *x862-double-float-constant-alist* … … 575 597 (let* ((val (single-float-bits sfloat))) 576 598 (x86-lap-directive frag-list :long val))))) 577 (x86-lap-directive frag-list :align 3) 578 (x86-lap-directive frag-list :quad x8664::function-boundary-marker) 599 (target-arch-case 600 (:x8632 601 (x86-lap-directive frag-list :align 2) 602 ;; start of self reference table 603 (x86-lap-directive frag-list :long 0) 604 (emit-x86-lap-label frag-list srt-tag) 605 ;; make space for self-reference offsets 606 (do-dll-nodes (frag frag-list) 607 (dolist (reloc (frag-relocs frag)) 608 (when (eq (reloc-type reloc) :self) 609 (x86-lap-directive frag-list :long 0)))) 610 (x86-lap-directive frag-list :long x8632::function-boundary-marker)) 611 (:x8664 612 (x86-lap-directive frag-list :align 3) 613 (x86-lap-directive frag-list :quad x8664::function-boundary-marker))) 614 579 615 (emit-x86-lap-label frag-list end-code-tag) 616 580 617 (dolist (c (reverse *x862-constant-alist*)) 581 618 (let* ((vinsn-label (cdr c))) … … 585 622 vinsn-label))) 586 623 (emit-x86-lap-label frag-list vinsn-label) 587 (x86-lap-directive frag-list :quad 0))) 588 624 (target-arch-case 625 (:x8632 626 (x86-lap-directive frag-list :long 0)) 627 (:x8664 628 (x86-lap-directive frag-list :quad 0))))) 629 589 630 (if (logbitp $fbitnonnullenv (the fixnum (afunc-bits afunc))) 590 631 (setq bits (+ bits (ash 1 $lfbits-nonnullenv-bit)))) … … 611 652 *x862-register-restore-ea* 612 653 *x862-register-restore-count*)))) 613 (when debug-info 614 (x86-lap-directive frag-list :quad 0)) 615 (when fname 616 (x86-lap-directive frag-list :quad 0)) 617 (x86-lap-directive frag-list :quad 0) 618 (relax-frag-list frag-list) 654 (target-arch-case 655 (:x8632 656 (when debug-info 657 (x86-lap-directive frag-list :long 0)) 658 (when fname 659 (x86-lap-directive frag-list :long 0)) 660 (x86-lap-directive frag-list :long 0)) 661 (:x8664 662 (when debug-info 663 (x86-lap-directive frag-list :quad 0)) 664 (when fname 665 (x86-lap-directive frag-list :quad 0)) 666 (x86-lap-directive frag-list :quad 0))) 667 668 (relax-frag-list frag-list) 619 669 (apply-relocs frag-list) 620 670 (fill-for-alignment frag-list) 621 (x862-lap-process-regsave-info frag-list regsave-label regsave-mask regsave-addr) 622 (setf (afunc-lfun afunc) 623 #+x86-target 624 (if (eq *host-backend* *target-backend*) 625 (create-x86-function fname frag-list *x862-constant-alist* bits debug-info) 626 (cross-create-x86-function fname frag-list *x862-constant-alist* bits debug-info)) 627 #-x86-target 628 (cross-create-x86-function fname frag-list *x862-constant-alist* bits debug-info))) 671 (target-arch-case 672 (:x8632 673 (let* ((label (find srt-tag *x86-lap-labels* :test #'eq :key #'x86-lap-label-name)) 674 (start-frag (dll-header-first frag-list)) 675 (nbytes (frag-list-length frag-list)) 676 (nwords (ash nbytes (- x8632::word-shift))) 677 (srt-frag (x86-lap-label-frag label)) 678 (srt-index (x86-lap-label-offset label))) 679 ;; fill in self-reference offsets 680 (do-dll-nodes (frag frag-list) 681 (dolist (reloc (frag-relocs frag)) 682 (when (eq (reloc-type reloc) :self) 683 (setf (frag-ref-32 srt-frag srt-index) 684 (+ (frag-address frag) (reloc-pos reloc))) 685 (incf srt-index 4)))) 686 ;; count of 32-bit immediate elements 687 (setf (frag-ref start-frag 0) (logand #xff nwords) 688 (frag-ref start-frag 1) (logand #xff00 nwords))) 689 (show-frag-bytes frag-list))) 690 691 (x862-lap-process-regsave-info frag-list regsave-label regsave-mask regsave-addr) 692 (setf (afunc-lfun afunc) 693 #+x86-target 694 (if (eq *host-backend* *target-backend*) 695 (create-x86-function fname frag-list *x862-constant-alist* bits debug-info) 696 (cross-create-x86-function fname frag-list *x862-constant-alist* bits debug-info)) 697 #-x86-target 698 (cross-create-x86-function fname frag-list *x862-constant-alist* bits debug-info))) 629 699 (x862-digest-symbols)))) 630 700 (backend-remove-labels)))) … … 681 751 (error "Missing or bad ~s label: ~s" 682 752 (if start-p 'start 'end) sym))) 683 x8664::fulltag-function))) 753 (target-arch-case 754 (:x8632 x8632::fulltag-misc) ;xxx 755 (:x8664 x8664::fulltag-function))))) 684 756 (destructuring-bind (var sym startlab endlab) info 685 757 (let* ((ea (var-ea var)) … … 894 966 (if (setq reg (x862-assign-register-var rest)) 895 967 (progn 896 (x862-copy-register seg reg x8664::arg_z)968 (x862-copy-register seg reg *x862-arg-z*) 897 969 (x862-set-var-ea seg rest reg)) 898 970 (let* ((loc *x862-vstack*)) 899 (x862-vpush-register seg x8664::arg_z:reserved)971 (x862-vpush-register seg *x862-arg-z* :reserved) 900 972 (x862-note-top-cell rest) 901 973 (x862-bind-var seg rest loc *x862-top-vstack-lcell*)))) … … 922 994 (if reg 923 995 (x862-form seg reg regloadedlabel initform) 924 (x862-register-to-stack seg (x862-one-untargeted-reg-form seg initform ($ x8664::arg_z)) (x862-vloc-ea vloc)))996 (x862-register-to-stack seg (x862-one-untargeted-reg-form seg initform ($ *x862-arg-z*)) (x862-vloc-ea vloc))) 925 997 (@ skipinitlabel))) 926 998 (if reg … … 953 1025 (if reg 954 1026 (x862-form seg reg regloadedlabel initform) 955 (x862-register-to-stack seg (x862-one-untargeted-reg-form seg initform ($ x8664::arg_z)) (x862-vloc-ea vloc)))1027 (x862-register-to-stack seg (x862-one-untargeted-reg-form seg initform ($ *x862-arg-z*)) (x862-vloc-ea vloc))) 956 1028 (@ skipinitlabel))) 957 1029 (if reg … … 1000 1072 (dotimes (i nstackargs) 1001 1073 (x862-new-vstack-lcell :reserved *x862-target-lcell-size* 0 nil)) 1002 (if (>= nargs 3) 1003 (push (x862-vpush-arg-register seg ($ x8664::arg_x) xvar) reg-vars)) 1004 (if (>= nargs 2) 1005 (push (x862-vpush-arg-register seg ($ x8664::arg_y) yvar) reg-vars)) 1006 (if (>= nargs 1) 1007 (push (x862-vpush-arg-register seg ($ x8664::arg_z) zvar) reg-vars)))) 1074 (target-arch-case 1075 (:x8632 1076 (if (>= nargs 2) 1077 (push (x862-vpush-arg-register seg ($ x8632::arg_y) yvar) reg-vars)) 1078 (if (>= nargs 1) 1079 (push (x862-vpush-arg-register seg ($ x8632::arg_z) zvar) reg-vars))) 1080 (:x8664 1081 (if (>= nargs 3) 1082 (push (x862-vpush-arg-register seg ($ x8664::arg_x) xvar) reg-vars)) 1083 (if (>= nargs 2) 1084 (push (x862-vpush-arg-register seg ($ x8664::arg_y) yvar) reg-vars)) 1085 (if (>= nargs 1) 1086 (push (x862-vpush-arg-register seg ($ x8664::arg_z) zvar) reg-vars)))))) 1008 1087 reg-vars))) 1009 1088 … … 1070 1149 (with-crf-target () crf 1071 1150 (x862-compare-ea-to-nil seg crf (x862-make-compound-cd 0 skipinitlabel) (x862-vloc-ea spvloc) x86::x86-e-bits t)) 1072 (x862-register-to-stack seg (x862-one-untargeted-reg-form seg initform ($ x8664::arg_z)) (x862-vloc-ea vloc))1151 (x862-register-to-stack seg (x862-one-untargeted-reg-form seg initform ($ *x862-arg-z*)) (x862-vloc-ea vloc)) 1073 1152 (@ skipinitlabel))) 1074 1153 (x862-bind-structured-var seg var vloc var-lcell context) … … 1087 1166 (sploc (%i+ vloc *x862-target-node-size*)) 1088 1167 (var-lcell (pop lcells)) 1089 (sp-reg ($ x8664::arg_z))1168 (sp-reg ($ *x862-arg-z*)) 1090 1169 (sp-lcell (pop lcells))) 1091 1170 (unless (nx-null initform) … … 1094 1173 (with-crf-target () crf 1095 1174 (x862-compare-register-to-nil seg crf (x862-make-compound-cd 0 skipinitlabel) sp-reg x86::x86-e-bits t)) 1096 (x862-register-to-stack seg (x862-one-untargeted-reg-form seg initform ($ x8664::arg_z)) (x862-vloc-ea vloc))1175 (x862-register-to-stack seg (x862-one-untargeted-reg-form seg initform ($ *x862-arg-z*)) (x862-vloc-ea vloc)) 1097 1176 (@ skipinitlabel))) 1098 1177 (x862-bind-structured-var seg var vloc var-lcell context) … … 1226 1305 (defun x862-mvpass (seg form &optional xfer) 1227 1306 (with-x86-local-vinsn-macros (seg) 1228 (x862-form seg ($ x8664::arg_z) (logior (or xfer 0) $backend-mvpass-mask) form)))1307 (x862-form seg ($ *x862-arg-z*) (logior (or xfer 0) $backend-mvpass-mask) form))) 1229 1308 1230 1309 (defun x862-adjust-vstack (delta) … … 1397 1476 (:x8664 t)) 1398 1477 (! box-fixnum node-dest s32-src) 1399 (let* ((arg_z ($ x8664::arg_z))1478 (let* ((arg_z ($ *x862-arg-z*)) 1400 1479 (imm0 ($ x8664::imm0 :mode :s32))) 1401 1480 (x862-copy-register seg imm0 s32-src) … … 1426 1505 (:x8664 t)) 1427 1506 (! box-fixnum node-dest u32-src) 1428 (let* ((arg_z ($ x8664::arg_z))1507 (let* ((arg_z ($ *x862-arg-z*)) 1429 1508 (imm0 ($ x8664::imm0 :mode :u32))) 1430 1509 (x862-copy-register seg imm0 u32-src) … … 1444 1523 (! set-bigits-after-fixnum-overflow node-dest) 1445 1524 (@ no-overflow)) 1446 (let* ((arg_z ($ x8664::arg_z))1525 (let* ((arg_z ($ *x862-arg-z*)) 1447 1526 (imm0 ($ x8664::imm0 :mode :u64))) 1448 1527 (x862-copy-register seg imm0 u64-src) … … 1641 1720 (if (or safe (not index-known-fixnum)) 1642 1721 (multiple-value-setq (src unscaled-idx) 1643 (x862-two-untargeted-reg-forms seg vector x8664::arg_y index x8664::arg_z))1644 (setq src (x862-one-untargeted-reg-form seg vector x8664::arg_z)))1722 (x862-two-untargeted-reg-forms seg vector *x862-arg-y* index *x862-arg-z*)) 1723 (setq src (x862-one-untargeted-reg-form seg vector *x862-arg-z*))) 1645 1724 (when safe 1646 1725 (if (typep safe 'fixnum) … … 1682 1761 array ($ x8664::temp0) 1683 1762 i ($ x8664::arg_x) 1684 j ($ x8664::arg_y)1763 j ($ *x862-arg-y*) 1685 1764 new val-reg) 1686 (values ($ x8664::temp0) ($ x8664::arg_x) ($ x8664::arg_y) ($ x8664::arg_z)))1765 (values ($ x8664::temp0) ($ x8664::arg_x) ($ *x862-arg-y*) ($ *x862-arg-z*))) 1687 1766 (x862-four-untargeted-reg-forms seg 1688 1767 array ($ x8664::temp0) 1689 1768 i ($ x8664::arg_x) 1690 j ($ x8664::arg_y)1769 j ($ *x862-arg-y*) 1691 1770 new val-reg)))) 1692 1771 (let* ((*available-backend-imm-temps* *available-backend-imm-temps*)) … … 1707 1786 (! trap-unless-fixnum unscaled-j))) 1708 1787 (with-imm-target () dim1 1709 (let* ((idx-reg ($ x8664::arg_y)))1788 (let* ((idx-reg ($ *x862-arg-y*))) 1710 1789 (if constidx 1711 1790 (if needs-memoization 1712 (x862-lri seg x8664::arg_y(ash constidx *x862-target-fixnum-shift*)))1791 (x862-lri seg *x862-arg-y* (ash constidx *x862-target-fixnum-shift*))) 1713 1792 (progn 1714 1793 (if safe … … 1754 1833 unscaled-i ($ x8664::temp0) 1755 1834 unscaled-j ($ x8664::arg_x) 1756 unscaled-k ($ x8664::arg_y))1835 unscaled-k ($ *x862-arg-y*)) 1757 1836 (x862-push-register 1758 1837 seg 1759 (x862-one-untargeted-reg-form seg array ($ x8664::arg_z)))1838 (x862-one-untargeted-reg-form seg array ($ *x862-arg-z*))) 1760 1839 (x862-four-targeted-reg-forms seg 1761 1840 i ($ x8664::temp0) 1762 1841 j ($ x8664::arg_x) 1763 k ($ x8664::arg_y)1842 k ($ *x862-arg-y*) 1764 1843 new val-reg) 1765 1844 (x862-pop-register seg src))) … … 1785 1864 (with-imm-target () dim1 1786 1865 (with-imm-target (dim1) dim2 1787 (let* ((idx-reg ($ x8664::arg_y)))1866 (let* ((idx-reg ($ *x862-arg-y*))) 1788 1867 (if constidx 1789 1868 (when needs-memoization … … 1814 1893 (+ (* i-known-fixnum dim1) j-known-fixnum)))) 1815 1894 (if constidx 1816 (setq src (x862-one-targeted-reg-form seg array ($ x8664::arg_z)))1895 (setq src (x862-one-targeted-reg-form seg array ($ *x862-arg-z*))) 1817 1896 (multiple-value-setq (src unscaled-i unscaled-j) 1818 1897 (x862-three-untargeted-reg-forms seg 1819 1898 array x8664::arg_x 1820 i x8664::arg_y1821 j x8664::arg_z)))1899 i *x862-arg-y* 1900 j *x862-arg-z*))) 1822 1901 (when safe 1823 1902 (when (typep safe 'fixnum) … … 1863 1942 k-known-fixnum)))) 1864 1943 (if constidx 1865 (setq src (x862-one-targeted-reg-form seg array ($ x8664::arg_z)))1944 (setq src (x862-one-targeted-reg-form seg array ($ *x862-arg-z*))) 1866 1945 (multiple-value-setq (src unscaled-i unscaled-j unscaled-k) 1867 1946 (x862-four-untargeted-reg-forms seg 1868 1947 array x8664::temp0 1869 1948 i x8664::arg_x 1870 j x8664::arg_y1871 k x8664::arg_z)))1949 j *x862-arg-y* 1950 k *x862-arg-z*))) 1872 1951 (when safe 1873 1952 (when (typep safe 'fixnum) … … 1906 1985 (if (or safe (not index-known-fixnum)) 1907 1986 (multiple-value-setq (src unscaled-idx target) 1908 (x862-three-untargeted-reg-forms seg vector x8664::arg_y index x8664::arg_zvalue (or vreg target)))1987 (x862-three-untargeted-reg-forms seg vector *x862-arg-y* index *x862-arg-z* value (or vreg target))) 1909 1988 (multiple-value-setq (src target) 1910 (x862-two-untargeted-reg-forms seg vector x8664::arg_yvalue (or vreg target))))1989 (x862-two-untargeted-reg-forms seg vector *x862-arg-y* value (or vreg target)))) 1911 1990 (when safe 1912 1991 (with-imm-temps (target) () ; Don't use target in type/bounds check … … 1982 2061 (next-imm-target (available-imm-temp *available-backend-imm-temps*)) 1983 2062 (next-fp-target (available-fp-temp *available-backend-fp-temps*)) 1984 (acc (make-wired-lreg x8664::arg_z)))2063 (acc (make-wired-lreg *x862-arg-z*))) 1985 2064 (cond ((or is-node 1986 2065 (eq vreg :push) … … 2183 2262 (cond ((and is-node node-value-needs-memoization) 2184 2263 (unless (and (eql (hard-regspec-value src) x8664::arg_x) 2185 (eql (hard-regspec-value unscaled-idx) x8664::arg_y)2186 (eql (hard-regspec-value val-reg) x8664::arg_z))2264 (eql (hard-regspec-value unscaled-idx) *x862-arg-y*) 2265 (eql (hard-regspec-value val-reg) *x862-arg-z*)) 2187 2266 (nx-error "Bug: invalid register targeting for gvset: ~s" (list src unscaled-idx val-reg))) 2188 2267 (! call-subprim-3 val-reg (subprim-name->offset '.SPgvset) src unscaled-idx val-reg)) … … 2305 2384 (index-known-fixnum (acode-fixnum-form-p index))) 2306 2385 (let* ((src ($ x8664::arg_x)) 2307 (unscaled-idx ($ x8664::arg_y))2308 (result-reg ($ x8664::arg_z)))2386 (unscaled-idx ($ *x862-arg-y*)) 2387 (result-reg ($ *x862-arg-z*))) 2309 2388 (cond (needs-memoization 2310 2389 (x862-three-targeted-reg-forms seg … … 2437 2516 (backend-get-next-label)))) 2438 2517 (unless simple-case 2439 (x862-vpush-register seg (x862-one-untargeted-reg-form seg fn x8664::arg_z))2518 (x862-vpush-register seg (x862-one-untargeted-reg-form seg fn *x862-arg-z*)) 2440 2519 (setq fn (x862-vloc-ea vstack))) 2441 2520 (x862-invoke-fn seg fn (x862-arglist seg arglist mv-return-label) spread-p xfer mv-return-label) … … 2453 2532 (setq *x862-cstack* cstack) 2454 2533 (when (or (logbitp $backend-mvpass-bit xfer) (not mv-p)) 2455 (<- x8664::arg_z)2534 (<- *x862-arg-z*) 2456 2535 (x862-branch seg (logand (lognot $backend-mvpass-mask) xfer))))) 2457 2536 nil))) … … 2472 2551 (if jump-p 2473 2552 (! jump-known-symbol) 2474 (! call-known-symbol x8664::arg_z))))2553 (! call-known-symbol *x862-arg-z*)))) 2475 2554 2476 2555 ;;; Nargs = nil -> multiple-value case. … … 2641 2720 (let* ((inherited-vars (afunc-inherited-vars afunc)) 2642 2721 (arch (backend-target-arch *target-backend*)) 2643 (dest ($ x8664::arg_z))2722 (dest ($ *x862-arg-z*)) 2644 2723 (vsize (+ (length inherited-vars) 2645 2724 5 ; %closure-code%, afunc … … 2661 2740 (x862-lri seg x8664::imm1 (- (ash (logandc2 (+ vsize 2) 1) (arch::target-word-shift arch)) (target-arch-case (:x8664 x8664::fulltag-misc)))) 2662 2741 (! %allocate-uvector dest))) 2663 (! init-nclosure x8664::arg_z)2742 (! init-nclosure *x862-arg-z*) 2664 2743 (x862-store-immediate seg (x862-afunc-lfun-ref afunc) x8664::ra0) 2665 (with-node-temps ( x8664::arg_z) (t0 t1 t2 t3)2744 (with-node-temps (*x862-arg-z*) (t0 t1 t2 t3) 2666 2745 (do* ((func x8664::ra0 nil)) 2667 2746 ((null inherited-vars)) … … 2671 2750 (t3r (if inherited-vars (var-to-reg (pop inherited-vars) t3)))) 2672 2751 (setq cell (set-some-cells dest cell t0r t1r t2r t3r))))) 2673 (x862-lri seg x8664::arg_y(ash (logior (ash 1 $lfbits-noname-bit) (ash 1 $lfbits-trampoline-bit)) *x862-target-fixnum-shift*))2674 (! misc-set-c-node x8664::arg_ydest cell))2752 (x862-lri seg *x862-arg-y* (ash (logior (ash 1 $lfbits-noname-bit) (ash 1 $lfbits-trampoline-bit)) *x862-target-fixnum-shift*)) 2753 (! misc-set-c-node *x862-arg-y* dest cell)) 2675 2754 (! finalize-closure dest) 2676 2755 dest)))) … … 2751 2830 (x862-adjust-vstack *x862-target-node-size*)) 2752 2831 2753 (let* ((reg (x862-one-untargeted-reg-form seg arg x8664::arg_z)))2832 (let* ((reg (x862-one-untargeted-reg-form seg arg *x862-arg-z*))) 2754 2833 (x862-vpush-register-arg seg reg))) 2755 2834 (incf n))) … … 2759 2838 (xform (%caddr revregargs))) 2760 2839 (if (eq 3 nregs) 2761 (x862-three-targeted-reg-forms seg xform ($ x8664::arg_x) yform ($ x8664::arg_y) zform ($ x8664::arg_z))2840 (x862-three-targeted-reg-forms seg xform ($ x8664::arg_x) yform ($ *x862-arg-y*) zform ($ *x862-arg-z*)) 2762 2841 (if (eq 2 nregs) 2763 (x862-two-targeted-reg-forms seg yform ($ x8664::arg_y) zform ($ x8664::arg_z))2764 (x862-one-targeted-reg-form seg zform ($ x8664::arg_z))))))2842 (x862-two-targeted-reg-forms seg yform ($ *x862-arg-y*) zform ($ *x862-arg-z*)) 2843 (x862-one-targeted-reg-form seg zform ($ *x862-arg-z*)))))) 2765 2844 n))) 2766 2845 … … 2897 2976 ((= class hard-reg-class-gpr) 2898 2977 (if (= mode hard-reg-class-gpr-mode-node) 2899 ($ x8664::arg_z)2978 ($ *x862-arg-z*) 2900 2979 (make-wired-lreg x8664::imm0 :mode mode))) 2901 2980 (t (error "Unknown register class for reg ~s" reg)))))) … … 3265 3344 (if (and (eql u8-operator (%nx1-operator lisptag)) 3266 3345 (eql 0 u8constant)) 3267 (let* ((formreg (x862-one-untargeted-reg-form seg form x8664::arg_z)))3346 (let* ((formreg (x862-one-untargeted-reg-form seg form *x862-arg-z*))) 3268 3347 3269 3348 (! set-flags-from-lisptag formreg)) … … 3303 3382 (x862-compare-u8 seg vreg xfer u8-operand u8 (if (and iu8 (not (eq cr-bit x86::x86-e-bits))) (logxor 1 cr-bit) cr-bit) true-p u8-operator) 3304 3383 (if (and boolean (or js32 is32)) 3305 (let* ((reg (x862-one-untargeted-reg-form seg (if js32 i j) x8664::arg_z))3384 (let* ((reg (x862-one-untargeted-reg-form seg (if js32 i j) *x862-arg-z*)) 3306 3385 (constant (or js32 is32))) 3307 3386 (if (zerop constant) … … 3320 3399 seg 3321 3400 (if js32 i j) 3322 x8664::arg_z)3401 *x862-arg-z*) 3323 3402 cr-bit 3324 3403 true-p 3325 3404 (or js32 is32)) 3326 (multiple-value-bind (ireg jreg) (x862-two-untargeted-reg-forms seg i x8664::arg_y j x8664::arg_z)3405 (multiple-value-bind (ireg jreg) (x862-two-untargeted-reg-forms seg i *x862-arg-y* j *x862-arg-z*) 3327 3406 (x862-compare-registers seg vreg xfer ireg jreg cr-bit true-p))))))))) 3328 3407 … … 3484 3563 3485 3564 (defun x862-test-%izerop (seg vreg xfer form cr-bit true-p) 3486 (x862-test-reg-%izerop seg vreg xfer (x862-one-untargeted-reg-form seg form x8664::arg_z) cr-bit true-p 0))3565 (x862-test-reg-%izerop seg vreg xfer (x862-one-untargeted-reg-form seg form *x862-arg-z*) cr-bit true-p 0)) 3487 3566 3488 3567 (defun x862-test-reg-%izerop (seg vreg xfer reg cr-bit true-p zero) … … 3785 3864 (x862-open-undo $undostkblk curstack) 3786 3865 (! stack-cons-list)) 3787 (setq val x8664::arg_z))3866 (setq val *x862-arg-z*)) 3788 3867 ((eq op (%nx1-operator list*)) 3789 3868 (let* ((arglist (%cadr val))) … … 3795 3874 (! stack-cons-list*) 3796 3875 (x862-open-undo $undostkblk curstack)) 3797 (setq val x8664::arg_z)))3876 (setq val *x862-arg-z*))) 3798 3877 ((eq op (%nx1-operator multiple-value-list)) 3799 3878 (x862-multiple-value-body seg (%cadr val)) 3800 3879 (x862-open-undo $undostkblk curstack) 3801 3880 (! stack-cons-list) 3802 (setq val x8664::arg_z))3881 (setq val *x862-arg-z*)) 3803 3882 ((eq op (%nx1-operator cons)) 3804 (let* ((y ($ x8664::arg_y))3805 (z ($ x8664::arg_z))3806 (result ($ x8664::arg_z)))3883 (let* ((y ($ *x862-arg-y*)) 3884 (z ($ *x862-arg-z*)) 3885 (result ($ *x862-arg-z*))) 3807 3886 (x862-two-targeted-reg-forms seg (%cadr val) y (%caddr val) z) 3808 3887 (x862-open-undo $undostkblk ) … … 3820 3899 (if (nx-constant-form-p clear-form) 3821 3900 (progn 3822 (x862-one-targeted-reg-form seg (%cadr val) ($ x8664::arg_z))3901 (x862-one-targeted-reg-form seg (%cadr val) ($ *x862-arg-z*)) 3823 3902 (if (nx-null clear-form) 3824 3903 (! make-stack-block) … … 3827 3906 (let ((stack-block-0-label (backend-get-next-label)) 3828 3907 (done-label (backend-get-next-label)) 3829 (rval ($ x8664::arg_z))3830 (rclear ($ x8664::arg_y)))3908 (rval ($ *x862-arg-z*)) 3909 (rclear ($ *x862-arg-y*))) 3831 3910 (x862-two-targeted-reg-forms seg (%cadr val) rval clear-form rclear) 3832 3911 (! compare-to-nil crf rclear) … … 3838 3917 (@ done-label))))) 3839 3918 (x862-open-undo $undo-x86-c-frame) 3840 (setq val ($ x8664::arg_z)))3919 (setq val ($ *x862-arg-z*))) 3841 3920 ((eq op (%nx1-operator make-list)) 3842 (x862-two-targeted-reg-forms seg (%cadr val) ($ x8664::arg_y) (%caddr val) ($ x8664::arg_z))3921 (x862-two-targeted-reg-forms seg (%cadr val) ($ *x862-arg-y*) (%caddr val) ($ *x862-arg-z*)) 3843 3922 (x862-open-undo $undostkblk curstack) 3844 3923 (! make-stack-list) 3845 (setq val x8664::arg_z))3924 (setq val *x862-arg-z*)) 3846 3925 ((eq (%car val) (%nx1-operator vector)) 3847 3926 (let* ((*x862-vstack* *x862-vstack*) … … 3850 3929 (! make-stack-vector)) 3851 3930 (x862-open-undo $undostkblk) 3852 (setq val x8664::arg_z))3931 (setq val *x862-arg-z*)) 3853 3932 ((eq op (%nx1-operator %gvector)) 3854 3933 (let* ((*x862-vstack* *x862-vstack*) … … 3858 3937 (! make-stack-gvector)) 3859 3938 (x862-open-undo $undostkblk) 3860 (setq val x8664::arg_z))3939 (setq val *x862-arg-z*)) 3861 3940 ((eq op (%nx1-operator closed-function)) 3862 3941 (setq val (x862-make-closure seg (cadr val) t))) ; can't error … … 3869 3948 (if init-p 3870 3949 (progn 3871 (x862-three-targeted-reg-forms seg element-count ($ x8664::arg_x) subtag ($ x8664::arg_y) init ($ x8664::arg_z))3950 (x862-three-targeted-reg-forms seg element-count ($ x8664::arg_x) subtag ($ *x862-arg-y*) init ($ *x862-arg-z*)) 3872 3951 (! stack-misc-alloc-init)) 3873 3952 (progn 3874 (x862-two-targeted-reg-forms seg element-count ($ x8664::arg_y) subtag ($ x8664::arg_z))3953 (x862-two-targeted-reg-forms seg element-count ($ *x862-arg-y*) subtag ($ *x862-arg-z*)) 3875 3954 (! stack-misc-alloc))) 3876 3955 (if is-node 3877 3956 (x862-open-undo $undostkblk) 3878 3957 (x862-open-undo $undo-x86-c-frame)) 3879 (setq val ($ x8664::arg_z))))))))))3958 (setq val ($ *x862-arg-z*)))))))))) 3880 3959 val) 3881 3960 … … 3934 4013 (x862-new-vstack-lcell :node *x862-target-lcell-size* bits var) 3935 4014 (x862-adjust-vstack *x862-target-node-size*)) 3936 (x862-vpush-register seg (x862-one-untargeted-reg-form seg val x8664::arg_z) :node var bits)))))4015 (x862-vpush-register seg (x862-one-untargeted-reg-form seg val *x862-arg-z*) :node var bits))))) 3937 4016 (x862-set-var-ea seg var (or reg (x862-vloc-ea vloc closed-p))) 3938 4017 (if reg … … 4037 4116 (t 4038 4117 (if ea-p 4039 (x862-store-ea seg value x8664::arg_z)4040 (x862-one-targeted-reg-form seg value ($ x8664::arg_z)))4118 (x862-store-ea seg value *x862-arg-z*) 4119 (x862-one-targeted-reg-form seg value ($ *x862-arg-z*))) 4041 4120 (! bind-interrupt-level)))) 4042 4121 (x862-open-undo $undointerruptlevel)) … … 4044 4123 (if (or nil-p self-p) 4045 4124 (progn 4046 (x862-store-immediate seg (x862-symbol-value-cell sym) x8664::arg_z)4125 (x862-store-immediate seg (x862-symbol-value-cell sym) *x862-arg-z*) 4047 4126 (if nil-p 4048 4127 (! bind-nil) … … 4052 4131 (progn 4053 4132 (if ea-p 4054 (x862-store-ea seg value x8664::arg_z)4055 (x862-one-targeted-reg-form seg value ($ x8664::arg_z)))4056 (x862-store-immediate seg (x862-symbol-value-cell sym) ($ x8664::arg_y))4133 (x862-store-ea seg value *x862-arg-z*) 4134 (x862-one-targeted-reg-form seg value ($ *x862-arg-z*))) 4135 (x862-store-immediate seg (x862-symbol-value-cell sym) ($ *x862-arg-y*)) 4057 4136 (! bind))) 4058 4137 (x862-open-undo $undospecial))) … … 4112 4191 (if for-value 4113 4192 (progn 4114 (x862-one-targeted-reg-form seg val ($ x8664::arg_z))4193 (x862-one-targeted-reg-form seg val ($ *x862-arg-z*)) 4115 4194 (progn 4116 4195 (if intval 4117 4196 (x862-lri seg x8664::imm0 intval) 4118 (! deref-macptr x8664::imm0 x8664::arg_z))4119 (values x8664::imm0 x8664::arg_z)))4197 (! deref-macptr x8664::imm0 *x862-arg-z*)) 4198 (values x8664::imm0 *x862-arg-z*))) 4120 4199 (values (x862-macptr-arg-to-reg seg val ($ x8664::imm0 :mode :address)) nil)))) 4121 4200 (unless (typep offval '(signed-byte 32)) … … 4133 4212 (with-imm-target () (ptr-reg :address) 4134 4213 (with-imm-target (ptr-reg) (offsetreg :signed-natural) 4135 (x862-two-targeted-reg-forms seg ptr ptr-reg offset ($ x8664::arg_z))4136 (! fixnum->signed-natural offsetreg x8664::arg_z)4214 (x862-two-targeted-reg-forms seg ptr ptr-reg offset ($ *x862-arg-z*)) 4215 (! fixnum->signed-natural offsetreg *x862-arg-z*) 4137 4216 (! mem-set-constant-doubleword intval ptr-reg offsetreg))))) 4138 4217 (if for-value … … 4155 4234 (with-imm-target () (ptr-reg :address) 4156 4235 (with-imm-target (ptr-reg) (offset-reg :address) 4157 (x862-two-targeted-reg-forms seg ptr ptr-reg offset ($ x8664::arg_z))4158 (! fixnum->signed-natural offset-reg x8664::arg_z)4236 (x862-two-targeted-reg-forms seg ptr ptr-reg offset ($ *x862-arg-z*)) 4237 (! fixnum->signed-natural offset-reg *x862-arg-z*) 4159 4238 (! fixnum-add2 ptr-reg offset-reg) 4160 4239 (x862-push-register seg ptr-reg))) … … 4189 4268 (declare (fixnum size)) 4190 4269 (flet ((val-to-argz-and-imm0 () 4191 (x862-one-targeted-reg-form seg val ($ x8664::arg_z))4270 (x862-one-targeted-reg-form seg val ($ *x862-arg-z*)) 4192 4271 (if (eq size 8) 4193 4272 (if signed 4194 4273 (! gets64) 4195 4274 (! getu64)) 4196 (! fixnum->signed-natural x8664::imm0 x8664::arg_z))))4275 (! fixnum->signed-natural x8664::imm0 *x862-arg-z*)))) 4197 4276 4198 4277 (and offval (%i> (integer-length offval) 31) (setq offval nil)) … … 4218 4297 (with-imm-target () (ptr-reg :address) 4219 4298 (with-imm-target (ptr-reg) (offsetreg :signed-natural) 4220 (x862-two-targeted-reg-forms seg ptr ptr-reg offset ($ x8664::arg_z))4221 (! fixnum->signed-natural offsetreg x8664::arg_z)4299 (x862-two-targeted-reg-forms seg ptr ptr-reg offset ($ *x862-arg-z*)) 4300 (! fixnum->signed-natural offsetreg *x862-arg-z*) 4222 4301 (case size 4223 4302 (8 (! mem-set-constant-doubleword intval ptr-reg offsetreg)) … … 4242 4321 (1 (! mem-set-c-byte x8664::imm0 ptr-reg offval)))) 4243 4322 (if for-value 4244 (<- x8664::arg_z)))4323 (<- *x862-arg-z*))) 4245 4324 (t 4246 4325 (with-imm-target () (ptr-reg :address) 4247 4326 (with-imm-target (ptr-reg) (offset-reg :address) 4248 (x862-two-targeted-reg-forms seg ptr ptr-reg offset ($ x8664::arg_z))4249 (! fixnum->signed-natural offset-reg x8664::arg_z)4327 (x862-two-targeted-reg-forms seg ptr ptr-reg offset ($ *x862-arg-z*)) 4328 (! fixnum->signed-natural offset-reg *x862-arg-z*) 4250 4329 (! fixnum-add2 ptr-reg offset-reg) 4251 4330 (x862-push-register seg ptr-reg))) … … 4259 4338 (1 (! mem-set-c-byte x8664::imm0 ptr-reg 0)))) 4260 4339 (if for-value 4261 (< x8664::arg_z))))4340 (< *x862-arg-z*)))) 4262 4341 4263 4342 (^)))))) … … 4360 4439 (! ref-symbol-value-inline target src) 4361 4440 (! %ref-symbol-value-inline target src)))) 4362 (let* ((src ($ x8664::arg_z))4363 (dest ($ x8664::arg_z)))4441 (let* ((src ($ *x862-arg-z*)) 4442 (dest ($ *x862-arg-z*))) 4364 4443 (x862-store-immediate seg (x862-symbol-value-cell sym) src) 4365 4444 (if check-boundp … … 4372 4451 (defun x862-extract-charcode (seg vreg xfer char safe) 4373 4452 (with-x86-local-vinsn-macros (seg vreg xfer) 4374 (let* ((src (x862-one-untargeted-reg-form seg char x8664::arg_z)))4453 (let* ((src (x862-one-untargeted-reg-form seg char *x862-arg-z*))) 4375 4454 (when safe 4376 4455 (! trap-unless-character src)) … … 4385 4464 (setq safe nil)) ; May also have been passed as NIL. 4386 4465 (with-x86-local-vinsn-macros (seg vreg xfer) 4387 (let* ((src (x862-one-untargeted-reg-form seg listform x8664::arg_z)))4466 (let* ((src (x862-one-untargeted-reg-form seg listform *x862-arg-z*))) 4388 4467 (when safe 4389 4468 (! trap-unless-list src)) … … 4451 4530 (progn 4452 4531 (push nil pending) 4453 (x862-vpush-register seg (x862-one-untargeted-reg-form seg form x8664::arg_z)))))4532 (x862-vpush-register seg (x862-one-untargeted-reg-form seg form *x862-arg-z*))))) 4454 4533 (x862-lri seg x8664::imm0 header) 4455 4534 (x862-lri seg x8664::imm1 (- (ash (logandc2 (+ n 2) 1) (arch::target-word-shift arch)) (target-arch-case (:x8664 x8664::fulltag-misc)))) … … 4492 4571 (setq safe nil)) ; May also have been passed as NIL. 4493 4572 (with-x86-local-vinsn-macros (seg vreg xfer) 4494 (multiple-value-bind (ptr-vreg val-vreg) (x862-two-targeted-reg-forms seg ptrform ($ x8664::arg_y) valform ($ x8664::arg_z))4573 (multiple-value-bind (ptr-vreg val-vreg) (x862-two-targeted-reg-forms seg ptrform ($ *x862-arg-y*) valform ($ *x862-arg-z*)) 4495 4574 (when safe 4496 4575 (! trap-unless-cons ptr-vreg)) 4497 4576 (if setcdr 4498 (! call-subprim-2 ($ x8664::arg_z) (subprim-name->offset '.SPrplacd) ptr-vreg val-vreg)4499 (! call-subprim-2 ($ x8664::arg_z) (subprim-name->offset '.SPrplaca) ptr-vreg val-vreg))4577 (! call-subprim-2 ($ *x862-arg-z*) (subprim-name->offset '.SPrplacd) ptr-vreg val-vreg) 4578 (! call-subprim-2 ($ *x862-arg-z*) (subprim-name->offset '.SPrplaca) ptr-vreg val-vreg)) 4500 4579 (if returnptr 4501 4580 (<- ptr-vreg) … … 4572 4651 (setq xfer (logand (lognot $backend-mvpass-mask) xfer)) 4573 4652 (unless *x862-returning-values* 4574 (x862-vpush-register seg x8664::arg_z)4653 (x862-vpush-register seg *x862-arg-z*) 4575 4654 (x862-set-nargs seg 1))) 4576 4655 (if (neq 0 xfer) … … 4689 4768 ;; case of a null vd can certainly avoid it; the check 4690 4769 ;; of numundo is to keep $acc boxed in case of nthrow. 4691 (x862-form seg (if (or vreg (not (%izerop numundo))) x8664::arg_z) nil body)4770 (x862-form seg (if (or vreg (not (%izerop numundo))) *x862-arg-z*) nil body) 4692 4771 (x862-unwind-set seg xfer old-stack) 4693 (when vreg (<- x8664::arg_z))4772 (when vreg (<- *x862-arg-z*)) 4694 4773 (^)))))))) 4695 4774 … … 4774 4853 (when label 4775 4854 (! start-mv-call (aref *backend-labels* label))) 4776 (x862-temp-push-node seg (x862-one-untargeted-reg-form seg fn x8664::arg_z))4855 (x862-temp-push-node seg (x862-one-untargeted-reg-form seg fn *x862-arg-z*)) 4777 4856 (x862-multiple-value-body seg (pop arglist)) 4778 4857 (x862-open-undo $undostkblk) … … 4791 4870 (^))) 4792 4871 (progn 4793 (<- x8664::arg_z)4872 (<- *x862-arg-z*) 4794 4873 (^)))))))) 4795 4874 … … 5011 5090 (setq n 0)) 5012 5091 (if *x862-open-code-inline* 5013 (let* ((*available-backend-node-temps* (bitclr x8664::arg_z(bitclr x8664::rcx *available-backend-node-temps*))))5092 (let* ((*available-backend-node-temps* (bitclr *x862-arg-z* (bitclr x8664::rcx *available-backend-node-temps*)))) 5014 5093 (! unbind-interrupt-level-inline)) 5015 5094 (! unbind-interrupt-level))) … … 5054 5133 (if enclosing-ea 5055 5134 (progn 5056 (x862-store-ea seg enclosing-ea x8664::arg_z)5135 (x862-store-ea seg enclosing-ea *x862-arg-z*) 5057 5136 (! destructuring-bind-inner)) 5058 5137 (! destructuring-bind))) … … 5220 5299 (:insert-mmx-rm 5221 5300 (x86::insert-mmx-rm-entry instruction 5222 (svref register-table operand)))))) 5301 (svref register-table operand))) 5302 (:insert-self 5303 (setf (x86::x86-immediate-operand-type immediate-operand) 5304 (x86::encode-operand-type :self) 5305 (x86::x86-immediate-operand-value immediate-operand) 5306 (parse-x86-lap-expression operand) 5307 (x86::x86-instruction-imm instruction) 5308 immediate-operand))))) 5223 5309 (x86-generate-instruction-code frag-list instruction))) 5224 5310 … … 5409 5495 (progn 5410 5496 (! call-subprim subprim) 5411 (<- ($ x8664::arg_z))5497 (<- ($ *x862-arg-z*)) 5412 5498 (^)))))) 5413 5499 5414 5500 (defun x862-unary-builtin (seg vreg xfer name form) 5415 5501 (with-x86-local-vinsn-macros (seg) 5416 (x862-one-targeted-reg-form seg form ($ x8664::arg_z))5502 (x862-one-targeted-reg-form seg form ($ *x862-arg-z*)) 5417 5503 (x862-fixed-call-builtin seg vreg xfer name (subprim-name->offset '.SPcallbuiltin1)))) 5418 5504 5419 5505 (defun x862-binary-builtin (seg vreg xfer name form1 form2) 5420 5506 (with-x86-local-vinsn-macros (seg) 5421 (x862-two-targeted-reg-forms seg form1 ($ x8664::arg_y) form2 ($ x8664::arg_z)) 5507 (target-arch-case 5508 (:x8632 5509 (x862-two-targeted-reg-forms seg form1 ($ x8632::arg_y) form2 ($ x8632::arg_z))) 5510 (:x8664 5511 (x862-two-targeted-reg-forms seg form1 ($ *x862-arg-y*) form2 ($ *x862-arg-z*)))) 5422 5512 (x862-fixed-call-builtin seg vreg xfer name (subprim-name->offset '.SPcallbuiltin2)))) 5423 5513 5424 5514 (defun x862-ternary-builtin (seg vreg xfer name form1 form2 form3) 5425 5515 (with-x86-local-vinsn-macros (seg) 5426 (x862-three-targeted-reg-forms seg form1 ($ x8664::arg_x) form2 ($ x8664::arg_y) form3 ($ x8664::arg_z))5516 (x862-three-targeted-reg-forms seg form1 ($ x8664::arg_x) form2 ($ *x862-arg-y*) form3 ($ *x862-arg-z*)) 5427 5517 (x862-fixed-call-builtin seg vreg xfer name (subprim-name->offset '.SPcallbuiltin3)))) 5428 5518 … … 5615 5705 (do* ((vars arg-regs (cdr vars)) 5616 5706 (arg-reg-numbers (target-arch-case 5617 (:x8664 (list x8664::arg_z x8664::arg_yx8664::arg_x))))5707 (:x8664 (list x8664::arg_z *x862-arg-y* x8664::arg_x)))) 5618 5708 (arg-reg-num (pop arg-reg-numbers) (pop arg-reg-numbers))) 5619 5709 ((null vars)) … … 5689 5779 (x862-push-register seg 5690 5780 (if (or node-p crf-p) 5691 (x862-one-untargeted-reg-form seg first x8664::arg_z)5781 (x862-one-untargeted-reg-form seg first *x862-arg-z*) 5692 5782 (x862-one-targeted-reg-form seg first vreg))) 5693 5783 (dolist (form forms) … … 5695 5785 (if crf-p 5696 5786 (progn 5697 (x862-vpop-register seg x8664::arg_z)5698 (<- x8664::arg_z))5787 (x862-vpop-register seg *x862-arg-z*) 5788 (<- *x862-arg-z*)) 5699 5789 (x862-pop-register seg vreg)) 5700 5790 (^))))) … … 5710 5800 5711 5801 (defx862 x862-%slot-ref %slot-ref (seg vreg xfer instance idx) 5712 (ensuring-node-target (target (or vreg ($ x8664::arg_z)))5802 (ensuring-node-target (target (or vreg ($ *x862-arg-z*))) 5713 5803 (multiple-value-bind (v i) 5714 (x862-two-untargeted-reg-forms seg instance x8664::arg_y idx x8664::arg_z)5804 (x862-two-untargeted-reg-forms seg instance *x862-arg-y* idx *x862-arg-z*) 5715 5805 (unless *x862-reckless* 5716 5806 (! check-misc-bound i v)) … … 5753 5843 (let* ((tagreg x8664::imm0)) 5754 5844 (multiple-value-bind (cr-bit true-p) (acode-condition-to-x86-cr-bit cc) 5755 (! extract-fulltag tagreg (x862-one-untargeted-reg-form seg form x8664::arg_z))5845 (! extract-fulltag tagreg (x862-one-untargeted-reg-form seg form *x862-arg-z*)) 5756 5846 (! compare-u8-constant tagreg x8664::fulltag-cons) 5757 5847 (regspec-crf-gpr-case … … 5770 5860 (x862-form seg nil nil y) 5771 5861 (x862-form seg nil xfer z)) 5772 (multiple-value-bind (yreg zreg) (x862-two-untargeted-reg-forms seg y x8664::arg_y z x8664::arg_z)5862 (multiple-value-bind (yreg zreg) (x862-two-untargeted-reg-forms seg y *x862-arg-y* z *x862-arg-z*) 5773 5863 (ensuring-node-target (target vreg) 5774 5864 (! cons target yreg zreg)) … … 5828 5918 (x862-set-nargs seg (x862-formlist seg all-on-stack nil)) 5829 5919 (! gvector)) 5830 (<- x8664::arg_z)5920 (<- *x862-arg-z*) 5831 5921 (^)) 5832 5922 (x862-allocate-initialized-gvector seg vreg xfer subtag (cdr all-on-stack)))))) … … 5854 5944 (x862-one-targeted-reg-form seg otherform target) 5855 5945 (! %logior-c target target (ash fixval *x862-target-fixnum-shift*)))) 5856 (multiple-value-bind (r1 r2) (x862-two-untargeted-reg-forms seg form1 x8664::arg_y form2 x8664::arg_z)5946 (multiple-value-bind (r1 r2) (x862-two-untargeted-reg-forms seg form1 *x862-arg-y* form2 *x862-arg-z*) 5857 5947 (if vreg (ensuring-node-target (target vreg) (! %logior2 target r1 r2))))) 5858 5948 (^)))) … … 5876 5966 (x862-one-targeted-reg-form seg otherform target) 5877 5967 (! %logand-c target target (ash fixval *x862-target-fixnum-shift*)))) 5878 (multiple-value-bind (r1 r2) (x862-two-untargeted-reg-forms seg form1 x8664::arg_y form2 x8664::arg_z)5968 (multiple-value-bind (r1 r2) (x862-two-untargeted-reg-forms seg form1 *x862-arg-y* form2 *x862-arg-z*) 5879 5969 (if vreg (ensuring-node-target (target vreg) (! %logand2 target r1 r2))))) 5880 5970 (^)))) … … 5895 5985 (x862-one-targeted-reg-form seg otherform target) 5896 5986 (! %logxor-c target target (ash fixval *x862-target-fixnum-shift*)))) 5897 (multiple-value-bind (r1 r2) (x862-two-untargeted-reg-forms seg form1 x8664::arg_y form2 x8664::arg_z)5987 (multiple-value-bind (r1 r2) (x862-two-untargeted-reg-forms seg form1 *x862-arg-y* form2 *x862-arg-z*) 5898 5988 (if vreg (ensuring-node-target (target vreg) (! %logxor2 target r1 r2))))) 5899 5989 (^)))) … … 5931 6021 (defx862 x862-istruct-typep istruct-typep (seg vreg xfer cc form type) 5932 6022 (multiple-value-bind (cr-bit true-p) (acode-condition-to-x86-cr-bit cc) 5933 (multiple-value-bind (r1 r2) (x862-two-untargeted-reg-forms seg form x8664::arg_y type x8664::arg_z)6023 (multiple-value-bind (r1 r2) (x862-two-untargeted-reg-forms seg form *x862-arg-y* type *x862-arg-z*) 5934 6024 (! set-z-flag-if-istruct-typep r1 r2) 5935 6025 (regspec-crf-gpr-case … … 5950 6040 (progn 5951 6041 (unboxed-other-case (vreg :u8) 5952 (! extract-tag vreg (x862-one-untargeted-reg-form seg node x8664::arg_z))6042 (! extract-tag vreg (x862-one-untargeted-reg-form seg node *x862-arg-z*)) 5953 6043 (ensuring-node-target (target vreg) 5954 (! extract-tag-fixnum target (x862-one-untargeted-reg-form seg node x8664::arg_z))))6044 (! extract-tag-fixnum target (x862-one-untargeted-reg-form seg node *x862-arg-z*)))) 5955 6045 (^)))) 5956 6046 … … 5961 6051 (progn 5962 6052 (unboxed-other-case (vreg :u8) 5963 (! extract-fulltag vreg (x862-one-untargeted-reg-form seg node x8664::arg_z))6053 (! extract-fulltag vreg (x862-one-untargeted-reg-form seg node *x862-arg-z*)) 5964 6054 (ensuring-node-target (target vreg) 5965 (! extract-fulltag-fixnum target (x862-one-untargeted-reg-form seg node x8664::arg_z))))6055 (! extract-fulltag-fixnum target (x862-one-untargeted-reg-form seg node *x862-arg-z*)))) 5966 6056 (^)))) 5967 6057 … … 5972 6062 (progn 5973 6063 (unboxed-other-case (vreg :u8) 5974 (! extract-typecode vreg (x862-one-untargeted-reg-form seg node x8664::arg_z))5975 (let* ((reg (x862-one-untargeted-reg-form seg node (if (eq (hard-regspec-value vreg) x8664::arg_z)5976 x8664::arg_y x8664::arg_z))))6064 (! extract-typecode vreg (x862-one-untargeted-reg-form seg node *x862-arg-z*)) 6065 (let* ((reg (x862-one-untargeted-reg-form seg node (if (eq (hard-regspec-value vreg) *x862-arg-z*) 6066 *x862-arg-y* *x862-arg-z*)))) 5977 6067 (ensuring-node-target (target vreg) 5978 6068 (! extract-typecode-fixnum target reg )))) … … 5980 6070 5981 6071 (defx862 x862-setq-special setq-special (seg vreg xfer sym val) 5982 (let* ((symreg ($ x8664::arg_y))5983 (valreg ($ x8664::arg_z)))6072 (let* ((symreg ($ *x862-arg-y*)) 6073 (valreg ($ *x862-arg-z*))) 5984 6074 (x862-one-targeted-reg-form seg val valreg) 5985 6075 (x862-store-immediate seg (x862-symbol-value-cell sym) symreg) … … 6008 6098 end-of-block 6009 6099 last-cd 6010 (dest (if (backend-crf-p vreg) x8664::arg_zvreg)))6100 (dest (if (backend-crf-p vreg) *x862-arg-z* vreg))) 6011 6101 (if need-label 6012 6102 (setq end-of-block (backend-get-next-label))) … … 6028 6118 6029 6119 (defx862 x862-uvsize uvsize (seg vreg xfer v) 6030 (let* ((misc-reg (x862-one-untargeted-reg-form seg v x8664::arg_z)))6120 (let* ((misc-reg (x862-one-untargeted-reg-form seg v *x862-arg-z*))) 6031 6121 (unless *x862-reckless* (! trap-unless-uvector misc-reg)) 6032 6122 (if vreg … … 6044 6134 (ensuring-node-target (target vreg) 6045 6135 (if const 6046 (let* ((src (x862-one-untargeted-reg-form seg form2 x8664::arg_z)))6136 (let* ((src (x862-one-untargeted-reg-form seg form2 *x862-arg-z*))) 6047 6137 (if (<= const max) 6048 6138 (! %ilsl-c target const src) 6049 6139 (! lri target 0))) 6050 (multiple-value-bind (count src) (x862-two-untargeted-reg-forms seg form1 x8664::arg_y form2 x8664::arg_z)6140 (multiple-value-bind (count src) (x862-two-untargeted-reg-forms seg form1 *x862-arg-y* form2 *x862-arg-z*) 6051 6141 (! %ilsl target count src)))) 6052 6142 (^)))) 6053 6143 6054 6144 (defx862 x862-endp endp (seg vreg xfer cc form) 6055 (let* ((formreg (x862-one-untargeted-reg-form seg form x8664::arg_z)))6145 (let* ((formreg (x862-one-untargeted-reg-form seg form *x862-arg-z*))) 6056 6146 (! trap-unless-list formreg) 6057 6147 (multiple-value-bind (cr-bit true-p) (acode-condition-to-x86-cr-bit cc) … … 6071 6161 (defx862 x862-%schar %schar (seg vreg xfer str idx) 6072 6162 (multiple-value-bind (src unscaled-idx) 6073 (x862-two-untargeted-reg-forms seg str x8664::arg_y idx x8664::arg_z)6163 (x862-two-untargeted-reg-forms seg str *x862-arg-y* idx *x862-arg-z*) 6074 6164 (if vreg 6075 6165 (ensuring-node-target (target vreg) … … 6083 6173 (x862-three-untargeted-reg-forms seg 6084 6174 str x8664::arg_x 6085 idx x8664::arg_y6086 char x8664::arg_z)6175 idx *x862-arg-y* 6176 char *x862-arg-z*) 6087 6177 (case (arch::target-char-code-limit (backend-target-arch *target-backend*)) 6088 6178 (256 (! %set-schar8 src unscaled-idx char)) … … 6093 6183 (defx862 x862-%set-scharcode %set-scharcode (seg vreg xfer str idx char) 6094 6184 (multiple-value-bind (src unscaled-idx char) 6095 (x862-three-untargeted-reg-forms seg str x8664::arg_x idx x8664::arg_y6096 char x8664::arg_z)6185 (x862-three-untargeted-reg-forms seg str x8664::arg_x idx *x862-arg-y* 6186 char *x862-arg-z*) 6097 6187 (case (arch::target-char-code-limit (backend-target-arch *target-backend*)) 6098 6188 (256 (! %set-scharcode8 src unscaled-idx char)) … … 6103 6193 (defx862 x862-%scharcode %scharcode (seg vreg xfer str idx) 6104 6194 (multiple-value-bind (src unscaled-idx) 6105 (x862-two-untargeted-reg-forms seg str x8664::arg_y idx x8664::arg_z)6195 (x862-two-untargeted-reg-forms seg str *x862-arg-y* idx *x862-arg-z*) 6106 6196 (if vreg 6107 6197 (ensuring-node-target (target vreg) … … 6114 6204 6115 6205 (defx862 x862-code-char code-char (seg vreg xfer c) 6116 (let* ((reg (x862-one-untargeted-reg-form seg c x8664::arg_z)))6206 (let* ((reg (x862-one-untargeted-reg-form seg c *x862-arg-z*))) 6117 6207 ;; Typecheck even if result unused. 6118 6208 (! require-char-code reg) … … 6154 6244 (done (backend-get-next-label))) 6155 6245 (if otherform 6156 (x862-one-targeted-reg-form seg otherform ($ x8664::arg_y))6157 (x862-two-targeted-reg-forms seg form1 ($ x8664::arg_y) form2 ($ x8664::arg_z)))6246 (x862-one-targeted-reg-form seg otherform ($ *x862-arg-y*)) 6247 (x862-two-targeted-reg-forms seg form1 ($ *x862-arg-y*) form2 ($ *x862-arg-z*))) 6158 6248 (if otherform 6159 6249 (unless (acode-fixnum-form-p otherform) 6160 (! branch-unless-arg-fixnum ($ x8664::arg_y) (aref *backend-labels* out-of-line)))6250 (! branch-unless-arg-fixnum ($ *x862-arg-y*) (aref *backend-labels* out-of-line))) 6161 6251 (if (acode-fixnum-form-p form1) 6162 (! branch-unless-arg-fixnum ($ x8664::arg_z) (aref *backend-labels* out-of-line))6252 (! branch-unless-arg-fixnum ($ *x862-arg-z*) (aref *backend-labels* out-of-line)) 6163 6253 (if (acode-fixnum-form-p form2) 6164 (! branch-unless-arg-fixnum ($ x8664::arg_y) (aref *backend-labels* out-of-line))6165 (! branch-unless-both-args-fixnums ($ x8664::arg_y) ($ x8664::arg_z) (aref *backend-labels* out-of-line)))))6254 (! branch-unless-arg-fixnum ($ *x862-arg-y*) (aref *backend-labels* out-of-line)) 6255 (! branch-unless-both-args-fixnums ($ *x862-arg-y*) ($ *x862-arg-z*) (aref *backend-labels* out-of-line))))) 6166 6256 (if otherform 6167 6257 (if (zerop fixval) 6168 (! compare-reg-to-zero ($ x8664::arg_y))6169 (! compare-s32-constant ($ x8664::arg_y) (ash fixval x8664::fixnumshift)))6170 (! compare ($ x8664::arg_y) ($ x8664::arg_z)))6258 (! compare-reg-to-zero ($ *x862-arg-y*)) 6259 (! compare-s32-constant ($ *x862-arg-y*) (ash fixval x8664::fixnumshift))) 6260 (! compare ($ *x862-arg-y*) ($ *x862-arg-z*))) 6171 6261 (multiple-value-bind (cr-bit true-p) (acode-condition-to-x86-cr-bit cc) 6172 6262 (when otherform … … 6175 6265 (if (not true-p) 6176 6266 (setq cr-bit (logxor 1 cr-bit))) 6177 (! cr-bit->boolean ($ x8664::arg_z) cr-bit)6267 (! cr-bit->boolean ($ *x862-arg-z*) cr-bit) 6178 6268 (-> done) 6179 6269 (@ out-of-line) 6180 6270 (when otherform 6181 (x862-lri seg ($ x8664::arg_z) (ash fixval x8664::fixnumshift))6271 (x862-lri seg ($ *x862-arg-z*) (ash fixval x8664::fixnumshift)) 6182 6272 (unless (or fix2 (eq cr-bit x86::x86-e-bits)) 6183 (! xchg-registers ($ x8664::arg_z) ($ x8664::arg_y))))6273 (! xchg-registers ($ *x862-arg-z*) ($ *x862-arg-y*)))) 6184 6274 (let* ((index (arch::builtin-function-name-offset name)) 6185 6275 (idx-subprim (x862-builtin-index-subprim index))) 6186 (! call-subprim-2 ($ x8664::arg_z) idx-subprim ($ x8664::arg_y) ($ x8664::arg_z)))6276 (! call-subprim-2 ($ *x862-arg-z*) idx-subprim ($ *x862-arg-y*) ($ *x862-arg-z*))) 6187 6277 (@ done) 6188 (<- ($ x8664::arg_z))6278 (<- ($ *x862-arg-z*)) 6189 6279 (^))))) 6190 6280 … … 6197 6287 (progn 6198 6288 (ensuring-node-target (target vreg) 6199 (! sign-extend-halfword target (x862-one-untargeted-reg-form seg form x8664::arg_z)))6289 (! sign-extend-halfword target (x862-one-untargeted-reg-form seg form *x862-arg-z*))) 6200 6290 (^)))) 6201 6291 … … 6204 6294 (! list) 6205 6295 (when vreg 6206 (<- x8664::arg_z))6296 (<- *x862-arg-z*)) 6207 6297 (^)) 6208 6298 … … 6243 6333 (or (null vreg) (eq ea vreg))) 6244 6334 ea 6245 x8664::arg_z))))6335 *x862-arg-z*)))) 6246 6336 (x862-do-lexical-setq seg vreg ea valreg)) 6247 6337 (^))) … … 6286 6376 (let* ((fixbit (acode-fixnum-form-p bitnum))) 6287 6377 (if fixbit 6288 (let* ((reg (x862-one-untargeted-reg-form seg form x8664::arg_z))6378 (let* ((reg (x862-one-untargeted-reg-form seg form *x862-arg-z*)) 6289 6379 (x86-bit (min (+ fixbit *x862-target-fixnum-shift*) (1- *x862-target-bits-in-word*)))) 6290 6380 (! set-c-flag-if-constant-logbitp x86-bit reg)) 6291 (multiple-value-bind (rbit rform) (x862-two-untargeted-reg-forms seg bitnum x8664::arg_y form x8664::arg_z)6381 (multiple-value-bind (rbit rform) (x862-two-untargeted-reg-forms seg bitnum *x862-arg-y* form *x862-arg-z*) 6292 6382 (! set-c-flag-if-variable-logbitp rbit rform))) 6293 6383 (regspec-crf-gpr-case … … 6303 6393 6304 6394 (defx862 x862-uvref uvref (seg vreg xfer vector index) 6305 (x862-two-targeted-reg-forms seg vector ($ x8664::arg_y) index ($ x8664::arg_z))6395 (x862-two-targeted-reg-forms seg vector ($ *x862-arg-y*) index ($ *x862-arg-z*)) 6306 6396 (! misc-ref) 6307 (<- ($ x8664::arg_z))6397 (<- ($ *x862-arg-z*)) 6308 6398 (^)) 6309 6399 6310 6400 (defx862 x862-uvset uvset (seg vreg xfer vector index value) 6311 (x862-three-targeted-reg-forms seg vector ($ x8664::arg_x) index ($ x8664::arg_y) value ($ x8664::arg_z))6401 (x862-three-targeted-reg-forms seg vector ($ x8664::arg_x) index ($ *x862-arg-y*) value ($ *x862-arg-z*)) 6312 6402 (! misc-set) 6313 (<- ($ x8664::arg_z))6403 (<- ($ *x862-arg-z*)) 6314 6404 (^)) 6315 6405 … … 6375 6465 (progn 6376 6466 (! call-subprim subprim) 6377 (<- x8664::arg_z)6467 (<- *x862-arg-z*) 6378 6468 (^))))) 6379 6469 … … 6404 6494 (setq xfer nil)) 6405 6495 (if both-single-valued ; it's implied that we're returning 6406 (let* ((result x8664::arg_z))6496 (let* ((result *x862-arg-z*)) 6407 6497 (let ((merge-else-branch-label (if (nx-null false) (x862-find-nilret-label)))) 6408 6498 (x862-conditional-form seg (x862-make-compound-cd 0 falselabel) testform) … … 6475 6565 (vstack *x862-vstack*) 6476 6566 (cstack *x862-cstack*) 6477 (dest (if (backend-crf-p vreg) vreg (if vreg x8664::arg_z(available-crf-temp *available-backend-crf-temps*))))6567 (dest (if (backend-crf-p vreg) vreg (if vreg *x862-arg-z* (available-crf-temp *available-backend-crf-temps*)))) 6478 6568 (cd1 (x862-make-compound-cd 6479 (if (eq dest x8664::arg_z) tag1 (x862-cd-merge (x862-cd-true xfer) tag1)) 0)))6569 (if (eq dest *x862-arg-z*) tag1 (x862-cd-merge (x862-cd-true xfer) tag1)) 0))) 6480 6570 (while (cdr forms) 6481 (x862-form seg dest (if (eq dest x8664::arg_z) nil cd1) (car forms))6482 (when (eq dest x8664::arg_z)6571 (x862-form seg dest (if (eq dest *x862-arg-z*) nil cd1) (car forms)) 6572 (when (eq dest *x862-arg-z*) 6483 6573 (with-crf-target () val-crf 6484 6574 (x862-copy-register seg val-crf dest) … … 6488 6578 (progn (x862-multiple-value-body seg (car forms)) 6489 6579 (let* ((*x862-returning-values* t)) (x862-branch seg (x862-cd-merge xfer tag2)))) 6490 (x862-form seg vreg (if (eq dest x8664::arg_z) (x862-cd-merge xfer tag2) xfer) (car forms)))6580 (x862-form seg vreg (if (eq dest *x862-arg-z*) (x862-cd-merge xfer tag2) xfer) (car forms))) 6491 6581 (setq *x862-vstack* vstack *x862-cstack* cstack) 6492 6582 (@ tag1) 6493 (when (eq dest x8664::arg_z)6494 (<- x8664::arg_z)6583 (when (eq dest *x862-arg-z*) 6584 (<- *x862-arg-z*) 6495 6585 (^)) 6496 6586 (@ tag2))) … … 6508 6598 (x862-set-nargs seg nargs) 6509 6599 (! list) 6510 (<- x8664::arg_z)))6600 (<- *x862-arg-z*))) 6511 6601 (^)) 6512 6602 … … 6522 6612 (x862-set-nargs seg (1- nargs)) 6523 6613 (! list*)) 6524 (<- x8664::arg_z)))6614 (<- *x862-arg-z*))) 6525 6615 (^)) 6526 6616 … … 6540 6630 (x862-inline-add2 seg vreg xfer form1 (make-acode (%nx1-operator fixnum) (- v2))) 6541 6631 (with-x86-local-vinsn-macros (seg vreg xfer) 6542 (x862-two-targeted-reg-forms seg form1 ($ x8664::arg_y) form2 ($ x8664::arg_z))6632 (x862-two-targeted-reg-forms seg form1 ($ *x862-arg-y*) form2 ($ *x862-arg-z*)) 6543 6633 (let* ((out-of-line (backend-get-next-label)) 6544 6634 (done (backend-get-next-label))) 6545 6635 (ensuring-node-target (target vreg) 6546 6636 (if (acode-fixnum-form-p form1) 6547 (! branch-unless-arg-fixnum ($ x8664::arg_z) (aref *backend-labels* out-of-line))6637 (! branch-unless-arg-fixnum ($ *x862-arg-z*) (aref *backend-labels* out-of-line)) 6548 6638 (if (acode-fixnum-form-p form2) 6549 (! branch-unless-arg-fixnum ($ x8664::arg_y) (aref *backend-labels* out-of-line))6550 (! branch-unless-both-args-fixnums ($ x8664::arg_y) ($ x8664::arg_z) (aref *backend-labels* out-of-line))))6551 (! fixnum-sub2 ($ x8664::arg_z) ($ x8664::arg_y) ($ x8664::arg_z))6552 (x862-check-fixnum-overflow seg ($ x8664::arg_z) done)6639 (! branch-unless-arg-fixnum ($ *x862-arg-y*) (aref *backend-labels* out-of-line)) 6640 (! branch-unless-both-args-fixnums ($ *x862-arg-y*) ($ *x862-arg-z*) (aref *backend-labels* out-of-line)))) 6641 (! fixnum-sub2 ($ *x862-arg-z*) ($ *x862-arg-y*) ($ *x862-arg-z*)) 6642 (x862-check-fixnum-overflow seg ($ *x862-arg-z*) done) 6553 6643 (@ out-of-line) 6554 (! call-subprim-2 ($ x8664::arg_z) (subprim-name->offset '.SPbuiltin-minus) ($ x8664::arg_y) ($ x8664::arg_z))6644 (! call-subprim-2 ($ *x862-arg-z*) (subprim-name->offset '.SPbuiltin-minus) ($ *x862-arg-y*) ($ *x862-arg-z*)) 6555 6645 (@ done) 6556 (x862-copy-register seg target ($ x8664::arg_z)))6646 (x862-copy-register seg target ($ *x862-arg-z*))) 6557 6647 (^)))))) 6558 6648 … … 6560 6650 (with-x86-local-vinsn-macros (seg vreg xfer) 6561 6651 (let* ((fix1 (acode-fixnum-form-p form1)) 6562 6563 6564 6565 6566 6567 6568 6569 6570 6652 (fix2 (acode-fixnum-form-p form2)) 6653 (otherform (if (and fix1 6654 (typep (ash fix1 *x862-target-fixnum-shift*) 6655 '(signed-byte 32))) 6656 form2 6657 (if (and fix2 6658 (typep (ash fix2 *x862-target-fixnum-shift*) 6659 '(signed-byte 32))) 6660 form1)))) 6571 6661 (if otherform 6572 (x862-one-targeted-reg-form seg otherform ($ x8664::arg_z))6573 (x862-two-targeted-reg-forms seg form1 ($ x8664::arg_y) form2 ($ x8664::arg_z)))6662 (x862-one-targeted-reg-form seg otherform ($ *x862-arg-z*)) 6663 (x862-two-targeted-reg-forms seg form1 ($ *x862-arg-y*) form2 ($ *x862-arg-z*))) 6574 6664 (let* ((out-of-line (backend-get-next-label)) 6575 6576 6577 6578 6579 6580 (! branch-unless-arg-fixnum ($ x8664::arg_z) (aref *backend-labels* out-of-line)))6581 6582 (! branch-unless-arg-fixnum ($ x8664::arg_z) (aref *backend-labels* out-of-line))6583 6584 (! branch-unless-arg-fixnum ($ x8664::arg_y) (aref *backend-labels* out-of-line))6585 (! branch-unless-both-args-fixnums ($ x8664::arg_y) ($ x8664::arg_z) (aref *backend-labels* out-of-line)))))6586 6587 (! add-constant ($ x8664::arg_z) (ash (or fix1 fix2) *x862-target-fixnum-shift*))6588 (! fixnum-add2 ($ x8664::arg_z) ($ x8664::arg_y)))6589 (x862-check-fixnum-overflow seg ($ x8664::arg_z) done)6590 6591 6592 (x862-lri seg ($ x8664::arg_y) (ash (or fix1 fix2) *x862-target-fixnum-shift*)))6593 (! call-subprim-2 ($ x8664::arg_z) (subprim-name->offset '.SPbuiltin-plus) ($ x8664::arg_y) ($ x8664::arg_z))6594 6595 (x862-copy-register seg target ($ x8664::arg_z)))6596 6665 (done (backend-get-next-label))) 6666 6667 (ensuring-node-target (target vreg) 6668 (if otherform 6669 (unless (acode-fixnum-form-p otherform) 6670 (! branch-unless-arg-fixnum ($ *x862-arg-z*) (aref *backend-labels* out-of-line))) 6671 (if (acode-fixnum-form-p form1) 6672 (! branch-unless-arg-fixnum ($ *x862-arg-z*) (aref *backend-labels* out-of-line)) 6673 (if (acode-fixnum-form-p form2) 6674 (! branch-unless-arg-fixnum ($ *x862-arg-y*) (aref *backend-labels* out-of-line)) 6675 (! branch-unless-both-args-fixnums ($ *x862-arg-y*) ($ *x862-arg-z*) (aref *backend-labels* out-of-line))))) 6676 (if otherform 6677 (! add-constant ($ *x862-arg-z*) (ash (or fix1 fix2) *x862-target-fixnum-shift*)) 6678 (! fixnum-add2 ($ *x862-arg-z*) ($ *x862-arg-y*))) 6679 (x862-check-fixnum-overflow seg ($ *x862-arg-z*) done) 6680 (@ out-of-line) 6681 (if otherform 6682 (x862-lri seg ($ *x862-arg-y*) (ash (or fix1 fix2) *x862-target-fixnum-shift*))) 6683 (! call-subprim-2 ($ *x862-arg-z*) (subprim-name->offset '.SPbuiltin-plus) ($ *x862-arg-y*) ($ *x862-arg-z*)) 6684 (@ done) 6685 (x862-copy-register seg target ($ *x862-arg-z*))) 6686 (^))))) 6597 6687 6598 6688 (defx862 x862-add2 add2 (seg vreg xfer form1 form2) … … 6738 6828 (ensuring-node-target (target vreg) 6739 6829 (if otherform 6740 (x862-one-targeted-reg-form seg otherform ($ x8664::arg_z))6741 (x862-two-targeted-reg-forms seg form1 ($ x8664::arg_y) form2 ($ x8664::arg_z)))6830 (x862-one-targeted-reg-form seg otherform ($ *x862-arg-z*)) 6831 (x862-two-targeted-reg-forms seg form1 ($ *x862-arg-y*) form2 ($ *x862-arg-z*))) 6742 6832 (if otherform 6743 6833 (unless (acode-fixnum-form-p otherform) 6744 (! branch-unless-arg-fixnum ($ x8664::arg_z) (aref *backend-labels* out-of-line)))6834 (! branch-unless-arg-fixnum ($ *x862-arg-z*) (aref *backend-labels* out-of-line))) 6745 6835 (if (acode-fixnum-form-p form1) 6746 (! branch-unless-arg-fixnum ($ x8664::arg_z) (aref *backend-labels* out-of-line))6836 (! branch-unless-arg-fixnum ($ *x862-arg-z*) (aref *backend-labels* out-of-line)) 6747 6837 (if (acode-fixnum-form-p form2) 6748 (! branch-unless-arg-fixnum ($ x8664::arg_y) (aref *backend-labels* out-of-line))6749 (! branch-unless-both-args-fixnums ($ x8664::arg_y) ($ x8664::arg_z) (aref *backend-labels* out-of-line)))))6838 (! branch-unless-arg-fixnum ($ *x862-arg-y*) (aref *backend-labels* out-of-line)) 6839 (! branch-unless-both-args-fixnums ($ *x862-arg-y*) ($ *x862-arg-z*) (aref *backend-labels* out-of-line))))) 6750 6840 (if otherform 6751 (! %logior-c ($ x8664::arg_z) ($ x8664::arg_z) (ash fixval x8664::fixnumshift))6752 (! %logior2 ($ x8664::arg_z) ($ x8664::arg_z) ($ x8664::arg_y)))6841 (! %logior-c ($ *x862-arg-z*) ($ *x862-arg-z*) (ash fixval x8664::fixnumshift)) 6842 (! %logior2 ($ *x862-arg-z*) ($ *x862-arg-z*) ($ *x862-arg-y*))) 6753 6843 (-> done) 6754 6844 (@ out-of-line) 6755 6845 (if otherform 6756 (x862-lri seg ($ x8664::arg_y) (ash fixval x8664::fixnumshift)))6757 (! call-subprim-2 ($ x8664::arg_z) (subprim-name->offset '.SPbuiltin-logior) ($ x8664::arg_y) ($ x8664::arg_z))6846 (x862-lri seg ($ *x862-arg-y*) (ash fixval x8664::fixnumshift))) 6847 (! call-subprim-2 ($ *x862-arg-z*) (subprim-name->offset '.SPbuiltin-logior) ($ *x862-arg-y*) ($ *x862-arg-z*)) 6758 6848 (@ done) 6759 (x862-copy-register seg target ($ x8664::arg_z)))6849 (x862-copy-register seg target ($ *x862-arg-z*))) 6760 6850 (^))))))) 6761 6851 … … 6783 6873 (ensuring-node-target (target vreg) 6784 6874 (if otherform 6785 (x862-one-targeted-reg-form seg otherform ($ x8664::arg_z))6786 (x862-two-targeted-reg-forms seg form1 ($ x8664::arg_y) form2 ($ x8664::arg_z)))6875 (x862-one-targeted-reg-form seg otherform ($ *x862-arg-z*)) 6876 (x862-two-targeted-reg-forms seg form1 ($ *x862-arg-y*) form2 ($ *x862-arg-z*))) 6787 6877 (if otherform 6788 6878 (unless (acode-fixnum-form-p otherform) 6789 (! branch-unless-arg-fixnum ($ x8664::arg_z) (aref *backend-labels* out-of-line)))6879 (! branch-unless-arg-fixnum ($ *x862-arg-z*) (aref *backend-labels* out-of-line))) 6790 6880 (if (acode-fixnum-form-p form1) 6791 (! branch-unless-arg-fixnum ($ x8664::arg_z) (aref *backend-labels* out-of-line))6881 (! branch-unless-arg-fixnum ($ *x862-arg-z*) (aref *backend-labels* out-of-line)) 6792 6882 (if (acode-fixnum-form-p form2) 6793 (! branch-unless-arg-fixnum ($ x8664::arg_y) (aref *backend-labels* out-of-line))6794 (! branch-unless-both-args-fixnums ($ x8664::arg_y) ($ x8664::arg_z) (aref *backend-labels* out-of-line)))))6883 (! branch-unless-arg-fixnum ($ *x862-arg-y*) (aref *backend-labels* out-of-line)) 6884 (! branch-unless-both-args-fixnums ($ *x862-arg-y*) ($ *x862-arg-z*) (aref *backend-labels* out-of-line))))) 6795 6885 (if otherform 6796 (! %logand-c ($ x8664::arg_z) ($ x8664::arg_z) (ash fixval x8664::fixnumshift))6797 (! %logand2 ($ x8664::arg_z) ($ x8664::arg_z) ($ x8664::arg_y)))6886 (! %logand-c ($ *x862-arg-z*) ($ *x862-arg-z*) (ash fixval x8664::fixnumshift)) 6887 (! %logand2 ($ *x862-arg-z*) ($ *x862-arg-z*) ($ *x862-arg-y*))) 6798 6888 (-> done) 6799 6889 (@ out-of-line) 6800 6890 (if otherform 6801 (x862-lri seg ($ x8664::arg_y) (ash fixval x8664::fixnumshift)))6802 (! call-subprim-2 ($ x8664::arg_z) (subprim-name->offset '.SPbuiltin-logand) ($ x8664::arg_y) ($ x8664::arg_z))6891 (x862-lri seg ($ *x862-arg-y*) (ash fixval x8664::fixnumshift))) 6892 (! call-subprim-2 ($ *x862-arg-z*) (subprim-name->offset '.SPbuiltin-logand) ($ *x862-arg-y*) ($ *x862-arg-z*)) 6803 6893 (@ done) 6804 (x862-copy-register seg target ($ x8664::arg_z)))6894 (x862-copy-register seg target ($ *x862-arg-z*))) 6805 6895 (^))))))) 6806 6896 … … 6885 6975 (! add-constant3 target reg constant)))))) 6886 6976 (if (not overflow) 6887 (multiple-value-bind (r1 r2) (x862-two-untargeted-reg-forms seg form1 x8664::arg_y form2 x8664::arg_z)6977 (multiple-value-bind (r1 r2) (x862-two-untargeted-reg-forms seg form1 *x862-arg-y* form2 *x862-arg-z*) 6888 6978 ;; This isn't guaranteed to set the overflow flag, 6889 6979 ;; but may do so. … … 6891 6981 (! fixnum-add3 target r1 r2))) 6892 6982 (ensuring-node-target (target vreg) 6893 (multiple-value-bind (r1 r2) (x862-two-untargeted-reg-forms seg form1 x8664::arg_y form2 x8664::arg_z)6983 (multiple-value-bind (r1 r2) (x862-two-untargeted-reg-forms seg form1 *x862-arg-y* form2 *x862-arg-z*) 6894 6984 (cond ((= (hard-regspec-value target) 6895 6985 (hard-regspec-value r1)) … … 6925 7015 (if (and fix1 fix2 (not overflow)) 6926 7016 (x862-lri seg vreg (ash (- fix1 fix2) *x862-target-fixnum-shift*)) 6927 (multiple-value-bind (r1 r2) (x862-two-untargeted-reg-forms seg num1 x8664::arg_y num2 x8664::arg_z)7017 (multiple-value-bind (r1 r2) (x862-two-untargeted-reg-forms seg num1 *x862-arg-y* num2 *x862-arg-z*) 6928 7018 ;; This isn't guaranteed to set the overflow flag, 6929 7019 ;; but may do so. … … 6945 7035 (x862-lri seg vreg (ash (* fix1 fix2) *x862-target-fixnum-shift*)) 6946 7036 (if other 6947 (! multiply-immediate vreg (x862-one-untargeted-reg-form seg other x8664::arg_z) (or fix1 fix2))6948 (multiple-value-bind (rx ry) (x862-two-untargeted-reg-forms seg num1 x8664::arg_y num2 x8664::arg_z)7037 (! multiply-immediate vreg (x862-one-untargeted-reg-form seg other *x862-arg-z*) (or fix1 fix2)) 7038 (multiple-value-bind (rx ry) (x862-two-untargeted-reg-forms seg num1 *x862-arg-y* num2 *x862-arg-z*) 6949 7039 (ensuring-node-target (target vreg) 6950 7040 (! multiply-fixnums target rx ry))))) … … 6954 7044 (let* ((*x862-vstack* *x862-vstack*) 6955 7045 (*x862-top-vstack-lcell* *x862-top-vstack-lcell*)) 6956 (let* ((nreg (x862-one-untargeted-reg-form seg n x8664::arg_z)))7046 (let* ((nreg (x862-one-untargeted-reg-form seg n *x862-arg-z*))) 6957 7047 (unless (acode-fixnum-form-p n) 6958 7048 (! trap-unless-fixnum nreg)) 6959 7049 (x862-vpush-register seg nreg)) 6960 7050 (x862-multiple-value-body seg form) ; sets nargs 6961 (! nth-value x8664::arg_z))6962 (<- x8664::arg_z)7051 (! nth-value *x862-arg-z*)) 7052 (<- *x862-arg-z*) 6963 7053 (^)) 6964 7054 … … 6987 7077 (with-x86-local-vinsn-macros (seg vreg xfer) 6988 7078 (multiple-value-bind (cr-bit true-p) (acode-condition-to-x86-cr-bit cc) 6989 (! mask-base-char x8664::imm0 (x862-one-untargeted-reg-form seg form x8664::arg_z))7079 (! mask-base-char x8664::imm0 (x862-one-untargeted-reg-form seg form *x862-arg-z*)) 6990 7080 (x862-test-reg-%izerop seg vreg xfer x8664::imm0 cr-bit true-p 6991 7081 (target-arch-case … … 7069 7159 vreg 7070 7160 xfer 7071 (x862-one-untargeted-reg-form seg form x8664::arg_z)7161 (x862-one-untargeted-reg-form seg form *x862-arg-z*) 7072 7162 cr-bit 7073 7163 true-p))))) … … 7096 7186 (if initval 7097 7187 (progn 7098 (x862-three-targeted-reg-forms seg element-count ($ x8664::arg_x) st ($ x8664::arg_y) initval ($ x8664::arg_z))7188 (x862-three-targeted-reg-forms seg element-count ($ x8664::arg_x) st ($ *x862-arg-y*) initval ($ *x862-arg-z*)) 7099 7189 (! misc-alloc-init) 7100 (<- ($ x8664::arg_z)))7190 (<- ($ *x862-arg-z*))) 7101 7191 (progn 7102 (x862-two-targeted-reg-forms seg element-count ($ x8664::arg_y) st ($ x8664::arg_z))7192 (x862-two-targeted-reg-forms seg element-count ($ *x862-arg-y*) st ($ *x862-arg-z*)) 7103 7193 (! misc-alloc) 7104 (<- ($ x8664::arg_z))))))7194 (<- ($ *x862-arg-z*)))))) 7105 7195 (^)))) 7106 7196 … … 7116 7206 (if count 7117 7207 (! %iasr-c target (if (> count max) max count) 7118 (x862-one-untargeted-reg-form seg form2 x8664::arg_z))7119 (multiple-value-bind (cnt src) (x862-two-targeted-reg-forms seg form1 ($ x8664::arg_y) form2 ($ x8664::arg_z))7208 (x862-one-untargeted-reg-form seg form2 *x862-arg-z*)) 7209 (multiple-value-bind (cnt src) (x862-two-targeted-reg-forms seg form1 ($ *x862-arg-y*) form2 ($ *x862-arg-z*)) 7120 7210 (! %iasr target cnt src)))) 7121 7211 (^)))) … … 7129 7219 (ensuring-node-target (target vreg) 7130 7220 (if count 7131 (let ((src (x862-one-untargeted-reg-form seg form2 ($ x8664::arg_z))))7221 (let ((src (x862-one-untargeted-reg-form seg form2 ($ *x862-arg-z*)))) 7132 7222 (if (<= count 31) 7133 7223 (! %ilsr-c target count src) 7134 7224 (! lri target 0))) 7135 (multiple-value-bind (cnt src) (x862-two-targeted-reg-forms seg form1 ($ x8664::arg_y) form2 ($ x8664::arg_z))7225 (multiple-value-bind (cnt src) (x862-two-targeted-reg-forms seg form1 ($ *x862-arg-y*) form2 ($ *x862-arg-z*)) 7136 7226 (! %ilsr target cnt src)))) 7137 7227 (^)))) … … 7237 7327 (x862-two-targeted-reg-forms seg 7238 7328 ptr ptrreg 7239 offset ($ x8664::arg_z))7240 (! fixnum->signed-natural offsetreg x8664::arg_z)7329 offset ($ *x862-arg-z*)) 7330 (! fixnum->signed-natural offsetreg *x862-arg-z*) 7241 7331 (if double-p 7242 7332 (! mem-ref-double-float fp-reg ptrreg offsetreg) … … 7283 7373 (x862-one-untargeted-reg-form seg 7284 7374 offset 7285 x8664::arg_z))7375 *x862-arg-z*)) 7286 7376 (x862-one-targeted-reg-form seg newval fp-reg) 7287 (x862-pop-register seg x8664::arg_z)7377 (x862-pop-register seg *x862-arg-z*) 7288 7378 (x862-pop-register seg ptr-reg) 7289 (! fixnum->signed-natural offset-reg x8664::arg_z)7379 (! fixnum->signed-natural offset-reg *x862-arg-z*) 7290 7380 (if double-p 7291 7381 (! mem-set-double-float fp-reg ptr-reg offset-reg) … … 7294 7384 (t 7295 7385 (cond (immoffset 7296 (let* ((rnew ($ x8664::arg_z)))7386 (let* ((rnew ($ *x862-arg-z*))) 7297 7387 (x862-push-register 7298 7388 seg … … 7308 7398 (! mem-set-c-single-float fp-reg ptr-reg fixoffset))))) 7309 7399 (t 7310 (let* ((roffset ($ x8664::arg_y))7311 (rnew ($ x8664::arg_z)))7400 (let* ((roffset ($ *x862-arg-y*)) 7401 (rnew ($ *x862-arg-z*))) 7312 7402 (x862-push-register 7313 7403 seg … … 7326 7416 (! mem-set-double-float fp-reg ptr-reg offset-reg) 7327 7417 (! mem-set-single-float fp-reg ptr-reg offset-reg)))))) 7328 (<- x8664::arg_z)))7418 (<- *x862-arg-z*))) 7329 7419 (^))))) 7330 7420 … … 7366 7456 (if (acode-fixnum-form-p offset) 7367 7457 (x862-lri seg x (acode-fixnum-form-p offset)) 7368 (! fixnum->signed-natural x (x862-one-untargeted-reg-form seg offset x8664::arg_z)))7458 (! fixnum->signed-natural x (x862-one-untargeted-reg-form seg offset *x862-arg-z*))) 7369 7459 (! mem-ref-natural dest src x)) 7370 7460 (progn 7371 7461 (! temp-push-unboxed-word src) 7372 7462 (x862-open-undo $undostkblk) 7373 (let* ((oreg (x862-one-untargeted-reg-form seg offset x8664::arg_z)))7463 (let* ((oreg (x862-one-untargeted-reg-form seg offset *x862-arg-z*))) 7374 7464 (with-imm-temps () (src x) 7375 7465 (! temp-pop-unboxed-word src) … … 7395 7485 (<- dest)))) 7396 7486 (with-imm-target () (src-reg :address) 7397 (x862-two-targeted-reg-forms seg ptr src-reg offset ($ x8664::arg_z))7487 (x862-two-targeted-reg-forms seg ptr src-reg offset ($ *x862-arg-z*)) 7398 7488 (if (node-reg-p vreg) 7399 (! mem-ref-bit-fixnum vreg src-reg ($ x8664::arg_z))7489 (! mem-ref-bit-fixnum vreg src-reg ($ *x862-arg-z*)) 7400 7490 (with-imm-target () ;OK if src-reg & dest overlap 7401 7491 (dest :u8) … … 7452 7542 (if (acode-fixnum-form-p offset) 7453 7543 (x862-lri seg offset-reg (acode-fixnum-form-p offset)) 7454 (! fixnum->signed-natural offset-reg (x862-one-untargeted-reg-form seg offset x8664::arg_z)))7544 (! fixnum->signed-natural offset-reg (x862-one-untargeted-reg-form seg offset *x862-arg-z*))) 7455 7545 (progn 7456 7546 (! temp-push-unboxed-word src-reg) 7457 7547 (x862-open-undo $undostkblk) 7458 (! fixnum->signed-natural offset-reg (x862-one-untargeted-reg-form seg offset x8664::arg_z))7548 (! fixnum->signed-natural offset-reg (x862-one-untargeted-reg-form seg offset *x862-arg-z*)) 7459 7549 (! temp-pop-unboxed-word src-reg) 7460 7550 (x862-close-undo))) … … 7489 7579 (if (acode-fixnum-form-p offset) 7490 7580 (x862-lri seg offset-reg (acode-fixnum-form-p offset)) 7491 (! fixnum->signed-natural offset-reg (x862-one-untargeted-reg-form seg offset x8664::arg_z)))7581 (! fixnum->signed-natural offset-reg (x862-one-untargeted-reg-form seg offset *x862-arg-z*))) 7492 7582 (progn 7493 7583 (! temp-push-unboxed-word src-reg) 7494 7584 (x862-open-undo $undostkblk) 7495 (! fixnum->signed-natural offset-reg (x862-one-untargeted-reg-form seg offset x8664::arg_z))7585 (! fixnum->signed-natural offset-reg (x862-one-untargeted-reg-form seg offset *x862-arg-z*)) 7496 7586 (! temp-pop-unboxed-word src-reg) 7497 7587 (x862-close-undo))) … … 7533 7623 (if (acode-fixnum-form-p offset) 7534 7624 (x862-lri seg offset-reg (acode-fixnum-form-p offset)) 7535 (! fixnum->signed-natural offset-reg (x862-one-untargeted-reg-form seg offset x8664::arg_z)))7625 (! fixnum->signed-natural offset-reg (x862-one-untargeted-reg-form seg offset *x862-arg-z*))) 7536 7626 (progn 7537 7627 (! temp-push-unboxed-word src-reg) 7538 7628 (x862-open-undo $undostkblk) 7539 (! fixnum->signed-natural offset-reg (x862-one-untargeted-reg-form seg offset x8664::arg_z))7629 (! fixnum->signed-natural offset-reg (x862-one-untargeted-reg-form seg offset *x862-arg-z*)) 7540 7630 (! temp-pop-unboxed-word src-reg) 7541 7631 (x862-close-undo))) … … 7577 7667 (%rplaca pair (x862-vloc-ea *x862-vstack*)) 7578 7668 (x862-vpush-register seg val :reserved)) 7579 (x862-vpush-register seg (x862-one-untargeted-reg-form seg val x8664::arg_z) :reserved))7669 (x862-vpush-register seg (x862-one-untargeted-reg-form seg val *x862-arg-z*) :reserved)) 7580 7670 (%rplacd pair *x862-top-vstack-lcell*))) 7581 7671 (t (x862-seq-bind-var seg var val) … … 7597 7687 (defx862 x862-closed-function closed-function (seg vreg xfer afunc) 7598 7688 (x862-make-closure seg afunc nil) 7599 (when vreg (<- x8664::arg_z))7689 (when vreg (<- *x862-arg-z*)) 7600 7690 (^)) 7601 7691 … … 7691 7781 (x862-form 7692 7782 seg 7693 (if need-break (if dest-vd x8664::arg_z) dest-vd)7783 (if need-break (if dest-vd *x862-arg-z*) dest-vd) 7694 7784 (if need-break nil dest-cd) 7695 7785 value) 7696 7786 (when need-break 7697 7787 (x862-unwind-set seg dest-cd dest-stack) 7698 (when dest-vd (x862-copy-register seg dest-vd x8664::arg_z))7788 (when dest-vd (x862-copy-register seg dest-vd *x862-arg-z*)) 7699 7789 (x862-branch seg dest-cd)))))) 7700 7790 (x862-unreachable-store))) … … 7716 7806 (ensuring-node-target (target vreg) 7717 7807 (! lisp-word-ref-c target 7718 (x862-one-untargeted-reg-form seg base x8664::arg_z)7808 (x862-one-untargeted-reg-form seg base *x862-arg-z*) 7719 7809 (ash fixoffset *x862-target-fixnum-shift*))) 7720 7810 (^)) 7721 7811 (t (multiple-value-bind (breg oreg) 7722 (x862-two-untargeted-reg-forms seg base x8664::arg_y offset x8664::arg_z)7812 (x862-two-untargeted-reg-forms seg base *x862-arg-y* offset *x862-arg-z*) 7723 7813 (ensuring-node-target (target vreg) 7724 7814 (! lisp-word-ref target breg oreg)) … … 7733 7823 (ensuring-node-target (target vreg) 7734 7824 (! lisp-word-ref-c target 7735 (x862-one-untargeted-reg-form seg base x8664::arg_z)7825 (x862-one-untargeted-reg-form seg base *x862-arg-z*) 7736 7826 fixoffset)) 7737 7827 (^)) 7738 7828 (t (multiple-value-bind (breg oreg) 7739 (x862-two-untargeted-reg-forms seg base x8664::arg_y offset x8664::arg_z)7829 (x862-two-untargeted-reg-forms seg base *x862-arg-y* offset *x862-arg-z*) 7740 7830 (with-imm-target () (otemp :s32) 7741 7831 (! fixnum->signed-natural otemp oreg) … … 7752 7842 (with-imm-target () (val :natural) 7753 7843 (! lisp-word-ref-c val 7754 (x862-one-untargeted-reg-form seg base x8664::arg_z)7844 (x862-one-untargeted-reg-form seg base *x862-arg-z*) 7755 7845 fixoffset) 7756 7846 (<- val)) 7757 7847 (^)) 7758 7848 (t (multiple-value-bind (breg oreg) 7759 (x862-two-untargeted-reg-forms seg base x8664::arg_y offset x8664::arg_z)7849 (x862-two-untargeted-reg-forms seg base *x862-arg-y* offset *x862-arg-z*) 7760 7850 (with-imm-target () (otemp :s32) 7761 7851 (! fixnum->signed-natural otemp oreg) … … 7767 7857 (defx862 x862-int>0-p int>0-p (seg vreg xfer cc form) 7768 7858 (multiple-value-bind (cr-bit true-p) (acode-condition-to-x86-cr-bit cc) 7769 (x862-one-targeted-reg-form seg form ($ x8664::arg_z))7859 (x862-one-targeted-reg-form seg form ($ *x862-arg-z*)) 7770 7860 (! integer-sign) 7771 7861 (x862-test-reg-%izerop seg vreg xfer x8664::imm0 cr-bit true-p 0))) … … 7776 7866 (let* ((*x862-vstack* *x862-vstack*) 7777 7867 (*x862-top-vstack-lcell* *x862-top-vstack-lcell*)) 7778 (x862-vpush-register seg (x862-one-untargeted-reg-form seg tag x8664::arg_z))7868 (x862-vpush-register seg (x862-one-untargeted-reg-form seg tag *x862-arg-z*)) 7779 7869 (if (x862-trivial-p valform) 7780 7870 (progn 7781 (x862-vpush-register seg (x862-one-untargeted-reg-form seg valform x8664::arg_z))7871 (x862-vpush-register seg (x862-one-untargeted-reg-form seg valform *x862-arg-z*)) 7782 7872 (x862-set-nargs seg 1)) 7783 7873 (x862-multiple-value-body seg valform)) … … 7795 7885 (tag-label-value (aref *backend-labels* tag-label)) 7796 7886 (mv-pass (x862-mv-p xfer))) 7797 (x862-one-targeted-reg-form seg tag ($ x8664::arg_z))7887 (x862-one-targeted-reg-form seg tag ($ *x862-arg-z*)) 7798 7888 (if mv-pass 7799 7889 (! nmkcatchmv tag-label-value) … … 7802 7892 (if mv-pass 7803 7893 (x862-multiple-value-body seg valform) 7804 (x862-one-targeted-reg-form seg valform ($ x8664::arg_z)))7894 (x862-one-targeted-reg-form seg valform ($ *x862-arg-z*))) 7805 7895 (x862-lri seg x8664::imm0 (ash 1 *x862-target-fixnum-shift*)) 7806 7896 (if mv-pass … … 7809 7899 (x862-close-undo) 7810 7900 (@= tag-label) 7811 (unless mv-pass (if vreg (<- x8664::arg_z)))7901 (unless mv-pass (if vreg (<- *x862-arg-z*))) 7812 7902 (let* ((*x862-returning-values* mv-pass)) ; nlexit keeps values on stack 7813 7903 (^)))) … … 7862 7952 (x862-three-targeted-reg-forms seg 7863 7953 arr ($ x8664::arg_x) 7864 i ($ x8664::arg_y)7865 j ($ x8664::arg_z))7954 i ($ *x862-arg-y*) 7955 j ($ *x862-arg-z*)) 7866 7956 (x862-fixed-call-builtin seg vreg xfer nil (subprim-name->offset '.SParef2)))))) 7867 7957 … … 7918 8008 arr ($ x8664::temp0) 7919 8009 i ($ x8664::arg_x) 7920 j ($ x8664::arg_y)7921 k ($ x8664::arg_z))8010 j ($ *x862-arg-y*) 8011 k ($ *x862-arg-z*)) 7922 8012 (x862-fixed-call-builtin seg vreg xfer nil (subprim-name->offset '.SParef3)))))) 7923 8013 … … 7955 8045 arr ($ x8664::temp0) 7956 8046 i ($ x8664::arg_x) 7957 j ($ x8664::arg_y)7958 new ($ x8664::arg_z))8047 j ($ *x862-arg-y*) 8048 new ($ *x862-arg-z*)) 7959 8049 (x862-fixed-call-builtin seg vreg xfer nil (subprim-name->offset '.SPaset2)))))) 7960 8050 … … 7992 8082 (if (typep dim2 'fixnum) dim2)))) 7993 8083 (t 7994 (x862-push-register seg (x862-one-untargeted-reg-form seg arr ($ x8664::arg_z)))8084 (x862-push-register seg (x862-one-untargeted-reg-form seg arr ($ *x862-arg-z*))) 7995 8085 (x862-four-targeted-reg-forms seg 7996 8086 i ($ x8664::temp0) 7997 8087 j ($ x8664::arg_x) 7998 k ($ x8664::arg_y)7999 new ($ x8664::arg_z))8088 k ($ *x862-arg-y*) 8089 new ($ *x862-arg-z*)) 8000 8090 (x862-pop-register seg ($ x8664::temp1)) 8001 8091 (x862-fixed-call-builtin seg vreg xfer nil (subprim-name->offset '.SPaset3)))))) … … 8029 8119 (x862-vref seg vreg xfer type-keyword uvector index (unless *x862-reckless* (nx-lookup-target-uvector-subtag type-keyword))) 8030 8120 (progn 8031 (x862-three-targeted-reg-forms seg subtag ($ x8664::arg_x) uvector ($ x8664::arg_y) index ($ x8664::arg_z))8121 (x862-three-targeted-reg-forms seg subtag ($ x8664::arg_x) uvector ($ *x862-arg-y*) index ($ *x862-arg-z*)) 8032 8122 (! subtag-misc-ref) 8033 (when vreg (<- ($ x8664::arg_z)))8123 (when vreg (<- ($ *x862-arg-z*))) 8034 8124 (^)) ))) 8035 8125 … … 8043 8133 (x862-vset seg vreg xfer type-keyword uvector index newval (unless *x862-reckless* (nx-lookup-target-uvector-subtag type-keyword))) 8044 8134 (progn 8045 (x862-four-targeted-reg-forms seg subtag ($ x8664::temp0) uvector ($ x8664::arg_x) index ($ x8664::arg_y) newval ($ x8664::arg_z))8135 (x862-four-targeted-reg-forms seg subtag ($ x8664::temp0) uvector ($ x8664::arg_x) index ($ *x862-arg-y*) newval ($ *x862-arg-z*)) 8046 8136 (! subtag-misc-set) 8047 (when vreg (<- ($ x8664::arg_z)))8137 (when vreg (<- ($ *x862-arg-z*))) 8048 8138 (^))))) 8049 8139 … … 8088 8178 (when vreg 8089 8179 (let* ((symreg (x862-one-untargeted-reg-form seg (make-acode (%nx1-operator immediate) 8090 (x862-symbol-entry-locative sym)) x8664::arg_z)))8180 (x862-symbol-entry-locative sym)) *x862-arg-z*))) 8091 8181 (with-node-temps (vreg symreg) (val) 8092 8182 (! symbol-function val symreg) … … 8142 8232 (x862-open-undo $undostkblk)) 8143 8233 (! list)) 8144 (x862-vpush-register seg x8664::arg_z))8234 (x862-vpush-register seg *x862-arg-z*)) 8145 8235 (when rest (x862-bind-var seg rest restloc)) 8146 8236 (destructuring-bind (vars inits) auxen … … 8164 8254 seg 8165 8255 val 8166 (if (eq vreg x8664::arg_z) x8664::arg_y x8664::arg_z))))8256 (if (eq vreg *x862-arg-z*) *x862-arg-y* *x862-arg-z*)))) 8167 8257 (! ,vinsn val-reg) 8168 8258 (when vreg (<- val-reg)) … … 8187 8277 8188 8278 (defx862 x862-%badarg2 %badarg2 (seg vreg xfer badthing goodthing) 8189 (x862-two-targeted-reg-forms seg badthing ($ x8664::arg_y) goodthing ($ x8664::arg_z))8279 (x862-two-targeted-reg-forms seg badthing ($ *x862-arg-y*) goodthing ($ *x862-arg-z*)) 8190 8280 (x862-lri seg ($ x8664::arg_x) (ash $XWRONGTYPE *x862-target-fixnum-shift*)) 8191 8281 (x862-set-nargs seg 3) … … 8219 8309 8220 8310 (defx862 x862-setq-free setq-free (seg vreg xfer sym val) 8221 (let* ((rsym ($ x8664::arg_y))8222 (rval ($ x8664::arg_z)))8311 (let* ((rsym ($ *x862-arg-y*)) 8312 (rval ($ *x862-arg-z*))) 8223 8313 (x862-one-targeted-reg-form seg val rval) 8224 8314 (x862-immediate seg rsym nil (x862-symbol-value-cell sym)) … … 8228 8318 8229 8319 (defx862 x862-%setf-macptr %setf-macptr (seg vreg xfer x y) 8230 (x862-vpush-register seg (x862-one-untargeted-reg-form seg x x8664::arg_z))8320 (x862-vpush-register seg (x862-one-untargeted-reg-form seg x *x862-arg-z*)) 8231 8321 (with-imm-target () (src-reg :address) 8232 8322 (x862-one-targeted-reg-form seg y src-reg) 8233 (x862-vpop-register seg x8664::arg_z)8323 (x862-vpop-register seg *x862-arg-z*) 8234 8324 (unless (or *x862-reckless* (x862-form-typep x 'macptr)) 8235 8325 (with-imm-temps (src-reg) () 8236 (! trap-unless-macptr x8664::arg_z)))8237 (! set-macptr-address src-reg x8664::arg_z)8238 (<- x8664::arg_z)8326 (! trap-unless-macptr *x862-arg-z*))) 8327 (! set-macptr-address src-reg *x862-arg-z*) 8328 (<- *x862-arg-z*) 8239 8329 (^))) 8240 8330 8241 8331 (defx862 x862-%setf-double-float %setf-double-float (seg vref xfer fnode fval) 8242 (x862-vpush-register seg (x862-one-untargeted-reg-form seg fnode x8664::arg_z))8332 (x862-vpush-register seg (x862-one-untargeted-reg-form seg fnode *x862-arg-z*)) 8243 8333 (let* ((target ($ x8664::fp1 :class :fpr :mode :double-float)) 8244 (node ($ x8664::arg_z)))8334 (node ($ *x862-arg-z*))) 8245 8335 (x862-one-targeted-reg-form seg fval target) 8246 8336 (x862-vpop-register seg node) … … 8288 8378 (protform-label (backend-get-next-label)) 8289 8379 (old-stack (x862-encode-stack))) 8290 (x862-two-targeted-reg-forms seg symbols ($ x8664::arg_y) values ($ x8664::arg_z))8380 (x862-two-targeted-reg-forms seg symbols ($ *x862-arg-y*) values ($ *x862-arg-z*)) 8291 8381 (! progvsave) 8292 8382 (x862-open-undo $undostkblk) … … 8344 8434 (x862-form seg vreg nil newval))) 8345 8435 (with-imm-target () (src :address) 8346 (x862-two-targeted-reg-forms seg ptr src newval ($ x8664::arg_z))8347 (! mem-set-c-bit-variable-value src offval ($ x8664::arg_z))8348 (<- ($ x8664::arg_z)))))8436 (x862-two-targeted-reg-forms seg ptr src newval ($ *x862-arg-z*)) 8437 (! mem-set-c-bit-variable-value src offval ($ *x862-arg-z*)) 8438 (<- ($ *x862-arg-z*))))) 8349 8439 (if constval 8350 8440 (with-imm-target () (src :address) 8351 (x862-two-targeted-reg-forms seg ptr src offset ($ x8664::arg_z))8441 (x862-two-targeted-reg-forms seg ptr src offset ($ *x862-arg-z*)) 8352 8442 (if (eql constval 0) 8353 (! mem-set-bit-0 src ($ x8664::arg_z))8354 (! mem-set-bit-1 src ($ x8664::arg_z)))8443 (! mem-set-bit-0 src ($ *x862-arg-z*)) 8444 (! mem-set-bit-1 src ($ *x862-arg-z*))) 8355 8445 (when vreg 8356 8446 (x862-form seg vreg nil newval))) 8357 8447 (with-imm-target () (src :address) 8358 (x862-three-targeted-reg-forms seg ptr src offset ($ x8664::arg_y) newval ($ x8664::arg_z))8359 (! mem-set-bit-variable-value src ($ x8664::arg_y) ($ x8664::arg_z))8360 (<- ($ x8664::arg_z)))))8448 (x862-three-targeted-reg-forms seg ptr src offset ($ *x862-arg-y*) newval ($ *x862-arg-z*)) 8449 (! mem-set-bit-variable-value src ($ *x862-arg-y*) ($ *x862-arg-z*)) 8450 (<- ($ *x862-arg-z*))))) 8361 8451 (^))) 8362 8452 … … 8380 8470 (unless triv-by 8381 8471 (x862-push-register seg ptr-reg)) 8382 (let* ((boxed-by (x862-one-targeted-reg-form seg by x8664::arg_z)))8472 (let* ((boxed-by (x862-one-targeted-reg-form seg by *x862-arg-z*))) 8383 8473 (unless triv-by 8384 8474 (x862-pop-register seg ptr-reg)) … … 8421 8511 (setq ngpr-args 0) 8422 8512 (unless simple-foreign-args 8423 (x862-vpush-register seg (x862-one-untargeted-reg-form seg idx x8664::arg_z)))8513 (x862-vpush-register seg (x862-one-untargeted-reg-form seg idx *x862-arg-z*))) 8424 8514 ;; Evaluate each form into the C frame, according to the 8425 8515 ;; matching argspec. … … 8455 8545 (incf other-offset))))))))) 8456 8546 (unless simple-foreign-args 8457 (x862-vpop-register seg ($ x8664::arg_z)))8547 (x862-vpop-register seg ($ *x862-arg-z*))) 8458 8548 (! syscall) 8459 8549 (x862-close-undo) … … 8463 8553 (ensuring-node-target (target vreg) 8464 8554 (! makeu64) 8465 (x862-copy-register seg target ($ x8664::arg_z))))8555 (x862-copy-register seg target ($ *x862-arg-z*)))) 8466 8556 ((eq resultspec :signed-doubleword) 8467 8557 (ensuring-node-target (target vreg) 8468 8558 (! makes64) 8469 (x862-copy-register seg target ($ x8664::arg_z))))8559 (x862-copy-register seg target ($ *x862-arg-z*)))) 8470 8560 (t 8471 8561 (case resultspec … … 8537 8627 (setq ngpr-args 0 nfpr-args 0) 8538 8628 (unless simple-foreign-args 8539 (x862-vpush-register seg (x862-one-untargeted-reg-form seg address x8664::arg_z)))8629 (x862-vpush-register seg (x862-one-untargeted-reg-form seg address *x862-arg-z*))) 8540 8630 ;; Evaluate each form into the C frame, according to the 8541 8631 ;; matching argspec. Remember type and arg offset of any FP … … 8550 8640 (case spec 8551 8641 (:registers 8552 (let* ((reg (x862-one-untargeted-reg-form seg valform x8664::arg_z)))8642 (let* ((reg (x862-one-untargeted-reg-form seg valform *x862-arg-z*))) 8553 8643 (unless *x862-reckless* 8554 8644 (! trap-unless-macptr reg)) … … 8619 8709 (! reload-single-c-arg ($ fpreg :class :fpr :mode :single-float) from)))) 8620 8710 (if return-registers 8621 (x862-vpop-register seg ($ x8664::arg_y)))8711 (x862-vpop-register seg ($ *x862-arg-y*))) 8622 8712 (if simple-foreign-args 8623 (x862-one-targeted-reg-form seg address x8664::arg_z)8624 (x862-vpop-register seg ($ x8664::arg_z)))8713 (x862-one-targeted-reg-form seg address *x862-arg-z*) 8714 (x862-vpop-register seg ($ *x862-arg-z*))) 8625 8715 (x862-lri seg x8664::rax (min 8 nfpr-args)) 8626 8716 (if return-registers … … 8638 8728 (progn 8639 8729 (! makeu64) 8640 (<- ($ x8664::arg_z)))8730 (<- ($ *x862-arg-z*))) 8641 8731 (<- ($ x8664::rax :class :gpr :mode :u64)))) 8642 8732 ((eq resultspec :signed-doubleword) … … 8644 8734 (progn 8645 8735 (! makes64) 8646 (<- ($ x8664::arg_z)))8736 (<- ($ *x862-arg-z*))) 8647 8737 (<- ($ x8664::rax :class :gpr :mode :s64)))) 8648 8738 (t … … 8678 8768 8679 8769 (defx862 x862-%debug-trap %debug-trap (seg vreg xfer arg) 8680 (x862-one-targeted-reg-form seg arg ($ x8664::arg_z))8770 (x862-one-targeted-reg-form seg arg ($ *x862-arg-z*)) 8681 8771 (! %debug-trap) 8682 (<- ($ x8664::arg_z))8772 (<- ($ *x862-arg-z*)) 8683 8773 (^)) 8684 8774 … … 8686 8776 (seg vreg xfer arg) 8687 8777 (ensuring-node-target (target vreg) 8688 (let* ((reg (if (eq (hard-regspec-value target) x8664::arg_z) ($ x8664::arg_y) ($ x8664::arg_z))))8778 (let* ((reg (if (eq (hard-regspec-value target) *x862-arg-z*) ($ *x862-arg-y*) ($ *x862-arg-z*)))) 8689 8779 (x862-one-targeted-reg-form seg arg reg) 8690 8780 (! eep.address target reg))) … … 8855 8945 (x862-restore-nvrs seg *x862-register-restore-ea* *x862-register-restore-count*) 8856 8946 (x862-restore-full-lisp-context seg) 8857 (! %current-frame-ptr ($ x8664::arg_z))8947 (! %current-frame-ptr ($ *x862-arg-z*)) 8858 8948 (! jump-return-pc)) 8859 8949 (t … … 8891 8981 (defx862 x862-with-variable-c-frame with-variable-c-frame (seg vreg xfer size body &aux 8892 8982 (old-stack (x862-encode-stack))) 8893 (let* ((reg (x862-one-untargeted-reg-form seg size x8664::arg_z)))8983 (let* ((reg (x862-one-untargeted-reg-form seg size *x862-arg-z*))) 8894 8984 (! alloc-variable-c-frame reg) 8895 8985 (x862-open-undo $undo-x86-c-frame) … … 8897 8987 8898 8988 (defx862 x862-%symbol->symptr %symbol->symptr (seg vreg xfer sym) 8899 (let* ((src (x862-one-untargeted-reg-form seg sym x8664::arg_z)))8989 (let* ((src (x862-one-untargeted-reg-form seg sym *x862-arg-z*))) 8900 8990 (ensuring-node-target (target vreg) 8901 8991 (! %symbol->symptr target src)) … … 8960 9050 (defx862 x862-%fixnum-to-single %fixnum-to-single (seg vreg xfer arg) 8961 9051 (with-fp-target () (sreg :single-float) 8962 (let* ((r (x862-one-untargeted-reg-form seg arg x8664::arg_z)))9052 (let* ((r (x862-one-untargeted-reg-form seg arg *x862-arg-z*))) 8963 9053 (unless (or (acode-fixnum-form-p arg) 8964 9054 *x862-reckless*) … … 8970 9060 (defx862 x862-%fixnum-to-double %fixnum-to-double (seg vreg xfer arg) 8971 9061 (with-fp-target () (dreg :double-float) 8972 (let* ((r (x862-one-untargeted-reg-form seg arg x8664::arg_z)))9062 (let* ((r (x862-one-untargeted-reg-form seg arg *x862-arg-z*))) 8973 9063 (unless (or (acode-fixnum-form-p arg) 8974 9064 *x862-reckless*) … … 9056 9146 #-x86-target 9057 9147 (defun x8664-xcompile-lambda (def &key show-vinsns (symbolic-names t) 9058 (target : linuxx8664)9148 (target :darwinx8664) 9059 9149 (disassemble t)) 9060 9150 (let* ((*x862-debug-mask* (if show-vinsns … … 9081 9171 xlfun))) 9082 9172 9083 9084 9085 9173 #-x8632-target 9174 (defun x8632-xcompile-lambda (def &key show-vinsns (symbolic-names t) 9175 (target :darwinx8632) 9176 (disassemble t)) 9177 (let* ((*x862-debug-mask* (if show-vinsns 9178 (ash 1 x862-debug-vinsns-bit) 9179 0)) 9180 (backend (find-backend target)) 9181 (*target-ftd* (if backend 9182 (backend-target-foreign-type-data backend) 9183 *target-ftd*))) 9184 (multiple-value-bind (xlfun warnings) 9185 (compile-named-function def nil 9186 nil 9187 nil 9188 nil 9189 nil 9190 nil 9191 target) 9192 (signal-or-defer-warnings warnings nil) 9193 (when disassemble 9194 (format t "~%~%") 9195 (apply #'x8632-disassemble-xfunction 9196 xlfun 9197 (unless symbolic-names (list nil)))) 9198 xlfun))) 9199 9200 9201 9202
Note: See TracChangeset
for help on using the changeset viewer.