Index: /trunk/source/compiler/X86/x862.lisp
===================================================================
--- /trunk/source/compiler/X86/x862.lisp	(revision 15172)
+++ /trunk/source/compiler/X86/x862.lisp	(revision 15173)
@@ -851,5 +851,5 @@
 
 (defun x862-regmap-note-store (gpr loc)
-  (let* ((gpr (%hard-regspec-value gpr)))
+  (let* ((gpr (if gpr (%hard-regspec-value gpr))))
     ;; Any other GPRs that had contained loc no longer do so.
     (dotimes (i 16)
@@ -861,9 +861,10 @@
             (setq *x862-gpr-locations-valid-mask*
 		  (logandc2 *x862-gpr-locations-valid-mask* (ash 1 i)))))))
-    (if (logbitp gpr *x862-gpr-locations-valid-mask*)
-      (push loc (svref *x862-gpr-locations* gpr))
-      (setf (svref *x862-gpr-locations* gpr) (list loc)))
-    (setq *x862-gpr-locations-valid-mask*
-          (logior *x862-gpr-locations-valid-mask* (ash 1 gpr)))))
+    (when gpr
+      (if (logbitp gpr *x862-gpr-locations-valid-mask*)
+        (push loc (svref *x862-gpr-locations* gpr))
+        (setf (svref *x862-gpr-locations* gpr) (list loc)))
+      (setq *x862-gpr-locations-valid-mask*
+            (logior *x862-gpr-locations-valid-mask* (ash 1 gpr))))))
   
 ;;; For vpush: nothing else should claim to contain loc.
@@ -1368,5 +1369,8 @@
     (apply (x862-acode-operator-function form) seg vreg xfer args)))
 
+
 (defun x862-form (seg vreg xfer form)
+  (when (eq vreg :push)
+    (x862-regmap-note-store nil *x862-vstack*))
   (with-note (form seg)
     (if (nx-null form)
@@ -3290,5 +3294,5 @@
       (dolist (arg stkargs)
         (let* ((pushform (x862-acode-operator-supports-push arg)))
-          (if pushform
+en          (if pushformne
             (progn
               (x862-form seg :push nil pushform)
@@ -5423,5 +5427,4 @@
       (dolist (f initforms) (x862-form seg nil nil f))
       (let* ((*x862-vstack* *x862-vstack*)
-             (entry-vstack *x862-vstack*)
              (*x862-top-vstack-lcell* *x862-top-vstack-lcell*)
              (arch (backend-target-arch *target-backend*))
@@ -5482,6 +5485,5 @@
                          (! misc-set-c-node reg target index)))))
                  (! vstack-discard nntriv))
-               ))
-        (x862-regmap-note-vstack-delta entry-vstack *x862-vstack*)))
+               ))))
      (^)))
 
