Message ID | 1470842282-8415-26-git-send-email-ard.biesheuvel@linaro.org |
---|---|
State | Accepted |
Commit | c17ae4cf8e07b2a6bbaef787d511dee81f3115fe |
Headers | show |
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 <leif.lindholm@linaro.org> > Contributed-under: TianoCore Contribution Agreement 1.0 > Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> > --- > 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 edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel
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
Annotate functions with ASM_FUNC() so that they are emitted into separate sections. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> --- ArmPlatformPkg/Library/ArmPlatformLibNull/AArch64/ArmPlatformHelper.S | 28 +++++--------------- ArmPlatformPkg/Library/ArmPlatformLibNull/Arm/ArmPlatformHelper.S | 28 +++++--------------- 2 files changed, 14 insertions(+), 42 deletions(-) -- 2.7.4 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel