diff options
| author | Damien George <damien.p.george@gmail.com> | 2018-09-04 14:31:28 +1000 |
|---|---|---|
| committer | Damien George <damien.p.george@gmail.com> | 2018-09-04 14:31:28 +1000 |
| commit | 4ae7111573f6866e027e2919e4d331c01108db23 (patch) | |
| tree | 709ddd2a07cd2169539b7c4a83109b2868d5d321 /py/emitnxtensa.c | |
| parent | 3cd2c281d7cf990b3afb78287a58cf4ee3f23ca5 (diff) | |
py/emitnative: Add support for return/break/continue in try and with.
This patch adds full support for unwinding jumps to the native emitter.
This means that return/break/continue can be used in try-except,
try-finally and with statements. For code that doesn't use unwinding jumps
there is almost no overhead added to the generated code.
Diffstat (limited to 'py/emitnxtensa.c')
| -rw-r--r-- | py/emitnxtensa.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/py/emitnxtensa.c b/py/emitnxtensa.c index 89ecb34de..34089e90d 100644 --- a/py/emitnxtensa.c +++ b/py/emitnxtensa.c @@ -8,8 +8,10 @@ #define GENERIC_ASM_API (1) #include "py/asmxtensa.h" -// Word index of REG_LOCAL_1(=a12) in nlr_buf_t -#define NLR_BUF_IDX_LOCAL_1 (8) +// Word indices of REG_LOCAL_x in nlr_buf_t +#define NLR_BUF_IDX_LOCAL_1 (8) // a12 +#define NLR_BUF_IDX_LOCAL_2 (9) // a13 +#define NLR_BUF_IDX_LOCAL_3 (10) // a14 #define N_XTENSA (1) #define EXPORT_FUN(name) emit_native_xtensa_##name |
