Changeset 13818
- Timestamp:
- Jun 14, 2010, 10:12:11 AM (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/arm/compiler/ARM/arm2.lisp
r13795 r13818 2452 2452 (dest ($ arm::arg_z)) 2453 2453 (vsize (+ (length inherited-vars) 2454 2 ;%closure-code%, afunc2454 3 ; entrypoint,%closure-code%, afunc 2455 2455 2))) ; name, lfun-bits 2456 2456 (declare (list inherited-vars)) … … 2460 2460 (*arm2-top-vstack-lcell* *arm2-top-vstack-lcell*)) 2461 2461 (arm2-lri seg arm::arg_x (ash (nx-lookup-target-uvector-subtag :function) *arm2-target-fixnum-shift*)) 2462 (arm2-lri seg arm::temp0 (subprim-name->offset '.SPfix-nfn-entrypoint)) 2462 2463 (! %closure-code% arm::arg_y) 2463 2464 (arm2-store-immediate seg (arm2-afunc-lfun-ref afunc) arm::arg_z) 2465 (arm2-vpush-register-arg seg arm::temp0) 2464 2466 (arm2-vpush-register-arg seg arm::arg_x) 2465 2467 (arm2-vpush-register-arg seg arm::arg_y) … … 2475 2477 (! make-stack-gvector)) 2476 2478 (arm2-open-undo $undostkblk)) 2477 (let* ((cell 0))2479 (let* ((cell 1)) 2478 2480 (declare (fixnum cell)) 2479 2481 (progn … … 2482 2484 (arch::make-vheader vsize (nx-lookup-target-uvector-subtag :function))) 2483 2485 (! %alloc-misc-fixed dest arm::imm0 (ash vsize (arch::target-word-shift arch))) 2484 ) 2486 ) 2487 (! lri arm::arg_x (subprim-name->offset '.SPfix-nfn-entrypoint)) 2488 (! misc-set-c-node arm::arg_x dest 0) 2485 2489 (! %closure-code% arm::arg_x) 2486 2490 (arm2-store-immediate seg (arm2-afunc-lfun-ref afunc) arm::arg_y) … … 3058 3062 (if (eql op (%nx1-operator fixnum)) 3059 3063 (let* ((val (ash (cadr form) arm::fixnumshift))) 3060 (if (arm::encode-arm-immediate val) 3061 (logand val #xffffffff) 3062 (if (arm::encode-arm-immediate (lognot val)) 3063 (logand (lognot val) #xffffffff)))) 3064 (if (or (arm::encode-arm-immediate val) 3065 (arm::encode-arm-immediate (- val))) 3066 (logand val #xffffffff))) 3064 3067 (if (eql op (%nx1-operator %unbound-marker)) 3065 3068 arm::unbound-marker … … 3173 3176 3174 3177 (defun arm2-test-reg-%izerop (seg vreg xfer reg cr-bit true-p zero) 3175 (declare (fixnum reg zero))3178 (declare (fixnum reg)) 3176 3179 (with-arm-local-vinsn-macros (seg vreg xfer) 3177 3180 (regspec-crf-gpr-case … … 3179 3182 (progn 3180 3183 (if (or (arm::encode-arm-immediate zero) 3181 (arm::encode-arm-immediate ( lognotzero)))3184 (arm::encode-arm-immediate (- zero))) 3182 3185 (! compare-immediate dest reg zero) 3183 3186 (with-node-target (reg) other … … 3187 3190 (with-crf-target () crf 3188 3191 (if (or (arm::encode-arm-immediate zero) 3189 (arm::encode-arm-immediate ( lognotzero)))3192 (arm::encode-arm-immediate (- zero))) 3190 3193 (! compare-immediate crf reg (logand #xffffffff zero)) 3191 3194 (with-node-target (reg) other … … 4773 4776 (arm::make-lap-label unique))) 4774 4777 (labels ((parse-operand-form (valform) 4775 ;(break "valform = ~s" valform)4778 ;(break "valform = ~s" valform) 4776 4779 (cond ((typep valform 'keyword) 4777 4780 (or (assq valform unique-labels) … … 4830 4833 (if (eval-predicate (car f)) 4831 4834 (dolist (subform (cdr f)) 4832 (expand-form subform))))))))4835 (expand-form subform)))))))) 4833 4836 (declare (dynamic-extent #'expand-form #'parse-operand-form #'expand-insn-form #'eval-predicate)) 4834 ;(format t "~& vinsn = ~s" vinsn)4837 ;(format t "~& vinsn = ~s" vinsn) 4835 4838 (dolist (form (vinsn-template-body template)) 4836 4839 (expand-form form )) … … 5338 5341 (! negate-fixnum-overflow-inline target src) 5339 5342 (progn 5340 (! negate-fixnum-overflow-ool src)5343 (! negate-fixnum-overflow-ool ($ arm::arg_z) src) 5341 5344 (arm2-copy-register seg target ($ arm::arg_z)))))) 5342 5345 (^))) … … 5948 5951 (! fixnum-add-overflow-inline-skip ($ arm::arg_z) ($ arm::arg_y) ($ arm::arg_z) (aref *backend-labels* done)) 5949 5952 (progn 5950 (! fixnum-add-overflow-ool ($ arm::arg_ y) ($ arm::arg_z))5953 (! fixnum-add-overflow-ool ($ arm::arg_z) ($ arm::arg_y) ($ arm::arg_z)) 5951 5954 (-> done))) 5952 5955 (@ out-of-line) … … 5970 5973 (! fixnum-sub-overflow-inline-skip ($ arm::arg_z) ($ arm::arg_y) ($ arm::arg_z) (aref *backend-labels* done)) 5971 5974 (progn 5972 (! fixnum-sub-overflow-ool ($ arm::arg_ y) ($ arm::arg_z))5975 (! fixnum-sub-overflow-ool ($ arm::arg_z)($ arm::arg_y) ($ arm::arg_z)) 5973 5976 (-> done))) 5974 5977 (@ out-of-line) … … 6266 6269 (! fixnum-add-overflow-inline target r1 r2) 6267 6270 (progn 6268 (! fixnum-add-overflow-ool r1 r2)6271 (! fixnum-add-overflow-ool ($ arm::arg_z) r1 r2) 6269 6272 (arm2-copy-register seg target ($ arm::arg_z))))) 6270 6273 (^))) … … 6329 6332 (! fixnum-sub-overflow-inline target r1 r2) 6330 6333 (progn 6331 (! fixnum-sub-overflow-ool r1 r2)6334 (! fixnum-sub-overflow-ool ($ arm::arg_z) r1 r2) 6332 6335 (arm2-copy-register seg target ($ arm::arg_z))))) 6333 6336 (^)))
Note: See TracChangeset
for help on using the changeset viewer.