summaryrefslogtreecommitdiff
path: root/arch/arm/kernel/entry-armv.S
diff options
context:
space:
mode:
authorArd Biesheuvel <ardb@kernel.org>2021-11-26 19:37:27 +0100
committerArd Biesheuvel <ardb@kernel.org>2021-12-06 12:49:16 +0100
commit4e918ab13eaf40f19938659cb5a22c93172778a8 (patch)
tree0df6541cd53851dd56dc5a8013c29378b890d261 /arch/arm/kernel/entry-armv.S
parent1fa8c4b19543ae8c8894ec92a18696c9f9b03fc8 (diff)
ARM: assembler: add optimized ldr/str macros to load variables from memory
We will be adding variable loads to various hot paths, so it makes sense to add a helper macro that can load variables from asm code without the use of literal pool entries. On v7 or later, we can simply use MOVW/MOVT pairs, but on earlier cores, this requires a bit of hackery to emit a instruction sequence that implements this using a sequence of ADD/LDR instructions. Acked-by: Linus Walleij <linus.walleij@linaro.org> Acked-by: Nicolas Pitre <nico@fluxnic.net> Signed-off-by: Ard Biesheuvel <ardb@kernel.org> Tested-by: Marc Zyngier <maz@kernel.org> Tested-by: Vladimir Murzin <vladimir.murzin@arm.com> # ARMv7M
Diffstat (limited to 'arch/arm/kernel/entry-armv.S')
-rw-r--r--arch/arm/kernel/entry-armv.S2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/arm/kernel/entry-armv.S b/arch/arm/kernel/entry-armv.S
index 1a6cf711a3b4..7f7ac963445c 100644
--- a/arch/arm/kernel/entry-armv.S
+++ b/arch/arm/kernel/entry-armv.S
@@ -53,7 +53,7 @@ UNWIND( .setfp fpreg, sp )
subs r2, sp, r0 @ SP above bottom of IRQ stack?
rsbscs r2, r2, #THREAD_SIZE @ ... and below the top?
#ifdef CONFIG_VMAP_STACK
- ldr_l r2, high_memory, cc @ End of the linear region
+ ldr_va r2, high_memory, cc @ End of the linear region
cmpcc r2, r0 @ Stack pointer was below it?
#endif
movcs sp, r0 @ If so, revert to incoming SP