On Wed, Aug 10, 2016 at 05:18:01PM +0200, Ard Biesheuvel wrote: > Annotate functions with ASM_FUNC() so that they are emitted into > separate sections.
Also replacing LoadConstantToReg. Add that to commit message and: Reviewed-by: Leif Lindholm <[email protected]> > Contributed-under: TianoCore Contribution Agreement 1.0 > Signed-off-by: Ard Biesheuvel <[email protected]> > --- > ArmPlatformPkg/Library/ArmPlatformLibNull/AArch64/ArmPlatformHelper.S | 28 > +++++--------------- > ArmPlatformPkg/Library/ArmPlatformLibNull/Arm/ArmPlatformHelper.S | 28 > +++++--------------- > 2 files changed, 14 insertions(+), 42 deletions(-) > > diff --git > a/ArmPlatformPkg/Library/ArmPlatformLibNull/AArch64/ArmPlatformHelper.S > b/ArmPlatformPkg/Library/ArmPlatformLibNull/AArch64/ArmPlatformHelper.S > index 8c099b469e0e..2f4cf95cbf13 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 @@ ASM_PFX(ArmPlatformPeiBootAction): > // 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 @@ ASM_PFX(ArmPlatformGetCorePosition): > //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 e52ea5afa2cb..bd517e6e16c1 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 @@ ASM_PFX(ArmPlatformGetCorePosition): > //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 > -- > 2.7.4 > _______________________________________________ edk2-devel mailing list [email protected] https://lists.01.org/mailman/listinfo/edk2-devel

