SPM: Use Basic Asm in naked functions
Functions declared with the naked attribute require basic
asm(assembler instructions without operands).
Signed-off-by: Sherry Zhang <sherry.zhang2@arm.com>
Change-Id: I432166e1dcb416b7ab5fad36c5552ffa84cb909a
diff --git a/secure_fw/partitions/lib/sprt/service_api.c b/secure_fw/partitions/lib/sprt/service_api.c
index f374f9c..1c0fb1a 100644
--- a/secure_fw/partitions/lib/sprt/service_api.c
+++ b/secure_fw/partitions/lib/sprt/service_api.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2020-2021, Arm Limited. All rights reserved.
+ * Copyright (c) 2020-2022, Arm Limited. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*
@@ -13,6 +13,7 @@
#else
#include "tfm_core_svc.h"
#endif /* TFM_PSA_API */
+#include "utilities.h"
__attribute__((naked))
int32_t tfm_core_get_boot_data(uint8_t major_type,
@@ -20,9 +21,9 @@
uint32_t len)
{
__ASM volatile(
- "SVC %0\n"
- "BX lr\n"
- : : "I" (TFM_SVC_GET_BOOT_DATA));
+ "SVC "M2S(TFM_SVC_GET_BOOT_DATA)" \n"
+ "BX lr \n"
+ );
}
#ifdef TFM_PSA_API
@@ -30,8 +31,8 @@
__attribute__((naked))
void tfm_flih_func_return(psa_flih_result_t result)
{
- __ASM volatile("SVC %0 \n"
- "BX r0 \n"
- : : "I" (TFM_SVC_FLIH_FUNC_RETURN));
+ __ASM volatile("SVC "M2S(TFM_SVC_FLIH_FUNC_RETURN)" \n"
+ "BX r0 \n"
+ );
}
#endif /* TFM_PSA_API */