diff options
| author | Yukihiro Matsumoto <[email protected]> | 2012-06-13 15:37:11 +0900 |
|---|---|---|
| committer | Yukihiro Matsumoto <[email protected]> | 2012-06-13 15:37:11 +0900 |
| commit | 38941772333d5d9298b76dfc8a97c5b076daedc2 (patch) | |
| tree | dc17d7945eb3467f75f781b98d15f82dbd86167d /src/codegen.c | |
| parent | b692b39d2e372b23dd458c0838ef375d01fdc61e (diff) | |
| download | mruby-38941772333d5d9298b76dfc8a97c5b076daedc2.tar.gz mruby-38941772333d5d9298b76dfc8a97c5b076daedc2.zip | |
generate optimized OP_DIV instruction
Diffstat (limited to 'src/codegen.c')
| -rw-r--r-- | src/codegen.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/codegen.c b/src/codegen.c index e31e722eb..e76443a20 100644 --- a/src/codegen.c +++ b/src/codegen.c @@ -648,6 +648,9 @@ gen_call(codegen_scope *s, node *tree, mrb_sym name, int sp, int val) else if (!noop && name[0] == '*' && strlen(name) == 1) { genop(s, MKOP_ABC(OP_MUL, cursp(), idx, n)); } + else if (!noop && name[0] == '/' && strlen(name) == 1) { + genop(s, MKOP_ABC(OP_DIV, cursp(), idx, n)); + } else if (!noop && name[0] == '<' && strlen(name) == 1) { genop(s, MKOP_ABC(OP_LT, cursp(), idx, n)); } @@ -2163,6 +2166,11 @@ codedump(mrb_state *mrb, int n) mrb_sym2name(mrb, irep->syms[GETARG_B(c)]), GETARG_C(c)); break; + case OP_DIV: + printf("OP_DIV\tR%d\t'%s'\t%d\n", GETARG_A(c), + mrb_sym2name(mrb, irep->syms[GETARG_B(c)]), + GETARG_C(c)); + break; case OP_LT: printf("OP_LT\tR%d\t'%s'\t%d\n", GETARG_A(c), mrb_sym2name(mrb, irep->syms[GETARG_B(c)]), |
