kopia lustrzana https://github.com/micropython/micropython
![]() The mp_raw_code_t struct has been reordered and some members resized. The `n_pos_args` member is renamed to `asm_n_pos_args`, and `type_sig` renamed to `asm_type_sig` to indicate that these are used only for the inline-asm emitters. These two members are also grouped together in the struct. The justifications for resizing the members are: - `fun_data_len` can be 32-bits without issue - `n_children` is already limited to 16-bits by `mp_emit_common_t::ct_cur_child` - `scope_flags` is already limited to 16-bits by `scope_t::scope_flags` - `prelude_offset` is already limited to 16-bits by the argument to `mp_emit_glue_assign_native()` - it's reasonable to limit the maximim number of inline-asm arguments to 12 (24 bits for `asm_type_sig` divided by 2) This change helps to reduce frozen code size (and in some cases RAM usage) in the following cases: - 64-bit targets - builds with MICROPY_PY_SYS_SETTRACE enabled - builds with MICROPY_EMIT_MACHINE_CODE enabled but MICROPY_EMIT_INLINE_ASM disabled With this change, unix 64-bit builds are -4080 bytes in size. Bare-metal ports like rp2 are unchanged (because mp_raw_code_t is still 32 bytes on those 32-bit targets). Signed-off-by: Damien George <damien@micropython.org> |
||
---|---|---|
.. | ||
autobuild | ||
mpremote | ||
.gitattributes | ||
.gitignore | ||
boardgen.py | ||
cc1 | ||
ci.sh | ||
codeformat.py | ||
codestats.sh | ||
dfu.py | ||
file2h.py | ||
gen-changelog.sh | ||
gen-cpydiff.py | ||
hci_trace_to_pcap.py | ||
insert-usb-ids.py | ||
makemanifest.py | ||
manifestfile.py | ||
metrics.py | ||
mpy-tool.py | ||
mpy_bin2res.py | ||
mpy_cross_all.py | ||
mpy_ld.py | ||
pyboard.py | ||
pydfu.py | ||
tinytest-codegen.py | ||
uf2conv.py | ||
uf2families.json | ||
uncrustify.cfg | ||
verifygitlog.py |