commit c3938efaed94cbf4c42fe54478f54d4baba2c7b0
parent ab6318eaa3c4be6440b9df264aa5a194d2ca9e48
Author: Dimitris Papastamos <dimitris.papastamos@arm.com>
Date: Mon, 15 Oct 2018 12:30:31 +0100
[arm64] Terminate stackframe by zeroing frame pointer
Change-Id: I2a1a9b0cd468b3050b72f12694a1fb6151032736
Signed-off-by: Dimitris Papastamos <dimitris.papastamos@arm.com>
Diffstat:
2 files changed, 8 insertions(+), 6 deletions(-)
diff --git a/arch/arm64/arch.s b/arch/arm64/arch.s
@@ -180,6 +180,8 @@ _synchdl:
mov x0,sp /* x0 = trapframe */
msr spsel,#0
+ stp xzr,xzr,[sp,#-16]!
+ mov x29,sp
bl synchdl
adr x0,outsync
b panic
diff --git a/arch/arm64/crt-none.s b/arch/arm64/crt-none.s
@@ -9,18 +9,18 @@ _start:
getpc:
sub x30,x30,4
+ adr x0,vectbl
+ msr S3_6_C12_C0_6,x0 /* VBAR_R */
+ isb
+
msr spsel,#0
ldr x0,=SRAMADDR
- mov x1,#(SRAMSIZE-16) /* Stack grows down towards BSS */
+ mov x1,#SRAMSIZE /* Stack grows down towards BSS */
add x0,x0,x1
mov sp,x0
+ stp xzr,xzr,[sp,#-16]!
mov x29,sp
- adr x0,vectbl
- msr S3_6_C12_C0_6,x0 /* VBAR_R */
- isb
-
- stp xzr,xzr,[x29] /* zero FP/LR to terminate backtrace */
mov x0,x30
ldr x1,=SRAMADDR
mov x2,#SRAMSIZE