summaryrefslogtreecommitdiff
path: root/ArmPkg
diff options
context:
space:
mode:
Diffstat (limited to 'ArmPkg')
-rw-r--r--ArmPkg/Library/CompilerIntrinsicsLib/Arm/memset.S19
1 files changed, 17 insertions, 2 deletions
diff --git a/ArmPkg/Library/CompilerIntrinsicsLib/Arm/memset.S b/ArmPkg/Library/CompilerIntrinsicsLib/Arm/memset.S
index 0c7789eb58..bb75d7a70b 100644
--- a/ArmPkg/Library/CompilerIntrinsicsLib/Arm/memset.S
+++ b/ArmPkg/Library/CompilerIntrinsicsLib/Arm/memset.S
@@ -15,8 +15,23 @@
.text
+ .syntax unified
.align 2
GCC_ASM_EXPORT (memset)
+ GCC_ASM_EXPORT (__aeabi_memset)
+
+# VOID
+# EFIAPI
+# __aeabi_memset (
+# IN VOID *Destination,
+# IN UINT32 Size
+# IN UINT32 Character,
+# );
+ASM_PFX(__aeabi_memset):
+ subs ip, r1, #0
+ bxeq lr
+ mov r1, r2
+ b L10
# VOID
# EFIAPI
@@ -26,13 +41,13 @@
# IN UINT32 Size
# );
ASM_PFX(memset):
- cmp r2, #0
+ subs ip, r2, #0
bxeq lr
@ args = 0, pretend = 0, frame = 0
@ frame_needed = 1, uses_anonymous_args = 0
L10:
strb r1, [r0], #1
- subs r2, r2, #1
+ subs ip, ip, #1
@ While size is not 0
bne L10
bx lr