diff options
author | Alessandro Gatti <a.gatti@frob.it> | 2025-06-08 21:51:30 +0200 |
---|---|---|
committer | Damien George <damien@micropython.org> | 2025-06-10 12:28:29 +1000 |
commit | 80b823bca15d846de940d08a6e8144290514f8a2 (patch) | |
tree | c0dd708e9011ba005f5b8a649c180defebe2986b /docs/esp32/tutorial/intro.rst | |
parent | 0da22b2c30aac8a843c504f907b0675190ee0c89 (diff) | |
download | micropython-80b823bca15d846de940d08a6e8144290514f8a2.tar.gz micropython-80b823bca15d846de940d08a6e8144290514f8a2.zip |
py/asmxtensa: Extend BCCZ range to 18 bits.
This commit lets the native emitter backend extends the range of the
BCCZ family of opcodes (BEQZ, BNEZ, BLTZ, BGEZ) from 12 bits to 18
bits.
The test suite contains some test files that, when compiled into native
code, would require BCCZ jumps outside the (signed) 12 bits range. In
this case either the MicroPython interpreter or mpy-cross would raise an
exception, not running the test when using the "--via-mpy --emit native"
command line options with the test runner.
This comes with a 3 bytes penalty on each forward jump, bringing the
footprint of those jumps to 6 bytes each, as a longer opcode sequence
has to be emitted to let jumps access a larger range. However, this is
slightly offset by the fact that backward jumps can be emitted with a
single opcode if the range is small enough (3 bytes for a 12-bits
offset).
Signed-off-by: Alessandro Gatti <a.gatti@frob.it>
Diffstat (limited to 'docs/esp32/tutorial/intro.rst')
0 files changed, 0 insertions, 0 deletions