Merge branch 'master' into v2.1
This commit is contained in:
@@ -512,6 +512,7 @@ static void asm_gencall(ASMState *as, const CCallInfo *ci, IRRef *args)
|
||||
}
|
||||
ofs += sizeof(intptr_t);
|
||||
}
|
||||
checkmclim(as);
|
||||
}
|
||||
#if LJ_64 && !LJ_ABI_WIN
|
||||
if (patchnfpr) *patchnfpr = fpr - REGARG_FIRSTFPR;
|
||||
@@ -2203,6 +2204,7 @@ static void asm_comp_int64(ASMState *as, IRIns *ir)
|
||||
lefthi = asm_fuseload(as, ir->op1, allow);
|
||||
} else {
|
||||
lefthi = ra_alloc1(as, ir->op1, allow);
|
||||
rset_clear(allow, lefthi);
|
||||
righthi = asm_fuseload(as, ir->op2, allow);
|
||||
if (righthi == RID_MRM) {
|
||||
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)
|
||||
leftlo = asm_fuseload(as, (ir-1)->op1, allow);
|
||||
} else {
|
||||
leftlo = ra_alloc1(as, (ir-1)->op1, allow);
|
||||
rset_clear(allow, leftlo);
|
||||
rightlo = asm_fuseload(as, (ir-1)->op2, allow);
|
||||
if (rightlo == RID_MRM) {
|
||||
if (as->mrm.base != RID_NONE) rset_clear(allow, as->mrm.base);
|
||||
if (as->mrm.idx != RID_NONE) rset_clear(allow, as->mrm.idx);
|
||||
} else {
|
||||
rset_clear(allow, rightlo);
|
||||
}
|
||||
}
|
||||
|
||||
/* All register allocations must be performed _before_ this point. */
|
||||
|
||||
Reference in New Issue
Block a user