]> git.proxmox.com Git - mirror_edk2.git/blobdiff - ArmPkg/Library/CompilerIntrinsicsLib/Arm/memset.S
ArmPkg/CompilerIntrinsicesLib: Fixed memmove() and memset()
[mirror_edk2.git] / ArmPkg / Library / CompilerIntrinsicsLib / Arm / memset.S
index 7290e859586470c3771d5297fabb289a651f3352..0c7789eb58165a982962eb00cab511c534881662 100644 (file)
@@ -1,6 +1,7 @@
 #------------------------------------------------------------------------------\r
 #\r
 # Copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>\r
+# Copyright (c) 2014, ARM Ltd. All rights reserved.<BR>\r
 #\r
 # This program and the accompanying materials\r
 # are licensed and made available under the terms and conditions of the BSD License\r
   .align 2\r
   GCC_ASM_EXPORT (memset)\r
 \r
-\r
+# VOID\r
+# EFIAPI\r
+# memset (\r
+#  IN  VOID    *Destination,\r
+#  IN  UINT32  Character,\r
+#  IN  UINT32  Size\r
+#  );\r
 ASM_PFX(memset):\r
-\r
+  cmp  r2, #0\r
+  bxeq lr\r
   @ args = 0, pretend = 0, frame = 0\r
   @ frame_needed = 1, uses_anonymous_args = 0\r
-  stmfd  sp!, {r7, lr}\r
-  mov  ip, #0\r
-  add  r7, sp, #0\r
-  mov  lr, r0\r
-  b  L9\r
 L10:\r
-  and  r3, r1, #255\r
-  add  ip, ip, #1\r
-  strb  r3, [lr], #1\r
-L9:\r
-  cmp  ip, r2\r
+  strb  r1, [r0], #1\r
+  subs  r2, r2, #1\r
+  @ While size is not 0\r
   bne  L10\r
-  ldmfd  sp!, {r7, pc}\r
-\r
+  bx   lr\r