diff options
author | Solomon Peachy <pizza@shaftnet.org> | 2020-06-29 19:23:03 -0400 |
---|---|---|
committer | Solomon Peachy <pizza@shaftnet.org> | 2020-07-03 21:36:41 +0000 |
commit | 905e19905b8601b672ed9a9b7121dfdb2444602c (patch) | |
tree | 851998a51631946a860ed678c518f32ec92affb4 /rbutil | |
parent | 9cf2492407af6fae5928685205e7fc17032ac253 (diff) |
ARM: Rejigger the asm corelock functions
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
Diffstat (limited to 'rbutil')
0 files changed, 0 insertions, 0 deletions