diff options
author | Mike Pall <mike> | 2012-07-02 22:50:03 +0200 |
---|---|---|
committer | Mike Pall <mike> | 2012-07-02 22:50:03 +0200 |
commit | f093a34a2f7a80b8a85880864dac2f3dad814f51 (patch) | |
tree | 4dfb89af873d9f18357b5b5a90e38657e07ee4e4 | |
parent | 0688de5483c04207220223cbb16a3869849129ab (diff) | |
download | luajit-f093a34a2f7a80b8a85880864dac2f3dad814f51.tar.gz luajit-f093a34a2f7a80b8a85880864dac2f3dad814f51.tar.bz2 luajit-f093a34a2f7a80b8a85880864dac2f3dad814f51.zip |
Handle joining IR_HIOP in SPLIT pass.
-rw-r--r-- | src/lj_opt_split.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/lj_opt_split.c b/src/lj_opt_split.c index 77b8e2dd..b0da7f3a 100644 --- a/src/lj_opt_split.c +++ b/src/lj_opt_split.c | |||
@@ -365,6 +365,11 @@ static void split_ir(jit_State *J) | |||
365 | split_emit(J, IRT(IR_PHI, IRT_SOFTFP), | 365 | split_emit(J, IRT(IR_PHI, IRT_SOFTFP), |
366 | hisubst[ir->op1], hisubst[ir->op2]); | 366 | hisubst[ir->op1], hisubst[ir->op2]); |
367 | break; | 367 | break; |
368 | case IR_HIOP: | ||
369 | J->cur.nins--; /* Drop joining HIOP. */ | ||
370 | ir->prev = nir->op1; | ||
371 | hi = nir->op2; | ||
372 | break; | ||
368 | default: | 373 | default: |
369 | lua_assert(ir->o <= IR_NE || ir->o == IR_MIN || ir->o == IR_MAX); | 374 | lua_assert(ir->o <= IR_NE || ir->o == IR_MIN || ir->o == IR_MAX); |
370 | hi = split_emit(J, IRTG(IR_HIOP, IRT_SOFTFP), | 375 | hi = split_emit(J, IRTG(IR_HIOP, IRT_SOFTFP), |
@@ -469,6 +474,11 @@ static void split_ir(jit_State *J) | |||
469 | split_emit(J, IRTI(IR_PHI), hiref, hiref2); | 474 | split_emit(J, IRTI(IR_PHI), hiref, hiref2); |
470 | break; | 475 | break; |
471 | } | 476 | } |
477 | case IR_HIOP: | ||
478 | J->cur.nins--; /* Drop joining HIOP. */ | ||
479 | ir->prev = nir->op1; | ||
480 | hi = nir->op2; | ||
481 | break; | ||
472 | default: | 482 | default: |
473 | lua_assert(ir->o <= IR_NE); /* Comparisons. */ | 483 | lua_assert(ir->o <= IR_NE); /* Comparisons. */ |
474 | split_emit(J, IRTGI(IR_HIOP), hiref, hisubst[ir->op2]); | 484 | split_emit(J, IRTGI(IR_HIOP), hiref, hisubst[ir->op2]); |