fix(smccc): use full GP regs set on physical FF-A instance

For the following ABIs where Hafnium/S-EL2 is caller and SPMD/EL3 is
callee, assuming it runs in the AArch64 execution state:

FFA_SECONDARY_EP_REGISTER
FFA_EL3_INTR_HANDLE
FFA_ID_GET

On S-EL2 emitting an SMC, clear GP registers that are not required for
those ABIs up to x17.
On return to S-EL2, consume the full x0-x17 GP registers set.

Apply the same to the following SiP calls towards EL3:
PLAT_PROTECT_MEM_64
PLAT_UNPROTECT_MEM_64

Signed-off-by: Olivier Deprez <olivier.deprez@arm.com>
Change-Id: I193f6bb06d13dbc7eb8496c64f9c44271548352d
diff --git a/src/arch/aarch64/hypervisor/handler.c b/src/arch/aarch64/hypervisor/handler.c
index 4f544c0..7bacd2e 100644
--- a/src/arch/aarch64/hypervisor/handler.c
+++ b/src/arch/aarch64/hypervisor/handler.c
@@ -974,7 +974,8 @@
 
 	dlog_verbose("Delegating Group0 interrupt to SPMD\n");
 
-	ret = smc_ffa_call((struct ffa_value){.func = FFA_EL3_INTR_HANDLE_32});
+	ret = smc_ffa_call_ext(
+		(struct ffa_value){.func = FFA_EL3_INTR_HANDLE_32});
 
 	/* Check if the Group0 interrupt was handled successfully. */
 	CHECK(ret.func == FFA_SUCCESS_32);