summaryrefslogtreecommitdiffstats
path: root/MdePkg/Library/BaseLib/Arm
diff options
context:
space:
mode:
authorandrewfish <andrewfish@6f19259b-4bc3-4df7-8a09-765794883524>2010-12-15 00:58:34 +0000
committerandrewfish <andrewfish@6f19259b-4bc3-4df7-8a09-765794883524>2010-12-15 00:58:34 +0000
commite7cb469e3aa3d5b05953a25f1ef40aea89d058c3 (patch)
treee0c5566224f5d00fc50873dbf2add9dc2856c7fa /MdePkg/Library/BaseLib/Arm
parent5792e320d321b7330d9c59859b183e310a34b7a3 (diff)
downloadedk2-e7cb469e3aa3d5b05953a25f1ef40aea89d058c3.tar.gz
edk2-e7cb469e3aa3d5b05953a25f1ef40aea89d058c3.tar.bz2
edk2-e7cb469e3aa3d5b05953a25f1ef40aea89d058c3.zip
Fix issue with CodeSourcery gcc requiring assembly functions to have a .type define inorder to support interworking (calling from thumb(C code) to ARM code (hadn written assembly). We had to add a macro as the .type directive is not supported, or needed, by Xcode. All ARM .S files need to be updated.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11167 6f19259b-4bc3-4df7-8a09-765794883524
Diffstat (limited to 'MdePkg/Library/BaseLib/Arm')
-rw-r--r--MdePkg/Library/BaseLib/Arm/CpuBreakpoint.S1
-rw-r--r--MdePkg/Library/BaseLib/Arm/DisableInterrupts.S1
-rw-r--r--MdePkg/Library/BaseLib/Arm/EnableInterrupts.S1
-rw-r--r--MdePkg/Library/BaseLib/Arm/GetInterruptsState.S5
-rwxr-xr-xMdePkg/Library/BaseLib/Arm/Math64.S26
-rw-r--r--MdePkg/Library/BaseLib/Arm/SetJumpLongJump.S3
6 files changed, 35 insertions, 2 deletions
diff --git a/MdePkg/Library/BaseLib/Arm/CpuBreakpoint.S b/MdePkg/Library/BaseLib/Arm/CpuBreakpoint.S
index 43b747fb62..8ba3a439bd 100644
--- a/MdePkg/Library/BaseLib/Arm/CpuBreakpoint.S
+++ b/MdePkg/Library/BaseLib/Arm/CpuBreakpoint.S
@@ -17,6 +17,7 @@
.text
.p2align 2
.globl ASM_PFX(CpuBreakpoint)
+INTERWORK_FUNC(CpuBreakpoint)
#/**
# Generates a breakpoint on the CPU.
diff --git a/MdePkg/Library/BaseLib/Arm/DisableInterrupts.S b/MdePkg/Library/BaseLib/Arm/DisableInterrupts.S
index 338bd780aa..83db27a3fb 100644
--- a/MdePkg/Library/BaseLib/Arm/DisableInterrupts.S
+++ b/MdePkg/Library/BaseLib/Arm/DisableInterrupts.S
@@ -17,6 +17,7 @@
.text
.p2align 2
.globl ASM_PFX(DisableInterrupts)
+INTERWORK_FUNC(DisableInterrupts)
#/**
# Disables CPU interrupts.
diff --git a/MdePkg/Library/BaseLib/Arm/EnableInterrupts.S b/MdePkg/Library/BaseLib/Arm/EnableInterrupts.S
index 4fde6ec88e..f564927021 100644
--- a/MdePkg/Library/BaseLib/Arm/EnableInterrupts.S
+++ b/MdePkg/Library/BaseLib/Arm/EnableInterrupts.S
@@ -17,6 +17,7 @@
.text
.p2align 2
.globl ASM_PFX(EnableInterrupts)
+INTERWORK_FUNC(EnableInterrupts)
#/**
diff --git a/MdePkg/Library/BaseLib/Arm/GetInterruptsState.S b/MdePkg/Library/BaseLib/Arm/GetInterruptsState.S
index a7cd3c5cf2..95b3c5f07e 100644
--- a/MdePkg/Library/BaseLib/Arm/GetInterruptsState.S
+++ b/MdePkg/Library/BaseLib/Arm/GetInterruptsState.S
@@ -16,7 +16,8 @@
.text
.p2align 2
-.globl _GetInterruptState
+.globl ASM_PFX(GetInterruptState)
+INTERWORK_FUNC(GetInterruptState)
#/**
# Retrieves the current CPU interrupt state.
@@ -35,7 +36,7 @@
# VOID
# );
#
-_GetInterruptState:
+ASM_PFX(GetInterruptState):
mrs R0, CPSR
tst R0, #0x80 @Check if IRQ is enabled.
moveq R0, #1
diff --git a/MdePkg/Library/BaseLib/Arm/Math64.S b/MdePkg/Library/BaseLib/Arm/Math64.S
index d76fd5b42b..76a3c55160 100755
--- a/MdePkg/Library/BaseLib/Arm/Math64.S
+++ b/MdePkg/Library/BaseLib/Arm/Math64.S
@@ -20,6 +20,8 @@
.text
.align 2
.globl ASM_PFX(InternalMathLShiftU64)
+ INTERWORK_FUNC(InternalMathLShiftU64)
+
ASM_PFX(InternalMathLShiftU64):
stmfd sp!, {r4, r5, r6}
mov r6, r1
@@ -37,6 +39,8 @@ ASM_PFX(InternalMathLShiftU64):
.align 2
.globl ASM_PFX(InternalMathRShiftU64)
+ INTERWORK_FUNC(InternalMathRShiftU64)
+
ASM_PFX(InternalMathRShiftU64):
stmfd sp!, {r4, r5, r6}
mov r5, r0
@@ -54,6 +58,8 @@ ASM_PFX(InternalMathRShiftU64):
.align 2
.globl ASM_PFX(InternalMathARShiftU64)
+ INTERWORK_FUNC(InternalMathARShiftU64)
+
ASM_PFX(InternalMathARShiftU64):
stmfd sp!, {r4, r5, r6}
mov r5, r0
@@ -71,6 +77,8 @@ ASM_PFX(InternalMathARShiftU64):
.align 2
.globl ASM_PFX(InternalMathLRotU64)
+ INTERWORK_FUNC(InternalMathLRotU64)
+
ASM_PFX(InternalMathLRotU64):
stmfd sp!, {r4, r5, r6, r7, lr}
add r7, sp, #12
@@ -96,6 +104,8 @@ ASM_PFX(InternalMathLRotU64):
.align 2
.globl ASM_PFX(InternalMathRRotU64)
+ INTERWORK_FUNC(InternalMathRRotU64)
+
ASM_PFX(InternalMathRRotU64):
stmfd sp!, {r4, r5, r6, r7, lr}
add r7, sp, #12
@@ -120,6 +130,8 @@ ASM_PFX(InternalMathRRotU64):
.align 2
.globl ASM_PFX(InternalMathMultU64x32)
+ INTERWORK_FUNC(InternalMathMultU64x32)
+
ASM_PFX(InternalMathMultU64x32):
stmfd sp!, {r7, lr}
add r7, sp, #0
@@ -133,6 +145,8 @@ ASM_PFX(InternalMathMultU64x32):
.align 2
.globl ASM_PFX(InternalMathMultU64x64)
+ INTERWORK_FUNC(InternalMathMultU64x64)
+
ASM_PFX(InternalMathMultU64x64):
stmfd sp!, {r7, lr}
add r7, sp, #0
@@ -145,6 +159,8 @@ ASM_PFX(InternalMathMultU64x64):
.align 2
.globl ASM_PFX(InternalMathDivU64x32)
+ INTERWORK_FUNC(InternalMathDivU64x32)
+
ASM_PFX(InternalMathDivU64x32):
stmfd sp!, {r7, lr}
add r7, sp, #0
@@ -155,6 +171,8 @@ ASM_PFX(InternalMathDivU64x32):
.align 2
.globl ASM_PFX(InternalMathModU64x32)
+ INTERWORK_FUNC(InternalMathModU64x32)
+
ASM_PFX(InternalMathModU64x32):
stmfd sp!, {r7, lr}
add r7, sp, #0
@@ -165,6 +183,8 @@ ASM_PFX(InternalMathModU64x32):
.align 2
.globl ASM_PFX(InternalMathDivRemU64x32)
+ INTERWORK_FUNC(InternalMathDivRemU64x32)
+
ASM_PFX(InternalMathDivRemU64x32):
stmfd sp!, {r4, r5, r6, r7, lr}
add r7, sp, #12
@@ -192,6 +212,8 @@ L22:
.align 2
.globl ASM_PFX(InternalMathDivRemU64x64)
+ INTERWORK_FUNC(InternalMathDivRemU64x64)
+
ASM_PFX(InternalMathDivRemU64x64):
stmfd sp!, {r4, r5, r6, r7, lr}
add r7, sp, #12
@@ -217,6 +239,8 @@ L26:
.align 2
.globl ASM_PFX(InternalMathDivRemS64x64)
+ INTERWORK_FUNC(InternalMathDivRemS64x64)
+
ASM_PFX(InternalMathDivRemS64x64):
stmfd sp!, {r4, r5, r6, r7, lr}
add r7, sp, #12
@@ -242,6 +266,8 @@ L30:
.align 2
.globl ASM_PFX(InternalMathSwapBytes64)
+ INTERWORK_FUNC(InternalMathSwapBytes64)
+
ASM_PFX(InternalMathSwapBytes64):
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 1, uses_anonymous_args = 0
diff --git a/MdePkg/Library/BaseLib/Arm/SetJumpLongJump.S b/MdePkg/Library/BaseLib/Arm/SetJumpLongJump.S
index a894cd7ee9..74bf07ed7c 100644
--- a/MdePkg/Library/BaseLib/Arm/SetJumpLongJump.S
+++ b/MdePkg/Library/BaseLib/Arm/SetJumpLongJump.S
@@ -15,7 +15,10 @@
.p2align 2
.globl ASM_PFX(SetJump)
+INTERWORK_FUNC(SetJump)
+
.globl ASM_PFX(InternalLongJump)
+INTERWORK_FUNC(InternalLongJump)
#/**
# Saves the current CPU context that can be restored with a call to LongJump() and returns 0.#