aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMike Pall <mike>2022-01-13 18:33:04 +0100
committerMike Pall <mike>2022-01-13 18:33:04 +0100
commitbc1bdbf620f58f0978385828bc51272903601e17 (patch)
tree898f01841d3cc252298760ecaf30abd55c5a0a7f /src
parentbe251d9149b386ca0d4b51106be14366c5dbdf14 (diff)
downloadluajit-bc1bdbf620f58f0978385828bc51272903601e17.tar.gz
luajit-bc1bdbf620f58f0978385828bc51272903601e17.tar.bz2
luajit-bc1bdbf620f58f0978385828bc51272903601e17.zip
Fix FOLD rule for BUFHDR append.
Reported by XmiliaH.
Diffstat (limited to 'src')
-rw-r--r--src/lj_opt_fold.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/lj_opt_fold.c b/src/lj_opt_fold.c
index 83972db9..27305fe6 100644
--- a/src/lj_opt_fold.c
+++ b/src/lj_opt_fold.c
@@ -597,7 +597,8 @@ LJFOLDF(bufput_bufstr)
597 /* New buffer, no other buffer op inbetween and same buffer? */ 597 /* New buffer, no other buffer op inbetween and same buffer? */
598 if (fleft->o == IR_BUFHDR && fleft->op2 == IRBUFHDR_RESET && 598 if (fleft->o == IR_BUFHDR && fleft->op2 == IRBUFHDR_RESET &&
599 fleft->prev == hdr && 599 fleft->prev == hdr &&
600 fleft->op1 == IR(hdr)->op1) { 600 fleft->op1 == IR(hdr)->op1 &&
601 !(irt_isphi(fright->t) && IR(hdr)->prev)) {
601 IRRef ref = fins->op1; 602 IRRef ref = fins->op1;
602 IR(ref)->op2 = IRBUFHDR_APPEND; /* Modify BUFHDR. */ 603 IR(ref)->op2 = IRBUFHDR_APPEND; /* Modify BUFHDR. */
603 IR(ref)->op1 = fright->op1; 604 IR(ref)->op1 = fright->op1;