[llvm-commits] [compiler-rt] r149241 - in /compiler-rt/trunk/lib/arm: aeabi_memcmp.S aeabi_memcpy.S aeabi_memmove.S aeabi_memset.S

Anton Korobeynikov asl at math.spbu.ru
Mon Jan 30 02:21:23 PST 2012


Author: asl
Date: Mon Jan 30 04:21:23 2012
New Revision: 149241

URL: http://llvm.org/viewvc/llvm-project?rev=149241&view=rev
Log:
Provide aeabi_mem* functions.

Added:
    compiler-rt/trunk/lib/arm/aeabi_memcmp.S
    compiler-rt/trunk/lib/arm/aeabi_memcpy.S
    compiler-rt/trunk/lib/arm/aeabi_memmove.S
    compiler-rt/trunk/lib/arm/aeabi_memset.S

Added: compiler-rt/trunk/lib/arm/aeabi_memcmp.S
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/arm/aeabi_memcmp.S?rev=149241&view=auto
==============================================================================
--- compiler-rt/trunk/lib/arm/aeabi_memcmp.S (added)
+++ compiler-rt/trunk/lib/arm/aeabi_memcmp.S Mon Jan 30 04:21:23 2012
@@ -0,0 +1,19 @@
+//===-- aeabi_memcmp.S - EABI memcmp implementation -----------------------===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#include "../assembly.h"
+
+//  void __aeabi_memcmp(void *dest, void *src, size_t n) { memcmp(dest, src, n); }
+
+        .align 2
+DEFINE_COMPILERRT_FUNCTION(__aeabi_memcmp)
+        b       memcmp
+
+DEFINE_AEABI_FUNCTION_ALIAS(__aeabi_memcmp4, __aeabi_memcmp)
+DEFINE_AEABI_FUNCTION_ALIAS(__aeabi_memcmp8, __aeabi_memcmp)

Added: compiler-rt/trunk/lib/arm/aeabi_memcpy.S
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/arm/aeabi_memcpy.S?rev=149241&view=auto
==============================================================================
--- compiler-rt/trunk/lib/arm/aeabi_memcpy.S (added)
+++ compiler-rt/trunk/lib/arm/aeabi_memcpy.S Mon Jan 30 04:21:23 2012
@@ -0,0 +1,19 @@
+//===-- aeabi_memcpy.S - EABI memcpy implementation -----------------------===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#include "../assembly.h"
+
+//  void __aeabi_memcpy(void *dest, void *src, size_t n) { memcpy(dest, src, n); }
+
+        .align 2
+DEFINE_COMPILERRT_FUNCTION(__aeabi_memcpy)
+        b       memcpy
+
+DEFINE_AEABI_FUNCTION_ALIAS(__aeabi_memcpy4, __aeabi_memcpy)
+DEFINE_AEABI_FUNCTION_ALIAS(__aeabi_memcpy8, __aeabi_memcpy)

Added: compiler-rt/trunk/lib/arm/aeabi_memmove.S
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/arm/aeabi_memmove.S?rev=149241&view=auto
==============================================================================
--- compiler-rt/trunk/lib/arm/aeabi_memmove.S (added)
+++ compiler-rt/trunk/lib/arm/aeabi_memmove.S Mon Jan 30 04:21:23 2012
@@ -0,0 +1,19 @@
+//===-- aeabi_memmove.S - EABI memmove implementation --------------------===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===---------------------------------------------------------------------===//
+
+#include "../assembly.h"
+
+//  void __aeabi_memmove(void *dest, void *src, size_t n) { memmove(dest, src, n); }
+
+        .align 2
+DEFINE_COMPILERRT_FUNCTION(__aeabi_memmove)
+        b       memmove
+
+DEFINE_AEABI_FUNCTION_ALIAS(__aeabi_memmove4, __aeabi_memmove)
+DEFINE_AEABI_FUNCTION_ALIAS(__aeabi_memmove8, __aeabi_memmove)

Added: compiler-rt/trunk/lib/arm/aeabi_memset.S
URL: http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/arm/aeabi_memset.S?rev=149241&view=auto
==============================================================================
--- compiler-rt/trunk/lib/arm/aeabi_memset.S (added)
+++ compiler-rt/trunk/lib/arm/aeabi_memset.S Mon Jan 30 04:21:23 2012
@@ -0,0 +1,32 @@
+//===-- aeabi_memset.S - EABI memset implementation -----------------------===//
+//
+//                     The LLVM Compiler Infrastructure
+//
+// This file is dual licensed under the MIT and the University of Illinois Open
+// Source Licenses. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+#include "../assembly.h"
+
+//  void __aeabi_memset(void *dest, size_t n, int c) { memset(dest, c, n); }
+//  void __aeabi_memclr(void *dest, size_t n) { __aeabi_memset(dest, n, 0); }
+
+        .align 2
+DEFINE_COMPILERRT_FUNCTION(__aeabi_memset)
+        mov     r3, r1
+        mov     r1, r2
+        mov     r2, r3
+        b       memset
+
+DEFINE_AEABI_FUNCTION_ALIAS(__aeabi_memset4, __aeabi_memset)
+DEFINE_AEABI_FUNCTION_ALIAS(__aeabi_memset8, __aeabi_memset)
+        
+DEFINE_COMPILERRT_FUNCTION(__aeabi_memclr)
+        mov     r2, r1
+        mov     r1, #0
+        b       memset
+
+DEFINE_AEABI_FUNCTION_ALIAS(__aeabi_memclr4, __aeabi_memclr)
+DEFINE_AEABI_FUNCTION_ALIAS(__aeabi_memclr8, __aeabi_memclr)
+





More information about the llvm-commits mailing list