u-boot-brain/arch/arm/lib
Philipp Tomsich b4806d6f1f arm: provide a PCS-compliant setjmp implementation
The previous setjmp-implementation (as a static inline function that
contained an 'asm volatile' sequence) was extremely fragile: (some
versions of) GCC optimised the set of registers.  One critical example
was the removal of 'r9' from the clobber list, if -ffixed-reg9 was
supplied.

To increase robustness and ensure PCS-compliant behaviour, the setjmp
and longjmp implementation are now in assembly and closely match what
one would expect to find in a libc implementation.

Signed-off-by: Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
Tested-by: Andy Yan <andy.yan@rock-chips.com>
2017-11-21 23:57:22 +01:00
..
ashldi3.S arm: lib: fix push/pop-section directives 2016-06-03 15:14:11 -04:00
ashrdi3.S arm: lib: fix push/pop-section directives 2016-06-03 15:14:11 -04:00
asm-offsets.c ARM: adjust arm-smccc code for use in U-Boot 2017-04-18 10:29:17 -04:00
bootm-fdt.c spl: fdt: support for fdt fixup for falcon boot 2017-05-11 22:04:26 -04:00
bootm.c env: Rename getenv/_f() to env_get() 2017-08-16 08:30:24 -04:00
cache-cp15.c ARM: remove bogus cp_delay() function 2017-06-12 08:38:39 -04:00
cache-pl310.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
cache.c arm: Migrate SYS_THUMB_BUILD to Kconfig, introduce SPL_SYS_THUMB_BUILD 2017-03-18 20:28:01 -04:00
ccn504.S armv8: lsch3: Enable WUO config for RNI-20 node 2016-03-21 12:42:10 -07:00
cmd_boot.c common/cmd_boot: keep ARM v7M in thumb mode during do_go_exec() 2015-05-28 08:18:23 -04:00
crt0_64.S armv8: update gd after relocate 2017-11-17 07:44:13 -05:00
crt0_aarch64_efi.S efi: arm: Add aarch64 EFI app support 2016-11-14 23:24:04 +01:00
crt0_arm_efi.S efi: arm: Add EFI app support 2016-11-14 23:24:04 +01:00
crt0.S arm: Migrate SYS_THUMB_BUILD to Kconfig, introduce SPL_SYS_THUMB_BUILD 2017-03-18 20:28:01 -04:00
debug.S arm: debug: adjust for U-Boot 2014-10-26 22:23:40 +01:00
div64.S arm: lib: fix push/pop-section directives 2016-06-03 15:14:11 -04:00
div0.c Add GPL-2.0+ SPDX-License-Identifier to source files 2013-07-24 09:44:38 -04:00
eabi_compat.c eabi_compat: add __aeabi_memcpy __aeabi_memset 2014-09-09 13:51:11 +02:00
elf_aarch64_efi.lds efi: arm: Add aarch64 EFI app support 2016-11-14 23:24:04 +01:00
elf_arm_efi.lds efi: arm: Add EFI app support 2016-11-14 23:24:04 +01:00
gic_64.S armv8/gic: Fix GIC v2 initialization 2015-10-15 14:47:03 +02:00
interrupts_64.c arm64: Allow EFI payload code to take exceptions 2016-03-15 21:30:11 -04:00
interrupts_m.c Change e-mail address of Kamil Lulko 2015-12-05 18:22:32 -05:00
interrupts.c arm: adjust PC displayed in exception handlers to point to the failing instruction 2017-06-12 08:38:39 -04:00
lib1funcs.S arm: Migrate SYS_THUMB_BUILD to Kconfig, introduce SPL_SYS_THUMB_BUILD 2017-03-18 20:28:01 -04:00
lshrdi3.S arm: lib: fix push/pop-section directives 2016-06-03 15:14:11 -04:00
Makefile arm: provide a PCS-compliant setjmp implementation 2017-11-21 23:57:22 +01:00
memcpy.S arm: Migrate SYS_THUMB_BUILD to Kconfig, introduce SPL_SYS_THUMB_BUILD 2017-03-18 20:28:01 -04:00
memset.S arm: Migrate SYS_THUMB_BUILD to Kconfig, introduce SPL_SYS_THUMB_BUILD 2017-03-18 20:28:01 -04:00
muldi3.S arm: lib: fix push/pop-section directives 2016-06-03 15:14:11 -04:00
psci-dt.c ARMv8/sec_firmware: relocated and renamed the config FSL_PPA_ARMV8_PSCI 2017-01-18 09:39:51 -08:00
reloc_aarch64_efi.c efi: arm: Add aarch64 EFI app support 2016-11-14 23:24:04 +01:00
reloc_arm_efi.c efi: arm: Add EFI app support 2016-11-14 23:24:04 +01:00
relocate_64.S arm64: support running at addr other than linked to 2017-11-17 07:44:13 -05:00
relocate.S elf: arm: Add a few ARM relocation types 2016-11-14 23:24:03 +01:00
reset.c arm:reset: call the reset_misc() before the cpu reset 2014-09-05 13:58:49 +09:00
sections.c ARM: Add an empty secure stack section 2016-07-15 15:54:57 +02:00
semihosting.c env: Rename setenv() to env_set() 2017-08-16 08:22:18 -04:00
setjmp_aarch64.S arm: provide a PCS-compliant setjmp implementation 2017-11-21 23:57:22 +01:00
setjmp.S arm: provide a PCS-compliant setjmp implementation 2017-11-21 23:57:22 +01:00
spl.c armv8: layerscape: Enable falcon boot 2017-10-09 08:48:45 -07:00
stack.c Remove various unused interrupt related code 2017-04-06 20:42:18 -04:00
uldivmod.S arm: lib: fix push/pop-section directives 2016-06-03 15:14:11 -04:00
vectors_m.S Change e-mail address of Kamil Lulko 2015-12-05 18:22:32 -05:00
vectors.S arm: boot0 hook: move boot0 hook before '_start' 2017-11-21 23:57:21 +01:00
zimage.c spl: zImage support in Falcon mode 2016-07-22 09:53:00 -04:00