diff options
author | Mike Pall <mike> | 2012-09-27 14:39:16 +0200 |
---|---|---|
committer | Mike Pall <mike> | 2012-09-27 14:39:16 +0200 |
commit | d4d9807f45eba1f8fc503831c8ee2577684244bd (patch) | |
tree | f900bcc8c7269da076f71fdcfae2e54babb6a45a /src/lj_opt_split.c | |
parent | 0ecdff43e80dcd1d489c3daca0077dbfae9042b6 (diff) | |
download | luajit-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.c | 2 |
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; |