summaryrefslogtreecommitdiffstatshomepage
path: root/py/vm.c
diff options
context:
space:
mode:
Diffstat (limited to 'py/vm.c')
-rw-r--r--py/vm.c14
1 files changed, 5 insertions, 9 deletions
diff --git a/py/vm.c b/py/vm.c
index a53b4a0838..901a23f225 100644
--- a/py/vm.c
+++ b/py/vm.c
@@ -759,17 +759,13 @@ unwind_jump:;
}
// matched against: SETUP_EXCEPT, SETUP_FINALLY, SETUP_WITH
- ENTRY(MP_BC_POP_BLOCK):
- // we are exiting an exception handler, so pop the last one of the exception-stack
+ ENTRY(MP_BC_POP_EXCEPT_JUMP): {
assert(exc_sp >= exc_stack);
POP_EXC_BLOCK();
- DISPATCH();
-
- // matched against: SETUP_EXCEPT
- ENTRY(MP_BC_POP_EXCEPT):
- assert(exc_sp >= exc_stack);
- POP_EXC_BLOCK();
- DISPATCH();
+ DECODE_ULABEL;
+ ip += ulab;
+ DISPATCH_WITH_PEND_EXC_CHECK();
+ }
ENTRY(MP_BC_BUILD_TUPLE): {
MARK_EXC_IP_SELECTIVE();