diff options
author | Mike Pall <mike> | 2011-10-19 00:17:19 +0200 |
---|---|---|
committer | Mike Pall <mike> | 2011-10-19 00:17:19 +0200 |
commit | 2fcd56258284501c6ac874d26a61ea65a05480af (patch) | |
tree | a747f784897189b9e5496dfb5d6c2c0a30a557cb /src | |
parent | f50075a9d71bcd2a19029d5bbf1d1d2af6c90bd6 (diff) | |
download | luajit-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.h | 2 | ||||
-rw-r--r-- | src/lj_asm_x86.h | 2 |
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 | } |