micropython/py
Alessandro Gatti 424ae08680 py/asmrv32: Do not clobber index register on viper load/store.
This commit lets the native emitter preserve the value of the index
register when performing register-indexed loads or stores for halfword
or word values on RV32.

The original code was optimised too aggressively to reduce the generated
code's size, using compressed opcodes that alias the target register to
one of the operands.  In register-indexed load/store operations, the
index register was assumed to be allocated somewhere safe, but it was
not always the case.

To solve this, now all halfword and word register-indexed operations
will use REG_TEMP2 to store the scaled index register.  The size penalty
on generated code varies across operation sizes and enabled extensions:

- byte operations stay the same size with or without Zba
- halfword operations will be 2 bytes larger without Zba, and will stay
  the same size with Zba
- word operations will be 4 bytes larger without Zba, and 2 bytes larger
  with Zba

There is also a minor firmware footprint increase to hold the extra
logic needed for conditional register clobbering, but it shouldn't be
that large anyway.

Signed-off-by: Alessandro Gatti <a.gatti@frob.it>
2026-02-24 18:42:53 +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: Check for bytecode with MICROPY_PY_FUNCTION_ATTRS_CODE. 2026-01-27 01:20:36 +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/gc: Differentiate between root and subtree pointers for debug log. 2026-02-07 17:41:26 +11:00
gc.h py/gc: Add "max new split" value in result of gc.mem_free(). 2023-09-15 12:19:13 +10:00
grammar.h py/compile: Implement PEP 526, syntax for variable annotations. 2020-06-16 23:18:01 +10:00
lexer.c py/lexer: Move f-string completion code to more logical location. 2026-02-04 23:19:09 +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 all: Remove the "STATIC" macro and just use "static" instead. 2024-03-07 14:20:42 +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
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
mpconfig.h py/stream: Use detailed error strings for TLS sockets. 2026-02-07 16:34:20 +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/mpstate: Make it possible for mpy-cross to set emitter options. 2025-09-19 10:06:18 +02: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/objtuple: Move all tuple helper declarations to objtuple.h. 2026-02-05 10:43:54 +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 all: Replace legacy name with MicroPython and MPy as applicable. 2025-10-04 00:19:40 +10: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: Make three list helper functions inline. 2026-02-05 10:43:54 +11:00
objlist.h py/objlist: Make three list helper functions inline. 2026-02-05 10:43:54 +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: Avoid double zero init on sized bytes. 2026-02-06 00:19:48 +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
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: Use locals_ptr directly instead of getting it from the slot. 2025-08-19 12:58:02 +10:00
objtype.h py/obj: Optimise code size and performance for make_new as a slot. 2022-09-19 19:06:16 +10: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/py.cmake: Add nlraarch64. 2025-09-16 13:04:42 +10:00
py.mk py/py.mk: Regenerate moduledefs.h if makemoduledefs.py changes. 2025-10-04 16:22:26 +10: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 extmod/vfs: Add mp_vfs_mount_romfs_protected() helper. 2025-03-06 12:52:35 +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/runtime: Make import-all support non-modules via __dict__/__all__. 2026-02-05 00:24:14 +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