Changeset 11578
- Timestamp:
- 01/24/09 10:12:17 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/abcl/src/org/armedbear/lisp/compiler-pass2.lisp
r11571 r11578 2289 2289 (emit-invokevirtual +lisp-bignum-class+ "floatValue" nil "F")) 2290 2290 ((typep form 'single-float) 2291 (emit 'ldc ( declare-float form)))2291 (emit 'ldc (pool-float form))) 2292 2292 ((typep form 'double-float) 2293 (emit 'ldc2_w ( declare-double form))2293 (emit 'ldc2_w (pool-double form)) 2294 2294 (emit 'd2f)) 2295 2295 (t (assert nil))) … … 2307 2307 (emit 'getfield *this-class* (declare-bignum form) 2308 2308 +lisp-bignum+) 2309 (emit-invokevirtual +lisp-bignum-class+ "doubleValue" nil "D") 2309 (emit-invokevirtual +lisp-bignum-class+ "doubleValue" nil "D")) 2310 2310 ((typep form 'single-float) 2311 (emit 'ldc ( declare-float form))2311 (emit 'ldc (pool-float form)) 2312 2312 (emit 'f2d)) 2313 2313 ((typep form 'double-float) 2314 (emit 'ldc2_w ( declare-double form)))2314 (emit 'ldc2_w (pool-double form))) 2315 2315 (t (assert nil))) 2316 2316 (emit-move-from-stack target representation) 2317 (return-from compile-constant))) )2317 (return-from compile-constant))) 2318 2318 (cond ((fixnump form) 2319 2319 (let ((translation (case form … … 6787 6787 (compile-forms-and-maybe-emit-clear-values arg2 'stack nil) 6788 6788 (emit-invoke-method "incr" target representation)) 6789 ((fixnum-type-p type1) 6790 (compile-forms-and-maybe-emit-clear-values arg1 'stack :int 6791 arg2 'stack nil) 6792 (emit 'swap) 6793 (emit-invokevirtual +lisp-object-class+ "add" '("I") +lisp-object+) 6794 (fix-boxing representation result-type) 6795 (emit-move-from-stack target representation)) 6796 ((fixnum-type-p type2) 6797 (compile-forms-and-maybe-emit-clear-values arg1 'stack nil 6798 arg2 'stack :int) 6789 ((or (fixnum-type-p type1) (fixnum-type-p type2)) 6790 (compile-forms-and-maybe-emit-clear-values 6791 arg1 'stack (when (fixnum-type-p type1) :int) 6792 arg2 'stack (when (fixnum-type-p type2) :int)) 6793 (when (fixnum-type-p type1) 6794 (emit 'swap)) 6799 6795 (emit-invokevirtual +lisp-object-class+ "add" '("I") +lisp-object+) 6800 6796 (fix-boxing representation result-type) … … 6868 6864 (convert-long representation) 6869 6865 (emit-move-from-stack target representation)) 6870 ((fixnum-type-p type2) 6871 (compile-forms-and-maybe-emit-clear-values arg1 'stack nil 6872 arg2 'stack :int) 6873 (emit-invokevirtual +lisp-object-class+ "subtract" '("I") +lisp-object+) 6866 ((or (fixnum-type-p type1) (fixnum-type-p type2)) 6867 (compile-forms-and-maybe-emit-clear-values 6868 arg1 'stack (when (fixnum-type-p type1) :int) 6869 arg2 'stack (when (fixnum-type-p type2) :int)) 6870 (when (fixnum-type-p type1) 6871 (emit 'swap)) 6872 (emit-invokevirtual +lisp-object-class+ "subtract" 6873 '("I") +lisp-object+) 6874 6874 (fix-boxing representation result-type) 6875 6875 (emit-move-from-stack target representation))
Note: See TracChangeset
for help on using the changeset viewer.