Changeset 6287
- Timestamp:
- Apr 17, 2007, 7:02:46 PM (18 years ago)
- File:
-
- 1 edited
-
trunk/ccl/compiler/PPC/ppc2.lisp (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ccl/compiler/PPC/ppc2.lisp
r6258 r6287 1582 1582 j ($ ppc::arg_y) 1583 1583 new val-reg)))) 1584 (when safe 1585 (when (typep safe 'fixnum) 1586 (! trap-unless-simple-array-2 1587 src 1588 (dpb safe target::arrayH.flags-cell-subtag-byte 1589 (ash 1 $arh_simple_bit)) 1590 (nx-error-for-simple-2d-array-type type-keyword))) 1591 (unless i-known-fixnum 1592 (! trap-unless-fixnum unscaled-i)) 1593 (unless j-known-fixnum 1594 (! trap-unless-fixnum unscaled-j))) 1595 (with-imm-target () dim1 1596 (let* ((idx-reg ($ ppc::arg_y))) 1597 (unless constidx 1598 (if safe 1599 (! check-2d-bound dim1 unscaled-i unscaled-j src) 1600 (! 2d-dim1 dim1 src)) 1601 (! 2d-unscaled-index idx-reg dim1 unscaled-i unscaled-j)) 1602 (let* ((v ($ ppc::arg_x))) 1603 (! array-data-vector-ref v src) 1604 (ppc2-vset1 seg vreg xfer type-keyword v idx-reg constidx val-reg (ppc2-unboxed-reg-for-aset seg type-keyword val-reg safe constval) constval needs-memoization)))))))) 1584 (let* ((*available-backend-imm-temps* *available-backend-imm-temps*)) 1585 (when (and (= (hard-regspec-class val-reg) hard-reg-class-gpr) 1586 (logbitp (hard-regspec-value val-reg) 1587 *backend-imm-temps*)) 1588 (use-imm-temp (hard-regspec-value val-reg))) 1589 (when safe 1590 (when (typep safe 'fixnum) 1591 (! trap-unless-simple-array-2 1592 src 1593 (dpb safe target::arrayH.flags-cell-subtag-byte 1594 (ash 1 $arh_simple_bit)) 1595 (nx-error-for-simple-2d-array-type type-keyword))) 1596 (unless i-known-fixnum 1597 (! trap-unless-fixnum unscaled-i)) 1598 (unless j-known-fixnum 1599 (! trap-unless-fixnum unscaled-j))) 1600 (with-imm-target () dim1 1601 (let* ((idx-reg ($ ppc::arg_y))) 1602 (unless constidx 1603 (if safe 1604 (! check-2d-bound dim1 unscaled-i unscaled-j src) 1605 (! 2d-dim1 dim1 src)) 1606 (! 2d-unscaled-index idx-reg dim1 unscaled-i unscaled-j)) 1607 (let* ((v ($ ppc::arg_x))) 1608 (! array-data-vector-ref v src) 1609 (ppc2-vset1 seg vreg xfer type-keyword v idx-reg constidx val-reg (ppc2-unboxed-reg-for-aset seg type-keyword val-reg safe constval) constval needs-memoization))))))))) 1605 1610 1606 1611 … … 1643 1648 (ppc2-one-untargeted-reg-form seg array ($ ppc::arg_z))) 1644 1649 (ppc2-four-targeted-reg-forms seg 1645 i ($ ppc::temp0)1646 j ($ ppc::arg_x)1647 k ($ ppc::arg_y)1648 new val-reg)1650 i ($ ppc::temp0) 1651 j ($ ppc::arg_x) 1652 k ($ ppc::arg_y) 1653 new val-reg) 1649 1654 (ppc2-pop-register seg src))) 1650 (when safe 1651 (when (typep safe 'fixnum) 1652 (! trap-unless-simple-array-3 1653 src 1654 (dpb safe target::arrayH.flags-cell-subtag-byte 1655 (ash 1 $arh_simple_bit)) 1656 (nx-error-for-simple-3d-array-type type-keyword))) 1657 (unless i-known-fixnum 1658 (! trap-unless-fixnum unscaled-i)) 1659 (unless j-known-fixnum 1660 (! trap-unless-fixnum unscaled-j)) 1661 (unless k-known-fixnum 1662 (! trap-unless-fixnum unscaled-k))) 1663 (with-imm-target () dim1 1664 (with-imm-target (dim1) dim2 1665 (let* ((idx-reg ($ ppc::arg_y))) 1666 (unless constidx 1667 (if safe 1668 (! check-3d-bound dim1 dim2 unscaled-i unscaled-j unscaled-k src) 1669 (! 3d-dims dim1 dim2 src)) 1670 (! 3d-unscaled-index idx-reg dim1 dim2 unscaled-i unscaled-j unscaled-k)) 1671 (let* ((v ($ ppc::arg_x))) 1672 (! array-data-vector-ref v src) 1673 (ppc2-vset1 seg vreg xfer type-keyword v idx-reg constidx val-reg (ppc2-unboxed-reg-for-aset seg type-keyword val-reg safe constval) constval needs-memoization))))))))) 1655 (let* ((*available-backend-imm-temps* *available-backend-imm-temps*)) 1656 (when (and (= (hard-regspec-class val-reg) hard-reg-class-gpr) 1657 (logbitp (hard-regspec-value val-reg) 1658 *backend-imm-temps*)) 1659 (use-imm-temp (hard-regspec-value val-reg))) 1660 1661 (when safe 1662 (when (typep safe 'fixnum) 1663 (! trap-unless-simple-array-3 1664 src 1665 (dpb safe target::arrayH.flags-cell-subtag-byte 1666 (ash 1 $arh_simple_bit)) 1667 (nx-error-for-simple-3d-array-type type-keyword))) 1668 (unless i-known-fixnum 1669 (! trap-unless-fixnum unscaled-i)) 1670 (unless j-known-fixnum 1671 (! trap-unless-fixnum unscaled-j)) 1672 (unless k-known-fixnum 1673 (! trap-unless-fixnum unscaled-k))) 1674 (with-imm-target () dim1 1675 (with-imm-target (dim1) dim2 1676 (let* ((idx-reg ($ ppc::arg_y))) 1677 (unless constidx 1678 (if safe 1679 (! check-3d-bound dim1 dim2 unscaled-i unscaled-j unscaled-k src) 1680 (! 3d-dims dim1 dim2 src)) 1681 (! 3d-unscaled-index idx-reg dim1 dim2 unscaled-i unscaled-j unscaled-k)) 1682 (let* ((v ($ ppc::arg_x))) 1683 (! array-data-vector-ref v src) 1684 (ppc2-vset1 seg vreg xfer type-keyword v idx-reg constidx val-reg (ppc2-unboxed-reg-for-aset seg type-keyword val-reg safe constval) constval needs-memoization)))))))))) 1674 1685 1675 1686 (defun ppc2-aref2 (seg vreg xfer array i j safe typekeyword &optional dim0 dim1)
Note:
See TracChangeset
for help on using the changeset viewer.
