1
0
Fork 0
forked from len0rd/rockbox
foxbox/firmware
Solomon Peachy 905e19905b 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
2020-07-03 21:36:41 +00:00
..
asm ARM: Rejigger the asm corelock functions 2020-07-03 21:36:41 +00:00
common Try mounting as "superfloppy" first 2020-06-30 21:11:52 +00:00
decompressor Add KEEP() around vectors in linker scripts. 2011-12-18 06:43:08 +00:00
drivers button: allow disabling software poweroff 2020-06-27 13:27:40 -04:00
export button: allow disabling software poweroff 2020-06-27 13:27:40 -04:00
include Add proper float formatting to vuprintf 2019-07-19 22:07:41 -04:00
kernel threads: Move stack_size to end of struct thread (followup to f19ffe2) 2020-04-05 15:55:38 +02:00
libc stdio compat layer for plugins 2017-12-23 20:54:56 -05:00
target xduoox3ii: Add UI Simulator bitmap, keymap, and fix offsets. 2020-06-12 15:31:30 +00:00
test Limit more variables to file scope 2015-01-11 21:40:51 +01:00
usbstack Workaround for usb_storage_init_connection() panic 2018-07-30 17:54:51 -04:00
arabjoin.c
arabjoin.h
ata_idle_notify.c Fix reds. 2014-03-14 23:43:45 +01:00
backlight-sw-fading.c Get rid of stupid _backlight_* function names 2015-01-12 11:09:27 +01:00
backlight.c Fix reversal of "always/never" in "LCD setting > Sleep (After Backlight Off)" 2019-06-27 14:19:05 +02:00
bidi.c bidi.c: Check buffer sizes. 2014-01-09 23:30:32 +01:00
buflib.c Buflib add range checks blocks and crc_slot raise panic if out of range 2019-01-04 06:47:20 +01:00
COPYING
core_alloc.c Make a few local variables static 2015-01-11 18:02:43 +01:00
debug.c Redirect (L)DEBUGFs to adb logcat in DEBUG enabled builds. 2010-09-20 17:38:47 +00:00
eeprom_settings.c
enc_base.c FS#12378 : Remove various unused code, and comment out some unused code and data for reference or future use. 2011-12-14 21:45:25 +00:00
events.c Make thirty functions static to reduce binary size 2015-01-05 18:44:36 +01:00
firmware.make Put -lfirmware in CORE_LIBS, to fix -thumb builds 2019-07-19 15:16:37 +02:00
font.c Initial commit for the Sony NWZ linux port 2017-09-05 21:42:12 +02:00
font_cache.c fonts: Do not unload completely on USB. 2014-01-15 23:37:39 +01:00
general.c Undo hacks to meant to get around string formatting limitations 2017-11-21 05:01:14 -05:00
hangul.c
ifp_usb_serial.c Make thirty functions static to reduce binary size 2015-01-05 18:44:36 +01:00
load_code.c Fix various reds. Some includes needed fixup. 2014-03-03 19:10:48 +01:00
logf.c Implement a much more capable vuprintf() 2017-11-21 05:00:27 -05:00
lru.c Revert r30818 2011-10-22 08:02:38 +00:00
panic.c debug: Wrap rb_backtrace with HAVE_RB_BACKTRACE instead of CPU_ARM 2018-11-09 02:32:39 +01:00
pcm.c Greatly reduce volume-change zipper artifacts with SW volume. 2014-03-08 08:04:41 +01:00
pcm_mixer.c Enable setting of global output samplerate on certain targets. 2013-07-06 04:22:04 +02:00
pcm_sampr.c
pcm_sw_volume.c Greatly reduce volume-change zipper artifacts with SW volume. 2014-03-08 08:04:41 +01:00
powermgmt.c Comment details, typos 2020-05-24 14:31:15 +02:00
profile.c
README
rolo.c rolo.c: Change 'int errno' to 'int err' 2017-11-07 16:48:07 -05:00
rom.lds rombox: Do not copy .init section to ram on startup. 2014-01-20 10:42:02 +01:00
screendump.c Agptek Rocker: Initial commit 2018-06-12 10:31:14 +02:00
scroll_engine.c Remove lcd_scroll_worker from bootloader except remote displays and charcell 2018-05-23 00:37:27 +01:00
sdmmc.c
sound.c Fix Red -- sound_current #_2 2019-07-25 08:49:11 -05:00
SOURCES hiby: Refactor X3ii/X20 and Rocker LCD code 2020-04-08 15:56:06 +02:00
storage.c misc: Fix some assorted compiler warnings 2018-09-28 11:53:15 -04:00
system.c AMS: Return ascodec to interrupt-based I2C2 driver 2017-01-25 00:05:13 +01:00
timer.c Fix timer Agptek Rocker (other hosted players) 2019-10-17 21:19:00 +02:00
tuner.c Improve radio RDS driver and framework 2017-02-11 22:19:32 -05:00
usb.c Add cleaned-up xDuoo X3 support 2018-07-28 10:56:31 -04:00

See docs/README