Index: /trunk/source/compiler/ARM/arm-vinsns.lisp
===================================================================
--- /trunk/source/compiler/ARM/arm-vinsns.lisp	(revision 14767)
+++ /trunk/source/compiler/ARM/arm-vinsns.lisp	(revision 14768)
@@ -2040,12 +2040,8 @@
      ((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 logandc2 (:apply + 4 4 1 n-c-args) 1)) arm::word-shift)))))
   (str prevsp (:@ sp (:$ 4))))
 
