Index: /branches/ia32/compiler/X86/x862.lisp
===================================================================
--- /branches/ia32/compiler/X86/x862.lisp	(revision 7875)
+++ /branches/ia32/compiler/X86/x862.lisp	(revision 7876)
@@ -1796,12 +1796,13 @@
                (! misc-ref-c-bit-fixnum target src index-known-fixnum)
 	       (with-additional-imm-reg ()
-		 (with-imm-temps
-		     () (word-index bitnum)
-		   (if index-known-fixnum
-		     (progn
-		       (x862-lri seg word-index (+ (arch::target-misc-data-offset arch) (ash index-known-fixnum -6)))
-		       (x862-lri seg bitnum (logand index-known-fixnum #x63)))
-		     (! word-index-and-bitnum-from-index word-index bitnum unscaled-idx))
-		   (! ref-bit-vector-fixnum target bitnum src word-index)))))))))
+		 (with-additional-imm-reg ()
+		   (with-imm-temps
+		       () (word-index bitnum)
+		     (if index-known-fixnum
+		       (progn
+			 (x862-lri seg word-index (+ (arch::target-misc-data-offset arch) (ash index-known-fixnum -6)))
+			 (x862-lri seg bitnum (logand index-known-fixnum #x63)))
+		       (! word-index-and-bitnum-from-index word-index bitnum unscaled-idx))
+		     (! ref-bit-vector-fixnum target bitnum src word-index))))))))))
     (^)))
 
@@ -3072,8 +3073,12 @@
         (setq vinsn (x862-vpush-register seg areg :node-temp))
         (if a-single
-          (progn
-            (setq vinsn (! vpush-single-float areg))
-            (x862-new-vstack-lcell :single-float *x862-target-lcell-size* 0 nil)
-            (x862-adjust-vstack *x862-target-node-size*))
+	  (target-arch-case
+	   (:x8632
+	    (setq vinsn (! temp-push-single-float areg))
+	    (incf *x862-cstack* *x862-target-dnode-size*))
+	   (:x8664
+	    (setq vinsn (! vpush-single-float areg))
+	    (x862-new-vstack-lcell :single-float *x862-target-lcell-size* 0 nil)
+	    (x862-adjust-vstack *x862-target-node-size*)))
           (progn
             (setq vinsn
@@ -3093,8 +3098,12 @@
         (setq vinsn (x862-vpop-register seg areg))
         (if a-single
-          (progn
+          (target-arch-case
+	   (:x8632
+	    (setq vinsn (! temp-pop-single-float areg))
+	    (decf *x862-cstack* *x862-target-dnode-size*))
+	   (:x8664
             (setq vinsn (! vpop-single-float areg))
             (setq *x862-top-vstack-lcell* (lcell-parent *x862-top-vstack-lcell*))
-            (x862-adjust-vstack (- *x862-target-node-size*)))
+            (x862-adjust-vstack (- *x862-target-node-size*))))
           (progn
             (setq vinsn
@@ -3111,5 +3120,5 @@
       (declare (fixnum class mode))
       (cond ((= class hard-reg-class-fpr)
-             (make-wired-lreg x8664::fp1 :class class :mode mode))
+             (make-wired-lreg target::fp1 :class class :mode mode))
             ((= class hard-reg-class-gpr)
              (if (= mode hard-reg-class-gpr-mode-node)
@@ -6491,5 +6500,7 @@
                                        char *x862-arg-z*)
     (case (arch::target-char-code-limit (backend-target-arch *target-backend*))
-      (256 (! %set-scharcode8 src unscaled-idx char))
+      (256
+       (with-additional-imm-reg ()
+	 (! %set-scharcode8 src unscaled-idx char)))
       (t 
        (with-additional-imm-reg ()
@@ -6693,5 +6704,6 @@
             (! set-c-flag-if-constant-logbitp x86-bit reg))
           (multiple-value-bind (rbit rform) (x862-two-untargeted-reg-forms seg bitnum *x862-arg-y* form *x862-arg-z*)
-            (! set-c-flag-if-variable-logbitp rbit rform)))
+	    (with-additional-imm-reg ()
+	      (! set-c-flag-if-variable-logbitp rbit rform))))
         (regspec-crf-gpr-case 
          (vreg dest)
@@ -8171,5 +8183,4 @@
            (x862-form seg nil xfer offset))
           ((typep fixoffset '(signed-byte 16))
-	   (format t "~&in constant offset branch")
 	   (with-imm-target () (val :natural)
 	     (! lisp-word-ref-c val
@@ -8180,5 +8191,4 @@
           (t (multiple-value-bind (breg oreg)
 		 (x862-two-untargeted-reg-forms seg base *x862-arg-y* offset *x862-arg-z*)
-	       (format t "~&in general offset branch")
                (with-imm-target () (otemp :s32)
                  (! fixnum->signed-natural otemp oreg)
