From 4c8a6e069c908c65b60ee5b89db6cc3c5981f9a1 Mon Sep 17 00:00:00 2001 From: andrewfish Date: Tue, 1 Feb 2011 05:01:35 +0000 Subject: [PATCH] Replace INTERWORK_FUNC, with GCC_ASM_EXPORT() and GCC_ASM_IMPORT() and update the rest of the MdePkg ARM assembler to use the macro. Leave the old INTERWORK_FUNC macro in place until we can make sure all the other packages have been updated and then it can be removed. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11289 6f19259b-4bc3-4df7-8a09-765794883524 --- MdePkg/Include/Arm/ProcessorBind.h | 19 ++++++++- MdePkg/Library/BaseCpuLib/Arm/CpuFlushTlb.S | 3 +- MdePkg/Library/BaseCpuLib/Arm/CpuSleep.S | 3 +- MdePkg/Library/BaseLib/Arm/CpuBreakpoint.S | 3 +- .../Library/BaseLib/Arm/DisableInterrupts.S | 3 +- MdePkg/Library/BaseLib/Arm/EnableInterrupts.S | 3 +- .../Library/BaseLib/Arm/GetInterruptsState.S | 3 +- MdePkg/Library/BaseLib/Arm/Math64.S | 39 +++++++------------ MdePkg/Library/BaseLib/Arm/SetJumpLongJump.S | 7 +--- 9 files changed, 39 insertions(+), 44 deletions(-) diff --git a/MdePkg/Include/Arm/ProcessorBind.h b/MdePkg/Include/Arm/ProcessorBind.h index a68b30b811..8fad2a8990 100644 --- a/MdePkg/Include/Arm/ProcessorBind.h +++ b/MdePkg/Include/Arm/ProcessorBind.h @@ -118,11 +118,26 @@ typedef INT32 INTN; /// CodeSourcery 2010.09 started requiring the .type to function properly /// #define INTERWORK_FUNC(func__) .type ASM_PFX(func__), %function + + #define GCC_ASM_EXPORT(func__) \ + .global _CONCATENATE (__USER_LABEL_PREFIX__, func__) ;\ + .type ASM_PFX(func__), %function + + #define GCC_ASM_IMPORT(func__) \ + .extern _CONCATENATE (__USER_LABEL_PREFIX__, func__) + #else // // .type not supported by Apple Xcode tools // - #define INTERWORK_FUNC(func__) + #define INTERWORK_FUNC(func__) + + #define GCC_ASM_EXPORT(func__) \ + .globl _CONCATENATE (__USER_LABEL_PREFIX__, func__) \ + + #define GCC_ASM_IMPORT(name) \ + .extern _CONCATENATE (__USER_LABEL_PREFIX__, name) + #endif #endif @@ -139,3 +154,5 @@ typedef INT32 INTN; #define FUNCTION_ENTRY_POINT(FunctionPointer) (VOID *)(UINTN)(FunctionPointer) #endif + + diff --git a/MdePkg/Library/BaseCpuLib/Arm/CpuFlushTlb.S b/MdePkg/Library/BaseCpuLib/Arm/CpuFlushTlb.S index 46ef3e09f0..960fd990a1 100644 --- a/MdePkg/Library/BaseCpuLib/Arm/CpuFlushTlb.S +++ b/MdePkg/Library/BaseCpuLib/Arm/CpuFlushTlb.S @@ -16,8 +16,7 @@ .text .p2align 2 -.globl ASM_PFX(CpuFlushTlb) -INTERWORK_FUNC(CpuFlushTlb) +GCC_ASM_EXPORT(CpuFlushTlb) #/** # Flushes all the Translation Lookaside Buffers(TLB) entries in a CPU. diff --git a/MdePkg/Library/BaseCpuLib/Arm/CpuSleep.S b/MdePkg/Library/BaseCpuLib/Arm/CpuSleep.S index ec2061a4b3..44160d4c32 100644 --- a/MdePkg/Library/BaseCpuLib/Arm/CpuSleep.S +++ b/MdePkg/Library/BaseCpuLib/Arm/CpuSleep.S @@ -16,8 +16,7 @@ .text .p2align 2 -.globl ASM_PFX(CpuSleep) -INTERWORK_FUNC(CpuSleep) +GCC_ASM_EXPORT(CpuSleep) #/** # Places the CPU in a sleep state until an interrupt is received. diff --git a/MdePkg/Library/BaseLib/Arm/CpuBreakpoint.S b/MdePkg/Library/BaseLib/Arm/CpuBreakpoint.S index 8ba3a439bd..b6b80a1326 100644 --- a/MdePkg/Library/BaseLib/Arm/CpuBreakpoint.S +++ b/MdePkg/Library/BaseLib/Arm/CpuBreakpoint.S @@ -16,8 +16,7 @@ .text .p2align 2 -.globl ASM_PFX(CpuBreakpoint) -INTERWORK_FUNC(CpuBreakpoint) +GCC_ASM_EXPORT(CpuBreakpoint) #/** # Generates a breakpoint on the CPU. diff --git a/MdePkg/Library/BaseLib/Arm/DisableInterrupts.S b/MdePkg/Library/BaseLib/Arm/DisableInterrupts.S index 83db27a3fb..e5740862d7 100644 --- a/MdePkg/Library/BaseLib/Arm/DisableInterrupts.S +++ b/MdePkg/Library/BaseLib/Arm/DisableInterrupts.S @@ -16,8 +16,7 @@ .text .p2align 2 -.globl ASM_PFX(DisableInterrupts) -INTERWORK_FUNC(DisableInterrupts) +GCC_ASM_EXPORT(DisableInterrupts) #/** # Disables CPU interrupts. diff --git a/MdePkg/Library/BaseLib/Arm/EnableInterrupts.S b/MdePkg/Library/BaseLib/Arm/EnableInterrupts.S index f564927021..9f3a28af94 100644 --- a/MdePkg/Library/BaseLib/Arm/EnableInterrupts.S +++ b/MdePkg/Library/BaseLib/Arm/EnableInterrupts.S @@ -16,8 +16,7 @@ .text .p2align 2 -.globl ASM_PFX(EnableInterrupts) -INTERWORK_FUNC(EnableInterrupts) +GCC_ASM_EXPORT(EnableInterrupts) #/** diff --git a/MdePkg/Library/BaseLib/Arm/GetInterruptsState.S b/MdePkg/Library/BaseLib/Arm/GetInterruptsState.S index 95b3c5f07e..94b3596fc6 100644 --- a/MdePkg/Library/BaseLib/Arm/GetInterruptsState.S +++ b/MdePkg/Library/BaseLib/Arm/GetInterruptsState.S @@ -16,8 +16,7 @@ .text .p2align 2 -.globl ASM_PFX(GetInterruptState) -INTERWORK_FUNC(GetInterruptState) +GCC_ASM_EXPORT (GetInterruptState) #/** # Retrieves the current CPU interrupt state. diff --git a/MdePkg/Library/BaseLib/Arm/Math64.S b/MdePkg/Library/BaseLib/Arm/Math64.S index 76a3c55160..f569986608 100755 --- a/MdePkg/Library/BaseLib/Arm/Math64.S +++ b/MdePkg/Library/BaseLib/Arm/Math64.S @@ -19,8 +19,7 @@ .text .align 2 - .globl ASM_PFX(InternalMathLShiftU64) - INTERWORK_FUNC(InternalMathLShiftU64) + GCC_ASM_EXPORT(InternalMathLShiftU64) ASM_PFX(InternalMathLShiftU64): stmfd sp!, {r4, r5, r6} @@ -38,8 +37,7 @@ ASM_PFX(InternalMathLShiftU64): bx lr .align 2 - .globl ASM_PFX(InternalMathRShiftU64) - INTERWORK_FUNC(InternalMathRShiftU64) + GCC_ASM_EXPORT(InternalMathRShiftU64) ASM_PFX(InternalMathRShiftU64): stmfd sp!, {r4, r5, r6} @@ -57,8 +55,7 @@ ASM_PFX(InternalMathRShiftU64): bx lr .align 2 - .globl ASM_PFX(InternalMathARShiftU64) - INTERWORK_FUNC(InternalMathARShiftU64) + GCC_ASM_EXPORT(InternalMathARShiftU64) ASM_PFX(InternalMathARShiftU64): stmfd sp!, {r4, r5, r6} @@ -76,8 +73,7 @@ ASM_PFX(InternalMathARShiftU64): bx lr .align 2 - .globl ASM_PFX(InternalMathLRotU64) - INTERWORK_FUNC(InternalMathLRotU64) + GCC_ASM_EXPORT(InternalMathLRotU64) ASM_PFX(InternalMathLRotU64): stmfd sp!, {r4, r5, r6, r7, lr} @@ -103,8 +99,7 @@ ASM_PFX(InternalMathLRotU64): .align 2 - .globl ASM_PFX(InternalMathRRotU64) - INTERWORK_FUNC(InternalMathRRotU64) + GCC_ASM_EXPORT(InternalMathRRotU64) ASM_PFX(InternalMathRRotU64): stmfd sp!, {r4, r5, r6, r7, lr} @@ -129,8 +124,7 @@ ASM_PFX(InternalMathRRotU64): ldmfd sp!, {r4, r5, r6, r7, pc} .align 2 - .globl ASM_PFX(InternalMathMultU64x32) - INTERWORK_FUNC(InternalMathMultU64x32) + GCC_ASM_EXPORT(InternalMathMultU64x32) ASM_PFX(InternalMathMultU64x32): stmfd sp!, {r7, lr} @@ -144,8 +138,7 @@ ASM_PFX(InternalMathMultU64x32): ldmfd sp!, {r7, pc} .align 2 - .globl ASM_PFX(InternalMathMultU64x64) - INTERWORK_FUNC(InternalMathMultU64x64) + GCC_ASM_EXPORT(InternalMathMultU64x64) ASM_PFX(InternalMathMultU64x64): stmfd sp!, {r7, lr} @@ -158,8 +151,7 @@ ASM_PFX(InternalMathMultU64x64): ldmfd sp!, {r7, pc} .align 2 - .globl ASM_PFX(InternalMathDivU64x32) - INTERWORK_FUNC(InternalMathDivU64x32) + GCC_ASM_EXPORT(InternalMathDivU64x32) ASM_PFX(InternalMathDivU64x32): stmfd sp!, {r7, lr} @@ -170,8 +162,7 @@ ASM_PFX(InternalMathDivU64x32): .align 2 - .globl ASM_PFX(InternalMathModU64x32) - INTERWORK_FUNC(InternalMathModU64x32) + GCC_ASM_EXPORT(InternalMathModU64x32) ASM_PFX(InternalMathModU64x32): stmfd sp!, {r7, lr} @@ -182,8 +173,7 @@ ASM_PFX(InternalMathModU64x32): .align 2 - .globl ASM_PFX(InternalMathDivRemU64x32) - INTERWORK_FUNC(InternalMathDivRemU64x32) + GCC_ASM_EXPORT(InternalMathDivRemU64x32) ASM_PFX(InternalMathDivRemU64x32): stmfd sp!, {r4, r5, r6, r7, lr} @@ -211,8 +201,7 @@ L22: .align 2 - .globl ASM_PFX(InternalMathDivRemU64x64) - INTERWORK_FUNC(InternalMathDivRemU64x64) + GCC_ASM_EXPORT(InternalMathDivRemU64x64) ASM_PFX(InternalMathDivRemU64x64): stmfd sp!, {r4, r5, r6, r7, lr} @@ -238,8 +227,7 @@ L26: .align 2 - .globl ASM_PFX(InternalMathDivRemS64x64) - INTERWORK_FUNC(InternalMathDivRemS64x64) + GCC_ASM_EXPORT(InternalMathDivRemS64x64) ASM_PFX(InternalMathDivRemS64x64): stmfd sp!, {r4, r5, r6, r7, lr} @@ -265,8 +253,7 @@ L30: .align 2 - .globl ASM_PFX(InternalMathSwapBytes64) - INTERWORK_FUNC(InternalMathSwapBytes64) + GCC_ASM_EXPORT(InternalMathSwapBytes64) ASM_PFX(InternalMathSwapBytes64): @ args = 0, pretend = 0, frame = 0 diff --git a/MdePkg/Library/BaseLib/Arm/SetJumpLongJump.S b/MdePkg/Library/BaseLib/Arm/SetJumpLongJump.S index 74bf07ed7c..2ea88029c9 100644 --- a/MdePkg/Library/BaseLib/Arm/SetJumpLongJump.S +++ b/MdePkg/Library/BaseLib/Arm/SetJumpLongJump.S @@ -14,11 +14,8 @@ .text .p2align 2 -.globl ASM_PFX(SetJump) -INTERWORK_FUNC(SetJump) - -.globl ASM_PFX(InternalLongJump) -INTERWORK_FUNC(InternalLongJump) +GCC_ASM_EXPORT(SetJump) +GCC_ASM_EXPORT(InternalLongJump) #/** # Saves the current CPU context that can be restored with a call to LongJump() and returns 0.# -- 2.39.2