aboutsummaryrefslogtreecommitdiff
path: root/src/lj_asm_x86.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/lj_asm_x86.h')
-rw-r--r--src/lj_asm_x86.h9
1 files changed, 3 insertions, 6 deletions
diff --git a/src/lj_asm_x86.h b/src/lj_asm_x86.h
index 9dba6b70..d90963ef 100644
--- a/src/lj_asm_x86.h
+++ b/src/lj_asm_x86.h
@@ -512,6 +512,7 @@ static void asm_gencall(ASMState *as, const CCallInfo *ci, IRRef *args)
512 } 512 }
513 ofs += sizeof(intptr_t); 513 ofs += sizeof(intptr_t);
514 } 514 }
515 checkmclim(as);
515 } 516 }
516#if LJ_64 && !LJ_ABI_WIN 517#if LJ_64 && !LJ_ABI_WIN
517 if (patchnfpr) *patchnfpr = fpr - REGARG_FIRSTFPR; 518 if (patchnfpr) *patchnfpr = fpr - REGARG_FIRSTFPR;
@@ -2203,6 +2204,7 @@ static void asm_comp_int64(ASMState *as, IRIns *ir)
2203 lefthi = asm_fuseload(as, ir->op1, allow); 2204 lefthi = asm_fuseload(as, ir->op1, allow);
2204 } else { 2205 } else {
2205 lefthi = ra_alloc1(as, ir->op1, allow); 2206 lefthi = ra_alloc1(as, ir->op1, allow);
2207 rset_clear(allow, lefthi);
2206 righthi = asm_fuseload(as, ir->op2, allow); 2208 righthi = asm_fuseload(as, ir->op2, allow);
2207 if (righthi == RID_MRM) { 2209 if (righthi == RID_MRM) {
2208 if (as->mrm.base != RID_NONE) rset_clear(allow, as->mrm.base); 2210 if (as->mrm.base != RID_NONE) rset_clear(allow, as->mrm.base);
@@ -2218,13 +2220,8 @@ static void asm_comp_int64(ASMState *as, IRIns *ir)
2218 leftlo = asm_fuseload(as, (ir-1)->op1, allow); 2220 leftlo = asm_fuseload(as, (ir-1)->op1, allow);
2219 } else { 2221 } else {
2220 leftlo = ra_alloc1(as, (ir-1)->op1, allow); 2222 leftlo = ra_alloc1(as, (ir-1)->op1, allow);
2223 rset_clear(allow, leftlo);
2221 rightlo = asm_fuseload(as, (ir-1)->op2, allow); 2224 rightlo = asm_fuseload(as, (ir-1)->op2, allow);
2222 if (rightlo == RID_MRM) {
2223 if (as->mrm.base != RID_NONE) rset_clear(allow, as->mrm.base);
2224 if (as->mrm.idx != RID_NONE) rset_clear(allow, as->mrm.idx);
2225 } else {
2226 rset_clear(allow, rightlo);
2227 }
2228 } 2225 }
2229 2226
2230 /* All register allocations must be performed _before_ this point. */ 2227 /* All register allocations must be performed _before_ this point. */