Changeset 5090
- Timestamp:
- Sep 4, 2006, 1:23:55 AM (18 years ago)
- File:
-
- 1 edited
-
trunk/ccl/compiler/PPC/ppc2.lisp (modified) (10 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ccl/compiler/PPC/ppc2.lisp
r5046 r5090 1408 1408 (:fixnum-vector 1409 1409 (! box-fixnum target temp)) 1410 (:simple-string 1411 (! u32->char target temp)) 1410 1412 (t 1411 1413 (ppc2-box-u32 seg target temp))))))))) … … 1429 1431 (if (eq type-keyword :signed-8-bit-vector) 1430 1432 (! s8->fixnum target temp) 1431 (! u 8->char target temp)))))1433 (! u32->char target temp))))) 1432 1434 (if is-16-bit 1433 1435 (ensuring-node-target (target vreg) … … 1446 1448 (if (eq type-keyword :unsigned-16-bit-vector) 1447 1449 (! u16->fixnum target temp) 1448 (if (eq type-keyword :signed-16-bit-vector) 1449 (! s16->fixnum target temp) 1450 (! u8->char target temp))))) 1450 (! s16->fixnum target temp)))) 1451 1451 ;; Down to the dregs. 1452 1452 (if is-64-bit … … 1857 1857 (with-imm-temps () (temp) 1858 1858 (cond (is-32-bit 1859 (if constval 1859 (if constval 1860 1860 (ppc2-lri seg temp 1861 1861 (if (typep constval 'single-float) 1862 1862 (ppc2-single-float-bits constval) 1863 constval)) 1863 (if (characterp constval) 1864 (char-code constval) 1865 constval))) 1864 1866 (cond ((eq type-keyword :single-float-vector) 1865 1867 (when safe … … 1872 1874 (! trap-unless-fixnum val-reg)) 1873 1875 (! fixnum->signed-natural temp val-reg)) 1876 ((eq type-keyword :simple-string) 1877 (! unbox-base-char temp val-reg)) 1874 1878 (t 1875 1879 (! unbox-u32 temp val-reg)))) … … 5742 5746 (if vreg 5743 5747 (ensuring-node-target (target vreg) 5744 (! %schar target src unscaled-idx))) 5748 (case (arch::target-char-code-limit (backend-target-arch *target-backend*)) 5749 (256 (! %schar8 target src unscaled-idx)) 5750 (t (! %schar32 target src unscaled-idx))))) 5745 5751 (^))) 5746 5752 … … 5751 5757 idx ppc::arg_y 5752 5758 char ppc::arg_z) 5753 (! %set-schar src unscaled-idx char) 5759 (case (arch::target-char-code-limit (backend-target-arch *target-backend*)) 5760 (256 (! %set-schar8 src unscaled-idx char)) 5761 (t (! %set-schar32 src unscaled-idx char))) 5754 5762 (when vreg (<- char)) 5755 5763 (^))) … … 5759 5767 (ppc2-three-untargeted-reg-forms seg str ppc::arg_x idx ppc::arg_y 5760 5768 char ppc::arg_z) 5761 (! %set-scharcode src unscaled-idx char) 5769 (case (arch::target-char-code-limit (backend-target-arch *target-backend*)) 5770 (256 (! %set-scharcode8 src unscaled-idx char)) 5771 (t (! %set-scharcode32 src unscaled-idx char))) 5762 5772 (when vreg (<- char)) 5763 5773 (^))) … … 5765 5775 (defppc2 ppc2-%scharcode %scharcode (seg vreg xfer str idx) 5766 5776 (multiple-value-bind (src unscaled-idx) 5767 (ppc2-two-untargeted-reg-forms seg str ppc::arg_y idx ppc::arg_z)5777 (ppc2-two-untargeted-reg-forms seg str ppc::arg_y idx ppc::arg_z) 5768 5778 (if vreg 5769 5779 (ensuring-node-target (target vreg) 5770 (! %scharcode target src unscaled-idx))) 5780 (case (arch::target-char-code-limit (backend-target-arch *target-backend*)) 5781 (256 (! %scharcode8 target src unscaled-idx)) 5782 (t (! %scharcode32 target src unscaled-idx))))) 5771 5783 (^))) 5772 5784 … … 5775 5787 (defppc2 ppc2-code-char code-char (seg vreg xfer c) 5776 5788 (let* ((reg (ppc2-one-untargeted-reg-form seg c ppc::arg_z))) 5777 (! require-u8 reg) ; Typecheck even if result unused. 5789 ;; Typecheck even if result unused. 5790 (case (arch::target-char-code-limit (backend-target-arch *target-backend*)) 5791 (256 (! require-u8 reg)) 5792 (t (! require-char-code reg))) 5778 5793 (if vreg 5779 5794 (ensuring-node-target (target vreg)
Note:
See TracChangeset
for help on using the changeset viewer.
