Index: /trunk/ccl/compiler/X86/x862.lisp
===================================================================
--- /trunk/ccl/compiler/X86/x862.lisp	(revision 5235)
+++ /trunk/ccl/compiler/X86/x862.lisp	(revision 5236)
@@ -7935,4 +7935,11 @@
                  (<- ($ x8664::arg_z))))
               (t
+               (case resultspec
+                 (:signed-byte (! sign-extend-s8 x8664::imm0 x8664::imm0))
+                 (:signed-halfword (! sign-extend-s16 x8664::imm0 x8664::imm0))
+                 (:signed-fullword (! sign-extend-s32 x8664::imm0 x8664::imm0))
+                 (:unsigned-byte (! zero-extend-u8 x8664::imm0 x8664::imm0))
+                 (:unsigned-halfword (! zero-extend-u16 x8664::imm0 x8664::imm0))
+                 (:unsigned-fullword (! zero-extend-u32 x8664::imm0 x8664::imm0)))               
                (<- (make-wired-lreg x8664::imm0
                                     :mode
@@ -8083,4 +8090,11 @@
                  (<- ($  x8664::rax :class :gpr :mode :s64))))
               (t
+               (case resultspec
+                 (:signed-byte (! sign-extend-s8 x8664::imm0 x8664::imm0))
+                 (:signed-halfword (! sign-extend-s16 x8664::imm0 x8664::imm0))
+                 (:signed-fullword (! sign-extend-s32 x8664::imm0 x8664::imm0))
+                 (:unsigned-byte (! zero-extend-u8 x8664::imm0 x8664::imm0))
+                 (:unsigned-halfword (! zero-extend-u16 x8664::imm0 x8664::imm0))
+                 (:unsigned-fullword (! zero-extend-u32 x8664::imm0 x8664::imm0)))
                (<- (make-wired-lreg x8664::imm0
                                     :mode
