summaryrefslogtreecommitdiff
path: root/py/emitglue.h
diff options
context:
space:
mode:
authorDamien George <damien@micropython.org>2024-02-09 17:38:25 +1100
committerDamien George <damien@micropython.org>2024-02-16 12:48:02 +1100
commit5e3006f1172d0eabbbefeb3268dfb942ec7cf9cd (patch)
tree9ad4455beb4711980134e44acd0d2bdf798b74b4 /py/emitglue.h
parent416465d81e911b088836f4e7c37fac2bc0f67917 (diff)
py/emitglue: Simplify mp_raw_code_t's kind and scope_flags members.
To simplify their access and reduce code size. The `scope_flags` member is only ever used to determine if a function is a generator or not, so make it reflect that fact as a bool type. Signed-off-by: Damien George <damien@micropython.org>
Diffstat (limited to 'py/emitglue.h')
-rw-r--r--py/emitglue.h8
1 files changed, 4 insertions, 4 deletions
diff --git a/py/emitglue.h b/py/emitglue.h
index b79283541..125ab2ccd 100644
--- a/py/emitglue.h
+++ b/py/emitglue.h
@@ -57,8 +57,8 @@ typedef enum {
// mpy file: instance in RAM, created when .mpy file is loaded (same comments as above)
// frozen: instance in ROM
typedef struct _mp_raw_code_t {
- uint32_t kind : 3; // of type mp_raw_code_kind_t
- uint32_t scope_flags : 7;
+ uint8_t kind; // of type mp_raw_code_kind_t; only 3 bits used
+ bool is_generator;
const void *fun_data;
struct _mp_raw_code_t **children;
#if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS
@@ -88,8 +88,8 @@ typedef struct _mp_raw_code_t {
// only needed when the kind is MP_CODE_NATIVE_ASM. So this struct can be used when the
// kind is MP_CODE_BYTECODE, MP_CODE_NATIVE_PY or MP_CODE_NATIVE_VIPER, to reduce its size.
typedef struct _mp_raw_code_truncated_t {
- uint32_t kind : 3;
- uint32_t scope_flags : 7;
+ uint8_t kind;
+ bool is_generator;
const void *fun_data;
struct _mp_raw_code_t **children;
#if MICROPY_PERSISTENT_CODE_SAVE || MICROPY_DEBUG_PRINTERS