+#-sb-xc-host
+(defun sign-extend (x size)
+ (declare (type fixnum x))
+ (ecase size
+ (8 (sign-extend x size))
+ (16 (sign-extend x size))
+ (32 (sign-extend x size))))
+
+#+sb-xc-host
+(defun sign-extend (x size)
+ (if (logbitp (1- size) x)
+ (dpb x (byte size 0) -1)
+ x))