summaryrefslogtreecommitdiff
path: root/tests/runtime_services
diff options
context:
space:
mode:
authorJeenu Viswambharan <jeenu.viswambharan@arm.com>2017-11-07 12:03:05 +0000
committerSandrine Bailleux <sandrine.bailleux@arm.com>2017-11-10 15:31:57 +0000
commit9e5fb401b25215bfbea7706b60a0368242f745d2 (patch)
treed9a0b5fc540e37bdfec0da14f28fde192124f55b /tests/runtime_services
parentef3d1cd24e0a03a540c6f8225efe7f12198cb33b (diff)
SDEI: Avoid touching x29
The current SDEI entry points setup x29 which isn't needed; the compiler will set that up directly within the C handler. Change-Id: I28d70cb105c8ca614ac41f23048f1bca1e8e26a4 Signed-off-by: Jeenu Viswambharan <jeenu.viswambharan@arm.com>
Diffstat (limited to 'tests/runtime_services')
-rw-r--r--tests/runtime_services/standard_service/sdei/system_tests/sdei_entrypoint.S13
1 files changed, 4 insertions, 9 deletions
diff --git a/tests/runtime_services/standard_service/sdei/system_tests/sdei_entrypoint.S b/tests/runtime_services/standard_service/sdei/system_tests/sdei_entrypoint.S
index e152c1b..dc2c227 100644
--- a/tests/runtime_services/standard_service/sdei/system_tests/sdei_entrypoint.S
+++ b/tests/runtime_services/standard_service/sdei/system_tests/sdei_entrypoint.S
@@ -41,10 +41,9 @@
#ifdef AARCH64
func sdei_entrypoint
- stp x29, x30, [sp, #-16]!
- mov x29, sp
+ stp xzr, x30, [sp, #-16]!
bl sdei_event_handler
- ldp x29, x30, [sp],#16
+ ldp xzr, x30, [sp],#16
mov_imm x0, SDEI_EVENT_COMPLETE
mov x1, xzr
smc #0
@@ -52,10 +51,7 @@ func sdei_entrypoint
endfunc sdei_entrypoint
func sdei_entrypoint_resume
- stp x29, x30, [sp, #-16]!
- /* Store xzr to keep the stack aligned to 16 bytes */
- stp x2, xzr, [sp, #-16]!
- mov x29, sp
+ stp x2, x30, [sp, #-16]!
/* Dispatch to C handler */
bl sdei_event_handler
@@ -75,8 +71,7 @@ func sdei_entrypoint_resume
sev
/* Populate `x0` and `x1` to prepare for SMC call */
- ldp x1, xzr, [sp], #16
- ldp x29, x30, [sp], #16
+ ldp x1, x30, [sp], #16
mov_imm x0, SDEI_EVENT_COMPLETE_AND_RESUME
smc #0
endfunc sdei_entrypoint_resume