#include <stdio.h>
#include <string.h>
#include <assert.h>
#include "py/emitglue.h"
#include "py/objtype.h"
#include "py/runtime.h"
#include "py/bc0.h"
#include "py/bc.h"
Go to the source code of this file.
◆ CLEAR_SYS_EXC_INFO
#define CLEAR_SYS_EXC_INFO |
( |
| ) |
|
Definition at line 104 of file vm.c.
◆ DECODE_OBJ
Value:#define MP_ALIGN(ptr, alignment)
Definition at line 89 of file vm.c.
◆ DECODE_PTR
Value: void *ptr = *(void**)ip; \
ip += sizeof(void*)
#define MP_ALIGN(ptr, alignment)
Definition at line 85 of file vm.c.
◆ DECODE_QSTR
Value: do { \
qst = (qst << 7) + (*ip & 0x7f); \
} while ((*ip++ & 0x80) != 0)
Definition at line 81 of file vm.c.
◆ DECODE_SLABEL
#define DECODE_SLABEL size_t slab = (ip[0] | (ip[1] << 8)) - 0x8000; ip += 2 |
Definition at line 65 of file vm.c.
◆ DECODE_UINT
Value: do { \
unum = (unum << 7) + (*ip & 0x7f); \
} while ((*ip++ & 0x80) != 0)
Definition at line 59 of file vm.c.
◆ DECODE_ULABEL
#define DECODE_ULABEL size_t ulab = (ip[0] | (ip[1] << 8)); ip += 2 |
Definition at line 64 of file vm.c.
◆ DISPATCH
#define DISPATCH |
( |
| ) |
break |
◆ DISPATCH_WITH_PEND_EXC_CHECK
#define DISPATCH_WITH_PEND_EXC_CHECK |
( |
| ) |
goto pending_exception_check |
◆ ENTRY
#define ENTRY |
( |
|
op | ) |
case op |
◆ ENTRY_DEFAULT
#define ENTRY_DEFAULT default |
◆ EXC_MATCH
◆ GENERATOR_EXIT_IF_NEEDED
◆ MARK_EXC_IP_GLOBAL
#define MARK_EXC_IP_GLOBAL |
( |
| ) |
{ code_state->ip = ip; } /* stores ip pointing to last opcode */ |
◆ MARK_EXC_IP_SELECTIVE
#define MARK_EXC_IP_SELECTIVE |
( |
| ) |
|
◆ POP
Definition at line 97 of file vm.c.
◆ POP_EXC_BLOCK
#define POP_EXC_BLOCK |
( |
| ) |
|
Value: exc_sp--; \
CLEAR_SYS_EXC_INFO()
#define MP_TAGPTR_TAG0(x)
Definition at line 116 of file vm.c.
◆ PUSH
#define PUSH |
( |
|
val | ) |
*++sp = (val) |
Definition at line 96 of file vm.c.
◆ PUSH_EXC_BLOCK
#define PUSH_EXC_BLOCK |
( |
|
with_or_finally | ) |
|
Value:do { \
DECODE_ULABEL; \
++exc_sp; \
exc_sp->handler = ip + ulab; \
exc_sp->val_sp =
MP_TAGPTR_MAKE(sp, ((with_or_finally) << 1) | currently_in_except_block); \
exc_sp->prev_exc =
NULL; \
currently_in_except_block = 0; \
} while (0)
#define MP_TAGPTR_MAKE(ptr, tag)
Definition at line 107 of file vm.c.
◆ RAISE
#define RAISE |
( |
|
o | ) |
do { nlr_pop(); nlr.ret_val = MP_OBJ_TO_PTR(o); goto exception_handler; } while (0) |
◆ SELECTIVE_EXC_IP
#define SELECTIVE_EXC_IP (0) |
◆ SET_TOP
#define SET_TOP |
( |
|
val | ) |
*sp = (val) |
Definition at line 99 of file vm.c.
◆ TOP
Definition at line 98 of file vm.c.
◆ TRACE
Definition at line 41 of file vm.c.
◆ mp_unwind_reason_t
Enumerator |
---|
UNWIND_RETURN | |
UNWIND_JUMP | |
Definition at line 54 of file vm.c.
◆ mp_execute_bytecode()
Definition at line 127 of file vm.c.