summaryrefslogtreecommitdiff
path: root/libc/string/sparc
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
parent9f853a2642cc28e982ccf1ba45abd36ff0988e11 (diff)
Add new option for SuSv3 legacy functions and use it for bcopy/bzero/bcmp/index/rindex
Diffstat (limited to 'libc/string/sparc')
-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
-rw-r--r--libc/string/sparc/sparc64/memcpy.S3
-rw-r--r--libc/string/sparc/sparc64/memset.S3
-rw-r--r--libc/string/sparc/sparc64/sparcv9b/memcpy.S4
-rw-r--r--libc/string/sparc/sparc64/strchr.S5
7 files changed, 29 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
diff --git a/libc/string/sparc/sparc64/memcpy.S b/libc/string/sparc/sparc64/memcpy.S
index 2fdff7b52..db63d1da2 100644
--- a/libc/string/sparc/sparc64/memcpy.S
+++ b/libc/string/sparc/sparc64/memcpy.S
@@ -20,6 +20,7 @@
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
+#include <features.h>
#include <asm/asi.h>
#ifndef XCC
#define USE_BPR
@@ -191,6 +192,7 @@
.text
.align 32
+#ifdef __UCLIBC_SUSV3_LEGACY__
ENTRY(bcopy)
sub %o1, %o0, %o4 /* IEU0 Group */
mov %o0, %g3 /* IEU1 */
@@ -206,6 +208,7 @@ ENTRY(bcopy)
retl
nop
END(bcopy)
+#endif
.align 32
200: be,pt %xcc, 201f /* CTI */
diff --git a/libc/string/sparc/sparc64/memset.S b/libc/string/sparc/sparc64/memset.S
index 284713556..79c1d74b6 100644
--- a/libc/string/sparc/sparc64/memset.S
+++ b/libc/string/sparc/sparc64/memset.S
@@ -20,6 +20,7 @@
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
+#include <features.h>
#include <asm/asi.h>
#ifndef XCC
#define XCC xcc
@@ -191,6 +192,7 @@ libc_hidden_def(memset)
.text
.align 32
+#ifdef __UCLIBC_SUSV3_LEGACY__
ENTRY(bzero)
#ifndef USE_BPR
srl %o1, 0, %o1
@@ -310,3 +312,4 @@ ENTRY(bzero)
0: retl
mov %o5, %o0
END(bzero)
+#endif
diff --git a/libc/string/sparc/sparc64/sparcv9b/memcpy.S b/libc/string/sparc/sparc64/sparcv9b/memcpy.S
index b49c9cde9..64f6a92e0 100644
--- a/libc/string/sparc/sparc64/sparcv9b/memcpy.S
+++ b/libc/string/sparc/sparc64/sparcv9b/memcpy.S
@@ -19,6 +19,8 @@
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
+#include <features.h>
+
#define ASI_BLK_P 0xf0
#define FPRS_FEF 0x04
#define VISEntryHalf rd %fprs, %o5; wr %g0, FPRS_FEF, %fprs
@@ -36,6 +38,7 @@
.text
.align 32
+#ifdef __UCLIBC_SUSV3_LEGACY__
ENTRY(bcopy)
sub %o1, %o0, %o4
mov %o0, %g4
@@ -51,6 +54,7 @@ ENTRY(bcopy)
retl
nop
END(bcopy)
+#endif
/* Special/non-trivial issues of this code:
*
diff --git a/libc/string/sparc/sparc64/strchr.S b/libc/string/sparc/sparc64/strchr.S
index 6a371352a..da26d1f9c 100644
--- a/libc/string/sparc/sparc64/strchr.S
+++ b/libc/string/sparc/sparc64/strchr.S
@@ -20,6 +20,7 @@
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
+#include <features.h>
#include <asm/asi.h>
#ifndef XCC
#define XCC xcc
@@ -329,7 +330,9 @@ ENTRY(strchr)
add %o0, -1, %o0 /* IEU0 */
END(strchr)
libc_hidden_def(strchr)
+#ifdef __UCLIBC_SUSV3_LEGACY__
strong_alias(strchr,index)
+#endif
.align 32
ENTRY(strrchr)
@@ -478,4 +481,6 @@ ENTRY(strrchr)
ldx [%o0], %o3 /* Load */
END(strrchr)
libc_hidden_def(strrchr)
+#ifdef __UCLIBC_SUSV3_LEGACY__
strong_alias(strrchr,rindex)
+#endif