[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