[edk2,17/26] ArmPkg/CompilerIntrinsicsLib: switch to ASM_FUNC() asm macro

Message ID 1470842282-8415-18-git-send-email-ard.biesheuvel@linaro.org
State New
Headers show

Commit Message

Ard Biesheuvel Aug. 10, 2016, 3:17 p.m.
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 <ard.biesheuvel@linaro.org>

---
 ArmPkg/Library/CompilerIntrinsicsLib/AArch64/memcpy.S | 10 ++--------
 ArmPkg/Library/CompilerIntrinsicsLib/Arm/ashldi3.S    |  6 ++----
 ArmPkg/Library/CompilerIntrinsicsLib/Arm/ashrdi3.S    |  6 ++----
 ArmPkg/Library/CompilerIntrinsicsLib/Arm/clzsi2.S     |  6 ++----
 ArmPkg/Library/CompilerIntrinsicsLib/Arm/ctzsi2.S     |  6 ++----
 ArmPkg/Library/CompilerIntrinsicsLib/Arm/div.S        | 13 ++++---------
 ArmPkg/Library/CompilerIntrinsicsLib/Arm/divdi3.S     |  6 ++----
 ArmPkg/Library/CompilerIntrinsicsLib/Arm/divsi3.S     |  6 ++----
 ArmPkg/Library/CompilerIntrinsicsLib/Arm/ldivmod.S    |  7 ++-----
 ArmPkg/Library/CompilerIntrinsicsLib/Arm/llsl.S       |  7 ++-----
 ArmPkg/Library/CompilerIntrinsicsLib/Arm/llsr.S       |  8 ++------
 ArmPkg/Library/CompilerIntrinsicsLib/Arm/lshrdi3.S    |  6 ++----
 ArmPkg/Library/CompilerIntrinsicsLib/Arm/memmove.S    |  6 ++----
 ArmPkg/Library/CompilerIntrinsicsLib/Arm/moddi3.S     |  6 ++----
 ArmPkg/Library/CompilerIntrinsicsLib/Arm/modsi3.S     |  6 ++----
 ArmPkg/Library/CompilerIntrinsicsLib/Arm/muldi3.S     |  6 ++----
 ArmPkg/Library/CompilerIntrinsicsLib/Arm/switch16.S   |  8 +++-----
 ArmPkg/Library/CompilerIntrinsicsLib/Arm/switch32.S   |  8 +++-----
 ArmPkg/Library/CompilerIntrinsicsLib/Arm/switch8.S    |  8 +++-----
 ArmPkg/Library/CompilerIntrinsicsLib/Arm/switchu8.S   |  9 +++------
 ArmPkg/Library/CompilerIntrinsicsLib/Arm/ucmpdi2.S    |  6 ++----
 ArmPkg/Library/CompilerIntrinsicsLib/Arm/udivdi3.S    |  6 ++----
 ArmPkg/Library/CompilerIntrinsicsLib/Arm/udivmoddi4.S |  7 +++----
 ArmPkg/Library/CompilerIntrinsicsLib/Arm/udivsi3.S    |  7 +++----
 ArmPkg/Library/CompilerIntrinsicsLib/Arm/umoddi3.S    |  6 ++----
 ArmPkg/Library/CompilerIntrinsicsLib/Arm/umodsi3.S    |  6 ++----
 26 files changed, 60 insertions(+), 122 deletions(-)

-- 
2.7.4

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Patch

diff --git a/ArmPkg/Library/CompilerIntrinsicsLib/AArch64/memcpy.S b/ArmPkg/Library/CompilerIntrinsicsLib/AArch64/memcpy.S
index 66102da14b6a..4dd6cf207754 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 <AsmMacroIoLibV8.h>
 
 // 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 74960b1df185..a68b60cf0c96 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 <AsmMacroIoLib.h>
 
-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 3cee2c1085d8..6d004a553fa6 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 <AsmMacroIoLib.h>
 
-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 4cef26575712..8ebf65bc8c6a 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 <AsmMacroIoLib.h>
 
-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 108072eef720..ea957fb198eb 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 <AsmMacroIoLib.h>
 
-ASM_PFX(__ctzsi2):
+ASM_FUNC(__ctzsi2)
   uxth  r3, r0
   cmp  r3, #0
   moveq  ip, #16
diff --git a/ArmPkg/Library/CompilerIntrinsicsLib/Arm/div.S b/ArmPkg/Library/CompilerIntrinsicsLib/Arm/div.S
index faf70dbf4598..277f4718880f 100644
--- a/ArmPkg/Library/CompilerIntrinsicsLib/Arm/div.S
+++ b/ArmPkg/Library/CompilerIntrinsicsLib/Arm/div.S
@@ -12,12 +12,7 @@ 
 #
 #------------------------------------------------------------------------------
 
-.text
-.align 2
-GCC_ASM_EXPORT(__aeabi_uidiv)
-GCC_ASM_EXPORT(__aeabi_uidivmod)
-GCC_ASM_EXPORT(__aeabi_idiv)
-GCC_ASM_EXPORT(__aeabi_idivmod)
+#include <AsmMacroIoLib.h>
 
 #    AREA  Math, CODE, READONLY
 
@@ -34,11 +29,11 @@  ASM_PFX(__aeabi_uidiv):
 ASM_PFX(__aeabi_uidivmod):
   rsbs    r12, r1, r0, LSR #4
   mov     r2, #0
-  bcc     ASM_PFX(__arm_div4)
+  bcc     .L__arm_div4
   rsbs    r12, r1, r0, LSR #8
-  bcc     ASM_PFX(__arm_div8)
+  bcc     .L__arm_div8
   mov     r3, #0
-  b       ASM_PFX(__arm_div_large)
+  b       .L__arm_div_large
 
 #
 #INT32
diff --git a/ArmPkg/Library/CompilerIntrinsicsLib/Arm/divdi3.S b/ArmPkg/Library/CompilerIntrinsicsLib/Arm/divdi3.S
index 23c8e8ffbf68..ce55951d3cf7 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 <AsmMacroIoLib.h>
 
-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 d585146878d0..835f1c51718f 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 <AsmMacroIoLib.h>
 
-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 e7a05de58913..98632cf445cc 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 <AsmMacroIoLib.h>
 
 //
 // 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 ba8ab1cf5870..f72aca97c137 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 <AsmMacroIoLib.h>
 
 #
 #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 3d2c106270e7..6908bd6b7c08 100644
--- a/ArmPkg/Library/CompilerIntrinsicsLib/Arm/llsr.S
+++ b/ArmPkg/Library/CompilerIntrinsicsLib/Arm/llsr.S
@@ -12,12 +12,8 @@ 
 #
 #------------------------------------------------------------------------------
 
+#include <AsmMacroIoLib.h>
 
-.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 a3133206a5df..e17391184a74 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 <AsmMacroIoLib.h>
 
-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 79f95b007d80..d10860d80689 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 <AsmMacroIoLib.h>
 
 # 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 7b618eb06bdb..c8c87d8e23f9 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 <AsmMacroIoLib.h>
 
-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 047501e929bd..29e2df92b02f 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 <AsmMacroIoLib.h>
 
-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 dff61ef7a44b..a6689fcee958 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 <AsmMacroIoLib.h>
 
-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 09c9004ddfff..6de2d4513c82 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 <AsmMacroIoLib.h>
 
-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 5b8fd34733cd..f4b3343a787e 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 <AsmMacroIoLib.h>
 
-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 871c7c05f7a4..7f84b16c7917 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 <AsmMacroIoLib.h>
 
-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 5849998eaf32..7c94dd4fad27 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 <AsmMacroIoLib.h>
 
+.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 da57423bf1e3..472bbc10563c 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 <AsmMacroIoLib.h>
 
-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 cbfb12735003..e173d4ada786 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 <AsmMacroIoLib.h>
 
-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 42f4ba404730..b87872d39e07 100644
--- a/ArmPkg/Library/CompilerIntrinsicsLib/Arm/udivmoddi4.S
+++ b/ArmPkg/Library/CompilerIntrinsicsLib/Arm/udivmoddi4.S
@@ -12,12 +12,11 @@ 
 #
 #------------------------------------------------------------------------------
 
-  .text
+#include <AsmMacroIoLib.h>
+
   .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 080aa51c3c54..b70d1d7f0322 100644
--- a/ArmPkg/Library/CompilerIntrinsicsLib/Arm/udivsi3.S
+++ b/ArmPkg/Library/CompilerIntrinsicsLib/Arm/udivsi3.S
@@ -12,12 +12,11 @@ 
 #
 #------------------------------------------------------------------------------
 
-  .text
+#include <AsmMacroIoLib.h>
+
   .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 6b718a657474..3edff1b715a1 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 <AsmMacroIoLib.h>
 
-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 76c26beb0b19..2a300601d0f5 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 <AsmMacroIoLib.h>
 
-ASM_PFX(__umodsi3):
+ASM_FUNC(__umodsi3)
   stmfd  sp!, {r4, r5, r7, lr}
   add  r7, sp, #8
   mov  r5, r0