diff --git a/ujit_codegen.c b/ujit_codegen.c index bb0b802fc4..e45005a70e 100644 --- a/ujit_codegen.c +++ b/ujit_codegen.c @@ -570,9 +570,9 @@ gen_opt_lt(jitstate_t* jit, ctx_t* ctx) } // Compare the arguments - mov(cb, REG0, arg0); - cmp(cb, REG0, arg1); - mov(cb, REG0, imm_opnd(Qfalse)); + xor(cb, REG0_32, REG0_32); // REG0 = Qfalse + mov(cb, REG1, arg0); + cmp(cb, REG1, arg1); mov(cb, REG1, imm_opnd(Qtrue)); cmovl(cb, REG0, REG1); diff --git a/ujit_core.h b/ujit_core.h index 7b230d779d..c86a9412dc 100644 --- a/ujit_core.h +++ b/ujit_core.h @@ -35,10 +35,10 @@ typedef struct CtxStruct uint8_t temp_types[MAX_TEMP_TYPES]; // Number of values pushed on the temporary stack - uint32_t stack_size; + uint16_t stack_size; // Whether we know self is a heap object - bool self_is_object; + bool self_is_object : 1; } ctx_t;