vm.c: need to adjust `pc` for `OP_EXT[123]`.

parent 040d1799
...@@ -2887,7 +2887,7 @@ RETRY_TRY_BLOCK: ...@@ -2887,7 +2887,7 @@ RETRY_TRY_BLOCK:
CASE(OP_EXT1, Z) { CASE(OP_EXT1, Z) {
insn = READ_B(); insn = READ_B();
switch (insn) { switch (insn) {
#define OPCODE(insn,ops) case OP_ ## insn: FETCH_ ## ops ## _1(); goto L_OP_ ## insn ## _BODY; #define OPCODE(insn,ops) case OP_ ## insn: FETCH_ ## ops ## _1(); mrb->c->ci->pc = pc; goto L_OP_ ## insn ## _BODY;
#include "mruby/ops.h" #include "mruby/ops.h"
#undef OPCODE #undef OPCODE
} }
...@@ -2897,7 +2897,7 @@ RETRY_TRY_BLOCK: ...@@ -2897,7 +2897,7 @@ RETRY_TRY_BLOCK:
CASE(OP_EXT2, Z) { CASE(OP_EXT2, Z) {
insn = READ_B(); insn = READ_B();
switch (insn) { switch (insn) {
#define OPCODE(insn,ops) case OP_ ## insn: FETCH_ ## ops ## _2(); goto L_OP_ ## insn ## _BODY; #define OPCODE(insn,ops) case OP_ ## insn: FETCH_ ## ops ## _2(); mrb->c->ci->pc = pc; goto L_OP_ ## insn ## _BODY;
#include "mruby/ops.h" #include "mruby/ops.h"
#undef OPCODE #undef OPCODE
} }
...@@ -2907,7 +2907,7 @@ RETRY_TRY_BLOCK: ...@@ -2907,7 +2907,7 @@ RETRY_TRY_BLOCK:
CASE(OP_EXT3, Z) { CASE(OP_EXT3, Z) {
uint8_t insn = READ_B(); uint8_t insn = READ_B();
switch (insn) { switch (insn) {
#define OPCODE(insn,ops) case OP_ ## insn: FETCH_ ## ops ## _3(); goto L_OP_ ## insn ## _BODY; #define OPCODE(insn,ops) case OP_ ## insn: FETCH_ ## ops ## _3(); mrb->c->ci->pc = pc; goto L_OP_ ## insn ## _BODY;
#include "mruby/ops.h" #include "mruby/ops.h"
#undef OPCODE #undef OPCODE
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment