+(define-vop (sign-extend)
+ (:translate sign-extend)
+ (:policy :fast-safe)
+ (:args (val :scs (any-reg)))
+ (:arg-types fixnum)
+ (:results (res :scs (any-reg)))
+ (:result-types fixnum)
+ (:generator 1
+ (inst movsxd res
+ (make-random-tn :kind :normal
+ :sc (sc-or-lose 'dword-reg)
+ :offset (tn-offset val)))))
+
+(defun sign-extend (x)
+ (if (logbitp 31 x)
+ (dpb x (byte 32 0) -1)
+ (ldb (byte 32 0) x)))
+
+(define-vop (foreign-symbol-sap)
+ (:translate foreign-symbol-sap)