set m_op as well when doing a-(-b) => a+b peephole

This commit is contained in:
Dale Weiler 2021-03-26 18:57:31 -04:00
parent 465941f357
commit 13bcb5c5b1

View file

@ -301,11 +301,11 @@ ast_binary::ast_binary(lex_ctx_t ctx, int op,
/* make a-(-b) => a + b */ /* make a-(-b) => a + b */
if (unary->m_op == VINSTR_NEG_F || unary->m_op == VINSTR_NEG_V) { if (unary->m_op == VINSTR_NEG_F || unary->m_op == VINSTR_NEG_V) {
if (op == INSTR_SUB_F) { if (op == INSTR_SUB_F) {
op = INSTR_ADD_F; op = m_op = INSTR_ADD_F;
right = normal; right = normal;
++opts_optimizationcount[OPTIM_PEEPHOLE]; ++opts_optimizationcount[OPTIM_PEEPHOLE];
} else if (op == INSTR_SUB_V) { } else if (op == INSTR_SUB_V) {
op = INSTR_ADD_V; op = m_op = INSTR_ADD_V;
right = normal; right = normal;
++opts_optimizationcount[OPTIM_PEEPHOLE]; ++opts_optimizationcount[OPTIM_PEEPHOLE];
} }