From 76659a66ae43ae18211b1050fcf724168508c2d8 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Wed, 1 Dec 2021 14:29:44 +0900 Subject: codegen.c: skip `ADDI/SUBI` for zero operand. --- mrbgems/mruby-compiler/core/codegen.c | 1 + 1 file changed, 1 insertion(+) diff --git a/mrbgems/mruby-compiler/core/codegen.c b/mrbgems/mruby-compiler/core/codegen.c index a1cde4d7d..fa7a98921 100644 --- a/mrbgems/mruby-compiler/core/codegen.c +++ b/mrbgems/mruby-compiler/core/codegen.c @@ -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); -- cgit v1.2.3