Place assembler functions in separate sections
This extends the --gc-sections behaviour to the many assembler
support functions in the firmware images by placing each function
into its own code section. This is achieved by creating a 'func'
macro used to declare each function label.
Fixes ARM-software/tf-issues#80
Change-Id: I301937b630add292d2dec6d2561a7fcfa6fec690
diff --git a/bl31/aarch64/context.S b/bl31/aarch64/context.S
index 5fe8bab..2b2e7bf 100644
--- a/bl31/aarch64/context.S
+++ b/bl31/aarch64/context.S
@@ -29,6 +29,7 @@
*/
#include <context.h>
+#include <asm_macros.S>
/* -----------------------------------------------------
* The following function strictly follows the AArch64
@@ -39,7 +40,7 @@
* -----------------------------------------------------
*/
.global el3_sysregs_context_save
-el3_sysregs_context_save:
+func el3_sysregs_context_save
mrs x9, scr_el3
mrs x10, sctlr_el3
@@ -75,7 +76,7 @@
* -----------------------------------------------------
*/
.global el3_sysregs_context_restore
-el3_sysregs_context_restore:
+func el3_sysregs_context_restore
ldp x11, xzr, [x0, #CTX_CPTR_EL3]
msr cptr_el3, x11
@@ -112,7 +113,7 @@
* -----------------------------------------------------
*/
.global el1_sysregs_context_save
-el1_sysregs_context_save:
+func el1_sysregs_context_save
mrs x9, spsr_el1
mrs x10, elr_el1
@@ -193,7 +194,7 @@
* -----------------------------------------------------
*/
.global el1_sysregs_context_restore
-el1_sysregs_context_restore:
+func el1_sysregs_context_restore
ldp x9, x10, [x0, #CTX_SPSR_EL1]
msr spsr_el1, x9
@@ -284,7 +285,7 @@
* -----------------------------------------------------
*/
.global fpregs_context_save
-fpregs_context_save:
+func fpregs_context_save
stp q0, q1, [x0, #CTX_FP_Q0]
stp q2, q3, [x0, #CTX_FP_Q2]
stp q4, q5, [x0, #CTX_FP_Q4]
@@ -327,7 +328,7 @@
* -----------------------------------------------------
*/
.global fpregs_context_restore
-fpregs_context_restore:
+func fpregs_context_restore
ldp q0, q1, [x0, #CTX_FP_Q0]
ldp q2, q3, [x0, #CTX_FP_Q2]
ldp q4, q5, [x0, #CTX_FP_Q4]