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

gb at clozure.com gb at clozure.com
Sun May 1 07:27:53 CDT 2011


Author: gb
Date: Sun May  1 07:27:53 2011
New Revision: 14768

Log:
!ALLOC-EABI-C-FRAME: can save a few instructions, since the size
of the frame is a constant.

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 Sun May  1 07:27:53 2011
@@ -2039,14 +2039,10 @@
     (()
      ((n-c-args :u16const))
      ((header :u32)
-      (size :imm)
       (prevsp :imm)))
-  (mov header (:$ (:apply ash (:apply + 1 (:apply logandc2 (:apply + 4 4 1=
 n-c-args) 1)) arm::num-subtag-bits)))
-  (mov size (:lsr header (:$ (- arm::num-subtag-bits arm::word-shift))))
-  (orr header header (:$ arm::subtag-u32-vector))
+  (movw header (:$ (:apply logior (:apply ash (:apply + 1 (:apply logandc2=
 (:apply + 4 4 1 n-c-args) 1)) arm::num-subtag-bits) arm::subtag-u32-vector=
)))
   (mov prevsp sp)
-  (add size size (:$ arm::node-size))
-  (str header (:-@! sp size))
+  (str header (:@! sp (:$ (:apply - (:apply ash (:apply + 2 (:apply logand=
c2 (:apply + 4 4 1 n-c-args) 1)) arm::word-shift)))))
   (str prevsp (:@ sp (:$ 4))))
 =

 (define-arm-vinsn (alloc-variable-eabi-c-frame :predicatable)



More information about the Openmcl-cvs-notifications mailing list