mirror of
https://git.codelinaro.org/clo/qsdk/oss/boot/u-boot-2016.git
synced 2026-03-14 21:10:27 +01:00
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> |
||
|---|---|---|
| .. | ||
| ashldi3.S | ||
| ashrdi3.S | ||
| asm-offsets.c | ||
| bootm-fdt.c | ||
| bootm.c | ||
| cache-cp15.c | ||
| cache-pl310.c | ||
| cache.c | ||
| ccn504.S | ||
| cmd_boot.c | ||
| crt0.S | ||
| crt0_64.S | ||
| crt0_aarch64_efi.S | ||
| crt0_arm_efi.S | ||
| debug.S | ||
| div0.c | ||
| div64.S | ||
| eabi_compat.c | ||
| elf_aarch64_efi.lds | ||
| elf_arm_efi.lds | ||
| gic_64.S | ||
| interrupts.c | ||
| interrupts_64.c | ||
| interrupts_m.c | ||
| lib1funcs.S | ||
| lshrdi3.S | ||
| Makefile | ||
| memcpy.S | ||
| memset.S | ||
| muldi3.S | ||
| psci-dt.c | ||
| reloc_aarch64_efi.c | ||
| reloc_arm_efi.c | ||
| relocate.S | ||
| relocate_64.S | ||
| reset.c | ||
| sections.c | ||
| semihosting.c | ||
| setjmp.S | ||
| setjmp_aarch64.S | ||
| spl.c | ||
| stack.c | ||
| uldivmod.S | ||
| vectors.S | ||
| vectors_m.S | ||
| zimage.c | ||