aboutsummaryrefslogtreecommitdiff
path: root/src/lj_asm_x86.h
diff options
context:
space:
mode:
authorMike Pall <mike>2013-04-04 18:20:58 +0200
committerMike Pall <mike>2013-04-04 18:20:58 +0200
commitac14d88030a8af1e2c56f8c4721872dd9a799abb (patch)
treed2b563cbb6bd080450735ee0933c05f5114374eb /src/lj_asm_x86.h
parentdf94b81b2d9244b9c88486bfd15a001fd899b46b (diff)
parent389822d606045a953bd30e14ebc50ff97bce8a59 (diff)
downloadluajit-ac14d88030a8af1e2c56f8c4721872dd9a799abb.tar.gz
luajit-ac14d88030a8af1e2c56f8c4721872dd9a799abb.tar.bz2
luajit-ac14d88030a8af1e2c56f8c4721872dd9a799abb.zip
Merge branch 'master' into v2.1
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. */