rockbox/firmware/asm
Aidan MacDonald e29780fe09 firmware: fix thread_exit handling on ARM Cortex-M
The "mov lr, pc" instruction doesn't link a proper return
address in Thumb mode: bit 0 will be unset, leading to a
UsageFault exception when returning from the thread's main
function.

Cortex-M has the "blx" instruction to automatically branch
and link the correct return address, so use that.

Change-Id: I4c0ca55b1b2204286343f906f0b53be0c0ddc392
2026-01-12 15:37:29 +00:00
..
arm firmware: fix thread_exit handling on ARM Cortex-M 2026-01-12 15:37:29 +00:00
m68k build: Various LTO fixes 2024-11-24 08:43:23 -05:00
mips configure: Partial revert of 6c6bdbf60e 2025-12-06 15:54:43 -05:00
beep.c beep/mixer code: Code police a bit. 2012-02-19 00:38:58 -05:00
corelock.c kernel: Break out kernel primitives into separate files and move to separate dir. 2014-03-03 18:11:57 +01:00
ffs.c Generic find_first_set_bit can use __builtin_ctz instead of __builtin_ffs 2012-02-04 18:08:17 -05:00
lcd-as-memframe-24bit.c lcd-24bit: Introduce a 24-bit mid-level LCD driver 2014-06-21 00:15:53 +02:00
lcd-as-memframe.c lcd: fix yellow from accidental commit 2024-04-06 21:37:14 -04:00
memcpy.c Renamed defines UNALIGNED to ROCKBOX_UNALIGNED - UNALIGNED is already 2017-01-15 21:32:49 +01:00
memmove.c Renamed defines UNALIGNED to ROCKBOX_UNALIGNED - UNALIGNED is already 2017-01-15 21:32:49 +01:00
mempcpy.c Add mempcpy implementation 2014-08-29 22:06:57 -04:00
memset.c Renamed defines UNALIGNED to ROCKBOX_UNALIGNED - UNALIGNED is already 2017-01-15 21:32:49 +01:00
memset16.c Fix dangerous casts 2017-02-04 17:24:47 +01:00
pcm-mixer.c Coldfire: Optimize emac context save/restore in mixer ISR. 2012-03-12 00:16:12 +01:00
SOURCES firmware: use C versions of memcpy and memmove for ARM Cortex-M 2026-01-08 16:41:59 +00:00
strlen.c Renamed defines UNALIGNED to ROCKBOX_UNALIGNED - UNALIGNED is already 2017-01-15 21:32:49 +01:00
thread-unix.c thread-unix patchup! 2014-08-18 10:40:44 -04:00
thread-win32.c Create fimrware/asm directory for assembly optimized stuff. 2012-01-22 18:46:44 +01:00
thread.c firmware: split ARM classic & Cortex-M thread implementations 2026-01-12 15:37:27 +00:00
thread.h firmware: split ARM classic & Cortex-M thread implementations 2026-01-12 15:37:27 +00:00