summaryrefslogtreecommitdiff
path: root/libc/string/sparc/sparc32
diff options
context:
space:
mode:
authorPeter S. Mazinger <ps.m@gmx.net>2006-03-23 17:19:42 +0000
committerPeter S. Mazinger <ps.m@gmx.net>2006-03-23 17:19:42 +0000
commita26ac41c4946e3ebe4fab0ce6677350b644eb158 (patch)
tree2b607eeef3aeffb7dab2815252c2f40c353599e6 /libc/string/sparc/sparc32
parent9f853a2642cc28e982ccf1ba45abd36ff0988e11 (diff)
Add new option for SuSv3 legacy functions and use it for bcopy/bzero/bcmp/index/rindex
Diffstat (limited to 'libc/string/sparc/sparc32')
-rw-r--r--libc/string/sparc/sparc32/memcpy.S4
-rw-r--r--libc/string/sparc/sparc32/memset.S4
-rw-r--r--libc/string/sparc/sparc32/strchr.S6
3 files changed, 14 insertions, 0 deletions
diff --git a/libc/string/sparc/sparc32/memcpy.S b/libc/string/sparc/sparc32/memcpy.S
index fb79a601a..25a48844d 100644
--- a/libc/string/sparc/sparc32/memcpy.S
+++ b/libc/string/sparc/sparc32/memcpy.S
@@ -21,6 +21,8 @@
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
+#include <features.h>
+
/* Both these macros have to start with exactly the same insn */
#define MOVE_BIGCHUNK(src, dst, offset, t0, t1, t2, t3, t4, t5, t6, t7) \
ldd [%src + offset + 0x00], %t0; \
@@ -161,11 +163,13 @@
b 3f
sub %o0, 2, %o0
+#ifdef __UCLIBC_SUSV3_LEGACY__
ENTRY(bcopy)
mov %o0, %o3
mov %o1, %o0
mov %o3, %o1
END(bcopy)
+#endif
ENTRY(memmove)
cmp %o0, %o1
diff --git a/libc/string/sparc/sparc32/memset.S b/libc/string/sparc/sparc32/memset.S
index d5e1350f2..358fe496a 100644
--- a/libc/string/sparc/sparc32/memset.S
+++ b/libc/string/sparc/sparc32/memset.S
@@ -20,6 +20,8 @@
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
+#include <features.h>
+
/* Store 64 bytes at (BASE + OFFSET) using value SOURCE. */
#define ZERO_BIG_BLOCK(base, offset, source) \
std source, [base + offset + 0x00]; \
@@ -43,6 +45,7 @@
.text
.align 4
+#ifdef __UCLIBC_SUSV3_LEGACY__
ENTRY(bzero)
b 1f
mov %g0, %g3
@@ -61,6 +64,7 @@ ENTRY(bzero)
b 4f
sub %o0, %o2, %o0
END(bzero)
+#endif
ENTRY(memset)
and %o1, 0xff, %g3
diff --git a/libc/string/sparc/sparc32/strchr.S b/libc/string/sparc/sparc32/strchr.S
index d06bbe3cc..16710d4e8 100644
--- a/libc/string/sparc/sparc32/strchr.S
+++ b/libc/string/sparc/sparc32/strchr.S
@@ -35,6 +35,8 @@
in these days for an average user.
*/
+#include <features.h>
+
.text
.align 4
10: ldub [%o0], %g4
@@ -217,7 +219,9 @@ ENTRY(strchr)
ld [%o0], %g4
END(strchr)
libc_hidden_def(strchr)
+#ifdef __UCLIBC_SUSV3_LEGACY__
strong_alias(strchr,index)
+#endif
ENTRY(strrchr)
andcc %o1, 0xff, %o1
@@ -278,4 +282,6 @@ ENTRY(strrchr)
mov %o5, %o0
END(strrchr)
libc_hidden_def(strrchr)
+#ifdef __UCLIBC_SUSV3_LEGACY__
strong_alias(strrchr,rindex)
+#endif