diff options
| author | Masamitsu MURASE <[email protected]> | 2013-02-24 16:20:31 +0900 |
|---|---|---|
| committer | Masamitsu MURASE <[email protected]> | 2013-02-24 16:20:31 +0900 |
| commit | b55c6c55d28119974376f85c6a2481ff0fef690a (patch) | |
| tree | ae54b87910b7b27c5e86fd050f8885b5d769619e /src/codegen.c | |
| parent | bbd50cca2f78c642517beaeccd26400798b1ec46 (diff) | |
| download | mruby-b55c6c55d28119974376f85c6a2481ff0fef690a.tar.gz mruby-b55c6c55d28119974376f85c6a2481ff0fef690a.zip | |
Make OP_ASGN faster.
I think that `*=` and `/=` can be compiled to `OP_MUL` and `OP_DIV`.
Diffstat (limited to 'src/codegen.c')
| -rw-r--r-- | src/codegen.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/codegen.c b/src/codegen.c index 86d61fecf..1052f6dbf 100644 --- a/src/codegen.c +++ b/src/codegen.c @@ -1488,6 +1488,12 @@ codegen(codegen_scope *s, node *tree, int val) else if (len == 1 && name[0] == '-') { genop_peep(s, MKOP_ABC(OP_SUB, cursp(), idx, 1), val); } + else if (len == 1 && name[0] == '*') { + genop(s, MKOP_ABC(OP_MUL, cursp(), idx, 1)); + } + else if (len == 1 && name[0] == '/') { + genop(s, MKOP_ABC(OP_DIV, cursp(), idx, 1)); + } else if (len == 1 && name[0] == '<') { genop(s, MKOP_ABC(OP_LT, cursp(), idx, 1)); } |
