From c98660c8c3921e43029625e51166c9d273ad09df Mon Sep 17 00:00:00 2001 From: Mike Pall Date: Fri, 22 Jul 2016 16:35:46 +0200 Subject: [PATCH] Must preserve J->fold.ins (fins) around call to lj_ir_ksimd(). --- src/lj_opt_fold.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/lj_opt_fold.c b/src/lj_opt_fold.c index 73a368ed..5f4b8810 100644 --- a/src/lj_opt_fold.c +++ b/src/lj_opt_fold.c @@ -998,8 +998,10 @@ LJFOLDF(simplify_nummuldiv_k) if (n == 1.0) { /* x o 1 ==> x */ return LEFTFOLD; } else if (n == -1.0) { /* x o -1 ==> -x */ + IRRef op1 = fins->op1; + fins->op2 = (IRRef1)lj_ir_ksimd(J, LJ_KSIMD_NEG); /* Modifies fins. */ + fins->op1 = op1; fins->o = IR_NEG; - fins->op2 = (IRRef1)lj_ir_ksimd(J, LJ_KSIMD_NEG); return RETRYFOLD; } else if (fins->o == IR_MUL && n == 2.0) { /* x * 2 ==> x + x */ fins->o = IR_ADD;