summaryrefslogtreecommitdiff
path: root/src/lj_opt_split.c
diff options
context:
space:
mode:
authorMike Pall <mike>2012-09-27 14:39:16 +0200
committerMike Pall <mike>2012-09-27 14:39:16 +0200
commitd4d9807f45eba1f8fc503831c8ee2577684244bd (patch)
treef900bcc8c7269da076f71fdcfae2e54babb6a45a /src/lj_opt_split.c
parent0ecdff43e80dcd1d489c3daca0077dbfae9042b6 (diff)
downloadluajit-d4d9807f45eba1f8fc503831c8ee2577684244bd.tar.gz
luajit-d4d9807f45eba1f8fc503831c8ee2577684244bd.tar.bz2
luajit-d4d9807f45eba1f8fc503831c8ee2577684244bd.zip
Fold KPTR + offset in SPLIT pass.
Diffstat (limited to 'src/lj_opt_split.c')
-rw-r--r--src/lj_opt_split.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/lj_opt_split.c b/src/lj_opt_split.c
index 186dc8c0..da2c7184 100644
--- a/src/lj_opt_split.c
+++ b/src/lj_opt_split.c
@@ -184,6 +184,8 @@ static IRRef split_ptr(jit_State *J, IRIns *oir, IRRef ref)
184 IRRef nref = oir[ref].prev; 184 IRRef nref = oir[ref].prev;
185 IRIns *ir = IR(nref); 185 IRIns *ir = IR(nref);
186 int32_t ofs = 4; 186 int32_t ofs = 4;
187 if (ir->o == IR_KPTR)
188 return lj_ir_kptr(J, (char *)ir_kptr(ir) + ofs);
187 if (ir->o == IR_ADD && irref_isk(ir->op2) && !irt_isphi(oir[ref].t)) { 189 if (ir->o == IR_ADD && irref_isk(ir->op2) && !irt_isphi(oir[ref].t)) {
188 /* Reassociate address. */ 190 /* Reassociate address. */
189 ofs += IR(ir->op2)->i; 191 ofs += IR(ir->op2)->i;