move OP_LOADNIL just before OP_SEND to improve performance on some platforms

This commit is contained in:
Yukihiro Matsumoto
2012-08-02 00:43:38 +09:00
parent 1ff6dfd081
commit 47ff5a0643
+8 -8
View File
@@ -481,14 +481,6 @@ mrb_run(mrb_state *mrb, struct RProc *proc, mrb_value self)
NEXT;
}
CASE(OP_LOADNIL) {
/* A B R(A) := nil */
int a = GETARG_A(i);
SET_NIL_VALUE(regs[a]);
NEXT;
}
CASE(OP_LOADSELF) {
/* A R(A) := self */
regs[GETARG_A(i)] = mrb->stack[0];
@@ -680,6 +672,14 @@ mrb_run(mrb_state *mrb, struct RProc *proc, mrb_value self)
NEXT;
}
CASE(OP_LOADNIL) {
/* A B R(A) := nil */
int a = GETARG_A(i);
SET_NIL_VALUE(regs[a]);
NEXT;
}
L_SEND:
CASE(OP_SEND) {
/* A B C R(A) := call(R(A),Sym(B),R(A+1),... ,R(A+C-1)) */