Changeset 6266
 Timestamp:
 Apr 16, 2007, 12:48:30 AM (15 years ago)
 File:

 1 edited
Legend:
 Unmodified
 Added
 Removed

trunk/ccl/compiler/X86/x862.lisp
r6258 r6266 1661 1661 j ($ x8664::arg_y) 1662 1662 new valreg)))) 1663 (when safe 1664 (when (typep safe 'fixnum) 1665 (! trapunlesssimplearray2 1666 src 1667 (dpb safe target::arrayH.flagscellsubtagbyte 1668 (ash 1 $arh_simple_bit)) 1669 (nxerrorforsimple2darraytype typekeyword))) 1670 (unless iknownfixnum 1671 (! trapunlessfixnum unscaledi)) 1672 (unless jknownfixnum 1673 (! trapunlessfixnum unscaledj))) 1674 (withimmtarget () dim1 1675 (let* ((idxreg ($ x8664::arg_y))) 1676 (if constidx 1677 (if needsmemoization 1678 (x862lri seg x8664::arg_y (ash constidx *x862targetfixnumshift*))) 1679 (progn 1680 (if safe 1681 (! check2dbound dim1 unscaledi unscaledj src) 1682 (! 2ddim1 dim1 src)) 1683 (! 2dunscaledindex idxreg dim1 unscaledi unscaledj))) 1684 (let* ((v ($ x8664::arg_x))) 1685 (! arraydatavectorref v src) 1686 (x862vset1 seg vreg xfer typekeyword v idxreg constidx valreg (x862unboxedregforaset seg typekeyword valreg safe constval) constval needsmemoization)))))))) 1663 (let* ((*availablebackendimmtemps* *availablebackendimmtemps*)) 1664 (when (and (= (hardregspecclass valreg) hardregclassgpr) 1665 (logbitp (hardregspecvalue valreg) 1666 *backendimmtemps*)) 1667 (useimmtemp valreg)) 1668 (when safe 1669 (when (typep safe 'fixnum) 1670 (! trapunlesssimplearray2 1671 src 1672 (dpb safe target::arrayH.flagscellsubtagbyte 1673 (ash 1 $arh_simple_bit)) 1674 (nxerrorforsimple2darraytype typekeyword))) 1675 (unless iknownfixnum 1676 (! trapunlessfixnum unscaledi)) 1677 (unless jknownfixnum 1678 (! trapunlessfixnum unscaledj))) 1679 (withimmtarget () dim1 1680 (let* ((idxreg ($ x8664::arg_y))) 1681 (if constidx 1682 (if needsmemoization 1683 (x862lri seg x8664::arg_y (ash constidx *x862targetfixnumshift*))) 1684 (progn 1685 (if safe 1686 (! check2dbound dim1 unscaledi unscaledj src) 1687 (! 2ddim1 dim1 src)) 1688 (! 2dunscaledindex idxreg dim1 unscaledi unscaledj))) 1689 (let* ((v ($ x8664::arg_x))) 1690 (! arraydatavectorref v src) 1691 (x862vset1 seg vreg xfer typekeyword v idxreg constidx valreg (x862unboxedregforaset seg typekeyword valreg safe constval) constval needsmemoization))))))))) 1687 1692 1688 1693 … … 1725 1730 (x862oneuntargetedregform seg array ($ x8664::arg_z))) 1726 1731 (x862fourtargetedregforms seg 1727 1728 1729 1730 1732 i ($ x8664::temp0) 1733 j ($ x8664::arg_x) 1734 k ($ x8664::arg_y) 1735 new valreg) 1731 1736 (x862popregister seg src))) 1732 (when safe 1733 (when (typep safe 'fixnum) 1734 (! trapunlesssimplearray3 1735 src 1736 (dpb safe target::arrayH.flagscellsubtagbyte 1737 (ash 1 $arh_simple_bit)) 1738 (nxerrorforsimple3darraytype typekeyword))) 1739 (unless iknownfixnum 1740 (! trapunlessfixnum unscaledi)) 1741 (unless jknownfixnum 1742 (! trapunlessfixnum unscaledj)) 1743 (unless kknownfixnum 1744 (! trapunlessfixnum unscaledk))) 1745 (withimmtarget () dim1 1746 (withimmtarget (dim1) dim2 1747 (let* ((idxreg ($ x8664::arg_y))) 1748 (if constidx 1749 (when needsmemoization 1750 (x862lri seg idxreg (ash constidx *x862targetfixnumshift*))) 1751 (progn 1752 (if safe 1753 (! check3dbound dim1 dim2 unscaledi unscaledj unscaledk src) 1754 (! 3ddims dim1 dim2 src)) 1755 (! 3dunscaledindex idxreg dim1 dim2 unscaledi unscaledj unscaledk))) 1756 (let* ((v ($ x8664::arg_x))) 1757 (! arraydatavectorref v src) 1758 (x862vset1 seg vreg xfer typekeyword v idxreg constidx valreg (x862unboxedregforaset seg typekeyword valreg safe constval) constval needsmemoization))))))))) 1737 (let* ((*availablebackendimmtemps* *availablebackendimmtemps*)) 1738 (when (and (= (hardregspecclass valreg) hardregclassgpr) 1739 (logbitp (hardregspecvalue valreg) 1740 *backendimmtemps*)) 1741 (useimmtemp valreg)) 1742 1743 (when safe 1744 (when (typep safe 'fixnum) 1745 (! trapunlesssimplearray3 1746 src 1747 (dpb safe target::arrayH.flagscellsubtagbyte 1748 (ash 1 $arh_simple_bit)) 1749 (nxerrorforsimple3darraytype typekeyword))) 1750 (unless iknownfixnum 1751 (! trapunlessfixnum unscaledi)) 1752 (unless jknownfixnum 1753 (! trapunlessfixnum unscaledj)) 1754 (unless kknownfixnum 1755 (! trapunlessfixnum unscaledk))) 1756 (withimmtarget () dim1 1757 (withimmtarget (dim1) dim2 1758 (let* ((idxreg ($ x8664::arg_y))) 1759 (if constidx 1760 (when needsmemoization 1761 (x862lri seg idxreg (ash constidx *x862targetfixnumshift*))) 1762 (progn 1763 (if safe 1764 (! check3dbound dim1 dim2 unscaledi unscaledj unscaledk src) 1765 (! 3ddims dim1 dim2 src)) 1766 (! 3dunscaledindex idxreg dim1 dim2 unscaledi unscaledj unscaledk))) 1767 (let* ((v ($ x8664::arg_x))) 1768 (! arraydatavectorref v src) 1769 (x862vset1 seg vreg xfer typekeyword v idxreg constidx valreg (x862unboxedregforaset seg typekeyword valreg safe constval) constval needsmemoization)))))))))) 1759 1770 1760 1771
Note: See TracChangeset
for help on using the changeset viewer.