diff options
Diffstat (limited to 'src/lj_opt_mem.c')
-rw-r--r-- | src/lj_opt_mem.c | 25 |
1 files changed, 5 insertions, 20 deletions
diff --git a/src/lj_opt_mem.c b/src/lj_opt_mem.c index 281f29ad..5659a056 100644 --- a/src/lj_opt_mem.c +++ b/src/lj_opt_mem.c | |||
@@ -352,10 +352,7 @@ TRef LJ_FASTCALL lj_opt_dse_ahstore(jit_State *J) | |||
352 | goto doemit; /* No elimination possible. */ | 352 | goto doemit; /* No elimination possible. */ |
353 | /* Remove redundant store from chain and replace with NOP. */ | 353 | /* Remove redundant store from chain and replace with NOP. */ |
354 | *refp = store->prev; | 354 | *refp = store->prev; |
355 | store->o = IR_NOP; | 355 | lj_ir_nop(store); |
356 | store->t.irt = IRT_NIL; | ||
357 | store->op1 = store->op2 = 0; | ||
358 | store->prev = 0; | ||
359 | /* Now emit the new store instead. */ | 356 | /* Now emit the new store instead. */ |
360 | } | 357 | } |
361 | goto doemit; | 358 | goto doemit; |
@@ -456,10 +453,7 @@ TRef LJ_FASTCALL lj_opt_dse_ustore(jit_State *J) | |||
456 | goto doemit; /* No elimination possible. */ | 453 | goto doemit; /* No elimination possible. */ |
457 | /* Remove redundant store from chain and replace with NOP. */ | 454 | /* Remove redundant store from chain and replace with NOP. */ |
458 | *refp = store->prev; | 455 | *refp = store->prev; |
459 | store->o = IR_NOP; | 456 | lj_ir_nop(store); |
460 | store->t.irt = IRT_NIL; | ||
461 | store->op1 = store->op2 = 0; | ||
462 | store->prev = 0; | ||
463 | if (ref+1 < J->cur.nins && | 457 | if (ref+1 < J->cur.nins && |
464 | store[1].o == IR_OBAR && store[1].op1 == xref) { | 458 | store[1].o == IR_OBAR && store[1].op1 == xref) { |
465 | IRRef1 *bp = &J->chain[IR_OBAR]; | 459 | IRRef1 *bp = &J->chain[IR_OBAR]; |
@@ -468,10 +462,7 @@ TRef LJ_FASTCALL lj_opt_dse_ustore(jit_State *J) | |||
468 | bp = &obar->prev; | 462 | bp = &obar->prev; |
469 | /* Remove OBAR, too. */ | 463 | /* Remove OBAR, too. */ |
470 | *bp = obar->prev; | 464 | *bp = obar->prev; |
471 | obar->o = IR_NOP; | 465 | lj_ir_nop(obar); |
472 | obar->t.irt = IRT_NIL; | ||
473 | obar->op1 = obar->op2 = 0; | ||
474 | obar->prev = 0; | ||
475 | } | 466 | } |
476 | /* Now emit the new store instead. */ | 467 | /* Now emit the new store instead. */ |
477 | } | 468 | } |
@@ -562,10 +553,7 @@ TRef LJ_FASTCALL lj_opt_dse_fstore(jit_State *J) | |||
562 | goto doemit; /* No elimination possible. */ | 553 | goto doemit; /* No elimination possible. */ |
563 | /* Remove redundant store from chain and replace with NOP. */ | 554 | /* Remove redundant store from chain and replace with NOP. */ |
564 | *refp = store->prev; | 555 | *refp = store->prev; |
565 | store->o = IR_NOP; | 556 | lj_ir_nop(store); |
566 | store->t.irt = IRT_NIL; | ||
567 | store->op1 = store->op2 = 0; | ||
568 | store->prev = 0; | ||
569 | /* Now emit the new store instead. */ | 557 | /* Now emit the new store instead. */ |
570 | } | 558 | } |
571 | goto doemit; | 559 | goto doemit; |
@@ -816,10 +804,7 @@ TRef LJ_FASTCALL lj_opt_dse_xstore(jit_State *J) | |||
816 | goto doemit; /* No elimination possible. */ | 804 | goto doemit; /* No elimination possible. */ |
817 | /* Remove redundant store from chain and replace with NOP. */ | 805 | /* Remove redundant store from chain and replace with NOP. */ |
818 | *refp = store->prev; | 806 | *refp = store->prev; |
819 | store->o = IR_NOP; | 807 | lj_ir_nop(store); |
820 | store->t.irt = IRT_NIL; | ||
821 | store->op1 = store->op2 = 0; | ||
822 | store->prev = 0; | ||
823 | /* Now emit the new store instead. */ | 808 | /* Now emit the new store instead. */ |
824 | } | 809 | } |
825 | goto doemit; | 810 | goto doemit; |