diff options
| author | Yukihiro Matsumoto <[email protected]> | 2012-09-10 22:09:24 +0900 |
|---|---|---|
| committer | Yukihiro Matsumoto <[email protected]> | 2012-09-10 22:09:24 +0900 |
| commit | e49224284d9e3ddb3499c6f4a4f36a2d5c9f2af4 (patch) | |
| tree | c0683131bade104a8305948fdb733fb2eb6a5277 /src | |
| parent | b21afdfbaf6da36788578959d70c00d2e1aab2be (diff) | |
| download | mruby-e49224284d9e3ddb3499c6f4a4f36a2d5c9f2af4.tar.gz mruby-e49224284d9e3ddb3499c6f4a4f36a2d5c9f2af4.zip | |
OP_EQ should try direct compararison first
Diffstat (limited to 'src')
| -rw-r--r-- | src/vm.c | 8 |
1 files changed, 7 insertions, 1 deletions
@@ -1495,7 +1495,13 @@ mrb_run(mrb_state *mrb, struct RProc *proc, mrb_value self) CASE(OP_EQ) { /* A B C R(A) := R(A)<R(A+1) (Syms[B]=:<,C=1)*/ - OP_CMP(==); + int a = GETARG_A(i); + if (mrb_obj_eq(mrb, regs[a], regs[a+1])) { + SET_TRUE_VALUE(regs[a]); + } + else { + OP_CMP(==); + } NEXT; } |
