Changeset 7876
- Timestamp:
- Dec 10, 2007, 8:39:32 PM (17 years ago)
- File:
-
- 1 edited
-
branches/ia32/compiler/X86/x862.lisp (modified) (8 diffs)
Legend:
- Unmodified
- Added
- Removed
-
branches/ia32/compiler/X86/x862.lisp
r7819 r7876 1796 1796 (! misc-ref-c-bit-fixnum target src index-known-fixnum) 1797 1797 (with-additional-imm-reg () 1798 (with-imm-temps 1799 () (word-index bitnum) 1800 (if index-known-fixnum 1801 (progn 1802 (x862-lri seg word-index (+ (arch::target-misc-data-offset arch) (ash index-known-fixnum -6))) 1803 (x862-lri seg bitnum (logand index-known-fixnum #x63))) 1804 (! word-index-and-bitnum-from-index word-index bitnum unscaled-idx)) 1805 (! ref-bit-vector-fixnum target bitnum src word-index))))))))) 1798 (with-additional-imm-reg () 1799 (with-imm-temps 1800 () (word-index bitnum) 1801 (if index-known-fixnum 1802 (progn 1803 (x862-lri seg word-index (+ (arch::target-misc-data-offset arch) (ash index-known-fixnum -6))) 1804 (x862-lri seg bitnum (logand index-known-fixnum #x63))) 1805 (! word-index-and-bitnum-from-index word-index bitnum unscaled-idx)) 1806 (! ref-bit-vector-fixnum target bitnum src word-index)))))))))) 1806 1807 (^))) 1807 1808 … … 3072 3073 (setq vinsn (x862-vpush-register seg areg :node-temp)) 3073 3074 (if a-single 3074 (progn 3075 (setq vinsn (! vpush-single-float areg)) 3076 (x862-new-vstack-lcell :single-float *x862-target-lcell-size* 0 nil) 3077 (x862-adjust-vstack *x862-target-node-size*)) 3075 (target-arch-case 3076 (:x8632 3077 (setq vinsn (! temp-push-single-float areg)) 3078 (incf *x862-cstack* *x862-target-dnode-size*)) 3079 (:x8664 3080 (setq vinsn (! vpush-single-float areg)) 3081 (x862-new-vstack-lcell :single-float *x862-target-lcell-size* 0 nil) 3082 (x862-adjust-vstack *x862-target-node-size*))) 3078 3083 (progn 3079 3084 (setq vinsn … … 3093 3098 (setq vinsn (x862-vpop-register seg areg)) 3094 3099 (if a-single 3095 (progn 3100 (target-arch-case 3101 (:x8632 3102 (setq vinsn (! temp-pop-single-float areg)) 3103 (decf *x862-cstack* *x862-target-dnode-size*)) 3104 (:x8664 3096 3105 (setq vinsn (! vpop-single-float areg)) 3097 3106 (setq *x862-top-vstack-lcell* (lcell-parent *x862-top-vstack-lcell*)) 3098 (x862-adjust-vstack (- *x862-target-node-size*))) 3107 (x862-adjust-vstack (- *x862-target-node-size*)))) 3099 3108 (progn 3100 3109 (setq vinsn … … 3111 3120 (declare (fixnum class mode)) 3112 3121 (cond ((= class hard-reg-class-fpr) 3113 (make-wired-lreg x8664::fp1 :class class :mode mode))3122 (make-wired-lreg target::fp1 :class class :mode mode)) 3114 3123 ((= class hard-reg-class-gpr) 3115 3124 (if (= mode hard-reg-class-gpr-mode-node) … … 6491 6500 char *x862-arg-z*) 6492 6501 (case (arch::target-char-code-limit (backend-target-arch *target-backend*)) 6493 (256 (! %set-scharcode8 src unscaled-idx char)) 6502 (256 6503 (with-additional-imm-reg () 6504 (! %set-scharcode8 src unscaled-idx char))) 6494 6505 (t 6495 6506 (with-additional-imm-reg () … … 6693 6704 (! set-c-flag-if-constant-logbitp x86-bit reg)) 6694 6705 (multiple-value-bind (rbit rform) (x862-two-untargeted-reg-forms seg bitnum *x862-arg-y* form *x862-arg-z*) 6695 (! set-c-flag-if-variable-logbitp rbit rform))) 6706 (with-additional-imm-reg () 6707 (! set-c-flag-if-variable-logbitp rbit rform)))) 6696 6708 (regspec-crf-gpr-case 6697 6709 (vreg dest) … … 8171 8183 (x862-form seg nil xfer offset)) 8172 8184 ((typep fixoffset '(signed-byte 16)) 8173 (format t "~&in constant offset branch")8174 8185 (with-imm-target () (val :natural) 8175 8186 (! lisp-word-ref-c val … … 8180 8191 (t (multiple-value-bind (breg oreg) 8181 8192 (x862-two-untargeted-reg-forms seg base *x862-arg-y* offset *x862-arg-z*) 8182 (format t "~&in general offset branch")8183 8193 (with-imm-target () (otemp :s32) 8184 8194 (! fixnum->signed-natural otemp oreg)
Note:
See TracChangeset
for help on using the changeset viewer.
