From a624da6fdb160b9a70a96c1ffe9dec017d7f5cb4 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Fri, 2 Jul 2021 21:57:52 +0900 Subject: vm.c: need to adjust `pc` for `OP_EXT[123]`. --- src/vm.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/vm.c b/src/vm.c index a8a3f91d7..3a7d2ac8f 100644 --- a/src/vm.c +++ b/src/vm.c @@ -2887,7 +2887,7 @@ RETRY_TRY_BLOCK: CASE(OP_EXT1, Z) { insn = READ_B(); 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" #undef OPCODE } @@ -2897,7 +2897,7 @@ RETRY_TRY_BLOCK: CASE(OP_EXT2, Z) { insn = READ_B(); 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" #undef OPCODE } @@ -2907,7 +2907,7 @@ RETRY_TRY_BLOCK: CASE(OP_EXT3, Z) { uint8_t insn = READ_B(); 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" #undef OPCODE } -- cgit v1.2.3