u-boot/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
..
Makefile arm: provide a PCS-compliant setjmp implementation 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
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
crt0.S arm: Migrate SYS_THUMB_BUILD to Kconfig, introduce SPL_SYS_THUMB_BUILD 2017-03-18 20:28:01 -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
debug.S
div0.c
div64.S arm: lib: fix push/pop-section directives 2016-06-03 15:14:11 -04:00
eabi_compat.c
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
interrupts.c arm: adjust PC displayed in exception handlers to point to the failing instruction 2017-06-12 08:38:39 -04:00
interrupts_64.c arm64: Allow EFI payload code to take exceptions 2016-03-15 21:30:11 -04:00
interrupts_m.c
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
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.S elf: arm: Add a few ARM relocation types 2016-11-14 23:24:03 +01:00
relocate_64.S arm64: support running at addr other than linked to 2017-11-17 07:44:13 -05:00
reset.c
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.S arm: provide a PCS-compliant setjmp implementation 2017-11-21 23:57:22 +01:00
setjmp_aarch64.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.S arm: boot0 hook: move boot0 hook before '_start' 2017-11-21 23:57:21 +01:00
vectors_m.S
zimage.c spl: zImage support in Falcon mode 2016-07-22 09:53:00 -04:00