diff options
| author | Damien George <damien@micropython.org> | 2021-06-04 01:17:09 +1000 |
|---|---|---|
| committer | Damien George <damien@micropython.org> | 2021-06-05 11:03:04 +1000 |
| commit | a70a4e6688c6b29797b1e314ce2841e8e4fecb7b (patch) | |
| tree | e80ecb4c5ded463235da813735ac2a75ec0f324e /py/asmarm.h | |
| parent | fad0efdcf277dcc5698d59445074f4ee806d7976 (diff) | |
py/emitglue: Always flush caches when assigning native ARM code.
Prior to this commit, cache flushing for ARM native code was done only in
the assembler code asm_thumb_end_pass()/asm_arm_end_pass(), at the last
pass of the assembler. But this misses flushing the cache when loading
native code from an .mpy file, ie in persistentcode.c.
The change here makes sure the cache is always flushed/cleaned/invalidated
when assigning native code on ARM architectures.
This problem was found running tests/micropython/import_mpy_native_gc.py on
the mimxrt port.
Signed-off-by: Damien George <damien@micropython.org>
Diffstat (limited to 'py/asmarm.h')
| -rw-r--r-- | py/asmarm.h | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/py/asmarm.h b/py/asmarm.h index 46da661fa..0e029f20e 100644 --- a/py/asmarm.h +++ b/py/asmarm.h @@ -72,7 +72,9 @@ typedef struct _asm_arm_t { uint stack_adjust; } asm_arm_t; -void asm_arm_end_pass(asm_arm_t *as); +static inline void asm_arm_end_pass(asm_arm_t *as) { + (void)as; +} void asm_arm_entry(asm_arm_t *as, int num_locals); void asm_arm_exit(asm_arm_t *as); |
