4ae7111573
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.
21 lines
464 B
C
21 lines
464 B
C
// x64 specific stuff
|
|
|
|
#include "py/mpconfig.h"
|
|
|
|
#if MICROPY_EMIT_X64
|
|
|
|
// This is defined so that the assembler exports generic assembler API macros
|
|
#define GENERIC_ASM_API (1)
|
|
#include "py/asmx64.h"
|
|
|
|
// Word indices of REG_LOCAL_x in nlr_buf_t
|
|
#define NLR_BUF_IDX_LOCAL_1 (5) // rbx
|
|
#define NLR_BUF_IDX_LOCAL_2 (6) // r12
|
|
#define NLR_BUF_IDX_LOCAL_3 (7) // r13
|
|
|
|
#define N_X64 (1)
|
|
#define EXPORT_FUN(name) emit_native_x64_##name
|
|
#include "py/emitnative.c"
|
|
|
|
#endif
|