In response to Leifs 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.

This patch is just the macro, PATCH 3/3 contains the assembly source changes.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Eugene Cohen <[email protected]>

---
 ArmPkg/Include/AsmMacroExport.inc | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)
 create mode 100644 ArmPkg/Include/AsmMacroExport.inc

diff --git a/ArmPkg/Include/AsmMacroExport.inc 
b/ArmPkg/Include/AsmMacroExport.inc
new file mode 100644
index 0000000..818d6b2
--- /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
-- 
1.9.5.msysgit.0

_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to