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>
This commit is contained in:
Damien George
2024-02-09 17:38:25 +11:00
parent 416465d81e
commit 5e3006f117
6 changed files with 19 additions and 13 deletions

View File

@@ -26,8 +26,11 @@
#ifndef MICROPY_INCLUDED_PY_RUNTIME0_H
#define MICROPY_INCLUDED_PY_RUNTIME0_H
// The first four must fit in 8 bits, see emitbc.c
// The remaining must fit in 16 bits, see scope.h
// These constants are used by:
// - mp_raw_code_t::is_generator (only MP_SCOPE_FLAG_GENERATOR)
// - scope_t::scope_flags (16 bits)
// - MP_BC_PRELUDE_SIG_ENCODE macro, masked by MP_SCOPE_FLAG_ALL_SIG (4 bits)
// - tools/mpy_ld.py, when generating mpy files (maximum 7 bits)
#define MP_SCOPE_FLAG_ALL_SIG (0x0f)
#define MP_SCOPE_FLAG_GENERATOR (0x01)
#define MP_SCOPE_FLAG_VARKEYWORDS (0x02)