Changeset 5478
- Timestamp:
- Nov 5, 2006, 6:36:35 AM (18 years ago)
- Location:
- trunk/ccl/compiler/PPC
- Files:
-
- 2 edited
-
PPC32/ppc32-vinsns.lisp (modified) (4 diffs)
-
PPC64/ppc64-vinsns.lisp (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ccl/compiler/PPC/PPC32/ppc32-vinsns.lisp
r5380 r5478 86 86 (lwzx dest v scaled-idx)) 87 87 88 88 89 (define-ppc32-vinsn misc-ref-c-u32 (((dest :u32)) 89 90 ((v :lisp) … … 312 313 (twlge idx temp)) 313 314 314 (define-ppc32-vinsn 2d-unscaled-index (((dest :u32)) 315 ((array :lisp) 315 (define-ppc32-vinsn 2d-unscaled-index (((dest :imm) 316 (dim1 :u32)) 317 ((dim1 :u32) 316 318 (i :imm) 317 (j :imm) 318 (dim1 :u32))) 319 (mullw dest i dim1) 320 (add dest dest j)) 321 322 323 324 (define-ppc32-vinsn 2d-32-scaled-index (((dest :u32)) 325 ((array :lisp) 326 (i :imm) 327 (j :imm) 328 (dim1 :u32))) 329 (mullw dest i dim1) 330 (add dest dest j) 331 (la dest ppc32::misc-data-offset dest)) 319 (j :imm))) 320 (mullw dim1 i dim1) 321 (add dest dim1 j)) 322 332 323 333 324 (define-ppc32-vinsn 2d-dim1 (((dest :u32)) … … 2746 2737 (rlwinm dest src (:apply - 32 count) count 31)) 2747 2738 2739 2740 (define-ppc32-vinsn trap-unless-simple-array-2 (() 2741 ((object :lisp) 2742 (expected-flags :u32const) 2743 (type-error :u8const)) 2744 ((tag :u8) 2745 (flags :u32) 2746 (crf :crf))) 2747 (clrlwi tag object (- ppc32::nbits-in-word ppc32::nlisptagbits)) 2748 (cmpwi crf tag ppc32::tag-misc) 2749 (bne crf :bad) 2750 (lbz tag ppc32::misc-subtag-offset object) 2751 (cmpwi crf tag ppc32::subtag-arrayH) 2752 (bne crf :bad) 2753 (lwz tag ppc32::arrayH.rank object) 2754 (cmpwi crf tag (ash 2 ppc32::fixnumshift)) 2755 (lis tag (:apply ldb (byte 16 16) (:apply ash expected-flags ppc32::fixnumshift))) 2756 2757 (lwz flags ppc32::arrayH.flags object) 2758 (ori tag tag (:apply ldb (byte 16 0) (:apply ash expected-flags ppc32::fixnumshift))) 2759 (bne crf :bad) 2760 (cmpw crf tag flags) 2761 (beq crf :good) 2762 :bad 2763 (uuo_interr type-error object) 2764 :good) 2765 2766 2767 2768 2748 2769 (define-ppc32-vinsn sign-extend-halfword (((dest :imm)) 2749 2770 ((src :imm))) … … 3114 3135 (((dest :double-float)) 3115 3136 ((high t) 3116 (low t)) 3117 ((align :u32))) 3118 (clrrwi align ppc::sp 3) 3119 (stw high -8 align) 3120 (stw low -4 align) 3121 (lfd dest -8 align )) 3137 (low t))) 3138 (stw high -8 ppc::sp) 3139 (stw low -4 ppc::sp) 3140 (lfd dest -8 ppc::sp )) 3122 3141 3123 3142 (define-ppc32-vinsn load-single-float-constant -
trunk/ccl/compiler/PPC/PPC64/ppc64-vinsns.lisp
r5356 r5478 353 353 (tdlge idx temp)) 354 354 355 (define-ppc64-vinsn 2d-unscaled-index (((dest : u64))356 ((array :lisp)357 (i :imm)358 (j:imm)359 ( dim1 :u64)))360 (mulld d esti dim1)361 (add dest d estj))355 (define-ppc64-vinsn 2d-unscaled-index (((dest :imm) 356 (dim1 :u32)) 357 ((dim1 :u32) 358 (i :imm) 359 (j :imm))) 360 (mulld dim1 i dim1) 361 (add dest dim1 j)) 362 362 363 363 … … 409 409 (ld flags ppc64::arrayH.flags header) 410 410 (td 27 flags xreg)) 411 412 413 (define-ppc64-vinsn trap-unless-simple-array-2 (() 414 ((object :lisp) 415 (expected-flags :u64const) 416 (type-error :u8const)) 417 ((tag :u8) 418 (flags :u64) 419 (crf :crf))) 420 (clrldi tag object (- ppc64::nbits-in-word ppc64::ntagbits)) 421 (cmpdi crf tag ppc64::fulltag-misc) 422 (bne crf :bad) 423 (lbz tag ppc64::misc-subtag-offset object) 424 (cmpdi crf tag ppc64::subtag-arrayH) 425 (bne crf :bad) 426 (ld tag ppc64::arrayH.rank object) 427 (cmpdi crf tag (ash 2 ppc64::fixnumshift)) 428 (lis tag (:apply ldb (byte 16 16) (:apply ash expected-flags ppc64::fixnumshift))) 429 (ld flags ppc64::arrayH.flags object) 430 (ori tag tag (:apply ldb (byte 16 0) (:apply ash expected-flags ppc64::fixnumshift))) 431 (bne crf :bad) 432 (cmpd crf tag flags) 433 (beq crf :good) 434 :bad 435 (uuo_interr type-error object) 436 :good) 411 437 412 438
Note:
See TracChangeset
for help on using the changeset viewer.
