Changeset 13850


Ignore:
Timestamp:
Jun 17, 2010, 11:40:34 AM (9 years ago)
Author:
gb
Message:

Um, actually return a tagged pointer in MAKE-STACK-VCELL.
CHARACTER->FIXNUM: shift by the right amount.
FIXNUM->CHAR: shift in the right direction.
Default arg_x to arg_z (not NIL) in DEFAULT-2-ARGS.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/arm/compiler/ARM/arm-vinsns.lisp

    r13835 r13850  
    16021602  (mov header (:$ arm::subtag-value-cell))
    16031603  (orr header header (:$ (ash arm::value-cell.element-count arm::num-subtag-bits)))
    1604   (stmdb (:! sp) (closed header)))
     1604  (stmdb (:! sp) (closed header))
     1605  (add dest sp (:$ arm::fulltag-misc)))
    16051606
    16061607(define-arm-vinsn make-stack-cons (((dest :lisp))
     
    21492150                                     ())
    21502151  (bic dest src (:$ arm::subtag-mask))
    2151   (mov dest (:lsr dest (:$ (- arm::ncharcodebits arm::fixnumshift)))))
     2152  (mov dest (:lsr dest (:$ (- arm::charcode-shift arm::fixnumshift)))))
    21522153
    21532154(define-arm-vinsn character->code (((dest :u32))
     
    21582159(define-arm-vinsn fixnum->char (((dest :lisp))
    21592160                                ((src :imm))
    2160                                 ((temp :u32)
    2161                                  (temp2 :u32)))
    2162   (mov temp2 (:$ #x7f00))
    2163   (mov temp (:lsr src (:$ (+ arm::fixnumshift 1))))
    2164   (orr temp2 temp2 (:$ #xff))
    2165   (cmp temp temp2)
    2166   (mov temp (:lsr src (:$ (+ arm::fixnumshift 11))))
     2161                                ((tempa :u32)
     2162                                 (tempb :u32)))
     2163  (mov tempb (:$ #x7f00))
     2164  (mov tempa (:lsr src (:$ (+ arm::fixnumshift 1))))
     2165  (orr tempb tempb (:$ #xff))
     2166  (cmp tempa tempb)
     2167  (mov tempa (:lsr src (:$ (+ arm::fixnumshift 11))))
    21672168  (beq :bad)
    2168   (cmp temp (:$ 27))
    2169   (mov dest (:lsr src (:$ (- arm::charcode-shift arm::fixnumshift))))
     2169  (cmp tempa (:$ 27))
     2170  (mov dest (:lsl src (:$ (- arm::charcode-shift arm::fixnumshift))))
    21702171  :bad
    21712172  (moveq dest (:$ arm::nil-value))
     
    29292930   (str arg_y (:@! vsp (:$ (- arm::node-size)))))
    29302931  ((:pred >= min 1)
    2931    (mov arg_x (:$ arm::nil-value)))
     2932   (mov arg_x arg_z))
    29322933  (mov arg_y (:$ arm::nil-value))
    29332934  (b :last)
Note: See TracChangeset for help on using the changeset viewer.