diff --git a/src/code/amd64.c b/src/code/amd64.c index 20b49122970344852acaac00140887cc615d0948..b0f7fa5bda0532850e9da9353528cc9406f55e73 100644 --- a/src/code/amd64.c +++ b/src/code/amd64.c @@ -1153,7 +1153,7 @@ static void amd64_free_svalue(enum amd64_reg src, int guaranteed_ref ) /* load type -> RAX */ mov_sval_type( src, P_REG_RAX ); - and_reg_imm(P_REG_RAX, ~(MIN_REF_TYPE - 1)); + and_reg_imm(P_REG_RAX, (~(MIN_REF_TYPE - 1)) & 0x1f); /* if RAX != MIN_REF_TYPE */ cmp_reg32_imm( P_REG_RAX,MIN_REF_TYPE);