#define X_OBJECT_ADDRESS(o) ((word_t) (OBJECT_ADDRESS (o)))
+#define X_FIXNUM_TO_LONG(o) \
+ ((((long) (o)) << TYPE_CODE_LENGTH) >> TYPE_CODE_LENGTH)
+
DEFINE_INST (load_non_pointer_tc_s8)
{
DECODE_SVM1_INST_LOAD_NON_POINTER_TC_S8 (target, type, datum);
DEFINE_UNARY_WR (object_type, OBJECT_TYPE, OBJECT_TYPE)
DEFINE_UNARY_WR (object_datum, OBJECT_DATUM, OBJECT_DATUM)
DEFINE_UNARY_WR (object_address, OBJECT_ADDRESS, X_OBJECT_ADDRESS)
-DEFINE_UNARY_WR (fixnum_to_integer, FIXNUM_TO_INTEGER, FIXNUM_TO_LONG)
+DEFINE_UNARY_WR (fixnum_to_integer, FIXNUM_TO_INTEGER, X_FIXNUM_TO_LONG)
DEFINE_UNARY_WR (integer_to_fixnum, INTEGER_TO_FIXNUM, LONG_TO_FIXNUM)
DEFINE_UNARY_WR (flonum_length, FLONUM_LENGTH, FLOATING_VECTOR_LENGTH)