summaryrefslogtreecommitdiffstatshomepage
path: root/py/nlrthumb.c
diff options
context:
space:
mode:
Diffstat (limited to 'py/nlrthumb.c')
-rw-r--r--py/nlrthumb.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/py/nlrthumb.c b/py/nlrthumb.c
index 6e7d717667..eab5759f21 100644
--- a/py/nlrthumb.c
+++ b/py/nlrthumb.c
@@ -82,6 +82,7 @@ __attribute__((naked)) unsigned int nlr_push(nlr_buf_t *nlr) {
__attribute__((used)) unsigned int nlr_push_tail(nlr_buf_t *nlr) {
nlr_buf_t **top = &MP_STATE_THREAD(nlr_top);
nlr->prev = *top;
+ MP_NLR_SAVE_PYSTACK(nlr);
*top = nlr;
return 0; // normal return
}
@@ -99,6 +100,7 @@ NORETURN __attribute__((naked)) void nlr_jump(void *val) {
}
top->ret_val = val;
+ MP_NLR_RESTORE_PYSTACK(top);
*top_ptr = top->prev;
__asm volatile (