aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMike Pall <mike>2011-10-19 00:17:19 +0200
committerMike Pall <mike>2011-10-19 00:17:19 +0200
commit2fcd56258284501c6ac874d26a61ea65a05480af (patch)
treea747f784897189b9e5496dfb5d6c2c0a30a557cb /src
parentf50075a9d71bcd2a19029d5bbf1d1d2af6c90bd6 (diff)
downloadluajit-2fcd56258284501c6ac874d26a61ea65a05480af.tar.gz
luajit-2fcd56258284501c6ac874d26a61ea65a05480af.tar.bz2
luajit-2fcd56258284501c6ac874d26a61ea65a05480af.zip
Don't fuse colocated array offsets without -Ofuse.
Diffstat (limited to 'src')
-rw-r--r--src/lj_asm_arm.h2
-rw-r--r--src/lj_asm_x86.h2
2 files changed, 2 insertions, 2 deletions
diff --git a/src/lj_asm_arm.h b/src/lj_asm_arm.h
index 153bb523..9da618ce 100644
--- a/src/lj_asm_arm.h
+++ b/src/lj_asm_arm.h
@@ -119,7 +119,7 @@ static int32_t asm_fuseabase(ASMState *as, IRRef ref)
119{ 119{
120 IRIns *ir = IR(ref); 120 IRIns *ir = IR(ref);
121 if (ir->o == IR_TNEW && ir->op1 <= LJ_MAX_COLOSIZE && 121 if (ir->o == IR_TNEW && ir->op1 <= LJ_MAX_COLOSIZE &&
122 noconflict(as, ref, IR_NEWREF)) 122 !neverfuse(as) && noconflict(as, ref, IR_NEWREF))
123 return (int32_t)sizeof(GCtab); 123 return (int32_t)sizeof(GCtab);
124 return 0; 124 return 0;
125} 125}
diff --git a/src/lj_asm_x86.h b/src/lj_asm_x86.h
index 840484d0..f4ac0c10 100644
--- a/src/lj_asm_x86.h
+++ b/src/lj_asm_x86.h
@@ -118,7 +118,7 @@ static IRRef asm_fuseabase(ASMState *as, IRRef ref)
118 lua_assert(irb->op2 == IRFL_TAB_ARRAY); 118 lua_assert(irb->op2 == IRFL_TAB_ARRAY);
119 /* We can avoid the FLOAD of t->array for colocated arrays. */ 119 /* We can avoid the FLOAD of t->array for colocated arrays. */
120 if (ira->o == IR_TNEW && ira->op1 <= LJ_MAX_COLOSIZE && 120 if (ira->o == IR_TNEW && ira->op1 <= LJ_MAX_COLOSIZE &&
121 noconflict(as, irb->op1, IR_NEWREF, 1)) { 121 !neverfuse(as) && noconflict(as, irb->op1, IR_NEWREF, 1)) {
122 as->mrm.ofs = (int32_t)sizeof(GCtab); /* Ofs to colocated array. */ 122 as->mrm.ofs = (int32_t)sizeof(GCtab); /* Ofs to colocated array. */
123 return irb->op1; /* Table obj. */ 123 return irb->op1; /* Table obj. */
124 } 124 }