aboutsummaryrefslogtreecommitdiff
path: root/aarch64/el3/el3_exception.S
diff options
context:
space:
mode:
Diffstat (limited to 'aarch64/el3/el3_exception.S')
-rw-r--r--aarch64/el3/el3_exception.S9
1 files changed, 8 insertions, 1 deletions
diff --git a/aarch64/el3/el3_exception.S b/aarch64/el3/el3_exception.S
index 80388c0..07eb25d 100644
--- a/aarch64/el3/el3_exception.S
+++ b/aarch64/el3/el3_exception.S
@@ -5,20 +5,27 @@ el3_vectors:
.word 0 // Add padding to force the below alignment
.align 9 // Force these vectors to 0x400 alignment
el3_sync_exception_current:
+ stp x30, x2, [sp, #-16]!
+ stp x0, x1, [sp, #-16]!
mrs x0, esr_el3
mov x1, #0xffffff
and x1, x1, x0
lsr x0, x0, #26
- mrs x2, far_el3
bl el3_handle_exception
+ ldp x0, x1, [sp], #16
+ ldp x30, x2, [sp], #16
eret
.align 10 // Force these vectors to 0x400 alignment
el3_sync_exception_lower64:
+ stp x30, x2, [sp, #-16]!
+ stp x0, x1, [sp, #-16]!
mrs x0, esr_el3
mov x1, #0xffffff
and x1, x1, x0
lsr x0, x0, #26
bl el3_handle_exception
+ ldp x0, x1, [sp], #16
+ ldp x30, x2, [sp], #16
eret
.align 7
el3_serr_exception: