Merge "fix(simd): fix base register in fpregs_context_*" into integration
diff --git a/lib/el3_runtime/aarch64/context.S b/lib/el3_runtime/aarch64/context.S
index fed24f0..6415cb3 100644
--- a/lib/el3_runtime/aarch64/context.S
+++ b/lib/el3_runtime/aarch64/context.S
@@ -75,6 +75,9 @@
  */
 #if CTX_INCLUDE_FPREGS
 func fpregs_context_save
+	/* Save x0 and pass its original value to fpregs_state_save */
+	mov	x1, x0
+
 	stp	q0, q1, [x0], #32
 	stp	q2, q3, [x0], #32
 	stp	q4, q5, [x0], #32
@@ -92,7 +95,7 @@
 	stp	q28, q29, [x0], #32
 	stp	q30, q31, [x0], #32
 
-	fpregs_state_save x0, x9
+	fpregs_state_save x1, x9
 
 	ret
 endfunc fpregs_context_save
@@ -112,6 +115,9 @@
  * ------------------------------------------------------------------
  */
 func fpregs_context_restore
+	/* Save x0 and pass its original value to fpregs_state_restore */
+	mov	x1, x0
+
 	ldp	q0, q1, [x0], #32
 	ldp	q2, q3, [x0], #32
 	ldp	q4, q5, [x0], #32
@@ -129,7 +135,7 @@
 	ldp	q28, q29, [x0], #32
 	ldp	q30, q31, [x0], #32
 
-	fpregs_state_restore x0, x9
+	fpregs_state_restore x1, x9
 
 	ret
 endfunc fpregs_context_restore