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]); |
