diff options
Diffstat (limited to '')
-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 80517f16..0d9837b1 100644 --- a/src/lj_opt_mem.c +++ b/src/lj_opt_mem.c | |||
@@ -370,10 +370,7 @@ TRef LJ_FASTCALL lj_opt_dse_ahstore(jit_State *J) | |||
370 | goto doemit; /* No elimination possible. */ | 370 | goto doemit; /* No elimination possible. */ |
371 | /* Remove redundant store from chain and replace with NOP. */ | 371 | /* Remove redundant store from chain and replace with NOP. */ |
372 | *refp = store->prev; | 372 | *refp = store->prev; |
373 | store->o = IR_NOP; | 373 | lj_ir_nop(store); |
374 | store->t.irt = IRT_NIL; | ||
375 | store->op1 = store->op2 = 0; | ||
376 | store->prev = 0; | ||
377 | /* Now emit the new store instead. */ | 374 | /* Now emit the new store instead. */ |
378 | } | 375 | } |
379 | goto doemit; | 376 | goto doemit; |
@@ -534,10 +531,7 @@ TRef LJ_FASTCALL lj_opt_dse_ustore(jit_State *J) | |||
534 | goto doemit; /* No elimination possible. */ | 531 | goto doemit; /* No elimination possible. */ |
535 | /* Remove redundant store from chain and replace with NOP. */ | 532 | /* Remove redundant store from chain and replace with NOP. */ |
536 | *refp = store->prev; | 533 | *refp = store->prev; |
537 | store->o = IR_NOP; | 534 | lj_ir_nop(store); |
538 | store->t.irt = IRT_NIL; | ||
539 | store->op1 = store->op2 = 0; | ||
540 | store->prev = 0; | ||
541 | if (ref+1 < J->cur.nins && | 535 | if (ref+1 < J->cur.nins && |
542 | store[1].o == IR_OBAR && store[1].op1 == xref) { | 536 | store[1].o == IR_OBAR && store[1].op1 == xref) { |
543 | IRRef1 *bp = &J->chain[IR_OBAR]; | 537 | IRRef1 *bp = &J->chain[IR_OBAR]; |
@@ -546,10 +540,7 @@ TRef LJ_FASTCALL lj_opt_dse_ustore(jit_State *J) | |||
546 | bp = &obar->prev; | 540 | bp = &obar->prev; |
547 | /* Remove OBAR, too. */ | 541 | /* Remove OBAR, too. */ |
548 | *bp = obar->prev; | 542 | *bp = obar->prev; |
549 | obar->o = IR_NOP; | 543 | lj_ir_nop(obar); |
550 | obar->t.irt = IRT_NIL; | ||
551 | obar->op1 = obar->op2 = 0; | ||
552 | obar->prev = 0; | ||
553 | } | 544 | } |
554 | /* Now emit the new store instead. */ | 545 | /* Now emit the new store instead. */ |
555 | } | 546 | } |
@@ -640,10 +631,7 @@ TRef LJ_FASTCALL lj_opt_dse_fstore(jit_State *J) | |||
640 | goto doemit; /* No elimination possible. */ | 631 | goto doemit; /* No elimination possible. */ |
641 | /* Remove redundant store from chain and replace with NOP. */ | 632 | /* Remove redundant store from chain and replace with NOP. */ |
642 | *refp = store->prev; | 633 | *refp = store->prev; |
643 | store->o = IR_NOP; | 634 | lj_ir_nop(store); |
644 | store->t.irt = IRT_NIL; | ||
645 | store->op1 = store->op2 = 0; | ||
646 | store->prev = 0; | ||
647 | /* Now emit the new store instead. */ | 635 | /* Now emit the new store instead. */ |
648 | } | 636 | } |
649 | goto doemit; | 637 | goto doemit; |
@@ -894,10 +882,7 @@ TRef LJ_FASTCALL lj_opt_dse_xstore(jit_State *J) | |||
894 | goto doemit; /* No elimination possible. */ | 882 | goto doemit; /* No elimination possible. */ |
895 | /* Remove redundant store from chain and replace with NOP. */ | 883 | /* Remove redundant store from chain and replace with NOP. */ |
896 | *refp = store->prev; | 884 | *refp = store->prev; |
897 | store->o = IR_NOP; | 885 | lj_ir_nop(store); |
898 | store->t.irt = IRT_NIL; | ||
899 | store->op1 = store->op2 = 0; | ||
900 | store->prev = 0; | ||
901 | /* Now emit the new store instead. */ | 886 | /* Now emit the new store instead. */ |
902 | } | 887 | } |
903 | goto doemit; | 888 | goto doemit; |