You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
-`MAX_REGS_FOR_LOCAL_VARS = 1`: only D7 used for register-cached locals; A2/A3 are address registers and cannot be used for general arithmetic by `emitnative.c`.
388
+
389
+
### Known limitations
390
+
391
+
-**try/except in native mode is broken.** With `MICROPY_NLR_SETJMP = 1`, the `nlr_buf_t` slot used by `NLR_BUF_IDX_LOCAL_1` falls inside the `jmp_buf`, which is overwritten by `setjmp`. Functions using exceptions are unsafe in native/viper mode. Non-exceptional native functions work correctly.
392
+
-**Viper integer arithmetic on address registers** is prevented by `MAX_REGS_FOR_LOCAL_VARS = 1`. Viper `int`/`uint` locals beyond the first will always use stack slots.
393
+
394
+
### Configuration
395
+
396
+
```c
397
+
// mpconfigport.h
398
+
#defineMICROPY_EMIT_68K (1)
399
+
```
362
400
363
401
---
364
402
@@ -393,4 +431,4 @@ Significant work (several thousand lines); defer until phases 1–4 are solid.
0 commit comments