diff options
author | Mike Pall <mike> | 2022-07-27 11:32:33 +0200 |
---|---|---|
committer | Mike Pall <mike> | 2022-07-27 11:32:33 +0200 |
commit | e1339aed3db2fb8488a170383fc456fe04879709 (patch) | |
tree | bb32e3ef9407341e8e1fde8ade3882178d89fb15 | |
parent | 3065c910ad6027031aabe2dfd3c26a3d0f014b4f (diff) | |
download | luajit-e1339aed3db2fb8488a170383fc456fe04879709.tar.gz luajit-e1339aed3db2fb8488a170383fc456fe04879709.tar.bz2 luajit-e1339aed3db2fb8488a170383fc456fe04879709.zip |
x86/x64: Limit VLOAD fusion to simple cases.
Reported by ccagml.
Diffstat (limited to '')
-rw-r--r-- | src/lj_asm_x86.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/lj_asm_x86.h b/src/lj_asm_x86.h index 4465efa2..2bf9d939 100644 --- a/src/lj_asm_x86.h +++ b/src/lj_asm_x86.h | |||
@@ -485,7 +485,8 @@ static Reg asm_fuseload(ASMState *as, IRRef ref, RegSet allow) | |||
485 | asm_fusexref(as, ir->op1, xallow); | 485 | asm_fusexref(as, ir->op1, xallow); |
486 | return RID_MRM; | 486 | return RID_MRM; |
487 | } | 487 | } |
488 | } else if (ir->o == IR_VLOAD && !(LJ_GC64 && irt_isaddr(ir->t))) { | 488 | } else if (ir->o == IR_VLOAD && IR(ir->op1)->o == IR_AREF && |
489 | !(LJ_GC64 && irt_isaddr(ir->t))) { | ||
489 | asm_fuseahuref(as, ir->op1, xallow); | 490 | asm_fuseahuref(as, ir->op1, xallow); |
490 | as->mrm.ofs += 8 * ir->op2; | 491 | as->mrm.ofs += 8 * ir->op2; |
491 | return RID_MRM; | 492 | return RID_MRM; |