Changeset 15120


Ignore:
Timestamp:
Dec 8, 2011, 6:16:10 PM (8 years ago)
Author:
gb
Message:

In MISC-REF-C-BIT-FIXNUM, don't try to rotate right by 0 bits.
In LOAD-CHARACTER-CONSTANT, need to set high 16 bits of result
if code >= 256 (not > 256).

File:
1 edited

Legend:

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

    r15111 r15120  
    377377     ((temp :u32)))
    378378  (ldr temp (:@ v (:$ (:apply + arm::misc-data-offset (:apply ash (:apply ash idx -5) arm::word-shift)))))
    379   (mov temp (:ror temp (:$ (:apply logand #x1f (:apply - (:apply logand idx #x1f) arm::fixnumshift)))))
     379  ((:not (:pred = 0 (:apply logand #x1f (:apply - (:apply logand idx #x1f) arm::fixnumshift))))
     380   (mov temp (:ror temp (:$ (:apply logand #x1f (:apply - (:apply logand idx #x1f) arm::fixnumshift))))))
    380381  (and dest temp (:$ arm::fixnumone)))
    381382
     
    37773778     ((code :u32const)))
    37783779  (movw dest (:$ (:apply logior (:apply ash (:apply logand code #xff) arm::charcode-shift) arm::subtag-character)))
    3779   ((:pred > code 256)
     3780  ((:pred >= code 256)
    37803781   (movt dest (:$ (:apply ash code -8)))))
    37813782
Note: See TracChangeset for help on using the changeset viewer.