aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--secure_fw/core/arch/tfm_arch_v8m_main.c30
1 files changed, 15 insertions, 15 deletions
diff --git a/secure_fw/core/arch/tfm_arch_v8m_main.c b/secure_fw/core/arch/tfm_arch_v8m_main.c
index 9a0d4ccdda..1d3fd22dd0 100644
--- a/secure_fw/core/arch/tfm_arch_v8m_main.c
+++ b/secure_fw/core/arch/tfm_arch_v8m_main.c
@@ -93,13 +93,13 @@ int32_t tfm_core_sfn_request(const struct tfm_sfn_req_s *desc_ptr)
"PUSH {r4-r12, lr} \n"
"SVC %[SVC_REQ] \n"
"MOV r4, #0 \n"
- "MOV r5, #0 \n"
- "MOV r6, #0 \n"
- "MOV r7, #0 \n"
- "MOV r8, #0 \n"
- "MOV r9, #0 \n"
- "MOV r10, #0 \n"
- "MOV r11, #0 \n"
+ "MOV r5, r4 \n"
+ "MOV r6, r4 \n"
+ "MOV r7, r4 \n"
+ "MOV r8, r4 \n"
+ "MOV r9, r4 \n"
+ "MOV r10, r4 \n"
+ "MOV r11, r4 \n"
"BLX lr \n"
"SVC %[SVC_RET] \n"
"POP {r4-r12, pc} \n"
@@ -120,14 +120,14 @@ void priv_irq_handler_main(uint32_t partition_id,
/* Request SVC to configure environment for the unpriv IRQ handler */
"SVC %[SVC_REQ] \n"
/* clear the callee saved registers to prevent information leak */
- "MOV r4, #0 \n"
- "MOV r5, #0 \n"
- "MOV r6, #0 \n"
- "MOV r7, #0 \n"
- "MOV r8, #0 \n"
- "MOV r9, #0 \n"
- "MOV r10, #0 \n"
- "MOV r11, #0 \n"
+ "MOV r4, #0 \n"
+ "MOV r5, r4 \n"
+ "MOV r6, r4 \n"
+ "MOV r7, r4 \n"
+ "MOV r8, r4 \n"
+ "MOV r9, r4 \n"
+ "MOV r10, r4 \n"
+ "MOV r11, r4 \n"
/* Branch to the unprivileged handler */
"BLX lr \n"
/* Request SVC to reconfigure the environment of the interrupted