- Timestamp:
- 08/01/10 21:31:06 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/generic-class-file/abcl/src/org/armedbear/lisp/compiler-pass2.lisp
r12845 r12846 216 216 (defconstant +closure-binding-array+ "[Lorg/armedbear/lisp/ClosureBinding;") 217 217 (defconstant +lisp-fixnum-array+ "[Lorg/armedbear/lisp/Fixnum;") 218 (defconstant +lisp-single-float-class+ "org/armedbear/lisp/SingleFloat")219 (defconstant +lisp-single-float+ "Lorg/armedbear/lisp/SingleFloat;")220 (defconstant +lisp-double-float-class+ "org/armedbear/lisp/DoubleFloat")221 (defconstant +lisp-double-float+ "Lorg/armedbear/lisp/DoubleFloat;")222 218 (defconstant +lisp-character-array+ "[Lorg/armedbear/lisp/LispCharacter;") 223 219 (defconstant +lisp-closure-parameter-array+ "[Lorg/armedbear/lisp/Closure$Parameter;") … … 639 635 (:int . ,+lisp-integer+) 640 636 (:long . ,+lisp-integer+) 641 (:float . ,+ !lisp-single-float+)642 (:double . ,+ !lisp-double-float+))637 (:float . ,+lisp-single-float+) 638 (:double . ,+lisp-double-float+)) 643 639 "Lists the class on which to call the `getInstance' method on, 644 640 when converting the internal representation to a LispObject.") … … 929 925 (declare (optimize speed)) 930 926 (cond ((= *safety* 3) 931 (emit-invokestatic +lisp-single-float -class+ "getValue"927 (emit-invokestatic +lisp-single-float+ "getValue" 932 928 (lisp-object-arg-types 1) "F")) 933 929 (t 934 (emit 'checkcast +lisp-single-float -class+)935 (emit 'getfield +lisp-single-float -class+ "value" "F"))))930 (emit 'checkcast +lisp-single-float+) 931 (emit 'getfield +lisp-single-float+ "value" "F")))) 936 932 937 933 (defknown emit-unbox-double () t) … … 939 935 (declare (optimize speed)) 940 936 (cond ((= *safety* 3) 941 (emit-invokestatic +lisp-double-float -class+ "getValue"937 (emit-invokestatic +lisp-double-float+ "getValue" 942 938 (lisp-object-arg-types 1) "D")) 943 939 (t 944 (emit 'checkcast +lisp-double-float -class+)945 (emit 'getfield +lisp-double-float -class+ "value" "D"))))940 (emit 'checkcast +lisp-double-float+) 941 (emit 'getfield +lisp-double-float+ "value" "D")))) 946 942 947 943 (defknown fix-boxing (t t) t) … … 2066 2062 (defun serialize-float (s) 2067 2063 "Generates code to restore a serialized single-float." 2068 (emit 'new +lisp-single-float -class+)2064 (emit 'new +lisp-single-float+) 2069 2065 (emit 'dup) 2070 2066 (emit 'ldc (pool-float s)) 2071 (emit-invokespecial-init +lisp-single-float -class+ '("F")))2067 (emit-invokespecial-init +lisp-single-float+ '("F"))) 2072 2068 2073 2069 (defun serialize-double (d) 2074 2070 "Generates code to restore a serialized double-float." 2075 (emit 'new +lisp-double-float -class+)2071 (emit 'new +lisp-double-float+) 2076 2072 (emit 'dup) 2077 2073 (emit 'ldc2_w (pool-double d)) 2078 (emit-invokespecial-init +lisp-double-float -class+ '("D")))2074 (emit-invokespecial-init +lisp-double-float+ '("D"))) 2079 2075 2080 2076 (defun serialize-string (string) … … 2128 2124 `((integer "INT" ,#'eql ,#'serialize-integer ,+lisp-integer+) 2129 2125 (character "CHR" ,#'eql ,#'serialize-character ,+lisp-character+) 2130 (single-float "FLT" ,#'eql ,#'serialize-float ,+ !lisp-single-float+)2131 (double-float "DBL" ,#'eql ,#'serialize-double ,+ !lisp-double-float+)2126 (single-float "FLT" ,#'eql ,#'serialize-float ,+lisp-single-float+) 2127 (double-float "DBL" ,#'eql ,#'serialize-double ,+lisp-double-float+) 2132 2128 (string "STR" ,#'equal ,#'serialize-string 2133 2129 ,+lisp-abstract-string+) ;; because of (not compile-file)
Note: See TracChangeset
for help on using the changeset viewer.