aboutsummaryrefslogtreecommitdiff
path: root/core/arch/arm/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'core/arch/arm/kernel')
-rw-r--r--core/arch/arm/kernel/cache_helpers_a32.S24
-rw-r--r--core/arch/arm/kernel/entry_a32.S14
-rw-r--r--core/arch/arm/kernel/misc_a32.S10
-rw-r--r--core/arch/arm/kernel/spin_lock_a32.S6
-rw-r--r--core/arch/arm/kernel/thread_a32.S24
-rw-r--r--core/arch/arm/kernel/thread_optee_smc_a32.S24
-rw-r--r--core/arch/arm/kernel/thread_spmc_a32.S4
-rw-r--r--core/arch/arm/kernel/tlb_helpers_a32.S6
-rw-r--r--core/arch/arm/kernel/tz_ssvce_pl310_a32.S16
-rw-r--r--core/arch/arm/kernel/vfp_a32.S12
10 files changed, 0 insertions, 140 deletions
diff --git a/core/arch/arm/kernel/cache_helpers_a32.S b/core/arch/arm/kernel/cache_helpers_a32.S
index b26f0520..50180dce 100644
--- a/core/arch/arm/kernel/cache_helpers_a32.S
+++ b/core/arch/arm/kernel/cache_helpers_a32.S
@@ -50,9 +50,7 @@ loop_\reg:
* ------------------------------------------
*/
FUNC dcache_cleaninv_range , :
-UNWIND( .fnstart)
do_dcache_maintenance_by_mva dccimvac
-UNWIND( .fnend)
END_FUNC dcache_cleaninv_range
/* ------------------------------------------
@@ -61,9 +59,7 @@ END_FUNC dcache_cleaninv_range
* ------------------------------------------
*/
FUNC dcache_clean_range , :
-UNWIND( .fnstart)
do_dcache_maintenance_by_mva dccmvac
-UNWIND( .fnend)
END_FUNC dcache_clean_range
/* ------------------------------------------
@@ -72,9 +68,7 @@ END_FUNC dcache_clean_range
* ------------------------------------------
*/
FUNC dcache_inv_range , :
-UNWIND( .fnstart)
do_dcache_maintenance_by_mva dcimvac
-UNWIND( .fnend)
END_FUNC dcache_inv_range
@@ -84,9 +78,7 @@ END_FUNC dcache_inv_range
* ------------------------------------------
*/
FUNC dcache_clean_range_pou , :
-UNWIND( .fnstart)
do_dcache_maintenance_by_mva dccmvau
-UNWIND( .fnend)
END_FUNC dcache_clean_range_pou
/* ----------------------------------------------------------------
@@ -115,7 +107,6 @@ END_FUNC dcache_clean_range_pou
.endm
LOCAL_FUNC do_dcsw_op , :
-UNWIND( .fnstart)
push {r4-r12,lr}
adr r11, dcsw_loop_table // compute cache op based on the operation type
add r6, r11, r0, lsl #3 // cache op is 2x32-bit instructions
@@ -166,7 +157,6 @@ dcsw_loop_table:
bx lr
write_dccsw r0
bx lr
-UNWIND( .fnend)
END_FUNC do_dcsw_op
/* ---------------------------------------------------------------
@@ -178,9 +168,7 @@ END_FUNC do_dcsw_op
* ---------------------------------------------------------------
*/
FUNC dcache_op_louis , :
-UNWIND( .fnstart)
dcsw_op #CLIDR_LOUIS_SHIFT, #CLIDR_FIELD_WIDTH, #CSSELR_LEVEL_SHIFT
-UNWIND( .fnend)
END_FUNC dcache_op_louis
/* ---------------------------------------------------------------
@@ -192,9 +180,7 @@ END_FUNC dcache_op_louis
* ---------------------------------------------------------------
*/
FUNC dcache_op_all , :
-UNWIND( .fnstart)
dcsw_op #CLIDR_LOC_SHIFT, #CLIDR_FIELD_WIDTH, #CSSELR_LEVEL_SHIFT
-UNWIND( .fnend)
END_FUNC dcache_op_all
@@ -219,9 +205,7 @@ END_FUNC dcache_op_all
* ---------------------------------------------------------------
*/
FUNC dcache_op_level1 , :
-UNWIND( .fnstart)
dcsw_op_level #(1 << CSSELR_LEVEL_SHIFT)
-UNWIND( .fnend)
END_FUNC dcache_op_level1
/* ---------------------------------------------------------------
@@ -233,9 +217,7 @@ END_FUNC dcache_op_level1
* ---------------------------------------------------------------
*/
FUNC dcache_op_level2 , :
-UNWIND( .fnstart)
dcsw_op_level #(2 << CSSELR_LEVEL_SHIFT)
-UNWIND( .fnend)
END_FUNC dcache_op_level2
/* ---------------------------------------------------------------
@@ -247,13 +229,10 @@ END_FUNC dcache_op_level2
* ---------------------------------------------------------------
*/
FUNC dcache_op_level3 , :
-UNWIND( .fnstart)
dcsw_op_level #(3 << CSSELR_LEVEL_SHIFT)
-UNWIND( .fnend)
END_FUNC dcache_op_level3
FUNC icache_inv_all , :
-UNWIND( .fnstart)
/* Invalidate Entire Instruction Cache (and branch predictors) */
write_icialluis
@@ -261,7 +240,6 @@ UNWIND( .fnstart)
isb /* by the instructions rigth after the isb */
bx lr
-UNWIND( .fnend)
END_FUNC icache_inv_all
/* ------------------------------------------
@@ -270,7 +248,6 @@ END_FUNC icache_inv_all
* ------------------------------------------
*/
FUNC icache_inv_range , :
-UNWIND( .fnstart)
icache_line_size r2, r3
add r1, r0, r1
sub r3, r2, #1
@@ -288,5 +265,4 @@ loop_ic_inv:
isb
bx lr
-UNWIND( .fnend)
END_FUNC icache_inv_range
diff --git a/core/arch/arm/kernel/entry_a32.S b/core/arch/arm/kernel/entry_a32.S
index 459488f6..d2988496 100644
--- a/core/arch/arm/kernel/entry_a32.S
+++ b/core/arch/arm/kernel/entry_a32.S
@@ -33,7 +33,6 @@ panic_boot_file:
* void assert_flat_mapped_range(uint32_t vaddr, uint32_t line)
*/
LOCAL_FUNC __assert_flat_mapped_range , :
-UNWIND( .fnstart)
UNWIND( .cantunwind)
push { r4-r6, lr }
mov r4, r0
@@ -56,7 +55,6 @@ UNWIND( .cantunwind)
bl __do_panic
b . /* should NOT return */
1: pop { r4-r6, pc }
-UNWIND( .fnend)
END_FUNC __assert_flat_mapped_range
/* panic if mmu is enable and vaddr != paddr (scratch lr) */
@@ -68,9 +66,7 @@ END_FUNC __assert_flat_mapped_range
#endif /* CFG_PL310 */
FUNC plat_cpu_reset_early , :
-UNWIND( .fnstart)
bx lr
-UNWIND( .fnend)
END_FUNC plat_cpu_reset_early
DECLARE_KEEP_PAGER plat_cpu_reset_early
.weak plat_cpu_reset_early
@@ -221,7 +217,6 @@ END_FUNC reset_vect_table
.endm
FUNC _start , :
-UNWIND( .fnstart)
UNWIND( .cantunwind)
bootargs_entry
@@ -250,7 +245,6 @@ UNWIND( .cantunwind)
beq reset_primary
b reset_secondary
#endif
-UNWIND( .fnend)
END_FUNC _start
DECLARE_KEEP_INIT _start
@@ -346,7 +340,6 @@ DECLARE_KEEP_INIT _start
#endif
LOCAL_FUNC reset_primary , : , .identity_map
-UNWIND( .fnstart)
UNWIND( .cantunwind)
/* preserve r4-r7: bootargs */
@@ -588,7 +581,6 @@ shadow_stack_access_ok:
smc #0
b . /* SMC should not return */
#endif /* CFG_CORE_FFA */
-UNWIND( .fnend)
END_FUNC reset_primary
#ifdef CFG_BOOT_SYNC_CPU
@@ -610,10 +602,8 @@ LOCAL_DATA cached_mem_end , :
END_DATA cached_mem_end
LOCAL_FUNC unhandled_cpu , :
-UNWIND( .fnstart)
wfi
b unhandled_cpu
-UNWIND( .fnend)
END_FUNC unhandled_cpu
#ifdef CFG_CORE_ASLR
@@ -800,7 +790,6 @@ END_DATA boot_mmu_config
#if defined(CFG_WITH_ARM_TRUSTED_FW)
FUNC cpu_on_handler , : , .identity_map
-UNWIND( .fnstart)
UNWIND( .cantunwind)
mov r4, r0
mov r5, r1
@@ -827,14 +816,12 @@ UNWIND( .cantunwind)
#else
bx r6
#endif
-UNWIND( .fnend)
END_FUNC cpu_on_handler
DECLARE_KEEP_PAGER cpu_on_handler
#else /* defined(CFG_WITH_ARM_TRUSTED_FW) */
LOCAL_FUNC reset_secondary , : , .identity_map
-UNWIND( .fnstart)
UNWIND( .cantunwind)
adr r0, reset_vect_table
write_vbar r0
@@ -885,7 +872,6 @@ UNWIND( .cantunwind)
mov r4, #0
smc #0
b . /* SMC should not return */
-UNWIND( .fnend)
END_FUNC reset_secondary
DECLARE_KEEP_PAGER reset_secondary
#endif /* defined(CFG_WITH_ARM_TRUSTED_FW) */
diff --git a/core/arch/arm/kernel/misc_a32.S b/core/arch/arm/kernel/misc_a32.S
index 0f4fbcb3..3366ea2d 100644
--- a/core/arch/arm/kernel/misc_a32.S
+++ b/core/arch/arm/kernel/misc_a32.S
@@ -12,15 +12,12 @@
/* size_t __get_core_pos(void); */
FUNC __get_core_pos , : , .identity_map
-UNWIND( .fnstart)
read_mpidr r0
b get_core_pos_mpidr
-UNWIND( .fnend)
END_FUNC __get_core_pos
/* size_t get_core_pos_mpidr(uint32_t mpidr); */
FUNC get_core_pos_mpidr , :
-UNWIND( .fnstart)
mov r3, r0
/*
@@ -55,7 +52,6 @@ UNWIND( .fnstart)
#endif
bx lr
-UNWIND( .fnend)
END_FUNC get_core_pos_mpidr
/* Let platforms override this if needed */
@@ -66,7 +62,6 @@ END_FUNC get_core_pos_mpidr
* returns cpsr to be set
*/
LOCAL_FUNC temp_set_mode , :
-UNWIND( .fnstart)
mov r1, r0
cmp r1, #CPSR_MODE_USR /* update mode: usr -> sys */
moveq r1, #CPSR_MODE_SYS
@@ -75,12 +70,10 @@ UNWIND( .fnstart)
bic r0, #CPSR_MODE_MASK /* clear mode */
orr r0, r1 /* set expected mode */
bx lr
-UNWIND( .fnend)
END_FUNC temp_set_mode
/* uint32_t read_mode_sp(int cpu_mode) */
FUNC read_mode_sp , :
-UNWIND( .fnstart)
push {r4, lr}
UNWIND( .save {r4, lr})
mrs r4, cpsr /* save cpsr */
@@ -89,12 +82,10 @@ UNWIND( .save {r4, lr})
mov r0, sp /* get the function result */
msr cpsr, r4 /* back to the old mode */
pop {r4, pc}
-UNWIND( .fnend)
END_FUNC read_mode_sp
/* uint32_t read_mode_lr(int cpu_mode) */
FUNC read_mode_lr , :
-UNWIND( .fnstart)
push {r4, lr}
UNWIND( .save {r4, lr})
mrs r4, cpsr /* save cpsr */
@@ -103,5 +94,4 @@ UNWIND( .save {r4, lr})
mov r0, lr /* get the function result */
msr cpsr, r4 /* back to the old mode */
pop {r4, pc}
-UNWIND( .fnend)
END_FUNC read_mode_lr
diff --git a/core/arch/arm/kernel/spin_lock_a32.S b/core/arch/arm/kernel/spin_lock_a32.S
index bed57408..ab9c41b0 100644
--- a/core/arch/arm/kernel/spin_lock_a32.S
+++ b/core/arch/arm/kernel/spin_lock_a32.S
@@ -37,7 +37,6 @@
/* void __cpu_spin_lock(unsigned int *lock) */
FUNC __cpu_spin_lock , :
-UNWIND( .fnstart)
mov r2, #SPINLOCK_LOCK
1:
ldrex r1, [r0]
@@ -48,12 +47,10 @@ UNWIND( .fnstart)
bne 1b
dmb
bx lr
-UNWIND( .fnend)
END_FUNC __cpu_spin_lock
/* int __cpu_spin_trylock(unsigned int *lock) - return 0 on success */
FUNC __cpu_spin_trylock , :
-UNWIND( .fnstart)
mov r2, #SPINLOCK_LOCK
mov r1, r0
1:
@@ -69,17 +66,14 @@ UNWIND( .fnstart)
clrex
dmb
bx lr
-UNWIND( .fnend)
END_FUNC __cpu_spin_trylock
/* void __cpu_spin_unlock(unsigned int *lock) */
FUNC __cpu_spin_unlock , :
-UNWIND( .fnstart)
dmb
mov r1, #SPINLOCK_UNLOCK
str r1, [r0]
dsb
sev
bx lr
-UNWIND( .fnend)
END_FUNC __cpu_spin_unlock
diff --git a/core/arch/arm/kernel/thread_a32.S b/core/arch/arm/kernel/thread_a32.S
index abb9d332..3192a87a 100644
--- a/core/arch/arm/kernel/thread_a32.S
+++ b/core/arch/arm/kernel/thread_a32.S
@@ -28,52 +28,43 @@
.endm
FUNC thread_set_abt_sp , :
-UNWIND( .fnstart)
UNWIND( .cantunwind)
mrs r1, cpsr
cps #CPSR_MODE_ABT
mov sp, r0
msr cpsr, r1
bx lr
-UNWIND( .fnend)
END_FUNC thread_set_abt_sp
FUNC thread_set_und_sp , :
-UNWIND( .fnstart)
UNWIND( .cantunwind)
mrs r1, cpsr
cps #CPSR_MODE_UND
mov sp, r0
msr cpsr, r1
bx lr
-UNWIND( .fnend)
END_FUNC thread_set_und_sp
FUNC thread_set_irq_sp , :
-UNWIND( .fnstart)
UNWIND( .cantunwind)
mrs r1, cpsr
cps #CPSR_MODE_IRQ
mov sp, r0
msr cpsr, r1
bx lr
-UNWIND( .fnend)
END_FUNC thread_set_irq_sp
FUNC thread_set_fiq_sp , :
-UNWIND( .fnstart)
UNWIND( .cantunwind)
mrs r1, cpsr
cps #CPSR_MODE_FIQ
mov sp, r0
msr cpsr, r1
bx lr
-UNWIND( .fnend)
END_FUNC thread_set_fiq_sp
/* void thread_resume(struct thread_ctx_regs *regs) */
FUNC thread_resume , :
-UNWIND( .fnstart)
UNWIND( .cantunwind)
add r12, r0, #(13 * 4) /* Restore registers r0-r12 later */
@@ -101,7 +92,6 @@ UNWIND( .cantunwind)
ldm r0, {r0-r12}
movsne pc, lr
b eret_to_user_mode
-UNWIND( .fnend)
END_FUNC thread_resume
/*
@@ -109,7 +99,6 @@ END_FUNC thread_resume
* the banked r8-r12 registers, returns original CPSR.
*/
LOCAL_FUNC thread_save_state_fiq , :
-UNWIND( .fnstart)
UNWIND( .cantunwind)
mov r9, lr
@@ -151,7 +140,6 @@ UNWIND( .cantunwind)
mov r0, r8 /* Return original CPSR */
bx r9
-UNWIND( .fnend)
END_FUNC thread_save_state_fiq
/*
@@ -159,7 +147,6 @@ END_FUNC thread_save_state_fiq
* CPSR.
*/
FUNC thread_save_state , :
-UNWIND( .fnstart)
UNWIND( .cantunwind)
push {r12, lr}
/*
@@ -203,7 +190,6 @@ UNWIND( .cantunwind)
mov r0, r5 /* Return original CPSR */
bx lr
-UNWIND( .fnend)
END_FUNC thread_save_state
/*
@@ -211,18 +197,14 @@ END_FUNC thread_save_state
* unsigned long a2, unsigned long a3)
*/
FUNC thread_smc , :
-UNWIND( .fnstart)
smc #0
bx lr
-UNWIND( .fnend)
END_FUNC thread_smc
FUNC thread_init_vbar , :
-UNWIND( .fnstart)
/* Set vector (VBAR) */
write_vbar r0
bx lr
-UNWIND( .fnend)
END_FUNC thread_init_vbar
DECLARE_KEEP_PAGER thread_init_vbar
@@ -268,7 +250,6 @@ DECLARE_KEEP_PAGER thread_init_vbar
* This function depends on being called with exceptions masked.
*/
FUNC __thread_enter_user_mode , :
-UNWIND( .fnstart)
UNWIND( .cantunwind)
/*
* Save all registers to allow syscall_return() to resume execution
@@ -298,7 +279,6 @@ UNWIND( .cantunwind)
ldm r0, {r0-r12}
b eret_to_user_mode
-UNWIND( .fnend)
END_FUNC __thread_enter_user_mode
/*
@@ -307,7 +287,6 @@ END_FUNC __thread_enter_user_mode
* See description in thread.h
*/
FUNC thread_unwind_user_mode , :
-UNWIND( .fnstart)
UNWIND( .cantunwind)
/* Match push {r1, r2, r4, r5} in thread_enter_user_mode() */
pop {r4-r7}
@@ -321,7 +300,6 @@ UNWIND( .cantunwind)
/* Match push {r4-r12,lr} in thread_enter_user_mode() */
pop {r4-r12,pc}
-UNWIND( .fnend)
END_FUNC thread_unwind_user_mode
.macro maybe_restore_mapping
@@ -539,7 +517,6 @@ END_FUNC thread_unwind_user_mode
.align 5
FUNC thread_excp_vect , :
-UNWIND( .fnstart)
UNWIND( .cantunwind)
b . /* Reset */
b __thread_und_handler /* Undefined instruction */
@@ -948,7 +925,6 @@ icache_inv_user_range:
* thread_excp_vect_end label.
*/
.pool
-UNWIND( .fnend)
.global thread_excp_vect_end
thread_excp_vect_end:
END_FUNC thread_excp_vect
diff --git a/core/arch/arm/kernel/thread_optee_smc_a32.S b/core/arch/arm/kernel/thread_optee_smc_a32.S
index 90c241f7..b5dfeb98 100644
--- a/core/arch/arm/kernel/thread_optee_smc_a32.S
+++ b/core/arch/arm/kernel/thread_optee_smc_a32.S
@@ -35,7 +35,6 @@
.endm
FUNC vector_std_smc_entry , : , .identity_map
-UNWIND( .fnstart)
UNWIND( .cantunwind)
readjust_pc
push {r4-r7}
@@ -51,11 +50,9 @@ UNWIND( .cantunwind)
ldr r0, =TEESMC_OPTEED_RETURN_CALL_DONE
smc #0
b . /* SMC should not return */
-UNWIND( .fnend)
END_FUNC vector_std_smc_entry
FUNC vector_fast_smc_entry , : , .identity_map
-UNWIND( .fnstart)
UNWIND( .cantunwind)
readjust_pc
push {r0-r7}
@@ -65,11 +62,9 @@ UNWIND( .cantunwind)
ldr r0, =TEESMC_OPTEED_RETURN_CALL_DONE
smc #0
b . /* SMC should not return */
-UNWIND( .fnend)
END_FUNC vector_fast_smc_entry
FUNC vector_fiq_entry , : , .identity_map
-UNWIND( .fnstart)
UNWIND( .cantunwind)
readjust_pc
/* Secure Monitor received a FIQ and passed control to us. */
@@ -78,12 +73,10 @@ UNWIND( .cantunwind)
ldr r0, =TEESMC_OPTEED_RETURN_FIQ_DONE
smc #0
b . /* SMC should not return */
-UNWIND( .fnend)
END_FUNC vector_fiq_entry
#if defined(CFG_WITH_ARM_TRUSTED_FW)
LOCAL_FUNC vector_cpu_on_entry , : , .identity_map
-UNWIND( .fnstart)
UNWIND( .cantunwind)
bl cpu_on_handler
/* When cpu_on_handler() returns mmu is enabled */
@@ -91,11 +84,9 @@ UNWIND( .cantunwind)
ldr r0, =TEESMC_OPTEED_RETURN_ON_DONE
smc #0
b . /* SMC should not return */
-UNWIND( .fnend)
END_FUNC vector_cpu_on_entry
LOCAL_FUNC vector_cpu_off_entry , : , .identity_map
-UNWIND( .fnstart)
UNWIND( .cantunwind)
readjust_pc
bl thread_cpu_off_handler
@@ -103,11 +94,9 @@ UNWIND( .cantunwind)
ldr r0, =TEESMC_OPTEED_RETURN_OFF_DONE
smc #0
b . /* SMC should not return */
-UNWIND( .fnend)
END_FUNC vector_cpu_off_entry
LOCAL_FUNC vector_cpu_suspend_entry , : , .identity_map
-UNWIND( .fnstart)
UNWIND( .cantunwind)
readjust_pc
bl thread_cpu_suspend_handler
@@ -115,11 +104,9 @@ UNWIND( .cantunwind)
ldr r0, =TEESMC_OPTEED_RETURN_SUSPEND_DONE
smc #0
b . /* SMC should not return */
-UNWIND( .fnend)
END_FUNC vector_cpu_suspend_entry
LOCAL_FUNC vector_cpu_resume_entry , : , .identity_map
-UNWIND( .fnstart)
UNWIND( .cantunwind)
readjust_pc
bl thread_cpu_resume_handler
@@ -127,11 +114,9 @@ UNWIND( .cantunwind)
ldr r0, =TEESMC_OPTEED_RETURN_RESUME_DONE
smc #0
b . /* SMC should not return */
-UNWIND( .fnend)
END_FUNC vector_cpu_resume_entry
LOCAL_FUNC vector_system_off_entry , : , .identity_map
-UNWIND( .fnstart)
UNWIND( .cantunwind)
readjust_pc
bl thread_system_off_handler
@@ -139,11 +124,9 @@ UNWIND( .cantunwind)
ldr r0, =TEESMC_OPTEED_RETURN_SYSTEM_OFF_DONE
smc #0
b . /* SMC should not return */
-UNWIND( .fnend)
END_FUNC vector_system_off_entry
LOCAL_FUNC vector_system_reset_entry , : , .identity_map
-UNWIND( .fnstart)
UNWIND( .cantunwind)
readjust_pc
bl thread_system_reset_handler
@@ -151,7 +134,6 @@ UNWIND( .cantunwind)
ldr r0, =TEESMC_OPTEED_RETURN_SYSTEM_RESET_DONE
smc #0
b . /* SMC should not return */
-UNWIND( .fnend)
END_FUNC vector_system_reset_entry
/*
@@ -163,7 +145,6 @@ END_FUNC vector_system_reset_entry
* in layout has to be synced with ARM-TF.
*/
FUNC thread_vector_table , : , .identity_map
-UNWIND( .fnstart)
UNWIND( .cantunwind)
b vector_std_smc_entry
b vector_fast_smc_entry
@@ -174,13 +155,11 @@ UNWIND( .cantunwind)
b vector_fiq_entry
b vector_system_off_entry
b vector_system_reset_entry
-UNWIND( .fnend)
END_FUNC thread_vector_table
DECLARE_KEEP_PAGER thread_vector_table
#endif /*if defined(CFG_WITH_ARM_TRUSTED_FW)*/
FUNC thread_std_smc_entry , :
-UNWIND( .fnstart)
UNWIND( .cantunwind)
bl __thread_std_smc_entry
mov r4, r0 /* Save return value for later */
@@ -199,12 +178,10 @@ UNWIND( .cantunwind)
mov r4, #0
smc #0
b . /* SMC should not return */
-UNWIND( .fnend)
END_FUNC thread_std_smc_entry
/* void thread_rpc(uint32_t rv[THREAD_RPC_NUM_ARGS]) */
FUNC thread_rpc , :
-UNWIND( .fnstart)
push {r0, lr}
UNWIND( .save {r0, lr})
@@ -241,7 +218,6 @@ UNWIND( .save {r0, lr})
pop {r12, lr} /* Get pointer to rv[] */
stm r12, {r0-r3} /* Store r0-r3 into rv[] */
bx lr
-UNWIND( .fnend)
END_FUNC thread_rpc
DECLARE_KEEP_PAGER thread_rpc
diff --git a/core/arch/arm/kernel/thread_spmc_a32.S b/core/arch/arm/kernel/thread_spmc_a32.S
index 42525dbc..4be601d1 100644
--- a/core/arch/arm/kernel/thread_spmc_a32.S
+++ b/core/arch/arm/kernel/thread_spmc_a32.S
@@ -48,7 +48,6 @@ LOCAL_FUNC ffa_msg_send_direct_resp , :
END_FUNC ffa_msg_send_direct_resp
FUNC thread_std_smc_entry , :
-UNWIND( .fnstart)
UNWIND( .cantunwind)
ror r4, r0, #16 /* Save target info with src and dst swapped */
@@ -69,12 +68,10 @@ UNWIND( .cantunwind)
mov r6, #FFA_PARAM_MBZ /* Unused parameter */
mov r7, #FFA_PARAM_MBZ /* Unused parameter */
b ffa_msg_send_direct_resp
-UNWIND( .fnend)
END_FUNC thread_std_smc_entry
/* void thread_rpc(struct thread_rpc_arg *rpc_arg) */
FUNC thread_rpc , :
-UNWIND( .fnstart)
push {r0, lr}
UNWIND( .save {r0, lr})
@@ -112,7 +109,6 @@ UNWIND( .save {r0, lr})
pop {r12, lr} /* Get pointer to rv[] */
stm r12, {r0-r3} /* Store r0-r3 into rv[] */
bx lr
-UNWIND( .fnend)
END_FUNC thread_rpc
DECLARE_KEEP_PAGER thread_rpc
diff --git a/core/arch/arm/kernel/tlb_helpers_a32.S b/core/arch/arm/kernel/tlb_helpers_a32.S
index ab132610..e65384c9 100644
--- a/core/arch/arm/kernel/tlb_helpers_a32.S
+++ b/core/arch/arm/kernel/tlb_helpers_a32.S
@@ -9,29 +9,24 @@
/* void tlbi_all(void); */
FUNC tlbi_all , :
-UNWIND( .fnstart)
dsb ishst /* Sync with table update */
write_tlbiallis /* Invalidate TLBs */
dsb ish /* Sync with tlb invalidation completion */
isb /* Sync execution on tlb update */
bx lr
-UNWIND( .fnend)
END_FUNC tlbi_all
/* void tlbi_mva_allasid(vaddr_t mva); */
FUNC tlbi_mva_allasid , :
-UNWIND( .fnstart)
dsb ishst /* Sync with table update */
write_tlbimvaais r0 /* Inval TLB by MVA all ASID Inner Sharable */
dsb ish /* Sync with tlb invalidation completion */
isb /* Sync execution on tlb update */
bx lr
-UNWIND( .fnend)
END_FUNC tlbi_mva_allasid
/* void tlbi_asid(unsigned long asid); */
FUNC tlbi_asid , :
-UNWIND( .fnstart)
dsb ishst /* Sync with table update */
write_tlbiasidis r0 /* Inval unified TLB by ASID Inner Sharable */
orr r0, r0, #1 /* Select the kernel ASID */
@@ -39,5 +34,4 @@ UNWIND( .fnstart)
dsb ish /* Sync with tlb invalidation completion */
isb /* Sync execution on tlb update */
bx lr
-UNWIND( .fnend)
END_FUNC tlbi_asid
diff --git a/core/arch/arm/kernel/tz_ssvce_pl310_a32.S b/core/arch/arm/kernel/tz_ssvce_pl310_a32.S
index f1d39bd5..b3f85cc1 100644
--- a/core/arch/arm/kernel/tz_ssvce_pl310_a32.S
+++ b/core/arch/arm/kernel/tz_ssvce_pl310_a32.S
@@ -20,7 +20,6 @@
* lock all L2 caches ways for data and instruction
*/
FUNC arm_cl2_lockallways , :
-UNWIND( .fnstart)
add r1, r0, #PL310_DCACHE_LOCKDOWN_BASE
ldr r2, [r0, #PL310_AUX_CTRL]
tst r2, #PL310_AUX_16WAY_BIT
@@ -34,7 +33,6 @@ UNWIND( .fnstart)
bne 1b
mov pc, lr
-UNWIND( .fnend)
END_FUNC arm_cl2_lockallways
/*
@@ -53,7 +51,6 @@ END_FUNC arm_cl2_lockallways
* clean & invalidate the whole L2 cache.
*/
FUNC arm_cl2_cleaninvbyway , :
-UNWIND( .fnstart)
syncbyway_set_mask r1
str r1, [r0, #PL310_FLUSH_BY_WAY]
@@ -87,12 +84,10 @@ loop_cli_sync_done:
bne loop_cli_sync_done
mov pc, lr
-UNWIND( .fnend)
END_FUNC arm_cl2_cleaninvbyway
/* void arm_cl2_invbyway(vaddr_t base) */
FUNC arm_cl2_invbyway , :
-UNWIND( .fnstart)
syncbyway_set_mask r1
str r1, [r0, #PL310_INV_BY_WAY]
@@ -117,12 +112,10 @@ loop_inv_way_sync_done:
bne loop_inv_way_sync_done
mov pc, lr
-UNWIND( .fnend)
END_FUNC arm_cl2_invbyway
/* void arm_cl2_cleanbyway(vaddr_t base) */
FUNC arm_cl2_cleanbyway , :
-UNWIND( .fnstart)
syncbyway_set_mask r1
str r1, [r0, #PL310_CLEAN_BY_WAY]
@@ -147,7 +140,6 @@ loop_cl_way_sync_done:
bne loop_cl_way_sync_done
mov pc, lr
-UNWIND( .fnend)
END_FUNC arm_cl2_cleanbyway
/*
@@ -156,7 +148,6 @@ END_FUNC arm_cl2_cleanbyway
* pl310value is one of PL310_CLEAN_BY_PA, PL310_INV_BY_PA or PL310_FLUSH_BY_PA
*/
LOCAL_FUNC _arm_cl2_xxxbypa , :
-UNWIND( .fnstart)
/* Align start address on PL310 line size */
and r1, #(~(PL310_LINE_SIZE - 1))
#ifdef SCU_BASE
@@ -202,7 +193,6 @@ loop_xxx_pa_sync_done:
bne loop_xxx_pa_sync_done
mov pc, lr
-UNWIND( .fnend)
END_FUNC _arm_cl2_xxxbypa
/*
@@ -210,10 +200,8 @@ END_FUNC _arm_cl2_xxxbypa
* clean L2 cache by physical address range.
*/
FUNC arm_cl2_cleanbypa , :
-UNWIND( .fnstart)
mov r3, #PL310_CLEAN_BY_PA
b _arm_cl2_xxxbypa
-UNWIND( .fnend)
END_FUNC arm_cl2_cleanbypa
/*
@@ -221,10 +209,8 @@ END_FUNC arm_cl2_cleanbypa
* invalidate L2 cache by physical address range.
*/
FUNC arm_cl2_invbypa , :
-UNWIND( .fnstart)
mov r3, #PL310_INV_BY_PA
b _arm_cl2_xxxbypa
-UNWIND( .fnend)
END_FUNC arm_cl2_invbypa
/*
@@ -232,9 +218,7 @@ END_FUNC arm_cl2_invbypa
* clean and invalidate L2 cache by physical address range.
*/
FUNC arm_cl2_cleaninvbypa , :
-UNWIND( .fnstart)
mov r3, #PL310_FLUSH_BY_PA
b _arm_cl2_xxxbypa
-UNWIND( .fnend)
END_FUNC arm_cl2_cleaninvbypa
diff --git a/core/arch/arm/kernel/vfp_a32.S b/core/arch/arm/kernel/vfp_a32.S
index ded0125f..00a55e17 100644
--- a/core/arch/arm/kernel/vfp_a32.S
+++ b/core/arch/arm/kernel/vfp_a32.S
@@ -9,50 +9,38 @@
/* void vfp_save_extension_regs(uint64_t regs[VFP_NUM_REGS]); */
FUNC vfp_save_extension_regs , :
-UNWIND( .fnstart)
vstm r0!, {d0-d15}
vstm r0, {d16-d31}
bx lr
-UNWIND( .fnend)
END_FUNC vfp_save_extension_regs
/* void vfp_restore_extension_regs(uint64_t regs[VFP_NUM_REGS]); */
FUNC vfp_restore_extension_regs , :
-UNWIND( .fnstart)
vldm r0!, {d0-d15}
vldm r0, {d16-d31}
bx lr
-UNWIND( .fnend)
END_FUNC vfp_restore_extension_regs
/* void vfp_write_fpexc(uint32_t fpexc) */
FUNC vfp_write_fpexc , :
-UNWIND( .fnstart)
vmsr fpexc, r0
bx lr
-UNWIND( .fnend)
END_FUNC vfp_write_fpexc
/* uint32_t vfp_read_fpexc(void) */
FUNC vfp_read_fpexc , :
-UNWIND( .fnstart)
vmrs r0, fpexc
bx lr
-UNWIND( .fnend)
END_FUNC vfp_read_fpexc
/* void vfp_write_fpscr(uint32_t fpscr) */
FUNC vfp_write_fpscr , :
-UNWIND( .fnstart)
vmsr fpscr, r0
bx lr
-UNWIND( .fnend)
END_FUNC vfp_write_fpscr
/* uint32_t vfp_read_fpscr(void) */
FUNC vfp_read_fpscr , :
-UNWIND( .fnstart)
vmrs r0, fpscr
bx lr
-UNWIND( .fnend)
END_FUNC vfp_read_fpscr