summaryrefslogtreecommitdiff
path: root/py/asmbase.h
diff options
context:
space:
mode:
Diffstat (limited to 'py/asmbase.h')
-rw-r--r--py/asmbase.h11
1 files changed, 10 insertions, 1 deletions
diff --git a/py/asmbase.h b/py/asmbase.h
index 960be7685..352d2f54c 100644
--- a/py/asmbase.h
+++ b/py/asmbase.h
@@ -33,7 +33,12 @@
#define MP_ASM_PASS_EMIT (2)
typedef struct _mp_asm_base_t {
- int pass;
+ uint8_t pass;
+
+ // Set to true using mp_asm_base_suppress_code() if the code generator
+ // should suppress emitted code due to it being dead code.
+ bool suppress;
+
size_t code_offset;
size_t code_size;
uint8_t *code_base;
@@ -50,6 +55,10 @@ void mp_asm_base_label_assign(mp_asm_base_t *as, size_t label);
void mp_asm_base_align(mp_asm_base_t *as, unsigned int align);
void mp_asm_base_data(mp_asm_base_t *as, unsigned int bytesize, uintptr_t val);
+static inline void mp_asm_base_suppress_code(mp_asm_base_t *as) {
+ as->suppress = true;
+}
+
static inline size_t mp_asm_base_get_code_pos(mp_asm_base_t *as) {
return as->code_offset;
}