aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/libutee/arch/arm/utee_syscalls_a32.S5
-rw-r--r--lib/libutils/ext/include/asm.S5
-rw-r--r--lib/libutils/isoc/arch/arm/arm32_aeabi_divmod_a32.S4
-rw-r--r--lib/libutils/isoc/arch/arm/arm32_aeabi_ldivmod_a32.S4
4 files changed, 4 insertions, 14 deletions
diff --git a/lib/libutee/arch/arm/utee_syscalls_a32.S b/lib/libutee/arch/arm/utee_syscalls_a32.S
index a2fe442c..6e621ca6 100644
--- a/lib/libutee/arch/arm/utee_syscalls_a32.S
+++ b/lib/libutee/arch/arm/utee_syscalls_a32.S
@@ -13,8 +13,6 @@
.macro UTEE_SYSCALL name, scn, num_args
FUNC \name , :
-
-UNWIND( .fnstart)
push {r5-r7,lr}
UNWIND( .save {r5-r7,lr})
#if defined(CFG_SYSCALL_WRAPPERS_MCOUNT) && !defined(__LDELF__)
@@ -43,12 +41,10 @@ UNWIND( .save {r5-r7,lr})
.endif
svc #0
pop {r5-r7,pc}
-UNWIND( .fnend)
END_FUNC \name
.endm
FUNC _utee_panic, :
-UNWIND( .fnstart)
push {r0-r11, lr}
UNWIND( .save {r0-r11, lr})
mov lr, pc
@@ -57,7 +53,6 @@ UNWIND( .save {lr})
mov r1, sp
bl __utee_panic
/* Not reached */
-UNWIND( .fnend)
END_FUNC _utee_panic
#include "utee_syscalls_asm.S"
diff --git a/lib/libutils/ext/include/asm.S b/lib/libutils/ext/include/asm.S
index e91d2794..43222639 100644
--- a/lib/libutils/ext/include/asm.S
+++ b/lib/libutils/ext/include/asm.S
@@ -3,7 +3,7 @@
* Copyright (c) 2014, STMicroelectronics International N.V.
*/
-#if defined(CFG_UNWIND)
+#if defined(CFG_UNWIND) && defined(__arm__)
#define UNWIND(...) __VA_ARGS__
#else
#define UNWIND(...)
@@ -19,6 +19,7 @@
.type \name , %function
.balign 4
\name \colon
+UNWIND( .fnstart)
.endm
.macro DATA name colon
@@ -36,6 +37,7 @@
.type \name , %function
.balign 4
\name \colon
+UNWIND( .fnstart)
.endm
.macro LOCAL_DATA name colon
@@ -48,5 +50,6 @@
.endm
.macro END_FUNC name
+UNWIND( .fnend)
.size \name , .-\name
.endm
diff --git a/lib/libutils/isoc/arch/arm/arm32_aeabi_divmod_a32.S b/lib/libutils/isoc/arch/arm/arm32_aeabi_divmod_a32.S
index 76898ef5..a600c879 100644
--- a/lib/libutils/isoc/arch/arm/arm32_aeabi_divmod_a32.S
+++ b/lib/libutils/isoc/arch/arm/arm32_aeabi_divmod_a32.S
@@ -10,9 +10,7 @@
* return quotient and remaining the EABI way (regs r0,r1)
*/
FUNC ret_idivmod_values , :
-UNWIND( .fnstart)
bx lr
-UNWIND( .fnend)
END_FUNC ret_idivmod_values
/*
@@ -20,7 +18,5 @@ END_FUNC ret_idivmod_values
* return quotient and remaining the EABI way (regs r0,r1)
*/
FUNC ret_uidivmod_values , :
-UNWIND( .fnstart)
bx lr
-UNWIND( .fnend)
END_FUNC ret_uidivmod_values
diff --git a/lib/libutils/isoc/arch/arm/arm32_aeabi_ldivmod_a32.S b/lib/libutils/isoc/arch/arm/arm32_aeabi_ldivmod_a32.S
index b9f3408a..2dc50bc9 100644
--- a/lib/libutils/isoc/arch/arm/arm32_aeabi_ldivmod_a32.S
+++ b/lib/libutils/isoc/arch/arm/arm32_aeabi_ldivmod_a32.S
@@ -9,7 +9,6 @@
* __value_in_regs lldiv_t __aeabi_ldivmod( long long n, long long d)
*/
FUNC __aeabi_ldivmod , :
-UNWIND( .fnstart)
push {ip, lr}
UNWIND( .save {ip, lr})
push {r0-r3}
@@ -18,7 +17,6 @@ UNWIND( .save {r0-r3})
bl __l_divmod
pop {r0-r3}
pop {ip, pc}
-UNWIND( .fnend)
END_FUNC __aeabi_ldivmod
/*
@@ -26,7 +24,6 @@ END_FUNC __aeabi_ldivmod
* unsigned long long n, unsigned long long d)
*/
FUNC __aeabi_uldivmod , :
-UNWIND( .fnstart)
push {ip, lr}
UNWIND( .save {ip, lr})
push {r0-r3}
@@ -35,5 +32,4 @@ UNWIND( .save {r0-r3})
bl __ul_divmod
pop {r0-r3}
pop {ip, pc}
-UNWIND( .fnend)
END_FUNC __aeabi_uldivmod