summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorxli24 <xli24@6f19259b-4bc3-4df7-8a09-765794883524>2009-05-20 09:42:59 +0000
committerxli24 <xli24@6f19259b-4bc3-4df7-8a09-765794883524>2009-05-20 09:42:59 +0000
commitd5172f911d21d03a3a4f50cb6ebe89854d191e4d (patch)
treea0653d75590009e994fa9dbfb848b250b798ccd9
parentdedfc3bbc97e726e259bfadbdf22502133faa8a8 (diff)
downloadedk2-d5172f911d21d03a3a4f50cb6ebe89854d191e4d.tar.gz
edk2-d5172f911d21d03a3a4f50cb6ebe89854d191e4d.tar.bz2
edk2-d5172f911d21d03a3a4f50cb6ebe89854d191e4d.zip
1. Remove .extern from GCC assembly.
2. Define macro for .global/.globl in GCC assembly. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8344 6f19259b-4bc3-4df7-8a09-765794883524
-rw-r--r--DuetPkg/BootSector/bootsect.S4
-rw-r--r--DuetPkg/BootSector/bs16.S4
-rw-r--r--DuetPkg/BootSector/bs32.S4
-rw-r--r--DuetPkg/BootSector/start16.S8
-rw-r--r--MdeModulePkg/Universal/EbcDxe/X64/EbcLowLevel.S10
-rw-r--r--MdePkg/Include/Ia32/ProcessorBind.h5
-rw-r--r--MdePkg/Include/X64/ProcessorBind.h5
-rw-r--r--MdePkg/Library/BaseCpuLib/X64/CpuFlushTlb.S2
-rw-r--r--MdePkg/Library/BaseCpuLib/X64/CpuSleep.S2
-rw-r--r--MdePkg/Library/BaseLib/X64/CpuBreakpoint.S2
-rw-r--r--MdePkg/Library/BaseLib/X64/CpuId.S2
-rw-r--r--MdePkg/Library/BaseLib/X64/CpuIdEx.S2
-rw-r--r--MdePkg/Library/BaseLib/X64/CpuPause.S2
-rw-r--r--MdePkg/Library/BaseLib/X64/DisableInterrupts.S2
-rw-r--r--MdePkg/Library/BaseLib/X64/DisablePaging64.S2
-rw-r--r--MdePkg/Library/BaseLib/X64/EnableDisableInterrupts.S2
-rw-r--r--MdePkg/Library/BaseLib/X64/EnableInterrupts.S2
-rw-r--r--MdePkg/Library/BaseLib/X64/FlushCacheLine.S2
-rw-r--r--MdePkg/Library/BaseLib/X64/FxRestore.S2
-rw-r--r--MdePkg/Library/BaseLib/X64/FxSave.S2
-rw-r--r--MdePkg/Library/BaseLib/X64/Invd.S2
-rw-r--r--MdePkg/Library/BaseLib/X64/LongJump.S2
-rw-r--r--MdePkg/Library/BaseLib/X64/Monitor.S2
-rw-r--r--MdePkg/Library/BaseLib/X64/Mwait.S2
-rw-r--r--MdePkg/Library/BaseLib/X64/ReadCr0.S2
-rw-r--r--MdePkg/Library/BaseLib/X64/ReadCr2.S2
-rw-r--r--MdePkg/Library/BaseLib/X64/ReadCr3.S2
-rw-r--r--MdePkg/Library/BaseLib/X64/ReadCr4.S2
-rw-r--r--MdePkg/Library/BaseLib/X64/ReadCs.S2
-rw-r--r--MdePkg/Library/BaseLib/X64/ReadDr0.S2
-rw-r--r--MdePkg/Library/BaseLib/X64/ReadDr1.S2
-rw-r--r--MdePkg/Library/BaseLib/X64/ReadDr2.S2
-rw-r--r--MdePkg/Library/BaseLib/X64/ReadDr3.S2
-rw-r--r--MdePkg/Library/BaseLib/X64/ReadDr4.S2
-rw-r--r--MdePkg/Library/BaseLib/X64/ReadDr5.S2
-rw-r--r--MdePkg/Library/BaseLib/X64/ReadDr6.S2
-rw-r--r--MdePkg/Library/BaseLib/X64/ReadDr7.S2
-rw-r--r--MdePkg/Library/BaseLib/X64/ReadDs.S2
-rw-r--r--MdePkg/Library/BaseLib/X64/ReadEflags.S2
-rw-r--r--MdePkg/Library/BaseLib/X64/ReadEs.S2
-rw-r--r--MdePkg/Library/BaseLib/X64/ReadFs.S2
-rw-r--r--MdePkg/Library/BaseLib/X64/ReadGdtr.S2
-rw-r--r--MdePkg/Library/BaseLib/X64/ReadGs.S2
-rw-r--r--MdePkg/Library/BaseLib/X64/ReadIdtr.S2
-rw-r--r--MdePkg/Library/BaseLib/X64/ReadLdtr.S2
-rw-r--r--MdePkg/Library/BaseLib/X64/ReadMm0.S2
-rw-r--r--MdePkg/Library/BaseLib/X64/ReadMm1.S2
-rw-r--r--MdePkg/Library/BaseLib/X64/ReadMm2.S2
-rw-r--r--MdePkg/Library/BaseLib/X64/ReadMm3.S2
-rw-r--r--MdePkg/Library/BaseLib/X64/ReadMm4.S2
-rw-r--r--MdePkg/Library/BaseLib/X64/ReadMm5.S2
-rw-r--r--MdePkg/Library/BaseLib/X64/ReadMm6.S2
-rw-r--r--MdePkg/Library/BaseLib/X64/ReadMm7.S2
-rw-r--r--MdePkg/Library/BaseLib/X64/ReadMsr64.S2
-rw-r--r--MdePkg/Library/BaseLib/X64/ReadPmc.S2
-rw-r--r--MdePkg/Library/BaseLib/X64/ReadSs.S2
-rw-r--r--MdePkg/Library/BaseLib/X64/ReadTr.S2
-rw-r--r--MdePkg/Library/BaseLib/X64/ReadTsc.S2
-rw-r--r--MdePkg/Library/BaseLib/X64/SetJump.S3
-rw-r--r--MdePkg/Library/BaseLib/X64/SwitchStack.S2
-rw-r--r--MdePkg/Library/BaseLib/X64/Wbinvd.S2
-rw-r--r--MdePkg/Library/BaseLib/X64/WriteCr0.S2
-rw-r--r--MdePkg/Library/BaseLib/X64/WriteCr2.S2
-rw-r--r--MdePkg/Library/BaseLib/X64/WriteCr3.S2
-rw-r--r--MdePkg/Library/BaseLib/X64/WriteCr4.S2
-rw-r--r--MdePkg/Library/BaseLib/X64/WriteDr0.S2
-rw-r--r--MdePkg/Library/BaseLib/X64/WriteDr1.S2
-rw-r--r--MdePkg/Library/BaseLib/X64/WriteDr2.S2
-rw-r--r--MdePkg/Library/BaseLib/X64/WriteDr3.S2
-rw-r--r--MdePkg/Library/BaseLib/X64/WriteDr4.S2
-rw-r--r--MdePkg/Library/BaseLib/X64/WriteDr5.S2
-rw-r--r--MdePkg/Library/BaseLib/X64/WriteDr6.S2
-rw-r--r--MdePkg/Library/BaseLib/X64/WriteDr7.S2
-rw-r--r--MdePkg/Library/BaseLib/X64/WriteGdtr.S2
-rw-r--r--MdePkg/Library/BaseLib/X64/WriteIdtr.S2
-rw-r--r--MdePkg/Library/BaseLib/X64/WriteLdtr.S2
-rw-r--r--MdePkg/Library/BaseLib/X64/WriteMm0.S2
-rw-r--r--MdePkg/Library/BaseLib/X64/WriteMm1.S2
-rw-r--r--MdePkg/Library/BaseLib/X64/WriteMm2.S2
-rw-r--r--MdePkg/Library/BaseLib/X64/WriteMm3.S2
-rw-r--r--MdePkg/Library/BaseLib/X64/WriteMm4.S2
-rw-r--r--MdePkg/Library/BaseLib/X64/WriteMm5.S2
-rw-r--r--MdePkg/Library/BaseLib/X64/WriteMm6.S2
-rw-r--r--MdePkg/Library/BaseLib/X64/WriteMm7.S2
-rw-r--r--MdePkg/Library/BaseLib/X64/WriteMsr64.S2
-rw-r--r--MdePkg/Library/BaseSynchronizationLib/X64/InterlockedCompareExchange32.S2
-rw-r--r--MdePkg/Library/BaseSynchronizationLib/X64/InterlockedCompareExchange64.S2
-rw-r--r--MdePkg/Library/BaseSynchronizationLib/X64/InterlockedDecrement.S2
-rw-r--r--MdePkg/Library/BaseSynchronizationLib/X64/InterlockedIncrement.S2
89 files changed, 107 insertions, 98 deletions
diff --git a/DuetPkg/BootSector/bootsect.S b/DuetPkg/BootSector/bootsect.S
index 91a1966c9b..336c82bcb6 100644
--- a/DuetPkg/BootSector/bootsect.S
+++ b/DuetPkg/BootSector/bootsect.S
@@ -42,8 +42,8 @@
.equ LOADER_FILENAME_PART2, 0x020205244 # "DR__"
.equ LOADER_FILENAME_PART3, 0x020202020 # "____"
- .org 0x0
-.global _start
+ .org 0x0
+ASM_GLOBAL _start
_start:
Ia32Jump:
jmp BootSectorEntryPoint # JMP inst - 3 bytes
diff --git a/DuetPkg/BootSector/bs16.S b/DuetPkg/BootSector/bs16.S
index 57e7904129..c1f13636db 100644
--- a/DuetPkg/BootSector/bs16.S
+++ b/DuetPkg/BootSector/bs16.S
@@ -30,8 +30,8 @@
.equ LOADER_FILENAME_PART2, 0x036315244 # "DR16"
.equ LOADER_FILENAME_PART3, 0x020202036 # "6___"
- .org 0x0
-.global _start
+ .org 0x0
+ASM_GLOBAL _start
_start:
Ia32Jump:
jmp BootSectorEntryPoint # JMP inst - 3 bytes
diff --git a/DuetPkg/BootSector/bs32.S b/DuetPkg/BootSector/bs32.S
index 5df6d6a521..a1f8ec0b18 100644
--- a/DuetPkg/BootSector/bs32.S
+++ b/DuetPkg/BootSector/bs32.S
@@ -30,8 +30,8 @@
.equ LOADER_FILENAME_PART2, 0x30325244 # "DR20"
.equ LOADER_FILENAME_PART3, 0x20202030 # "0___"
- .org 0x0
-.global _start
+ .org 0x0
+ASM_GLOBAL _start
_start:
Ia32Jump:
jmp BootSectorEntryPoint # JMP inst - 3 bytes
diff --git a/DuetPkg/BootSector/start16.S b/DuetPkg/BootSector/start16.S
index f0ff82a829..7106f15f54 100644
--- a/DuetPkg/BootSector/start16.S
+++ b/DuetPkg/BootSector/start16.S
@@ -26,8 +26,8 @@
.equ BLOCK_MASK, 0x01ff
.equ BLOCK_SHIFT, 9
- .org 0x00
-.global _start
+ .org 0x00
+ASM_GLOBAL _start
_start:
Ia32Jump:
jmp BootSectorEntryPoint # JMP inst - 3 bytes
@@ -452,7 +452,7 @@ gdtr: .word GDT_END - GDT_BASE - 1 # GDT limit
.align 0x2
-.global GDT_BASE
+ASM_GLOBAL GDT_BASE
GDT_BASE:
# null descriptor
.equ NULL_SEL, .-GDT_BASE
@@ -546,7 +546,7 @@ idtr: .word IDT_END - IDT_BASE - 1 # IDT limit
#idt_tag db "IDT",0
.align 0x2
-.global IDT_BASE
+ASM_GLOBAL IDT_BASE
IDT_BASE:
# divide by zero (INT 0)
.equ DIV_ZERO_SEL, .-IDT_BASE
diff --git a/MdeModulePkg/Universal/EbcDxe/X64/EbcLowLevel.S b/MdeModulePkg/Universal/EbcDxe/X64/EbcLowLevel.S
index 3b86b53ab0..acebb63a77 100644
--- a/MdeModulePkg/Universal/EbcDxe/X64/EbcLowLevel.S
+++ b/MdeModulePkg/Universal/EbcDxe/X64/EbcLowLevel.S
@@ -33,10 +33,10 @@
#
# Destroys no working registers.
#****************************************************************************
-.global _CopyMem;
+ASM_GLOBAL _CopyMem;
# VOID EbcLLCALLEXNative(UINTN FuncAddr, UINTN NewStackPointer, VOID *FramePtr)
-.global ASM_PFX(EbcLLCALLEXNative);
+ASM_GLOBAL ASM_PFX(EbcLLCALLEXNative);
ASM_PFX(EbcLLCALLEXNative):
push %rbp
push %rbx
@@ -84,7 +84,7 @@ ASM_PFX(EbcLLCALLEXNative):
# Returns:
# The contents of the register in which the entry point is passed.
#
-.global ASM_PFX(EbcLLGetEbcEntryPoint);
+ASM_GLOBAL ASM_PFX(EbcLLGetEbcEntryPoint);
ASM_PFX(EbcLLGetEbcEntryPoint):
ret
@@ -107,7 +107,7 @@ ASM_PFX(EbcLLGetEbcEntryPoint):
#--*/
# UINTN EbcLLGetStackPointer()
-.global ASM_PFX(EbcLLGetStackPointer);
+ASM_GLOBAL ASM_PFX(EbcLLGetStackPointer);
ASM_PFX(EbcLLGetStackPointer):
mov %rsp, %rax
# Stack adjusted by this much when we were called,
@@ -115,7 +115,7 @@ ASM_PFX(EbcLLGetStackPointer):
add $4, %rax
ret
-.global ASM_PFX(EbcLLGetReturnValue);
+ASM_GLOBAL ASM_PFX(EbcLLGetReturnValue);
ASM_PFX(EbcLLGetReturnValue):
# UINT64 EbcLLGetReturnValue(VOID);
# Routine Description:
diff --git a/MdePkg/Include/Ia32/ProcessorBind.h b/MdePkg/Include/Ia32/ProcessorBind.h
index 9cb4eac8cf..a397f4b4b5 100644
--- a/MdePkg/Include/Ia32/ProcessorBind.h
+++ b/MdePkg/Include/Ia32/ProcessorBind.h
@@ -341,6 +341,11 @@ typedef INT32 INTN;
#else
#define ASM_PFX(name) _##name
#endif
+ #if defined(__APPLE__)
+ #define ASM_GLOBAL .globl
+ #else
+ #define ASM_GLOBAL .global
+ #endif
#endif
/**
diff --git a/MdePkg/Include/X64/ProcessorBind.h b/MdePkg/Include/X64/ProcessorBind.h
index 9310f9f334..ce19867851 100644
--- a/MdePkg/Include/X64/ProcessorBind.h
+++ b/MdePkg/Include/X64/ProcessorBind.h
@@ -405,6 +405,11 @@ typedef INT64 INTN;
#else
#define ASM_PFX(name) _##name
#endif
+ #if defined(__APPLE__)
+ #define ASM_GLOBAL .globl
+ #else
+ #define ASM_GLOBAL .global
+ #endif
#endif
/**
diff --git a/MdePkg/Library/BaseCpuLib/X64/CpuFlushTlb.S b/MdePkg/Library/BaseCpuLib/X64/CpuFlushTlb.S
index 535665ceed..da366b36d3 100644
--- a/MdePkg/Library/BaseCpuLib/X64/CpuFlushTlb.S
+++ b/MdePkg/Library/BaseCpuLib/X64/CpuFlushTlb.S
@@ -20,7 +20,7 @@
#
#------------------------------------------------------------------------------
-.global ASM_PFX(CpuFlushTlb)
+ASM_GLOBAL ASM_PFX(CpuFlushTlb)
#------------------------------------------------------------------------------
# VOID
diff --git a/MdePkg/Library/BaseCpuLib/X64/CpuSleep.S b/MdePkg/Library/BaseCpuLib/X64/CpuSleep.S
index 6cb46f9f80..77452d0021 100644
--- a/MdePkg/Library/BaseCpuLib/X64/CpuSleep.S
+++ b/MdePkg/Library/BaseCpuLib/X64/CpuSleep.S
@@ -28,7 +28,7 @@
# VOID
# );
#------------------------------------------------------------------------------
-.global ASM_PFX(CpuSleep)
+ASM_GLOBAL ASM_PFX(CpuSleep)
ASM_PFX(CpuSleep):
hlt
ret
diff --git a/MdePkg/Library/BaseLib/X64/CpuBreakpoint.S b/MdePkg/Library/BaseLib/X64/CpuBreakpoint.S
index 95e8da16e4..fbf4de85d8 100644
--- a/MdePkg/Library/BaseLib/X64/CpuBreakpoint.S
+++ b/MdePkg/Library/BaseLib/X64/CpuBreakpoint.S
@@ -19,7 +19,7 @@
#
#------------------------------------------------------------------------------
-.global ASM_PFX(CpuBreakpoint)
+ASM_GLOBAL ASM_PFX(CpuBreakpoint)
ASM_PFX(CpuBreakpoint):
int $0x3
ret
diff --git a/MdePkg/Library/BaseLib/X64/CpuId.S b/MdePkg/Library/BaseLib/X64/CpuId.S
index 0b7a66f853..8612c5d2b0 100644
--- a/MdePkg/Library/BaseLib/X64/CpuId.S
+++ b/MdePkg/Library/BaseLib/X64/CpuId.S
@@ -32,7 +32,7 @@
# OUT UINT32 *RegisterOutEdx OPTIONAL
# )
#------------------------------------------------------------------------------
-.global ASM_PFX(AsmCpuid)
+ASM_GLOBAL ASM_PFX(AsmCpuid)
ASM_PFX(AsmCpuid):
push %rbx
mov %ecx, %eax
diff --git a/MdePkg/Library/BaseLib/X64/CpuIdEx.S b/MdePkg/Library/BaseLib/X64/CpuIdEx.S
index 8dd70b2539..ae5c80a980 100644
--- a/MdePkg/Library/BaseLib/X64/CpuIdEx.S
+++ b/MdePkg/Library/BaseLib/X64/CpuIdEx.S
@@ -33,7 +33,7 @@
# OUT UINT32 *RegisterOutEdx OPTIONAL
# )
#------------------------------------------------------------------------------
-.global ASM_PFX(AsmCpuidEx)
+ASM_GLOBAL ASM_PFX(AsmCpuidEx)
ASM_PFX(AsmCpuidEx):
push %rbx
movl %ecx,%eax
diff --git a/MdePkg/Library/BaseLib/X64/CpuPause.S b/MdePkg/Library/BaseLib/X64/CpuPause.S
index 5706d872af..4afdb9ece2 100644
--- a/MdePkg/Library/BaseLib/X64/CpuPause.S
+++ b/MdePkg/Library/BaseLib/X64/CpuPause.S
@@ -28,7 +28,7 @@
# VOID
# );
#------------------------------------------------------------------------------
-.global ASM_PFX(CpuPause)
+ASM_GLOBAL ASM_PFX(CpuPause)
ASM_PFX(CpuPause):
pause
ret
diff --git a/MdePkg/Library/BaseLib/X64/DisableInterrupts.S b/MdePkg/Library/BaseLib/X64/DisableInterrupts.S
index 00bd7b7e9d..c688a43f2a 100644
--- a/MdePkg/Library/BaseLib/X64/DisableInterrupts.S
+++ b/MdePkg/Library/BaseLib/X64/DisableInterrupts.S
@@ -29,7 +29,7 @@
# VOID
# );
#------------------------------------------------------------------------------
-.global ASM_PFX(DisableInterrupts)
+ASM_GLOBAL ASM_PFX(DisableInterrupts)
ASM_PFX(DisableInterrupts):
cli
ret
diff --git a/MdePkg/Library/BaseLib/X64/DisablePaging64.S b/MdePkg/Library/BaseLib/X64/DisablePaging64.S
index 8c71d2d49e..f3ed29ed40 100644
--- a/MdePkg/Library/BaseLib/X64/DisablePaging64.S
+++ b/MdePkg/Library/BaseLib/X64/DisablePaging64.S
@@ -35,7 +35,7 @@
# );
#------------------------------------------------------------------------------
-.global ASM_PFX(InternalX86DisablePaging64)
+ASM_GLOBAL ASM_PFX(InternalX86DisablePaging64)
ASM_PFX(InternalX86DisablePaging64):
cli
shl $0x20,%rcx # rcx[32..47] <- Cs
diff --git a/MdePkg/Library/BaseLib/X64/EnableDisableInterrupts.S b/MdePkg/Library/BaseLib/X64/EnableDisableInterrupts.S
index 22f029cddc..b3eb1218ff 100644
--- a/MdePkg/Library/BaseLib/X64/EnableDisableInterrupts.S
+++ b/MdePkg/Library/BaseLib/X64/EnableDisableInterrupts.S
@@ -29,7 +29,7 @@
# VOID
# );
#------------------------------------------------------------------------------
-.global ASM_PFX(EnableDisableInterrupts)
+ASM_GLOBAL ASM_PFX(EnableDisableInterrupts)
.align 16
ASM_PFX(EnableDisableInterrupts):
sti
diff --git a/MdePkg/Library/BaseLib/X64/EnableInterrupts.S b/MdePkg/Library/BaseLib/X64/EnableInterrupts.S
index 77a547193e..86a3b14f4c 100644
--- a/MdePkg/Library/BaseLib/X64/EnableInterrupts.S
+++ b/MdePkg/Library/BaseLib/X64/EnableInterrupts.S
@@ -29,7 +29,7 @@
# VOID
# );
#------------------------------------------------------------------------------
-.global ASM_PFX(EnableInterrupts)
+ASM_GLOBAL ASM_PFX(EnableInterrupts)
ASM_PFX(EnableInterrupts):
sti
ret
diff --git a/MdePkg/Library/BaseLib/X64/FlushCacheLine.S b/MdePkg/Library/BaseLib/X64/FlushCacheLine.S
index ad79ec1724..ffaca31acf 100644
--- a/MdePkg/Library/BaseLib/X64/FlushCacheLine.S
+++ b/MdePkg/Library/BaseLib/X64/FlushCacheLine.S
@@ -29,7 +29,7 @@
# IN VOID *LinearAddress
# );
#------------------------------------------------------------------------------
-.global ASM_PFX(AsmFlushCacheLine)
+ASM_GLOBAL ASM_PFX(AsmFlushCacheLine)
ASM_PFX(AsmFlushCacheLine):
clflush (%rcx)
mov %rcx, %rax
diff --git a/MdePkg/Library/BaseLib/X64/FxRestore.S b/MdePkg/Library/BaseLib/X64/FxRestore.S
index e38549fc87..d7e1521820 100644
--- a/MdePkg/Library/BaseLib/X64/FxRestore.S
+++ b/MdePkg/Library/BaseLib/X64/FxRestore.S
@@ -29,7 +29,7 @@
# IN CONST IA32_FX_BUFFER *Buffer
# )#
#------------------------------------------------------------------------------
-.global ASM_PFX(InternalX86FxRestore)
+ASM_GLOBAL ASM_PFX(InternalX86FxRestore)
ASM_PFX(InternalX86FxRestore):
fxrstor (%rcx)
ret
diff --git a/MdePkg/Library/BaseLib/X64/FxSave.S b/MdePkg/Library/BaseLib/X64/FxSave.S
index f98320b82d..961e46e316 100644
--- a/MdePkg/Library/BaseLib/X64/FxSave.S
+++ b/MdePkg/Library/BaseLib/X64/FxSave.S
@@ -29,7 +29,7 @@
# OUT IA32_FX_BUFFER *Buffer
# );
#------------------------------------------------------------------------------
-.global ASM_PFX(InternalX86FxSave)
+ASM_GLOBAL ASM_PFX(InternalX86FxSave)
ASM_PFX(InternalX86FxSave):
fxsave (%rcx)
ret
diff --git a/MdePkg/Library/BaseLib/X64/Invd.S b/MdePkg/Library/BaseLib/X64/Invd.S
index 512fc86eeb..6a10686447 100644
--- a/MdePkg/Library/BaseLib/X64/Invd.S
+++ b/MdePkg/Library/BaseLib/X64/Invd.S
@@ -29,7 +29,7 @@
# VOID
# )#
#------------------------------------------------------------------------------
-.global ASM_PFX(AsmInvd)
+ASM_GLOBAL ASM_PFX(AsmInvd)
ASM_PFX(AsmInvd):
invd
ret
diff --git a/MdePkg/Library/BaseLib/X64/LongJump.S b/MdePkg/Library/BaseLib/X64/LongJump.S
index ee840c07fb..d43fcf000f 100644
--- a/MdePkg/Library/BaseLib/X64/LongJump.S
+++ b/MdePkg/Library/BaseLib/X64/LongJump.S
@@ -27,7 +27,7 @@
# IN UINTN Value
# );
#------------------------------------------------------------------------------
-.global ASM_PFX(InternalLongJump)
+ASM_GLOBAL ASM_PFX(InternalLongJump)
ASM_PFX(InternalLongJump):
mov (%rcx), %rbx
mov 0x8(%rcx), %rsp
diff --git a/MdePkg/Library/BaseLib/X64/Monitor.S b/MdePkg/Library/BaseLib/X64/Monitor.S
index 1581598c45..0be3b981f3 100644
--- a/MdePkg/Library/BaseLib/X64/Monitor.S
+++ b/MdePkg/Library/BaseLib/X64/Monitor.S
@@ -31,7 +31,7 @@
# IN UINTN Edx
# );
#------------------------------------------------------------------------------
-.global ASM_PFX(AsmMonitor)
+ASM_GLOBAL ASM_PFX(AsmMonitor)
.align 16
ASM_PFX(AsmMonitor):
mov %ecx,%eax
diff --git a/MdePkg/Library/BaseLib/X64/Mwait.S b/MdePkg/Library/BaseLib/X64/Mwait.S
index 9226ce3610..403ed26c48 100644
--- a/MdePkg/Library/BaseLib/X64/Mwait.S
+++ b/MdePkg/Library/BaseLib/X64/Mwait.S
@@ -30,7 +30,7 @@
# IN UINTN Ecx
# );
#------------------------------------------------------------------------------
-.global ASM_PFX(AsmMwait)
+ASM_GLOBAL ASM_PFX(AsmMwait)
.align 16
ASM_PFX(AsmMwait):
mov %ecx,%eax
diff --git a/MdePkg/Library/BaseLib/X64/ReadCr0.S b/MdePkg/Library/BaseLib/X64/ReadCr0.S
index 0c858e4955..23d375de4e 100644
--- a/MdePkg/Library/BaseLib/X64/ReadCr0.S
+++ b/MdePkg/Library/BaseLib/X64/ReadCr0.S
@@ -29,7 +29,7 @@
# VOID
# );
#------------------------------------------------------------------------------
-.global ASM_PFX(AsmReadCr0)
+ASM_GLOBAL ASM_PFX(AsmReadCr0)
.align 16
ASM_PFX(AsmReadCr0):
mov %cr0, %rax
diff --git a/MdePkg/Library/BaseLib/X64/ReadCr2.S b/MdePkg/Library/BaseLib/X64/ReadCr2.S
index 665a401b7c..26c2c2f271 100644
--- a/MdePkg/Library/BaseLib/X64/ReadCr2.S
+++ b/MdePkg/Library/BaseLib/X64/ReadCr2.S
@@ -29,7 +29,7 @@
# VOID
# );
#------------------------------------------------------------------------------
-.global ASM_PFX(AsmReadCr2)
+ASM_GLOBAL ASM_PFX(AsmReadCr2)
.align 16
ASM_PFX(AsmReadCr2):
mov %cr2, %rax
diff --git a/MdePkg/Library/BaseLib/X64/ReadCr3.S b/MdePkg/Library/BaseLib/X64/ReadCr3.S
index 5c80c1a634..1161eb2bd6 100644
--- a/MdePkg/Library/BaseLib/X64/ReadCr3.S
+++ b/MdePkg/Library/BaseLib/X64/ReadCr3.S
@@ -29,7 +29,7 @@
# VOID
# );
#------------------------------------------------------------------------------
-.global ASM_PFX(AsmReadCr3)
+ASM_GLOBAL ASM_PFX(AsmReadCr3)
.align 16
ASM_PFX(AsmReadCr3):
mov %cr3, %rax
diff --git a/MdePkg/Library/BaseLib/X64/ReadCr4.S b/MdePkg/Library/BaseLib/X64/ReadCr4.S
index 8de29bd6cd..192480d019 100644
--- a/MdePkg/Library/BaseLib/X64/ReadCr4.S
+++ b/MdePkg/Library/BaseLib/X64/ReadCr4.S
@@ -29,7 +29,7 @@
# VOID
# );
#------------------------------------------------------------------------------
-.global ASM_PFX(AsmReadCr4)
+ASM_GLOBAL ASM_PFX(AsmReadCr4)
.align 16
ASM_PFX(AsmReadCr4):
mov %cr4, %rax
diff --git a/MdePkg/Library/BaseLib/X64/ReadCs.S b/MdePkg/Library/BaseLib/X64/ReadCs.S
index 85654c2e24..7bb98dfb7b 100644
--- a/MdePkg/Library/BaseLib/X64/ReadCs.S
+++ b/MdePkg/Library/BaseLib/X64/ReadCs.S
@@ -29,7 +29,7 @@
# VOID
# );
#------------------------------------------------------------------------------
-.global ASM_PFX(AsmReadCs)
+ASM_GLOBAL ASM_PFX(AsmReadCs)
.align 16
ASM_PFX(AsmReadCs):
mov %cs, %eax
diff --git a/MdePkg/Library/BaseLib/X64/ReadDr0.S b/MdePkg/Library/BaseLib/X64/ReadDr0.S
index 4e1cf5fb18..e4fb3b3f56 100644
--- a/MdePkg/Library/BaseLib/X64/ReadDr0.S
+++ b/MdePkg/Library/BaseLib/X64/ReadDr0.S
@@ -29,7 +29,7 @@
# VOID
# );
#------------------------------------------------------------------------------
-.global ASM_PFX(AsmReadDr0)
+ASM_GLOBAL ASM_PFX(AsmReadDr0)
.align 16
ASM_PFX(AsmReadDr0):
mov %dr0, %rax
diff --git a/MdePkg/Library/BaseLib/X64/ReadDr1.S b/MdePkg/Library/BaseLib/X64/ReadDr1.S
index d45a18dee7..e5c1cc8688 100644
--- a/MdePkg/Library/BaseLib/X64/ReadDr1.S
+++ b/MdePkg/Library/BaseLib/X64/ReadDr1.S
@@ -29,7 +29,7 @@
# VOID
# );
#------------------------------------------------------------------------------
-.global ASM_PFX(AsmReadDr1)
+ASM_GLOBAL ASM_PFX(AsmReadDr1)
.align 16
ASM_PFX(AsmReadDr1):
mov %dr1, %rax
diff --git a/MdePkg/Library/BaseLib/X64/ReadDr2.S b/MdePkg/Library/BaseLib/X64/ReadDr2.S
index 073f903e39..9ef017d3e7 100644
--- a/MdePkg/Library/BaseLib/X64/ReadDr2.S
+++ b/MdePkg/Library/BaseLib/X64/ReadDr2.S
@@ -29,7 +29,7 @@
# VOID
# );
#------------------------------------------------------------------------------
-.global ASM_PFX(AsmReadDr2)
+ASM_GLOBAL ASM_PFX(AsmReadDr2)
.align 16
ASM_PFX(AsmReadDr2):
mov %dr2, %rax
diff --git a/MdePkg/Library/BaseLib/X64/ReadDr3.S b/MdePkg/Library/BaseLib/X64/ReadDr3.S
index ebd90c9026..277a99936e 100644
--- a/MdePkg/Library/BaseLib/X64/ReadDr3.S
+++ b/MdePkg/Library/BaseLib/X64/ReadDr3.S
@@ -29,7 +29,7 @@
# VOID
# );
#------------------------------------------------------------------------------
-.global ASM_PFX(AsmReadDr3)
+ASM_GLOBAL ASM_PFX(AsmReadDr3)
.align 16
ASM_PFX(AsmReadDr3):
mov %dr3, %rax
diff --git a/MdePkg/Library/BaseLib/X64/ReadDr4.S b/MdePkg/Library/BaseLib/X64/ReadDr4.S
index 752a04cfa1..5f5651fd35 100644
--- a/MdePkg/Library/BaseLib/X64/ReadDr4.S
+++ b/MdePkg/Library/BaseLib/X64/ReadDr4.S
@@ -29,7 +29,7 @@
# VOID
# );
#------------------------------------------------------------------------------
-.global ASM_PFX(AsmReadDr4)
+ASM_GLOBAL ASM_PFX(AsmReadDr4)
.align 16
ASM_PFX(AsmReadDr4):
#DB 0fh, 21h, 0e0h
diff --git a/MdePkg/Library/BaseLib/X64/ReadDr5.S b/MdePkg/Library/BaseLib/X64/ReadDr5.S
index 42a5ed3e76..766fc45700 100644
--- a/MdePkg/Library/BaseLib/X64/ReadDr5.S
+++ b/MdePkg/Library/BaseLib/X64/ReadDr5.S
@@ -29,7 +29,7 @@
# VOID
# );
#------------------------------------------------------------------------------
-.global ASM_PFX(AsmReadDr5)
+ASM_GLOBAL ASM_PFX(AsmReadDr5)
.align 16
ASM_PFX(AsmReadDr5):
mov %dr5, %rax
diff --git a/MdePkg/Library/BaseLib/X64/ReadDr6.S b/MdePkg/Library/BaseLib/X64/ReadDr6.S
index 6186d497ae..0bde38cca5 100644
--- a/MdePkg/Library/BaseLib/X64/ReadDr6.S
+++ b/MdePkg/Library/BaseLib/X64/ReadDr6.S
@@ -29,7 +29,7 @@
# VOID
# );
#------------------------------------------------------------------------------
-.global ASM_PFX(AsmReadDr6)
+ASM_GLOBAL ASM_PFX(AsmReadDr6)
.align 16
ASM_PFX(AsmReadDr6):
mov %dr6, %rax
diff --git a/MdePkg/Library/BaseLib/X64/ReadDr7.S b/MdePkg/Library/BaseLib/X64/ReadDr7.S
index c43c7d4507..3de98eb7f0 100644
--- a/MdePkg/Library/BaseLib/X64/ReadDr7.S
+++ b/MdePkg/Library/BaseLib/X64/ReadDr7.S
@@ -29,7 +29,7 @@
# VOID
# );
#------------------------------------------------------------------------------
-.global ASM_PFX(AsmReadDr7)
+ASM_GLOBAL ASM_PFX(AsmReadDr7)
.align 16
ASM_PFX(AsmReadDr7):
mov %dr7, %rax
diff --git a/MdePkg/Library/BaseLib/X64/ReadDs.S b/MdePkg/Library/BaseLib/X64/ReadDs.S
index bd28aa9313..119da00818 100644
--- a/MdePkg/Library/BaseLib/X64/ReadDs.S
+++ b/MdePkg/Library/BaseLib/X64/ReadDs.S
@@ -29,7 +29,7 @@
# VOID
# );
#------------------------------------------------------------------------------
-.global ASM_PFX(AsmReadDs)
+ASM_GLOBAL ASM_PFX(AsmReadDs)
.align 16
ASM_PFX(AsmReadDs):
movl %ds, %eax
diff --git a/MdePkg/Library/BaseLib/X64/ReadEflags.S b/MdePkg/Library/BaseLib/X64/ReadEflags.S
index 3be5d7ab7b..c90d516138 100644
--- a/MdePkg/Library/BaseLib/X64/ReadEflags.S
+++ b/MdePkg/Library/BaseLib/X64/ReadEflags.S
@@ -29,7 +29,7 @@
# VOID
# );
#------------------------------------------------------------------------------
-.global ASM_PFX(AsmReadEflags)
+ASM_GLOBAL ASM_PFX(AsmReadEflags)
.align 16
ASM_PFX(AsmReadEflags):
pushfq
diff --git a/MdePkg/Library/BaseLib/X64/ReadEs.S b/MdePkg/Library/BaseLib/X64/ReadEs.S
index 9a45439e14..a75b95f953 100644
--- a/MdePkg/Library/BaseLib/X64/ReadEs.S
+++ b/MdePkg/Library/BaseLib/X64/ReadEs.S
@@ -29,7 +29,7 @@
# VOID
# );
#------------------------------------------------------------------------------
-.global ASM_PFX(AsmReadEs)
+ASM_GLOBAL ASM_PFX(AsmReadEs)
.align 16
ASM_PFX(AsmReadEs):
mov %es, %eax
diff --git a/MdePkg/Library/BaseLib/X64/ReadFs.S b/MdePkg/Library/BaseLib/X64/ReadFs.S
index 74637b3dbf..5b26d5e574 100644
--- a/MdePkg/Library/BaseLib/X64/ReadFs.S
+++ b/MdePkg/Library/BaseLib/X64/ReadFs.S
@@ -29,7 +29,7 @@
# VOID
# );
#------------------------------------------------------------------------------
-.global ASM_PFX(AsmReadFs)
+ASM_GLOBAL ASM_PFX(AsmReadFs)
.align 16
ASM_PFX(AsmReadFs):
mov %fs, %eax
diff --git a/MdePkg/Library/BaseLib/X64/ReadGdtr.S b/MdePkg/Library/BaseLib/X64/ReadGdtr.S
index c57ef3e89e..889efeb61d 100644
--- a/MdePkg/Library/BaseLib/X64/ReadGdtr.S
+++ b/MdePkg/Library/BaseLib/X64/ReadGdtr.S
@@ -29,7 +29,7 @@
# OUT IA32_DESCRIPTOR *Gdtr
# );
#------------------------------------------------------------------------------
-.global ASM_PFX(InternalX86ReadGdtr)
+ASM_GLOBAL ASM_PFX(InternalX86ReadGdtr)
.align 16
ASM_PFX(InternalX86ReadGdtr):
sgdt (%rcx)
diff --git a/MdePkg/Library/BaseLib/X64/ReadGs.S b/MdePkg/Library/BaseLib/X64/ReadGs.S
index b89bb3b4ff..a89b27dc1f 100644
--- a/MdePkg/Library/BaseLib/X64/ReadGs.S
+++ b/MdePkg/Library/BaseLib/X64/ReadGs.S
@@ -29,7 +29,7 @@
# VOID
# );
#------------------------------------------------------------------------------
-.global ASM_PFX(AsmReadGs)
+ASM_GLOBAL ASM_PFX(AsmReadGs)
.align 16
ASM_PFX(AsmReadGs):
mov %gs, %eax
diff --git a/MdePkg/Library/BaseLib/X64/ReadIdtr.S b/MdePkg/Library/BaseLib/X64/ReadIdtr.S
index 84cbab4105..efdaf77a87 100644
--- a/MdePkg/Library/BaseLib/X64/ReadIdtr.S
+++ b/MdePkg/Library/BaseLib/X64/ReadIdtr.S
@@ -29,7 +29,7 @@
# OUT IA32_DESCRIPTOR *Idtr
# );
#------------------------------------------------------------------------------
-.global ASM_PFX(InternalX86ReadIdtr)
+ASM_GLOBAL ASM_PFX(InternalX86ReadIdtr)
.align 16
ASM_PFX(InternalX86ReadIdtr):
sidt (%rcx)
diff --git a/MdePkg/Library/BaseLib/X64/ReadLdtr.S b/MdePkg/Library/BaseLib/X64/ReadLdtr.S
index 4d5a43cd09..6e7e0a3e31 100644
--- a/MdePkg/Library/BaseLib/X64/ReadLdtr.S
+++ b/MdePkg/Library/BaseLib/X64/ReadLdtr.S
@@ -29,7 +29,7 @@
# VOID
# );
#------------------------------------------------------------------------------
-.global ASM_PFX(AsmReadLdtr)
+ASM_GLOBAL ASM_PFX(AsmReadLdtr)
.align 16
ASM_PFX(AsmReadLdtr):
sldt %eax
diff --git a/MdePkg/Library/BaseLib/X64/ReadMm0.S b/MdePkg/Library/BaseLib/X64/ReadMm0.S
index 57c91da85f..dd259ed915 100644
--- a/MdePkg/Library/BaseLib/X64/ReadMm0.S
+++ b/MdePkg/Library/BaseLib/X64/ReadMm0.S
@@ -29,7 +29,7 @@
# VOID
# );
#------------------------------------------------------------------------------
-.global ASM_PFX(AsmReadMm0)
+ASM_GLOBAL ASM_PFX(AsmReadMm0)
.align 16
ASM_PFX(AsmReadMm0):
movd %mm0, %rax
diff --git a/MdePkg/Library/BaseLib/X64/ReadMm1.S b/MdePkg/Library/BaseLib/X64/ReadMm1.S
index 45ef7f8a55..b3eed9fa2b 100644
--- a/MdePkg/Library/BaseLib/X64/ReadMm1.S
+++ b/MdePkg/Library/BaseLib/X64/ReadMm1.S
@@ -29,7 +29,7 @@
# VOID
# );
#------------------------------------------------------------------------------
-.global ASM_PFX(AsmReadMm1)
+ASM_GLOBAL ASM_PFX(AsmReadMm1)
.align 16
ASM_PFX(AsmReadMm1):
movd %mm1, %rax
diff --git a/MdePkg/Library/BaseLib/X64/ReadMm2.S b/MdePkg/Library/BaseLib/X64/ReadMm2.S
index d0cdf19b71..2459fcd55c 100644
--- a/MdePkg/Library/BaseLib/X64/ReadMm2.S
+++ b/MdePkg/Library/BaseLib/X64/ReadMm2.S
@@ -29,7 +29,7 @@
# VOID
# );
#------------------------------------------------------------------------------
-.global ASM_PFX(AsmReadMm2)
+ASM_GLOBAL ASM_PFX(AsmReadMm2)
.align 16
ASM_PFX(AsmReadMm2):
movd %mm2, %rax
diff --git a/MdePkg/Library/BaseLib/X64/ReadMm3.S b/MdePkg/Library/BaseLib/X64/ReadMm3.S
index c1d7fd9e5b..0cf5bc7937 100644
--- a/MdePkg/Library/BaseLib/X64/ReadMm3.S
+++ b/MdePkg/Library/BaseLib/X64/ReadMm3.S
@@ -29,7 +29,7 @@
# VOID
# );
#------------------------------------------------------------------------------
-.global ASM_PFX(AsmReadMm3)
+ASM_GLOBAL ASM_PFX(AsmReadMm3)
.align 16
ASM_PFX(AsmReadMm3):
movd %mm3, %rax
diff --git a/MdePkg/Library/BaseLib/X64/ReadMm4.S b/MdePkg/Library/BaseLib/X64/ReadMm4.S
index dafeca484c..fad10ae3b6 100644
--- a/MdePkg/Library/BaseLib/X64/ReadMm4.S
+++ b/MdePkg/Library/BaseLib/X64/ReadMm4.S
@@ -29,7 +29,7 @@
# VOID
# );
#------------------------------------------------------------------------------
-.global ASM_PFX(AsmReadMm4)
+ASM_GLOBAL ASM_PFX(AsmReadMm4)
.align 16
ASM_PFX(AsmReadMm4):
movd %mm4, %rax
diff --git a/MdePkg/Library/BaseLib/X64/ReadMm5.S b/MdePkg/Library/BaseLib/X64/ReadMm5.S
index 26d83631af..03629d5756 100644
--- a/MdePkg/Library/BaseLib/X64/ReadMm5.S
+++ b/MdePkg/Library/BaseLib/X64/ReadMm5.S
@@ -29,7 +29,7 @@
# VOID
# );
#------------------------------------------------------------------------------
-.global ASM_PFX(AsmReadMm5)
+ASM_GLOBAL ASM_PFX(AsmReadMm5)
.align 16
ASM_PFX(AsmReadMm5):
movd %mm5, %rax
diff --git a/MdePkg/Library/BaseLib/X64/ReadMm6.S b/MdePkg/Library/BaseLib/X64/ReadMm6.S
index a8ea02226b..f496d3be4b 100644
--- a/MdePkg/Library/BaseLib/X64/ReadMm6.S
+++ b/MdePkg/Library/BaseLib/X64/ReadMm6.S
@@ -29,7 +29,7 @@
# VOID
# );
#------------------------------------------------------------------------------
-.global ASM_PFX(AsmReadMm6)
+ASM_GLOBAL ASM_PFX(AsmReadMm6)
.align 16
ASM_PFX(AsmReadMm6):
movd %mm6, %rax
diff --git a/MdePkg/Library/BaseLib/X64/ReadMm7.S b/MdePkg/Library/BaseLib/X64/ReadMm7.S
index 1f273670fd..aa6bb0fca3 100644
--- a/MdePkg/Library/BaseLib/X64/ReadMm7.S
+++ b/MdePkg/Library/BaseLib/X64/ReadMm7.S
@@ -29,7 +29,7 @@
# VOID
# );
#------------------------------------------------------------------------------
-.global ASM_PFX(AsmReadMm7)
+ASM_GLOBAL ASM_PFX(AsmReadMm7)
.align 16
ASM_PFX(AsmReadMm7):
movd %mm7, %rax
diff --git a/MdePkg/Library/BaseLib/X64/ReadMsr64.S b/MdePkg/Library/BaseLib/X64/ReadMsr64.S
index 8c7ec3b828..32be9dc7d5 100644
--- a/MdePkg/Library/BaseLib/X64/ReadMsr64.S
+++ b/MdePkg/Library/BaseLib/X64/ReadMsr64.S
@@ -29,7 +29,7 @@
# IN UINT32 Index
# );
#------------------------------------------------------------------------------
-.global ASM_PFX(AsmReadMsr64)
+ASM_GLOBAL ASM_PFX(AsmReadMsr64)
.align 16
ASM_PFX(AsmReadMsr64):
rdmsr # edx & eax are zero extended
diff --git a/MdePkg/Library/BaseLib/X64/ReadPmc.S b/MdePkg/Library/BaseLib/X64/ReadPmc.S
index f88061809e..66ced6541b 100644
--- a/MdePkg/Library/BaseLib/X64/ReadPmc.S
+++ b/MdePkg/Library/BaseLib/X64/ReadPmc.S
@@ -29,7 +29,7 @@
# IN UINT32 PmcIndex
# );
#------------------------------------------------------------------------------
-.global ASM_PFX(AsmReadPmc)
+ASM_GLOBAL ASM_PFX(AsmReadPmc)
.align 16
ASM_PFX(AsmReadPmc):
rdpmc
diff --git a/MdePkg/Library/BaseLib/X64/ReadSs.S b/MdePkg/Library/BaseLib/X64/ReadSs.S
index 127d75f974..ea7e2e2c1f 100644
--- a/MdePkg/Library/BaseLib/X64/ReadSs.S
+++ b/MdePkg/Library/BaseLib/X64/ReadSs.S
@@ -29,7 +29,7 @@
# VOID
# );
#------------------------------------------------------------------------------
-.global ASM_PFX(AsmReadSs)
+ASM_GLOBAL ASM_PFX(AsmReadSs)
.align 16
ASM_PFX(AsmReadSs):
movl %ss, %eax
diff --git a/MdePkg/Library/BaseLib/X64/ReadTr.S b/MdePkg/Library/BaseLib/X64/ReadTr.S
index 7bf34d2f6d..2dee7296a7 100644
--- a/MdePkg/Library/BaseLib/X64/ReadTr.S
+++ b/MdePkg/Library/BaseLib/X64/ReadTr.S
@@ -29,7 +29,7 @@
# VOID
# );
#------------------------------------------------------------------------------
-.global ASM_PFX(AsmReadTr)
+ASM_GLOBAL ASM_PFX(AsmReadTr)
.align 16
ASM_PFX(AsmReadTr):
str %eax
diff --git a/MdePkg/Library/BaseLib/X64/ReadTsc.S b/MdePkg/Library/BaseLib/X64/ReadTsc.S
index d472a5364c..f3c45b5580 100644
--- a/MdePkg/Library/BaseLib/X64/ReadTsc.S
+++ b/MdePkg/Library/BaseLib/X64/ReadTsc.S
@@ -29,7 +29,7 @@
# VOID
# );
#------------------------------------------------------------------------------
-.global ASM_PFX(AsmReadTsc)
+ASM_GLOBAL ASM_PFX(AsmReadTsc)
.align 16
ASM_PFX(AsmReadTsc):
rdtsc
diff --git a/MdePkg/Library/BaseLib/X64/SetJump.S b/MdePkg/Library/BaseLib/X64/SetJump.S
index 597a2662ae..d8454d3965 100644
--- a/MdePkg/Library/BaseLib/X64/SetJump.S
+++ b/MdePkg/Library/BaseLib/X64/SetJump.S
@@ -19,8 +19,7 @@
#
#------------------------------------------------------------------------------
-.extern ASM_PFX(InternalAssertJumpBuffer)
-.global ASM_PFX(SetJump)
+ASM_GLOBAL ASM_PFX(SetJump)
ASM_PFX(SetJump):
push %rcx
add $0xffffffffffffffe0,%rsp
diff --git a/MdePkg/Library/BaseLib/X64/SwitchStack.S b/MdePkg/Library/BaseLib/X64/SwitchStack.S
index e75ddaf965..e5b9e54ce5 100644
--- a/MdePkg/Library/BaseLib/X64/SwitchStack.S
+++ b/MdePkg/Library/BaseLib/X64/SwitchStack.S
@@ -35,7 +35,7 @@
# None
#
#------------------------------------------------------------------------------
-.global ASM_PFX(InternalSwitchStack)
+ASM_GLOBAL ASM_PFX(InternalSwitchStack)
ASM_PFX(InternalSwitchStack):
mov %rcx, %rax
mov %rdx, %rcx
diff --git a/MdePkg/Library/BaseLib/X64/Wbinvd.S b/MdePkg/Library/BaseLib/X64/Wbinvd.S
index 492c312b92..e05301d915 100644
--- a/MdePkg/Library/BaseLib/X64/Wbinvd.S
+++ b/MdePkg/Library/BaseLib/X64/Wbinvd.S
@@ -29,7 +29,7 @@
# VOID
# );
#------------------------------------------------------------------------------
-.global ASM_PFX(AsmWbinvd)
+ASM_GLOBAL ASM_PFX(AsmWbinvd)
.align 16
ASM_PFX(AsmWbinvd):
wbinvd
diff --git a/MdePkg/Library/BaseLib/X64/WriteCr0.S b/MdePkg/Library/BaseLib/X64/WriteCr0.S
index 28606cf5e2..a8078fae7a 100644
--- a/MdePkg/Library/BaseLib/X64/WriteCr0.S
+++ b/MdePkg/Library/BaseLib/X64/WriteCr0.S
@@ -29,7 +29,7 @@
# UINTN Cr0
# );
#------------------------------------------------------------------------------
-.global ASM_PFX(AsmWriteCr0)
+ASM_GLOBAL ASM_PFX(AsmWriteCr0)
ASM_PFX(AsmWriteCr0):
mov %rcx,%cr0
mov %rcx,%rax
diff --git a/MdePkg/Library/BaseLib/X64/WriteCr2.S b/MdePkg/Library/BaseLib/X64/WriteCr2.S
index 5556cd376f..b08a4e36ba 100644
--- a/MdePkg/Library/BaseLib/X64/WriteCr2.S
+++ b/MdePkg/Library/BaseLib/X64/WriteCr2.S
@@ -29,7 +29,7 @@
# UINTN Cr2
# );
#------------------------------------------------------------------------------
-.global ASM_PFX(AsmWriteCr2)
+ASM_GLOBAL ASM_PFX(AsmWriteCr2)
ASM_PFX(AsmWriteCr2):
mov %rcx,%cr2
mov %rcx,%rax
diff --git a/MdePkg/Library/BaseLib/X64/WriteCr3.S b/MdePkg/Library/BaseLib/X64/WriteCr3.S
index 1016ae46f2..756e97cfaf 100644
--- a/MdePkg/Library/BaseLib/X64/WriteCr3.S
+++ b/MdePkg/Library/BaseLib/X64/WriteCr3.S
@@ -29,7 +29,7 @@
# UINTN Cr3
# );
#------------------------------------------------------------------------------
-.global ASM_PFX(AsmWriteCr3)
+ASM_GLOBAL ASM_PFX(AsmWriteCr3)
ASM_PFX(AsmWriteCr3):
mov %rcx,%cr3
mov %rcx,%rax
diff --git a/MdePkg/Library/BaseLib/X64/WriteCr4.S b/MdePkg/Library/BaseLib/X64/WriteCr4.S
index 04ee1b02e7..ef6a53925d 100644
--- a/MdePkg/Library/BaseLib/X64/WriteCr4.S
+++ b/MdePkg/Library/BaseLib/X64/WriteCr4.S
@@ -29,7 +29,7 @@
# UINTN Cr4
# );
#------------------------------------------------------------------------------
-.global ASM_PFX(AsmWriteCr4)
+ASM_GLOBAL ASM_PFX(AsmWriteCr4)
ASM_PFX(AsmWriteCr4):
mov %rcx,%cr4
mov %rcx,%rax
diff --git a/MdePkg/Library/BaseLib/X64/WriteDr0.S b/MdePkg/Library/BaseLib/X64/WriteDr0.S
index 250e5e347a..6b1d1bf19e 100644
--- a/MdePkg/Library/BaseLib/X64/WriteDr0.S
+++ b/MdePkg/Library/BaseLib/X64/WriteDr0.S
@@ -29,7 +29,7 @@
# UINTN Value
# );
#------------------------------------------------------------------------------
-.global ASM_PFX(AsmWriteDr0)
+ASM_GLOBAL ASM_PFX(AsmWriteDr0)
.align 16
ASM_PFX(AsmWriteDr0):
mov %rcx, %dr0
diff --git a/MdePkg/Library/BaseLib/X64/WriteDr1.S b/MdePkg/Library/BaseLib/X64/WriteDr1.S
index b9805efb93..297217b459 100644
--- a/MdePkg/Library/BaseLib/X64/WriteDr1.S
+++ b/MdePkg/Library/BaseLib/X64/WriteDr1.S
@@ -29,7 +29,7 @@
# UINTN Value
# );
#------------------------------------------------------------------------------
-.global ASM_PFX(AsmWriteDr1)
+ASM_GLOBAL ASM_PFX(AsmWriteDr1)
.align 16
ASM_PFX(AsmWriteDr1):
mov %rcx, %dr1
diff --git a/MdePkg/Library/BaseLib/X64/WriteDr2.S b/MdePkg/Library/BaseLib/X64/WriteDr2.S
index c82705f833..92c0850775 100644
--- a/MdePkg/Library/BaseLib/X64/WriteDr2.S
+++ b/MdePkg/Library/BaseLib/X64/WriteDr2.S
@@ -29,7 +29,7 @@
# UINTN Value
# );
#------------------------------------------------------------------------------
-.global ASM_PFX(AsmWriteDr2)
+ASM_GLOBAL ASM_PFX(AsmWriteDr2)
.align 16
ASM_PFX(AsmWriteDr2):
mov %rcx, %dr2
diff --git a/MdePkg/Library/BaseLib/X64/WriteDr3.S b/MdePkg/Library/BaseLib/X64/WriteDr3.S
index 823dfafa2a..b64b977504 100644
--- a/MdePkg/Library/BaseLib/X64/WriteDr3.S
+++ b/MdePkg/Library/BaseLib/X64/WriteDr3.S
@@ -29,7 +29,7 @@
# UINTN Value
# );
#------------------------------------------------------------------------------
-.global ASM_PFX(AsmWriteDr3)
+ASM_GLOBAL ASM_PFX(AsmWriteDr3)
.align 16
ASM_PFX(AsmWriteDr3):
mov %rcx, %dr3
diff --git a/MdePkg/Library/BaseLib/X64/WriteDr4.S b/MdePkg/Library/BaseLib/X64/WriteDr4.S
index b340d2d4a1..22f503db64 100644
--- a/MdePkg/Library/BaseLib/X64/WriteDr4.S
+++ b/MdePkg/Library/BaseLib/X64/WriteDr4.S
@@ -29,7 +29,7 @@
# IN UINTN Value
# );
#------------------------------------------------------------------------------
-.global ASM_PFX(AsmWriteDr4)
+ASM_GLOBAL ASM_PFX(AsmWriteDr4)
ASM_PFX(AsmWriteDr4):
mov %rcx, %dr4
mov %rcx, %rax
diff --git a/MdePkg/Library/BaseLib/X64/WriteDr5.S b/MdePkg/Library/BaseLib/X64/WriteDr5.S
index ac765d7c22..7beb726c1e 100644
--- a/MdePkg/Library/BaseLib/X64/WriteDr5.S
+++ b/MdePkg/Library/BaseLib/X64/WriteDr5.S
@@ -29,7 +29,7 @@
# IN UINTN Value
# );
#------------------------------------------------------------------------------
-.global ASM_PFX(AsmWriteDr5)
+ASM_GLOBAL ASM_PFX(AsmWriteDr5)
ASM_PFX(AsmWriteDr5):
mov %rcx, %dr5
mov %rcx, %rax
diff --git a/MdePkg/Library/BaseLib/X64/WriteDr6.S b/MdePkg/Library/BaseLib/X64/WriteDr6.S
index f0bd42c44a..c5c6430dcd 100644
--- a/MdePkg/Library/BaseLib/X64/WriteDr6.S
+++ b/MdePkg/Library/BaseLib/X64/WriteDr6.S
@@ -29,7 +29,7 @@
# IN UINTN Value
# );
#------------------------------------------------------------------------------
-.global ASM_PFX(AsmWriteDr6)
+ASM_GLOBAL ASM_PFX(AsmWriteDr6)
ASM_PFX(AsmWriteDr6):
mov %rcx, %dr6
mov %rcx, %rax
diff --git a/MdePkg/Library/BaseLib/X64/WriteDr7.S b/MdePkg/Library/BaseLib/X64/WriteDr7.S
index f1d98232a4..616b9c1db2 100644
--- a/MdePkg/Library/BaseLib/X64/WriteDr7.S
+++ b/MdePkg/Library/BaseLib/X64/WriteDr7.S
@@ -29,7 +29,7 @@
# IN UINTN Value
# );
#------------------------------------------------------------------------------
-.global ASM_PFX(AsmWriteDr7)
+ASM_GLOBAL ASM_PFX(AsmWriteDr7)
ASM_PFX(AsmWriteDr7):
mov %rcx, %dr7
mov %rcx, %rax
diff --git a/MdePkg/Library/BaseLib/X64/WriteGdtr.S b/MdePkg/Library/BaseLib/X64/WriteGdtr.S
index d517930918..6f48f50d37 100644
--- a/MdePkg/Library/BaseLib/X64/WriteGdtr.S
+++ b/MdePkg/Library/BaseLib/X64/WriteGdtr.S
@@ -29,7 +29,7 @@
# IN CONST IA32_DESCRIPTOR *Idtr
# );
#------------------------------------------------------------------------------
-.global ASM_PFX(InternalX86WriteGdtr)
+ASM_GLOBAL ASM_PFX(InternalX86WriteGdtr)
ASM_PFX(InternalX86WriteGdtr):
lgdt (%rcx)
ret
diff --git a/MdePkg/Library/BaseLib/X64/WriteIdtr.S b/MdePkg/Library/BaseLib/X64/WriteIdtr.S
index cafd3de0d0..e8e332e9b2 100644
--- a/MdePkg/Library/BaseLib/X64/WriteIdtr.S
+++ b/MdePkg/Library/BaseLib/X64/WriteIdtr.S
@@ -29,7 +29,7 @@
# IN CONST IA32_DESCRIPTOR *Idtr
# );
#------------------------------------------------------------------------------
-.global ASM_PFX(InternalX86WriteIdtr)
+ASM_GLOBAL ASM_PFX(InternalX86WriteIdtr)
.align 16
ASM_PFX(InternalX86WriteIdtr):
lidt (%rcx)
diff --git a/MdePkg/Library/BaseLib/X64/WriteLdtr.S b/MdePkg/Library/BaseLib/X64/WriteLdtr.S
index cefcd774b7..ebc0172150 100644
--- a/MdePkg/Library/BaseLib/X64/WriteLdtr.S
+++ b/MdePkg/Library/BaseLib/X64/WriteLdtr.S
@@ -29,7 +29,7 @@
# IN UINT16 Ldtr
# );
#------------------------------------------------------------------------------
-.global ASM_PFX(AsmWriteLdtr)
+ASM_GLOBAL ASM_PFX(AsmWriteLdtr)
.align 16
ASM_PFX(AsmWriteLdtr):
lldt %cx
diff --git a/MdePkg/Library/BaseLib/X64/WriteMm0.S b/MdePkg/Library/BaseLib/X64/WriteMm0.S
index 1eeb502a5e..e24a62a226 100644
--- a/MdePkg/Library/BaseLib/X64/WriteMm0.S
+++ b/MdePkg/Library/BaseLib/X64/WriteMm0.S
@@ -29,7 +29,7 @@
# IN UINT64 Value
# );
#------------------------------------------------------------------------------
-.global ASM_PFX(AsmWriteMm0)
+ASM_GLOBAL ASM_PFX(AsmWriteMm0)
ASM_PFX(AsmWriteMm0):
movd %rcx, %mm0
ret
diff --git a/MdePkg/Library/BaseLib/X64/WriteMm1.S b/MdePkg/Library/BaseLib/X64/WriteMm1.S
index b0a744db39..163e1674b4 100644
--- a/MdePkg/Library/BaseLib/X64/WriteMm1.S
+++ b/MdePkg/Library/BaseLib/X64/WriteMm1.S
@@ -29,7 +29,7 @@
# IN UINT64 Value
# );
#------------------------------------------------------------------------------
-.global ASM_PFX(AsmWriteMm1)
+ASM_GLOBAL ASM_PFX(AsmWriteMm1)
ASM_PFX(AsmWriteMm1):
movd %rcx, %mm1
ret
diff --git a/MdePkg/Library/BaseLib/X64/WriteMm2.S b/MdePkg/Library/BaseLib/X64/WriteMm2.S
index b9b438b325..e5cfe11de5 100644
--- a/MdePkg/Library/BaseLib/X64/WriteMm2.S
+++ b/MdePkg/Library/BaseLib/X64/WriteMm2.S
@@ -29,7 +29,7 @@
# IN UINT64 Value
# );
#------------------------------------------------------------------------------
-.global ASM_PFX(AsmWriteMm2)
+ASM_GLOBAL ASM_PFX(AsmWriteMm2)
ASM_PFX(AsmWriteMm2):
movd %rcx, %mm2
ret
diff --git a/MdePkg/Library/BaseLib/X64/WriteMm3.S b/MdePkg/Library/BaseLib/X64/WriteMm3.S
index 5a567156c0..c576e46bc7 100644
--- a/MdePkg/Library/BaseLib/X64/WriteMm3.S
+++ b/MdePkg/Library/BaseLib/X64/WriteMm3.S
@@ -29,7 +29,7 @@
# IN UINT64 Value
# );
#------------------------------------------------------------------------------
-.global ASM_PFX(AsmWriteMm3)
+ASM_GLOBAL ASM_PFX(AsmWriteMm3)
ASM_PFX(AsmWriteMm3):
movd %rcx, %mm3
ret
diff --git a/MdePkg/Library/BaseLib/X64/WriteMm4.S b/MdePkg/Library/BaseLib/X64/WriteMm4.S
index dc82695de8..24ecbc11c2 100644
--- a/MdePkg/Library/BaseLib/X64/WriteMm4.S
+++ b/MdePkg/Library/BaseLib/X64/WriteMm4.S
@@ -29,7 +29,7 @@
# IN UINT64 Value
# );
#------------------------------------------------------------------------------
-.global ASM_PFX(AsmWriteMm4)
+ASM_GLOBAL ASM_PFX(AsmWriteMm4)
ASM_PFX(AsmWriteMm4):
movd %rcx, %mm4
ret
diff --git a/MdePkg/Library/BaseLib/X64/WriteMm5.S b/MdePkg/Library/BaseLib/X64/WriteMm5.S
index 1d82235045..c1e0e7c2c3 100644
--- a/MdePkg/Library/BaseLib/X64/WriteMm5.S
+++ b/MdePkg/Library/BaseLib/X64/WriteMm5.S
@@ -29,7 +29,7 @@
# IN UINT64 Value
# );
#------------------------------------------------------------------------------
-.global ASM_PFX(AsmWriteMm5)
+ASM_GLOBAL ASM_PFX(AsmWriteMm5)
ASM_PFX(AsmWriteMm5):
movd %rcx, %mm5
ret
diff --git a/MdePkg/Library/BaseLib/X64/WriteMm6.S b/MdePkg/Library/BaseLib/X64/WriteMm6.S
index 01e53dbce7..c5a216d29f 100644
--- a/MdePkg/Library/BaseLib/X64/WriteMm6.S
+++ b/MdePkg/Library/BaseLib/X64/WriteMm6.S
@@ -29,7 +29,7 @@
# IN UINT64 Value
# );
#------------------------------------------------------------------------------
-.global ASM_PFX(AsmWriteMm6)
+ASM_GLOBAL ASM_PFX(AsmWriteMm6)
ASM_PFX(AsmWriteMm6):
movd %rcx, %mm6
ret
diff --git a/MdePkg/Library/BaseLib/X64/WriteMm7.S b/MdePkg/Library/BaseLib/X64/WriteMm7.S
index 6b8346fb44..b6e6503551 100644
--- a/MdePkg/Library/BaseLib/X64/WriteMm7.S
+++ b/MdePkg/Library/BaseLib/X64/WriteMm7.S
@@ -29,7 +29,7 @@
# IN UINT64 Value
# );
#------------------------------------------------------------------------------
-.global ASM_PFX(AsmWriteMm7)
+ASM_GLOBAL ASM_PFX(AsmWriteMm7)
ASM_PFX(AsmWriteMm7):
movd %rcx, %mm7
ret
diff --git a/MdePkg/Library/BaseLib/X64/WriteMsr64.S b/MdePkg/Library/BaseLib/X64/WriteMsr64.S
index a034efe070..dd2bc3ddbc 100644
--- a/MdePkg/Library/BaseLib/X64/WriteMsr64.S
+++ b/MdePkg/Library/BaseLib/X64/WriteMsr64.S
@@ -30,7 +30,7 @@
# IN UINT64 Value
# );
#------------------------------------------------------------------------------
-.global ASM_PFX(AsmWriteMsr64)
+ASM_GLOBAL ASM_PFX(AsmWriteMsr64)
.align 16
ASM_PFX(AsmWriteMsr64):
mov %rdx, %rax # meanwhile, rax <- return value
diff --git a/MdePkg/Library/BaseSynchronizationLib/X64/InterlockedCompareExchange32.S b/MdePkg/Library/BaseSynchronizationLib/X64/InterlockedCompareExchange32.S
index 8faca8b7b1..90b1af11d7 100644
--- a/MdePkg/Library/BaseSynchronizationLib/X64/InterlockedCompareExchange32.S
+++ b/MdePkg/Library/BaseSynchronizationLib/X64/InterlockedCompareExchange32.S
@@ -30,7 +30,7 @@
# IN UINT32 ExchangeValue
# );
#------------------------------------------------------------------------------
-.global ASM_PFX(InternalSyncCompareExchange32)
+ASM_GLOBAL ASM_PFX(InternalSyncCompareExchange32)
ASM_PFX(InternalSyncCompareExchange32):
mov %edx, %eax
lock cmpxchg %r8d, (%rcx)
diff --git a/MdePkg/Library/BaseSynchronizationLib/X64/InterlockedCompareExchange64.S b/MdePkg/Library/BaseSynchronizationLib/X64/InterlockedCompareExchange64.S
index 5e6e163527..227ee25004 100644
--- a/MdePkg/Library/BaseSynchronizationLib/X64/InterlockedCompareExchange64.S
+++ b/MdePkg/Library/BaseSynchronizationLib/X64/InterlockedCompareExchange64.S
@@ -31,7 +31,7 @@
# IN UINT64 ExchangeValue
# );
#------------------------------------------------------------------------------
-.global ASM_PFX(InternalSyncCompareExchange64)
+ASM_GLOBAL ASM_PFX(InternalSyncCompareExchange64)
.align 16
ASM_PFX(InternalSyncCompareExchange64):
mov %rdx, %rax
diff --git a/MdePkg/Library/BaseSynchronizationLib/X64/InterlockedDecrement.S b/MdePkg/Library/BaseSynchronizationLib/X64/InterlockedDecrement.S
index d06559bd25..2cadd02699 100644
--- a/MdePkg/Library/BaseSynchronizationLib/X64/InterlockedDecrement.S
+++ b/MdePkg/Library/BaseSynchronizationLib/X64/InterlockedDecrement.S
@@ -29,7 +29,7 @@
# IN UINT32 *Value
# );
#------------------------------------------------------------------------------
-.global ASM_PFX(InternalSyncDecrement)
+ASM_GLOBAL ASM_PFX(InternalSyncDecrement)
ASM_PFX(InternalSyncDecrement):
lock decl (%rcx)
mov (%rcx), %eax
diff --git a/MdePkg/Library/BaseSynchronizationLib/X64/InterlockedIncrement.S b/MdePkg/Library/BaseSynchronizationLib/X64/InterlockedIncrement.S
index 0416dd7d2a..e1d3a02f2d 100644
--- a/MdePkg/Library/BaseSynchronizationLib/X64/InterlockedIncrement.S
+++ b/MdePkg/Library/BaseSynchronizationLib/X64/InterlockedIncrement.S
@@ -29,7 +29,7 @@
# IN UINT32 *Value
# );
#------------------------------------------------------------------------------
-.global ASM_PFX(InternalSyncIncrement)
+ASM_GLOBAL ASM_PFX(InternalSyncIncrement)
ASM_PFX(InternalSyncIncrement):
lock incl (%rcx)
mov (%rcx), %eax