Ignore:
Timestamp:
08/09/10 12:23:20 (13 years ago)
Author:
ehuelsmann
Message:

Move the u2, s1 and s2 helper functions to jvm.lisp.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/generic-class-file/abcl/src/org/armedbear/lisp/compiler-pass2.lisp

    r12881 r12882  
    7979(defun pool-double (double)
    8080  (pool-add-double *pool* double))
    81 
    82 (defknown u2 (fixnum) cons)
    83 (defun u2 (n)
    84   (declare (optimize speed))
    85   (declare (type (unsigned-byte 16) n))
    86   (when (not (<= 0 n 65535))
    87     (error "u2 argument ~A out of 65k range." n))
    88   (list (logand (ash n -8) #xff)
    89         (logand n #xff)))
    90 
    91 (defknown s1 (fixnum) fixnum)
    92 (defun s1 (n)
    93   (declare (optimize speed))
    94   (declare (type (signed-byte 8) n))
    95   (when (not (<= -128 n 127))
    96     (error "s2 argument ~A out of 16-bit signed range." n))
    97   (if (< n 0)
    98       (1+ (logxor (- n) #xFF))
    99       n))
    100 
    101 
    102 (defknown s2 (fixnum) cons)
    103 (defun s2 (n)
    104   (declare (optimize speed))
    105   (declare (type (signed-byte 16) n))
    106   (when (not (<= -32768 n 32767))
    107     (error "s2 argument ~A out of 16-bit signed range." n))
    108   (u2 (if (< n 0) (1+ (logxor (- n) #xFFFF))
    109           n)))
    110 
    11181
    11282(defun add-exception-handler (start end handler type)
Note: See TracChangeset for help on using the changeset viewer.