ArmVirtPkg: clean up assembly source files

This updates all assembly source files under ArmVirtPkg to mark
exported functions as ASM_FUNC(), which puts them in a separate
section, allowing the linker to prune code that is left unused.

At the same time, clean up the code to get rid of LoadConstantToReg()
instances involving symbol references, each of which emits an absolute
literal, and hence and entry in the PE/COFF .reloc table.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
This commit is contained in:
Ard Biesheuvel
2016-08-10 13:08:57 +02:00
parent 16a9fe2ca9
commit dfc2838892
9 changed files with 95 additions and 248 deletions

View File

@@ -11,10 +11,7 @@
// WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
//
#include <AsmMacroIoLib.h>
#include <Base.h>
#include <Library/ArmLib.h>
#include <Library/PcdLib.h>
#include <AutoGen.h>
INCLUDE AsmMacroIoLib.inc
@@ -25,10 +22,6 @@
EXPORT ArmPlatformGetCorePosition
EXPORT ArmGetPhysAddrTop
IMPORT _gPcd_FixedAtBuild_PcdArmPrimaryCore
IMPORT _gPcd_FixedAtBuild_PcdArmPrimaryCoreMask
IMPORT _gPcd_FixedAtBuild_PcdCoreCount
AREA VirtHelper, CODE, READONLY
ArmPlatformPeiBootAction FUNCTION
@@ -40,8 +33,7 @@ ArmPlatformPeiBootAction FUNCTION
// VOID
// );
ArmPlatformGetPrimaryCoreMpId FUNCTION
LoadConstantToReg (_gPcd_FixedAtBuild_PcdArmPrimaryCore, r0)
ldr r0, [r0]
MOV32 r0, FixedPcdGet32 (PcdArmPrimaryCore)
bx lr
ENDFUNC