Index: /branches/ia32/compiler/X86/x862.lisp
===================================================================
--- /branches/ia32/compiler/X86/x862.lisp	(revision 9579)
+++ /branches/ia32/compiler/X86/x862.lisp	(revision 9580)
@@ -757,5 +757,4 @@
   (make-uarray-1 subtype size t 0 nil nil nil nil t nil))
 
-;;; xxx x8632 changes?
 (defun x862-fixup-fwd-refs (afunc)
   (dolist (f (afunc-inner-functions afunc))
@@ -763,8 +762,8 @@
   (let ((fwd-refs (afunc-fwd-refs afunc)))
     (when fwd-refs
-      (let* ((native-x8664-functions #-x8664-target nil
-                                     #+x8664-target (eq *target-backend*
-                                                        *host-backend*))
-             (v (if native-x8664-functions
+      (let* ((native-x86-functions #-x86-target nil
+				   #+x86-target (eq *target-backend*
+						    *host-backend*))
+             (v (if native-x86-functions
                   (function-to-function-vector (afunc-lfun afunc))
                   (afunc-lfun afunc)))
@@ -773,5 +772,5 @@
         (dolist (ref fwd-refs)
           (let* ((ref-fun (afunc-lfun ref)))
-            (do* ((i (if native-x8664-functions
+            (do* ((i (if native-x86-functions
                        (%function-code-words
                         (function-vector-to-function v))
@@ -1560,5 +1559,5 @@
          (:x8632 nil)
          (:x8664 t))
-      (! box-fixnum node-dest s32-src)	;xxx might overflow on x8632
+      (! box-fixnum node-dest s32-src)
       (let* ((arg_z ($ *x862-arg-z*))
              (imm0 ($ *x862-imm0* :mode :s32)))
@@ -1676,5 +1675,11 @@
 			  (if (eq type-keyword :simple-string)
 			    (! u32->char target temp)
-			    (! box-fixnum target temp)))))))
+			    (target-arch-case
+			     (:x8632
+			      (if is-signed
+				(x862-box-s32 seg target temp)
+				(x862-box-u32 seg target temp)))
+			     (:x8664
+			      (! box-fixnum target temp)))))))))
 	     (with-imm-target () idx-reg
 	       (if index-known-fixnum
@@ -1699,5 +1704,9 @@
 			  (if (eq type-keyword :simple-string)
 			    (! u32->char target temp)
-			    (! box-fixnum target temp)))))))))
+			    (target-arch-case
+			     (:x8632 (if is-signed
+				       (x862-box-s32 seg target temp)
+				       (x862-box-u32 seg target temp)))
+			     (:x8664 (! box-fixnum target temp)))))))))))
           (is-8-bit
            (with-imm-target () temp
@@ -7841,8 +7850,7 @@
 			(with-additional-imm-reg ()
 			  (with-imm-target (ptr-reg) (offset-reg :s32)
-			    (with-additional-imm-reg ()
-			      (with-imm-temps (ptr-reg) ()
-				(x862-copy-register seg fp-reg rnew)
-				(! fixnum->signed-natural offset-reg roffset)))
+			    (with-imm-temps (ptr-reg) ()
+			      (x862-copy-register seg fp-reg rnew)
+			      (! fixnum->signed-natural offset-reg roffset))
 			    (if double-p
 			      (! mem-set-double-float fp-reg ptr-reg offset-reg)
