@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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}
@@ -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}
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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}
@@ -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
@@ -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
@@ -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]
@@ -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]
@@ -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
@@ -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
@@ -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}
@@ -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}
@@ -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
@@ -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
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