micropython/py
Damien George d41b8dc52e py/emitglue: Fix macro logic that selects cache flushing code.
This fixes a regression made by 9e9da6cb0d.

There are two issues here:

1. `MPY_FEATURE_ARCH` and `MP_NATIVE_ARCH_xxx` are not visible in this file
   because `py/persistentcode.h` is not included.

2. Even if they were visible the macro logic will not work because
   `MP_NATIVE_ARCH_xxx` are enum values and cannot be used in #if logic.

What this means is that the first #if is always true, so there is no cache
flushing on ARM (non-Thumb) or RISC-V targets.  This breaks native code on,
eg, ESP32-P4.

The fix here aims to simplify the logic by using built-in compiler defines
to select the target:

- On an ARM Thumb target with `__ICACHE_PRESENT` enabled, it will flush the
  cache.

- On an ARM (non-Thumb) target, it will prefer `__builtin___clear_cache()`
  if possible, otherwise it will use inline assembler.

- On a RISC-V target, it will use `MP_HAL_CLEAN_DCACHE()` if that macro is
  defined (that's only on ESP32-P4 at the moment).

The logic should be the same as before, except for the cases where an
emitter is enabled on a mismatching architecture.  For example, if
`MICROPY_EMIT_THUMB` and/or `MICROPY_EMIT_INLINE_THUMB` were enabled on a
non-Thumb target, previously that will try to generate code to flush caches
(which doesn't really make sense), but now it will not.  This actually
happened for `mpy-cross` which does enable all the emitters, and prior to
this fix would follow the Thumb path, but not generate any code because
`__ICACHE_PRESENT` is disabled (at least when building `mpy-cross` on x86).

Signed-off-by: Damien George <damien@micropython.org>
2026-03-31 00:03:10 +11:00
..
argcheck.c all: Rename the "NORETURN" macro to "MP_NORETURN". 2025-05-13 10:36:47 +10:00
asmarm.c py/asmarm: Implement the full set of Viper load/store operations. 2025-07-01 15:34:29 +10:00
asmarm.h py/emitnative: Optimise register clearing. 2025-12-19 14:26:01 +11:00
asmbase.c py/asmbase: Cast prior to bitwise invert when the type is widened. 2025-12-07 16:02:38 +11:00
asmbase.h py/asmrv32: Add RISC-V RV32IMC native code emitter. 2024-06-21 15:06:07 +10:00
asmrv32.c py/asmrv32: Do not clobber index register on viper load/store. 2026-02-24 18:42:53 +11:00
asmrv32.h py/asmrv32: Use Zcmp opcodes for function prologues and epilogues. 2025-12-19 17:06:53 +11:00
asmthumb.c py/asmthumb: Fix T3 encoding of conditional branches. 2025-08-19 12:40:29 +10:00
asmthumb.h py/asmthumb: Do not clobber index register on viper load/store. 2026-02-24 18:42:53 +11:00
asmx64.c py/asm: Add ASM_NOT_REG and ASM_NEG_REG macros for unary ops. 2024-03-19 10:31:36 +11:00
asmx64.h py/emitnative: Optimise register clearing. 2025-12-19 14:26:01 +11:00
asmx86.c py/asm: Add ASM_NOT_REG and ASM_NEG_REG macros for unary ops. 2024-03-19 10:31:36 +11:00
asmx86.h py/emitnative: Optimise register clearing. 2025-12-19 14:26:01 +11:00
asmxtensa.c py/emitinlinextensa: Add inline assembler support for windowed cores. 2026-02-07 18:36:22 +11:00
asmxtensa.h py/emitnative: Optimise register clearing. 2025-12-19 14:26:01 +11:00
bc0.h py: Change jump-if-x-or-pop opcodes to have unsigned offset argument. 2022-03-28 15:43:09 +11:00
bc.c py/objfun: Rename mp_obj_fun_get_name to mp_obj_fun_bc_get_name. 2026-02-05 10:43:52 +11:00
bc.h py/persistentcode: Add architecture flags compatibility checks. 2025-10-24 16:32:53 +02:00
binary.c py/binary: Add MICROPY_PY_STRUCT_UNSAFE_TYPECODES. 2025-08-12 14:34:19 +10:00
binary.h py/binary: Change mp_uint_t to size_t for index, size, align args. 2019-09-02 13:14:27 +10:00
builtin.h py/parse: Add support for math module constants and float folding. 2025-08-01 13:35:44 +10:00
builtinevex.c py/objcode: Factor code object out into its own file. 2025-02-11 16:42:14 +11:00
builtinhelp.c py/objlist: Move all list helper declarations to objlist.h. 2026-02-05 10:43:54 +11:00
builtinimport.c py/builtinimport: Support relative import in custom __import__ callback. 2025-11-21 00:01:01 +11:00
compile.c py/emitinlinextensa: Add inline assembler support for windowed cores. 2026-02-07 18:36:22 +11:00
compile.h py/objcode: Factor code object out into its own file. 2025-02-11 16:42:14 +11:00
cstack.c py: Add new cstack API for stack checking, with limit margin macro. 2024-08-14 12:55:45 +10:00
cstack.h all: Use "static inline" consistently in function definitions. 2025-10-02 16:30:52 +10:00
dynruntime.h all: Rename the "NORETURN" macro to "MP_NORETURN". 2025-05-13 10:36:47 +10:00
dynruntime.mk tools/mpy_ld.py: Write architecture flags to output natmod if needed. 2026-01-11 09:22:13 +01:00
emit.h py/emitinlinerv32: Add inline assembler support for RV32. 2025-01-02 11:49:10 +11:00
emitbc.c py: Remove 5 TODOs in emitbc, objrange and repl. 2024-07-18 12:35:42 +10:00
emitcommon.c py/parse: Add support for math module constants and float folding. 2025-08-01 13:35:44 +10:00
emitglue.c py/emitglue: Fix macro logic that selects cache flushing code. 2026-03-31 00:03:10 +11:00
emitglue.h py/persistentcode: Decouple native code loading from emitters' presence. 2025-12-26 10:00:02 +01:00
emitinlinerv32.c py/emitinlinerv32: Change mask arg of is_in_signed_mask to uint32_t. 2025-12-07 16:05:14 +11:00
emitinlinethumb.c py/emitinlinethumb: Refactor string literal as array initializer. 2025-05-09 18:31:40 +10:00
emitinlinextensa.c py/emitinlinextensa: Refactor handling of selected narrow opcodes. 2026-02-10 14:17:25 +11:00
emitnarm.c py/emitnative: Access qstr values using indirection table qstr_table. 2022-05-23 15:43:06 +10:00
emitnative.c py/emitnative: Optimise register clearing. 2025-12-19 14:26:01 +11:00
emitndebug.c py/emitnative: Optimise register clearing. 2025-12-19 14:26:01 +11:00
emitnrv32.c py/asmrv32: Add RISC-V RV32IMC native code emitter. 2024-06-21 15:06:07 +10:00
emitnthumb.c py/emitnative: Access qstr values using indirection table qstr_table. 2022-05-23 15:43:06 +10:00
emitnx64.c py/emitnative: Access qstr values using indirection table qstr_table. 2022-05-23 15:43:06 +10:00
emitnx86.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
emitnxtensa.c py/emitnative: Access qstr values using indirection table qstr_table. 2022-05-23 15:43:06 +10:00
emitnxtensawin.c py/emitnative: Access qstr values using indirection table qstr_table. 2022-05-23 15:43:06 +10:00
formatfloat.c py/formatfloat: Improve accuracy of float formatting code. 2025-08-01 00:47:33 +10:00
formatfloat.h py/formatfloat: Improve accuracy of float formatting code. 2025-08-01 00:47:33 +10:00
frozenmod.c py: Rework bytecode and .mpy file format to be mostly static data. 2022-02-24 18:08:43 +11:00
frozenmod.h py/builtin: Clean up and simplify import_stat and builtin_open config. 2022-05-25 13:04:45 +10:00
gc.c py/modweakref: Implement weakref module with ref and finalize classes. 2026-03-22 23:02:38 +11:00
gc.h py/modweakref: Implement weakref module with ref and finalize classes. 2026-03-22 23:02:38 +11:00
grammar.h py/compile: Implement PEP 526, syntax for variable annotations. 2020-06-16 23:18:01 +10:00
lexer.c py: Add support for PEP 750's t-strings. 2026-03-09 23:47:33 +11:00
lexer.h py/lexer: Add support for nested f-strings within f-strings. 2026-02-04 23:19:09 +11:00
make_root_pointers.py py: Remove unneeded future imports. 2025-09-15 14:54:09 +10:00
makecompresseddata.py py: Remove unneeded future imports. 2025-09-15 14:54:09 +10:00
makemoduledefs.py py/makemoduledefs.py: Avoid empty extensible module lists. 2025-10-04 16:22:32 +10:00
makeqstrdata.py py: Remove unneeded future imports. 2025-09-15 14:54:09 +10:00
makeqstrdefs.py py: Remove unneeded future imports. 2025-09-15 14:54:09 +10:00
makeversionhdr.py py: Remove unneeded future imports. 2025-09-15 14:54:09 +10:00
malloc.c py/gc: Clean up usage of GC_ALLOC_FLAG_HAS_FINALISER flag. 2025-09-10 17:24:56 +10:00
map.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
misc.h py/misc: Fix truncating cast to char. 2026-02-07 18:16:54 +11:00
mkenv.mk esp32: Pass V=1 or BUILD_VERBOSE through to idf.py when building. 2024-12-10 11:28:38 +11:00
mkrules.cmake py/mkrules.cmake: Clean genhdr and frozen_mpy dirs. 2025-08-15 01:24:53 +10:00
mkrules.mk py/mkrules.mk: Add %.sz rule to print size of an object file. 2025-09-26 14:38:05 +10:00
modarray.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
modbuiltins.c py: Add support for PEP 750's t-strings. 2026-03-09 23:47:33 +11:00
modcmath.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
modcollections.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
moderrno.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
modgc.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
modio.c py/modio: Fix the case where write fails in BufferedWriter.flush. 2025-06-17 10:15:59 +10:00
modmath.c py/modmath: Make MICROPY_PY_MATH_POW_FIX_NAN also fix pow(x, NaN) cases. 2025-10-01 23:59:15 +10:00
modmicropython.c py: Fix mp_printf integer size mismatches. 2025-07-25 10:56:57 +10:00
modstring.c py: Add support for PEP 750's t-strings. 2026-03-09 23:47:33 +11:00
modstruct.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
modsys.c py/modsys: Add architecture flags to MicroPython metadata. 2025-10-24 19:13:15 +02:00
modthread.c py: Add new cstack API for stack checking, with limit margin macro. 2024-08-14 12:55:45 +10:00
modweakref.c py/modweakref: Implement weakref module with ref and finalize classes. 2026-03-22 23:02:38 +11:00
mpconfig.h py/modweakref: Implement weakref module with ref and finalize classes. 2026-03-22 23:02:38 +11:00
mperrno.h all: Rename UMODULE to MODULE in preprocessor/Makefile vars. 2023-06-08 17:54:11 +10:00
mphal.h py/mphal: Add stddef.h header for size_t. 2025-07-30 11:47:43 +10:00
mpprint.c all: Simplify mp_int_t/mp_uint_t definition. 2025-10-23 15:12:28 +11:00
mpprint.h py/formatfloat: Improve accuracy of float formatting code. 2025-08-01 00:47:33 +10:00
mpstate.c all: Use the name MicroPython consistently in comments 2017-07-31 18:35:40 +10:00
mpstate.h py/modweakref: Implement weakref module with ref and finalize classes. 2026-03-22 23:02:38 +11:00
mpthread.h py: Add optional support for recursive mutexes, use for gc mutex. 2025-02-03 15:02:02 +11:00
mpz.c py/mpz: Avoid undefined behavior decrementing NULL. 2025-06-16 12:11:07 +10:00
mpz.h py/objint: Fix int.to_bytes() buffer size checks. 2024-06-24 14:07:00 +10:00
nativeglue.c py/persistentcode: Decouple native code loading from emitters' presence. 2025-12-26 10:00:02 +01:00
nativeglue.h py/persistentcode: Decouple native code loading from emitters' presence. 2025-12-26 10:00:02 +01:00
nlr.c all: Rename the "NORETURN" macro to "MP_NORETURN". 2025-05-13 10:36:47 +10:00
nlr.h all: Rename the "NORETURN" macro to "MP_NORETURN". 2025-05-13 10:36:47 +10:00
nlraarch64.c all: Rename the "NORETURN" macro to "MP_NORETURN". 2025-05-13 10:36:47 +10:00
nlrmips.c all: Rename the "NORETURN" macro to "MP_NORETURN". 2025-05-13 10:36:47 +10:00
nlrpowerpc.c all: Rename the "NORETURN" macro to "MP_NORETURN". 2025-05-13 10:36:47 +10:00
nlrrv32.c all: Rename the "NORETURN" macro to "MP_NORETURN". 2025-05-13 10:36:47 +10:00
nlrrv64.c all: Rename the "NORETURN" macro to "MP_NORETURN". 2025-05-13 10:36:47 +10:00
nlrsetjmp.c py/nlrsetjmp: Use MP_NLR_JUMP_HEAD macro to simplify code. 2023-06-02 21:47:34 +10:00
nlrthumb.c all: Rename the "NORETURN" macro to "MP_NORETURN". 2025-05-13 10:36:47 +10:00
nlrx64.c all: Rename the "NORETURN" macro to "MP_NORETURN". 2025-05-13 10:36:47 +10:00
nlrx86.c all: Rename the "NORETURN" macro to "MP_NORETURN". 2025-05-13 10:36:47 +10:00
nlrxtensa.c all: Rename the "NORETURN" macro to "MP_NORETURN". 2025-05-13 10:36:47 +10:00
obj.c py: Cast type names to qstr explicitly. 2025-07-25 10:56:02 +10:00
obj.h py: Add support for PEP 750's t-strings. 2026-03-09 23:47:33 +11:00
objarray.c py/objarray: Avoid double zero init on sized bytearrays. 2026-02-06 00:19:48 +11:00
objarray.h py/objarray: Add MP_DEFINE_MEMORYVIEW_OBJ convenience macro. 2025-03-06 12:52:35 +11:00
objattrtuple.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
objbool.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
objboundmeth.c py/objboundmeth: Add option to use mp_is_equal instead of == comparison. 2025-07-31 11:38:35 +10:00
objcell.c py/objcell: Fix printing of cell ID/pointer. 2025-07-25 11:00:41 +10:00
objclosure.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
objcode.c py/objcode: Remove mp_obj_code_t.lnotab field from v2 preview. 2025-11-03 14:02:55 +11:00
objcode.h py/objcode: Remove mp_obj_code_t.lnotab field from v2 preview. 2025-11-03 14:02:55 +11:00
objcomplex.c py/formatfloat: Improve accuracy of float formatting code. 2025-08-01 00:47:33 +10:00
objdeque.c py/objdeque: Fix buffer overflow in deque_subscr. 2024-11-04 11:21:56 +11:00
objdict.c py/objdict: Implement bool and len unary ops for dict views. 2025-11-21 13:28:28 +11:00
objenumerate.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
objexcept.c py/objexcept: Check for incompletely constructed exceptions. 2026-02-26 16:15:54 +11:00
objexcept.h py/obj: Convert make_new into a mp_obj_type_t slot. 2022-09-19 19:06:15 +10:00
objfilter.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
objfloat.c py/modmath: Make MICROPY_PY_MATH_POW_FIX_NAN also fix pow(x, NaN) cases. 2025-10-01 23:59:15 +10:00
objfun.c py/objfun: Rename mp_obj_fun_get_name to mp_obj_fun_bc_get_name. 2026-02-05 10:43:52 +11:00
objfun.h py/objfun: Rename mp_obj_fun_get_name to mp_obj_fun_bc_get_name. 2026-02-05 10:43:52 +11:00
objgenerator.c py/objfun: Rename mp_obj_fun_get_name to mp_obj_fun_bc_get_name. 2026-02-05 10:43:52 +11:00
objgenerator.h all: Use the name MicroPython consistently in comments 2017-07-31 18:35:40 +10:00
objgetitemiter.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
objint_longlong.c py/objint_longlong: Fix longlong interoperability with floats. 2025-07-29 01:14:35 +10:00
objint_mpz.c py/objint_mpz: Fix pow3 where third argument is zero. 2025-07-28 23:58:46 +10:00
objint.c py/objint: Fix converting float to int with OBJ_REPR_B. 2025-09-28 23:24:24 +10:00
objint.h py/objint: Fix int.to_bytes() buffer size checks. 2024-06-24 14:07:00 +10:00
objlist.c py/objlist,stm32,esp32: Add helpers for creating/ensuring list args. 2026-03-19 15:37:19 +11:00
objlist.h py/objlist,stm32,esp32: Add helpers for creating/ensuring list args. 2026-03-19 15:37:19 +11:00
objmap.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
objmodule.c py/objmodule: Avoid interning a string unnecessarily. 2025-10-04 16:24:45 +10:00
objmodule.h py/objmodule: Move decl of mp_obj_module_get_globals to objmodule.h. 2026-02-05 10:42:50 +11:00
objnamedtuple.c py: Cast type names to qstr explicitly. 2025-07-25 10:56:02 +10:00
objnamedtuple.h py/obj: Convert make_new into a mp_obj_type_t slot. 2022-09-19 19:06:15 +10:00
objnone.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
objobject.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
objpolyiter.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
objproperty.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
objrange.c py/objrange: Allow return of non-small ints. 2025-09-26 13:34:57 +10:00
objreversed.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
objringio.c py/objringio: Detect incorrect constructor calls. 2025-08-15 01:21:25 +10:00
objset.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
objsingleton.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
objslice.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
objstr.c py/objstr: Fix b"".hex() so it returns an empty str object. 2026-03-04 12:06:33 +11:00
objstr.h py/objstr: Add a macro to define a bytes object at compile time. 2024-03-15 13:37:31 +11:00
objstringio.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
objstringio.h py/objstringio: If created from immutable object, follow copy on write policy. 2017-06-09 17:33:01 +03:00
objstrunicode.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
objtemplate.c py/objtemplate: Correctly cast qstr literals when printing. 2026-03-22 22:59:15 +11:00
objtuple.c py/objtuple: Remove unused mp_obj_tulpe_del function. 2026-02-07 17:09:22 +11:00
objtuple.h py/objtuple: Remove unused mp_obj_tulpe_del function. 2026-02-07 17:09:22 +11:00
objtype.c py/objtype: Expose mp_native_base_init_wrapper_obj. 2026-02-26 16:15:54 +11:00
objtype.h py/objtype: Expose mp_native_base_init_wrapper_obj. 2026-02-26 16:15:54 +11:00
objzip.c py/objzip: Adjust zip iter code to not use mp_obj_tuple_del. 2026-02-07 17:08:18 +11:00
opmethods.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
pairheap.c py/pairheap: Properly unlink node on pop and delete. 2020-03-26 01:21:04 +11:00
pairheap.h py/pairheap: Add helper function to initialise a new node. 2020-03-26 01:21:04 +11:00
parse.c py/parse: Remove explicit checks for invalid folding operations. 2025-08-15 11:38:20 +10:00
parse.h py/parse: Factor obj extract code to mp_parse_node_extract_const_object. 2022-04-14 22:44:56 +10:00
parsenum.c py: Add MICROPY_USE_GCC_MUL_OVERFLOW_INTRINSIC. 2025-10-01 09:23:05 +10:00
parsenum.h py/formatfloat: Improve accuracy of float formatting code. 2025-08-01 00:47:33 +10:00
parsenumbase.c py/parsenumbase: Favor clarity of code over manual optimisation. 2025-01-29 12:39:05 +11:00
parsenumbase.h all: Use the name MicroPython consistently in comments 2017-07-31 18:35:40 +10:00
persistentcode.c py/persistentcode: Support saving functions with children. 2026-01-27 01:20:36 +11:00
persistentcode.h py/persistentcode: Support saving functions with children. 2026-01-27 01:20:36 +11:00
profile.c all: Use enum instead of bool argument to mp_handle_pending. 2026-02-05 00:29:36 +11:00
profile.h py/objcode: Factor code object out into its own file. 2025-02-11 16:42:14 +11:00
py.cmake py/modweakref: Implement weakref module with ref and finalize classes. 2026-03-22 23:02:38 +11:00
py.mk py/modweakref: Implement weakref module with ref and finalize classes. 2026-03-22 23:02:38 +11:00
pystack.c py: Introduce and use mp_raise_type_arg helper. 2021-07-15 00:12:41 +10:00
pystack.h all: Reformat C and Python source code with tools/codeformat.py. 2020-02-28 10:33:03 +11:00
qstr.c py/qstr: Add qstr_from_strn_static() helper function. 2024-12-23 13:04:54 +11:00
qstr.h py/qstr: Add qstr_from_strn_static() helper function. 2024-12-23 13:04:54 +11:00
qstrdefs.h py: Add support for PEP 750's t-strings. 2026-03-09 23:47:33 +11:00
reader.c py/reader: Provide mp_reader_try_read_rom() function. 2024-12-23 13:04:54 +11:00
reader.h all: Upgrade codespell to v2.4.1. 2025-02-25 16:11:33 +11:00
repl.c py/makemoduledefs.py: Avoid empty extensible module lists. 2025-10-04 16:22:32 +10:00
repl.h py/modsys: Add optional mutable attributes sys.ps1/ps2 and use them. 2022-03-10 10:58:33 +11:00
ringbuf.c py/objringio: Add micropython.RingIO() interface for general use. 2024-09-19 18:00:44 +10:00
ringbuf.h py/objringio: Add micropython.RingIO() interface for general use. 2024-09-19 18:00:44 +10:00
runtime0.h py/emitglue: Simplify mp_raw_code_t's kind and scope_flags members. 2024-02-16 12:48:02 +11:00
runtime_utils.c all: Simplify mp_int_t/mp_uint_t definition. 2025-10-23 15:12:28 +11:00
runtime.c py/modweakref: Implement weakref module with ref and finalize classes. 2026-03-22 23:02:38 +11:00
runtime.h py/runtime: Rename mp_handle_pending_internal to mp_handle_pending. 2026-02-05 00:29:05 +11:00
scheduler.c all: Use enum instead of bool argument to mp_handle_pending. 2026-02-05 00:29:36 +11:00
scope.c py/makeqstrdata.py: Ensure that scope names get low qstr values. 2024-03-26 22:52:25 +11:00
scope.h py/emitglue: Include fun_data_len in mp_raw_code_t only when saving. 2024-02-16 14:17:01 +11:00
sequence.c py/sequence: Remove unused len argument from mp_seq_extract_slice. 2024-07-18 12:51:29 +10:00
showbc.c py/showbc: Use line-number decoding helper. 2025-07-08 11:03:22 -04:00
smallint.c py: Add MICROPY_USE_GCC_MUL_OVERFLOW_INTRINSIC. 2025-10-01 09:23:05 +10:00
smallint.h py: Add MICROPY_USE_GCC_MUL_OVERFLOW_INTRINSIC. 2025-10-01 09:23:05 +10:00
stackctrl.c py: Add new cstack API for stack checking, with limit margin macro. 2024-08-14 12:55:45 +10:00
stackctrl.h py: Add new cstack API for stack checking, with limit margin macro. 2024-08-14 12:55:45 +10:00
stream.c py/stream: Use detailed error strings for TLS sockets. 2026-02-07 16:34:20 +11:00
stream.h py/stream: Use detailed error strings for TLS sockets. 2026-02-07 16:34:20 +11:00
unicode.c all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +11:00
unicode.h py/objstr: Add check for valid UTF-8 when making a str from bytes. 2017-09-06 16:43:09 +10:00
usermod.cmake py/usermod.cmake: If USER_C_MODULES is a folder add micropython.cmake. 2024-11-20 17:38:39 +11:00
verbose.mk esp32: Pass V=1 or BUILD_VERBOSE through to idf.py when building. 2024-12-10 11:28:38 +11:00
vm.c all: Use enum instead of bool argument to mp_handle_pending. 2026-02-05 00:29:36 +11:00
vmentrytable.h py/vmentrytable: Ignore GCC -Woverride-init. 2020-10-22 11:47:36 +02:00
vstr.c py/vstr: Don't check for byte_len>0 in vstr_ins_blank_bytes. 2026-02-04 23:19:09 +11:00
warning.c py: Update my copyright info on some files. 2019-02-06 00:19:00 +11:00