summaryrefslogtreecommitdiff
path: root/ArmPkg
diff options
context:
space:
mode:
authorEugene Cohen <eugene@hp.com>2015-12-02 16:23:20 +0000
committerabiesheuvel <abiesheuvel@Edk2>2015-12-02 16:23:20 +0000
commitdcb2e4bb61931e2dee1739bb76aba315002f0a82 (patch)
tree236ed5e5ef39903b6cd5e2b84c02725c72a43688 /ArmPkg
parent8e18fbd70d1c03c75518f8054080a970de372675 (diff)
downloadedk2-platforms-dcb2e4bb61931e2dee1739bb76aba315002f0a82.tar.xz
ArmPkg RVCT: add asm macro combining EXPORT, AREA and label definition
In response to Leif's request earlier, this adds a new RVCT assembler macro to centralize the exporting of assembly functions including the EXPORT directive (so the linker can see it), the AREA directive (so it's in its own section for code size reasons) and the function label itself. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Eugene Cohen <eugene@hp.com> Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19098 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'ArmPkg')
-rw-r--r--ArmPkg/Include/AsmMacroExport.inc29
1 files changed, 29 insertions, 0 deletions
diff --git a/ArmPkg/Include/AsmMacroExport.inc b/ArmPkg/Include/AsmMacroExport.inc
new file mode 100644
index 0000000000..818d6b2c22
--- /dev/null
+++ b/ArmPkg/Include/AsmMacroExport.inc
@@ -0,0 +1,29 @@
+;%HEADER%
+;/** @file
+; Macros to centralize the EXPORT, AREA, and definition of an assembly
+; function. The AREA prefix is required to put the function in its own
+; section so that removal of unused functions in the final link is performed.
+; This provides equivalent functionality to the compiler's --split-sections
+; option.
+;
+; Copyright (c) 2015 HP Development Company, L.P.
+;
+; This program and the accompanying materials
+; are licensed and made available under the terms and conditions of the BSD License
+; which accompanies this distribution. The full text of the license may be found at
+; http://opensource.org/licenses/bsd-license.php
+;
+; THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
+; WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
+;
+;**/
+
+
+ MACRO
+ RVCT_ASM_EXPORT $func
+ EXPORT $func
+ AREA s_$func, CODE, READONLY
+$func
+ MEND
+
+ END