From: Ard Biesheuvel Date: Wed, 10 Aug 2016 12:38:08 +0000 (+0200) Subject: ArmPkg/CompilerIntrinsicsLib: switch to ASM_FUNC() asm macro X-Git-Tag: edk2-stable201903~6054 X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=commitdiff_plain;h=903e31242d016a82a363e4281959fc1297d25769 ArmPkg/CompilerIntrinsicsLib: switch to ASM_FUNC() asm macro Annotate functions with ASM_FUNC() so that they are emitted into separate sections. Note that in some cases, various entry points refer to different parts of the same routine, so in those cases, the files have been left untouched. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Ard Biesheuvel Reviewed-by: Leif Lindholm --- diff --git a/ArmPkg/Library/CompilerIntrinsicsLib/AArch64/memcpy.S b/ArmPkg/Library/CompilerIntrinsicsLib/AArch64/memcpy.S index 66102da14b..4dd6cf2077 100644 --- a/ArmPkg/Library/CompilerIntrinsicsLib/AArch64/memcpy.S +++ b/ArmPkg/Library/CompilerIntrinsicsLib/AArch64/memcpy.S @@ -26,16 +26,10 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - -.text -.align 2 - - -GCC_ASM_EXPORT(memcpy) - +#include // Taken from Newlib BSD implementation. -ASM_PFX(memcpy): +ASM_FUNC(memcpy) // Copy dst to x6, so we can preserve return value. mov x6, x0 diff --git a/ArmPkg/Library/CompilerIntrinsicsLib/Arm/ashldi3.S b/ArmPkg/Library/CompilerIntrinsicsLib/Arm/ashldi3.S index 74960b1df1..a68b60cf0c 100644 --- a/ArmPkg/Library/CompilerIntrinsicsLib/Arm/ashldi3.S +++ b/ArmPkg/Library/CompilerIntrinsicsLib/Arm/ashldi3.S @@ -12,11 +12,9 @@ # #------------------------------------------------------------------------------ - .text - .align 2 - GCC_ASM_EXPORT(__ashldi3) +#include -ASM_PFX(__ashldi3): +ASM_FUNC(__ashldi3) cmp r2, #31 bls L2 cmp r2, #63 diff --git a/ArmPkg/Library/CompilerIntrinsicsLib/Arm/ashrdi3.S b/ArmPkg/Library/CompilerIntrinsicsLib/Arm/ashrdi3.S index 3cee2c1085..6d004a553f 100644 --- a/ArmPkg/Library/CompilerIntrinsicsLib/Arm/ashrdi3.S +++ b/ArmPkg/Library/CompilerIntrinsicsLib/Arm/ashrdi3.S @@ -12,11 +12,9 @@ # #------------------------------------------------------------------------------ - .text - .align 2 - GCC_ASM_EXPORT(__ashrdi3) +#include -ASM_PFX(__ashrdi3): +ASM_FUNC(__ashrdi3) cmp r2, #31 bls L2 cmp r2, #63 diff --git a/ArmPkg/Library/CompilerIntrinsicsLib/Arm/clzsi2.S b/ArmPkg/Library/CompilerIntrinsicsLib/Arm/clzsi2.S index 4cef265757..8ebf65bc8c 100644 --- a/ArmPkg/Library/CompilerIntrinsicsLib/Arm/clzsi2.S +++ b/ArmPkg/Library/CompilerIntrinsicsLib/Arm/clzsi2.S @@ -12,11 +12,9 @@ # #------------------------------------------------------------------------------ - .text - .align 2 - GCC_ASM_EXPORT(__clzsi2) +#include -ASM_PFX(__clzsi2): +ASM_FUNC(__clzsi2) @ frame_needed = 1, uses_anonymous_args = 0 stmfd sp!, {r7, lr} add r7, sp, #0 diff --git a/ArmPkg/Library/CompilerIntrinsicsLib/Arm/ctzsi2.S b/ArmPkg/Library/CompilerIntrinsicsLib/Arm/ctzsi2.S index 108072eef7..ea957fb198 100644 --- a/ArmPkg/Library/CompilerIntrinsicsLib/Arm/ctzsi2.S +++ b/ArmPkg/Library/CompilerIntrinsicsLib/Arm/ctzsi2.S @@ -12,11 +12,9 @@ # #------------------------------------------------------------------------------ - .text - .align 2 - GCC_ASM_EXPORT(__ctzsi2) +#include -ASM_PFX(__ctzsi2): +ASM_FUNC(__ctzsi2) uxth r3, r0 cmp r3, #0 moveq ip, #16 diff --git a/ArmPkg/Library/CompilerIntrinsicsLib/Arm/divdi3.S b/ArmPkg/Library/CompilerIntrinsicsLib/Arm/divdi3.S index 23c8e8ffbf..ce55951d3c 100644 --- a/ArmPkg/Library/CompilerIntrinsicsLib/Arm/divdi3.S +++ b/ArmPkg/Library/CompilerIntrinsicsLib/Arm/divdi3.S @@ -12,11 +12,9 @@ # #------------------------------------------------------------------------------ - .text - .align 2 - GCC_ASM_EXPORT(__divdi3) +#include -ASM_PFX(__divdi3): +ASM_FUNC(__divdi3) @ args = 0, pretend = 0, frame = 0 @ frame_needed = 1, uses_anonymous_args = 0 stmfd sp!, {r4, r5, r7, lr} diff --git a/ArmPkg/Library/CompilerIntrinsicsLib/Arm/divsi3.S b/ArmPkg/Library/CompilerIntrinsicsLib/Arm/divsi3.S index d585146878..835f1c5171 100644 --- a/ArmPkg/Library/CompilerIntrinsicsLib/Arm/divsi3.S +++ b/ArmPkg/Library/CompilerIntrinsicsLib/Arm/divsi3.S @@ -12,11 +12,9 @@ # #------------------------------------------------------------------------------ - .text - .align 2 - GCC_ASM_EXPORT(__divsi3) +#include -ASM_PFX(__divsi3): +ASM_FUNC(__divsi3) eor r3, r0, r0, asr #31 eor r2, r1, r1, asr #31 stmfd sp!, {r4, r5, r7, lr} diff --git a/ArmPkg/Library/CompilerIntrinsicsLib/Arm/ldivmod.S b/ArmPkg/Library/CompilerIntrinsicsLib/Arm/ldivmod.S index e7a05de589..98632cf445 100644 --- a/ArmPkg/Library/CompilerIntrinsicsLib/Arm/ldivmod.S +++ b/ArmPkg/Library/CompilerIntrinsicsLib/Arm/ldivmod.S @@ -12,10 +12,7 @@ // //------------------------------------------------------------------------------ - - .text - .align 2 - GCC_ASM_EXPORT(__aeabi_ldivmod) +#include // // A pair of (unsigned) long longs is returned in {{r0, r1}, {r2, r3}}, @@ -29,7 +26,7 @@ // )// // -ASM_PFX(__aeabi_ldivmod): +ASM_FUNC(__aeabi_ldivmod) push {r4,lr} asrs r4,r1,#1 eor r4,r4,r3,LSR #1 diff --git a/ArmPkg/Library/CompilerIntrinsicsLib/Arm/llsl.S b/ArmPkg/Library/CompilerIntrinsicsLib/Arm/llsl.S index ba8ab1cf58..f72aca97c1 100644 --- a/ArmPkg/Library/CompilerIntrinsicsLib/Arm/llsl.S +++ b/ArmPkg/Library/CompilerIntrinsicsLib/Arm/llsl.S @@ -12,10 +12,7 @@ # #------------------------------------------------------------------------------ - -.text -.align 2 -GCC_ASM_EXPORT(__aeabi_llsl) +#include # #VOID @@ -26,7 +23,7 @@ GCC_ASM_EXPORT(__aeabi_llsl) # IN UINT32 Size # ); # -ASM_PFX(__aeabi_llsl): +ASM_FUNC(__aeabi_llsl) subs r3,r2,#0x20 bpl 1f rsb r3,r2,#0x20 diff --git a/ArmPkg/Library/CompilerIntrinsicsLib/Arm/llsr.S b/ArmPkg/Library/CompilerIntrinsicsLib/Arm/llsr.S index 3d2c106270..6908bd6b7c 100644 --- a/ArmPkg/Library/CompilerIntrinsicsLib/Arm/llsr.S +++ b/ArmPkg/Library/CompilerIntrinsicsLib/Arm/llsr.S @@ -12,12 +12,8 @@ # #------------------------------------------------------------------------------ +#include -.text -.align 2 -GCC_ASM_EXPORT(__aeabi_llsr) - -# #VOID #EFIAPI #__aeabi_llsr ( @@ -26,7 +22,7 @@ GCC_ASM_EXPORT(__aeabi_llsr) # IN UINT32 Size # ); # -ASM_PFX(__aeabi_llsr): +ASM_FUNC(__aeabi_llsr) subs r3,r2,#0x20 bpl 1f rsb r3,r2,#0x20 diff --git a/ArmPkg/Library/CompilerIntrinsicsLib/Arm/lshrdi3.S b/ArmPkg/Library/CompilerIntrinsicsLib/Arm/lshrdi3.S index a3133206a5..e17391184a 100644 --- a/ArmPkg/Library/CompilerIntrinsicsLib/Arm/lshrdi3.S +++ b/ArmPkg/Library/CompilerIntrinsicsLib/Arm/lshrdi3.S @@ -12,11 +12,9 @@ # #------------------------------------------------------------------------------ - .text - .align 2 - GCC_ASM_EXPORT(__lshrdi3) +#include -ASM_PFX(__lshrdi3): +ASM_FUNC(__lshrdi3) cmp r2, #31 bls L2 cmp r2, #63 diff --git a/ArmPkg/Library/CompilerIntrinsicsLib/Arm/memmove.S b/ArmPkg/Library/CompilerIntrinsicsLib/Arm/memmove.S index 79f95b007d..d10860d806 100644 --- a/ArmPkg/Library/CompilerIntrinsicsLib/Arm/memmove.S +++ b/ArmPkg/Library/CompilerIntrinsicsLib/Arm/memmove.S @@ -12,9 +12,7 @@ # #------------------------------------------------------------------------------ - .text - .align 2 - GCC_ASM_EXPORT (memmove) +#include # VOID # EFIAPI @@ -23,7 +21,7 @@ # IN CONST VOID *Source, # IN UINT32 Size # ); -ASM_PFX(memmove): +ASM_FUNC(memmove) CMP r2, #0 BXEQ lr CMP r0, r1 diff --git a/ArmPkg/Library/CompilerIntrinsicsLib/Arm/moddi3.S b/ArmPkg/Library/CompilerIntrinsicsLib/Arm/moddi3.S index 7b618eb06b..c8c87d8e23 100644 --- a/ArmPkg/Library/CompilerIntrinsicsLib/Arm/moddi3.S +++ b/ArmPkg/Library/CompilerIntrinsicsLib/Arm/moddi3.S @@ -12,11 +12,9 @@ # #------------------------------------------------------------------------------ - .text - .align 2 - GCC_ASM_EXPORT(__moddi3) +#include -ASM_PFX(__moddi3): +ASM_FUNC(__moddi3) stmfd sp!, {r4, r5, r7, lr} mov r4, r1, asr #31 add r7, sp, #8 diff --git a/ArmPkg/Library/CompilerIntrinsicsLib/Arm/modsi3.S b/ArmPkg/Library/CompilerIntrinsicsLib/Arm/modsi3.S index 047501e929..29e2df92b0 100644 --- a/ArmPkg/Library/CompilerIntrinsicsLib/Arm/modsi3.S +++ b/ArmPkg/Library/CompilerIntrinsicsLib/Arm/modsi3.S @@ -12,11 +12,9 @@ # #------------------------------------------------------------------------------ - .text - .align 2 - GCC_ASM_EXPORT(__modsi3) +#include -ASM_PFX(__modsi3): +ASM_FUNC(__modsi3) stmfd sp!, {r4, r5, r7, lr} add r7, sp, #8 mov r5, r0 diff --git a/ArmPkg/Library/CompilerIntrinsicsLib/Arm/muldi3.S b/ArmPkg/Library/CompilerIntrinsicsLib/Arm/muldi3.S index dff61ef7a4..a6689fcee9 100644 --- a/ArmPkg/Library/CompilerIntrinsicsLib/Arm/muldi3.S +++ b/ArmPkg/Library/CompilerIntrinsicsLib/Arm/muldi3.S @@ -12,11 +12,9 @@ # #------------------------------------------------------------------------------ - .text - .align 2 - GCC_ASM_EXPORT(__muldi3) +#include -ASM_PFX(__muldi3): +ASM_FUNC(__muldi3) stmfd sp!, {r4, r5, r6, r7, lr} add r7, sp, #12 stmfd sp!, {r8, r10, r11} diff --git a/ArmPkg/Library/CompilerIntrinsicsLib/Arm/switch16.S b/ArmPkg/Library/CompilerIntrinsicsLib/Arm/switch16.S index 09c9004ddf..6de2d4513c 100644 --- a/ArmPkg/Library/CompilerIntrinsicsLib/Arm/switch16.S +++ b/ArmPkg/Library/CompilerIntrinsicsLib/Arm/switch16.S @@ -13,13 +13,11 @@ #**/ # -.text -.syntax unified -.p2align 2 +#include -GCC_ASM_EXPORT(__switch16) +.syntax unified -ASM_PFX(__switch16): +ASM_FUNC(__switch16) ldrh ip, [lr, #-1] cmp r0, ip add r0, lr, r0, lsl #1 diff --git a/ArmPkg/Library/CompilerIntrinsicsLib/Arm/switch32.S b/ArmPkg/Library/CompilerIntrinsicsLib/Arm/switch32.S index 5b8fd34733..f4b3343a78 100644 --- a/ArmPkg/Library/CompilerIntrinsicsLib/Arm/switch32.S +++ b/ArmPkg/Library/CompilerIntrinsicsLib/Arm/switch32.S @@ -13,13 +13,11 @@ #**/ # -.text -.syntax unified -.p2align 2 +#include -GCC_ASM_EXPORT(__switch32) +.syntax unified -ASM_PFX(__switch32): +ASM_FUNC(__switch32) ldr ip, [lr, #-1] cmp r0, ip add r0, lr, r0, lsl #2 diff --git a/ArmPkg/Library/CompilerIntrinsicsLib/Arm/switch8.S b/ArmPkg/Library/CompilerIntrinsicsLib/Arm/switch8.S index 871c7c05f7..7f84b16c79 100644 --- a/ArmPkg/Library/CompilerIntrinsicsLib/Arm/switch8.S +++ b/ArmPkg/Library/CompilerIntrinsicsLib/Arm/switch8.S @@ -13,13 +13,11 @@ #**/ # -.text -.syntax unified -.p2align 2 +#include -GCC_ASM_EXPORT(__switch8) +.syntax unified -ASM_PFX(__switch8): +ASM_FUNC(__switch8) ldrb ip, [lr, #-1] cmp r0, ip ldrsbcc r0, [lr, r0] diff --git a/ArmPkg/Library/CompilerIntrinsicsLib/Arm/switchu8.S b/ArmPkg/Library/CompilerIntrinsicsLib/Arm/switchu8.S index 5849998eaf..7c94dd4fad 100644 --- a/ArmPkg/Library/CompilerIntrinsicsLib/Arm/switchu8.S +++ b/ArmPkg/Library/CompilerIntrinsicsLib/Arm/switchu8.S @@ -13,14 +13,11 @@ #**/ # -.text -.syntax unified -.p2align 2 - -GCC_ASM_EXPORT(__switchu8) +#include +.syntax unified -ASM_PFX(__switchu8): +ASM_FUNC(__switchu8) ldrb ip,[lr,#-1] cmp r0,ip ldrbcc r0,[lr,r0] diff --git a/ArmPkg/Library/CompilerIntrinsicsLib/Arm/ucmpdi2.S b/ArmPkg/Library/CompilerIntrinsicsLib/Arm/ucmpdi2.S index da57423bf1..472bbc1056 100644 --- a/ArmPkg/Library/CompilerIntrinsicsLib/Arm/ucmpdi2.S +++ b/ArmPkg/Library/CompilerIntrinsicsLib/Arm/ucmpdi2.S @@ -12,11 +12,9 @@ # #------------------------------------------------------------------------------ - .text - .align 2 - GCC_ASM_EXPORT(__ucmpdi2) +#include -ASM_PFX(__ucmpdi2): +ASM_FUNC(__ucmpdi2) stmfd sp!, {r4, r5, r8, lr} cmp r1, r3 mov r8, r0 diff --git a/ArmPkg/Library/CompilerIntrinsicsLib/Arm/udivdi3.S b/ArmPkg/Library/CompilerIntrinsicsLib/Arm/udivdi3.S index cbfb127350..e173d4ada7 100644 --- a/ArmPkg/Library/CompilerIntrinsicsLib/Arm/udivdi3.S +++ b/ArmPkg/Library/CompilerIntrinsicsLib/Arm/udivdi3.S @@ -12,11 +12,9 @@ # #------------------------------------------------------------------------------ - .text - .align 2 - GCC_ASM_EXPORT(__udivdi3) +#include -ASM_PFX(__udivdi3): +ASM_FUNC(__udivdi3) stmfd sp!, {r7, lr} add r7, sp, #0 sub sp, sp, #8 diff --git a/ArmPkg/Library/CompilerIntrinsicsLib/Arm/udivmoddi4.S b/ArmPkg/Library/CompilerIntrinsicsLib/Arm/udivmoddi4.S index 42f4ba4047..b87872d39e 100644 --- a/ArmPkg/Library/CompilerIntrinsicsLib/Arm/udivmoddi4.S +++ b/ArmPkg/Library/CompilerIntrinsicsLib/Arm/udivmoddi4.S @@ -12,12 +12,11 @@ # #------------------------------------------------------------------------------ - .text +#include + .syntax unified - .align 2 - GCC_ASM_EXPORT(__udivmoddi4) -ASM_PFX(__udivmoddi4): +ASM_FUNC(__udivmoddi4) stmfd sp!, {r4, r5, r6, r7, lr} add r7, sp, #12 stmfd sp!, {r10, r11} diff --git a/ArmPkg/Library/CompilerIntrinsicsLib/Arm/udivsi3.S b/ArmPkg/Library/CompilerIntrinsicsLib/Arm/udivsi3.S index 080aa51c3c..b70d1d7f03 100644 --- a/ArmPkg/Library/CompilerIntrinsicsLib/Arm/udivsi3.S +++ b/ArmPkg/Library/CompilerIntrinsicsLib/Arm/udivsi3.S @@ -12,12 +12,11 @@ # #------------------------------------------------------------------------------ - .text +#include + .syntax unified - .align 2 - GCC_ASM_EXPORT(__udivsi3) -ASM_PFX(__udivsi3): +ASM_FUNC(__udivsi3) cmp r1, #0 cmpne r0, #0 stmfd sp!, {r4, r5, r7, lr} diff --git a/ArmPkg/Library/CompilerIntrinsicsLib/Arm/umoddi3.S b/ArmPkg/Library/CompilerIntrinsicsLib/Arm/umoddi3.S index 6b718a6574..3edff1b715 100644 --- a/ArmPkg/Library/CompilerIntrinsicsLib/Arm/umoddi3.S +++ b/ArmPkg/Library/CompilerIntrinsicsLib/Arm/umoddi3.S @@ -12,11 +12,9 @@ # #------------------------------------------------------------------------------ - .text - .align 2 - GCC_ASM_EXPORT(__umoddi3) +#include -ASM_PFX(__umoddi3): +ASM_FUNC(__umoddi3) stmfd sp!, {r7, lr} add r7, sp, #0 sub sp, sp, #16 diff --git a/ArmPkg/Library/CompilerIntrinsicsLib/Arm/umodsi3.S b/ArmPkg/Library/CompilerIntrinsicsLib/Arm/umodsi3.S index 76c26beb0b..2a300601d0 100644 --- a/ArmPkg/Library/CompilerIntrinsicsLib/Arm/umodsi3.S +++ b/ArmPkg/Library/CompilerIntrinsicsLib/Arm/umodsi3.S @@ -12,11 +12,9 @@ # #------------------------------------------------------------------------------ - .text - .align 2 - GCC_ASM_EXPORT(__umodsi3) +#include -ASM_PFX(__umodsi3): +ASM_FUNC(__umodsi3) stmfd sp!, {r4, r5, r7, lr} add r7, sp, #8 mov r5, r0