aboutsummaryrefslogtreecommitdiff
path: root/py/nlrxtensa.c
diff options
context:
space:
mode:
Diffstat (limited to 'py/nlrxtensa.c')
-rw-r--r--py/nlrxtensa.c23
1 files changed, 1 insertions, 22 deletions
diff --git a/py/nlrxtensa.c b/py/nlrxtensa.c
index 73f14385d..cd3dee364 100644
--- a/py/nlrxtensa.c
+++ b/py/nlrxtensa.c
@@ -55,29 +55,8 @@ unsigned int nlr_push(nlr_buf_t *nlr) {
return 0; // needed to silence compiler warning
}
-__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
-}
-
-void nlr_pop(void) {
- nlr_buf_t **top = &MP_STATE_THREAD(nlr_top);
- *top = (*top)->prev;
-}
-
NORETURN void nlr_jump(void *val) {
- nlr_buf_t **top_ptr = &MP_STATE_THREAD(nlr_top);
- nlr_buf_t *top = *top_ptr;
- if (top == NULL) {
- nlr_jump_fail(val);
- }
-
- top->ret_val = val;
- MP_NLR_RESTORE_PYSTACK(top);
- *top_ptr = top->prev;
+ MP_NLR_JUMP_HEAD(val, top)
__asm volatile (
"mov.n a2, %0 \n" // a2 points to nlr_buf