summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/mruby-compiler/core/codegen.c
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2021-07-20 18:24:33 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2021-07-20 18:24:33 +0900
commit5066e2370d613355c813fd48be5ab0f76b7d341c (patch)
treeedfa42492cff31a8be1fa2cd48372e894ad2335d /mrbgems/mruby-compiler/core/codegen.c
parentcdf54f3159b90a0c87d53ddba931c3a48d13337b (diff)
downloadmruby-5066e2370d613355c813fd48be5ab0f76b7d341c.tar.gz
mruby-5066e2370d613355c813fd48be5ab0f76b7d341c.zip
codegen.c: negative zero equals to positive zero.
`OP_LOADI Rn -0` should be `OP_LOADI_0`.
Diffstat (limited to 'mrbgems/mruby-compiler/core/codegen.c')
-rw-r--r--mrbgems/mruby-compiler/core/codegen.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/mrbgems/mruby-compiler/core/codegen.c b/mrbgems/mruby-compiler/core/codegen.c
index 44beef6a5..3c9d12f9f 100644
--- a/mrbgems/mruby-compiler/core/codegen.c
+++ b/mrbgems/mruby-compiler/core/codegen.c
@@ -2663,6 +2663,9 @@ codegen(codegen_scope *s, node *tree, int val)
int off = new_litbn(s, p, base, TRUE);
genop_2(s, OP_LOADL, cursp(), off);
}
+ else if (i == 0) {
+ genop_1(s, OP_LOADI_0, cursp());
+ }
else {
i = -i;
if (i == -1) genop_1(s, OP_LOADI__1, cursp());