ArmPlatformPkg/ArmPlatformLibNull: switch to ASM_FUNC() asm macro

Annotate functions with ASM_FUNC() so that they are emitted into
separate sections.

While we're at it, replace some inefficient uses of LoadConstantToReg()

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
diff --git a/ArmPlatformPkg/Library/ArmPlatformLibNull/AArch64/ArmPlatformHelper.S b/ArmPlatformPkg/Library/ArmPlatformLibNull/AArch64/ArmPlatformHelper.S
index 8c099b4..2f4cf95 100644
--- a/ArmPlatformPkg/Library/ArmPlatformLibNull/AArch64/ArmPlatformHelper.S
+++ b/ArmPlatformPkg/Library/ArmPlatformLibNull/AArch64/ArmPlatformHelper.S
@@ -14,18 +14,7 @@
 #include <AsmMacroIoLibV8.h>

 #include <Library/ArmLib.h>

 

-.text

-.align 2

-

-GCC_ASM_EXPORT(ArmPlatformPeiBootAction)

-GCC_ASM_EXPORT(ArmPlatformGetCorePosition)

-GCC_ASM_EXPORT(ArmPlatformGetPrimaryCoreMpId)

-GCC_ASM_EXPORT(ArmPlatformIsPrimaryCore)

-

-GCC_ASM_IMPORT(_gPcd_FixedAtBuild_PcdArmPrimaryCore)

-GCC_ASM_IMPORT(_gPcd_FixedAtBuild_PcdArmPrimaryCoreMask)

-

-ASM_PFX(ArmPlatformPeiBootAction):

+ASM_FUNC(ArmPlatformPeiBootAction)

   ret

 

 //UINTN

@@ -33,7 +22,7 @@
 //  IN UINTN MpId

 //  );

 // With this function: CorePos = (ClusterId * 4) + CoreId

-ASM_PFX(ArmPlatformGetCorePosition):

+ASM_FUNC(ArmPlatformGetCorePosition)

   and   x1, x0, #ARM_CORE_MASK

   and   x0, x0, #ARM_CLUSTER_MASK

   add   x0, x1, x0, LSR #6

@@ -43,21 +32,18 @@
 //ArmPlatformGetPrimaryCoreMpId (

 //  VOID

 //  );

-ASM_PFX(ArmPlatformGetPrimaryCoreMpId):

-  LoadConstantToReg (_gPcd_FixedAtBuild_PcdArmPrimaryCore, x0)

-  ldrh  w0, [x0]

+ASM_FUNC(ArmPlatformGetPrimaryCoreMpId)

+  MOV32  (w0, FixedPcdGet32 (PcdArmPrimaryCore))

   ret

 

 //UINTN

 //ArmPlatformIsPrimaryCore (

 //  IN UINTN MpId

 //  );

-ASM_PFX(ArmPlatformIsPrimaryCore):

-  LoadConstantToReg (_gPcd_FixedAtBuild_PcdArmPrimaryCoreMask, x1)

-  ldrh  w1, [x1]

+ASM_FUNC(ArmPlatformIsPrimaryCore)

+  MOV32  (w1, FixedPcdGet32 (PcdArmPrimaryCoreMask))

   and   x0, x0, x1

-  LoadConstantToReg (_gPcd_FixedAtBuild_PcdArmPrimaryCore, x1)

-  ldrh  w1, [x1]

+  MOV32  (w1, FixedPcdGet32 (PcdArmPrimaryCore))

   cmp   w0, w1

   mov   x0, #1

   mov   x1, #0

diff --git a/ArmPlatformPkg/Library/ArmPlatformLibNull/Arm/ArmPlatformHelper.S b/ArmPlatformPkg/Library/ArmPlatformLibNull/Arm/ArmPlatformHelper.S
index e52ea5a..bd517e6 100644
--- a/ArmPlatformPkg/Library/ArmPlatformLibNull/Arm/ArmPlatformHelper.S
+++ b/ArmPlatformPkg/Library/ArmPlatformLibNull/Arm/ArmPlatformHelper.S
@@ -14,25 +14,14 @@
 #include <AsmMacroIoLib.h>

 #include <Library/ArmLib.h>

 

-.text

-.align 2

-

-GCC_ASM_EXPORT(ArmPlatformPeiBootAction)

-GCC_ASM_EXPORT(ArmPlatformGetCorePosition)

-GCC_ASM_EXPORT(ArmPlatformGetPrimaryCoreMpId)

-GCC_ASM_EXPORT(ArmPlatformIsPrimaryCore)

-

-GCC_ASM_IMPORT(_gPcd_FixedAtBuild_PcdArmPrimaryCore)

-GCC_ASM_IMPORT(_gPcd_FixedAtBuild_PcdArmPrimaryCoreMask)

-

-ASM_PFX(ArmPlatformPeiBootAction):

+ASM_FUNC(ArmPlatformPeiBootAction)

   bx    lr

 

 //UINTN

 //ArmPlatformGetCorePosition (

 //  IN UINTN MpId

 //  );

-ASM_PFX(ArmPlatformGetCorePosition):

+ASM_FUNC(ArmPlatformGetCorePosition)

   and   r1, r0, #ARM_CORE_MASK

   and   r0, r0, #ARM_CLUSTER_MASK

   add   r0, r1, r0, LSR #7

@@ -42,21 +31,18 @@
 //ArmPlatformGetPrimaryCoreMpId (

 //  VOID

 //  );

-ASM_PFX(ArmPlatformGetPrimaryCoreMpId):

-  LoadConstantToReg (_gPcd_FixedAtBuild_PcdArmPrimaryCore, r0)

-  ldr   r0, [r0]

+ASM_FUNC(ArmPlatformGetPrimaryCoreMpId)

+  MOV32  (r0, FixedPcdGet32 (PcdArmPrimaryCore))

   bx    lr

 

 //UINTN

 //ArmPlatformIsPrimaryCore (

 //  IN UINTN MpId

 //  );

-ASM_PFX(ArmPlatformIsPrimaryCore):

-  LoadConstantToReg (_gPcd_FixedAtBuild_PcdArmPrimaryCoreMask, r1)

-  ldr   r1, [r1]

+ASM_FUNC(ArmPlatformIsPrimaryCore)

+  MOV32  (r1, FixedPcdGet32 (PcdArmPrimaryCoreMask))

   and   r0, r0, r1

-  LoadConstantToReg (_gPcd_FixedAtBuild_PcdArmPrimaryCore, r1)

-  ldr   r1, [r1]

+  MOV32  (r1, FixedPcdGet32 (PcdArmPrimaryCore))

   cmp   r0, r1

   moveq r0, #1

   movne r0, #0