[Openmcl-cvs-notifications] r15120 - /trunk/source/compiler/ARM/arm-vinsns.lisp

gb at clozure.com gb at clozure.com
Thu Dec 8 12:16:10 CST 2011


Author: gb
Date: Thu Dec  8 12:16:10 2011
New Revision: 15120

Log:
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 >=3D 256 (not > 256).

Modified:
    trunk/source/compiler/ARM/arm-vinsns.lisp

Modified: trunk/source/compiler/ARM/arm-vinsns.lisp
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/source/compiler/ARM/arm-vinsns.lisp (original)
+++ trunk/source/compiler/ARM/arm-vinsns.lisp Thu Dec  8 12:16:10 2011
@@ -376,7 +376,8 @@
       (idx :u32const))
      ((temp :u32)))
   (ldr temp (:@ v (:$ (:apply + arm::misc-data-offset (:apply ash (:apply =
ash idx -5) arm::word-shift)))))
-  (mov temp (:ror temp (:$ (:apply logand #x1f (:apply - (:apply logand id=
x #x1f) arm::fixnumshift)))))
+  ((:not (:pred =3D 0 (:apply logand #x1f (:apply - (:apply logand idx #x1=
f) arm::fixnumshift))))
+   (mov temp (:ror temp (:$ (:apply logand #x1f (:apply - (:apply logand i=
dx #x1f) arm::fixnumshift))))))
   (and dest temp (:$ arm::fixnumone)))
 =

 =

@@ -3776,7 +3777,7 @@
     (((dest :lisp))
      ((code :u32const)))
   (movw dest (:$ (:apply logior (:apply ash (:apply logand code #xff) arm:=
:charcode-shift) arm::subtag-character)))
-  ((:pred > code 256)
+  ((:pred >=3D code 256)
    (movt dest (:$ (:apply ash code -8)))))
 =

 =




More information about the Openmcl-cvs-notifications mailing list