summaryrefslogtreecommitdiffhomepage
path: root/mrbgems/mruby-compiler/core/codegen.c
diff options
context:
space:
mode:
Diffstat (limited to 'mrbgems/mruby-compiler/core/codegen.c')
-rw-r--r--mrbgems/mruby-compiler/core/codegen.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/mrbgems/mruby-compiler/core/codegen.c b/mrbgems/mruby-compiler/core/codegen.c
index 42c93debf..5197cc7fe 100644
--- a/mrbgems/mruby-compiler/core/codegen.c
+++ b/mrbgems/mruby-compiler/core/codegen.c
@@ -832,6 +832,10 @@ static mrb_bool
gen_binop(codegen_scope *s, mrb_sym op, uint16_t dst)
{
if (no_peephole(s)) return FALSE;
+ else if (op == MRB_OPSYM_2(s->mrb, aref)) {
+ genop_1(s, OP_GETIDX, dst);
+ return TRUE;
+ }
else {
struct mrb_insn_data data = mrb_last_insn(s);
mrb_int n, n0;
@@ -2765,9 +2769,6 @@ codegen(codegen_scope *s, node *tree, int val)
s2 = s2->prev;
if (!s2) break;
}
- genop_2S(s, OP_ARGARY, cursp(), (lv & 0xf));
- push(); push(); /* ARGARY pushes two values */
- pop(); pop();
if (tree) {
node *args = tree->car;
if (args) {