codegen.c: skip ADDI/SUBI for zero operand.

This commit is contained in:
Yukihiro "Matz" Matsumoto
2021-12-01 14:29:44 +09:00
parent 7d6b8024b5
commit 76659a66ae
+1
View File
@@ -781,6 +781,7 @@ gen_addsub(codegen_scope *s, uint8_t op, uint16_t dst)
/* OP_ADDI/OP_SUBI takes upto 16bits */
if (n > INT16_MAX || n < INT16_MIN) goto normal;
rewind_pc(s);
if (n == 0) return;
if (n > 0) {
if (op == OP_ADD) genop_2(s, OP_ADDI, dst, (uint16_t)n);
else genop_2(s, OP_SUBI, dst, (uint16_t)n);