905e19905b
This appears to solve _some_ of the crashes experienced when using gcc494 on the multicore PP targets (eg most older ipods). (With this change, the asm vs plain-C versions behave identically) corelock_lock(), corelock_unlock(), and corelock_trylock() were declared with the 'naked' attribute. However, naked functions are only allowed to have 'Basic Asm' components, and we used some extended asm, but without declaring clobbered registers, making assumptions about register arguments, and also directly returned to the caller via asm code. This is what the GCC docs have to say about this stuff: "While using extended asm or a mixture of basic asm and C code may appear to work, they cannot be depended upon to work reliably and are not supported." Change-Id: I79a9c4895584f9af365e6c2387595e9c45d89c7d |
||
---|---|---|
.. | ||
beep.c | ||
corelock.c | ||
ffs.S | ||
lcd-as-memframe.S | ||
memcpy.S | ||
memmove.S | ||
memset.S | ||
memset16.S | ||
pcm-mixer-armv4.c | ||
pcm-mixer-armv5.c | ||
pcm-mixer-armv6.c | ||
pcm-mixer.c | ||
thread.c | ||
thread.h |