From a26ac41c4946e3ebe4fab0ce6677350b644eb158 Mon Sep 17 00:00:00 2001 From: "Peter S. Mazinger" Date: Thu, 23 Mar 2006 17:19:42 +0000 Subject: Add new option for SuSv3 legacy functions and use it for bcopy/bzero/bcmp/index/rindex --- libc/string/sparc/sparc32/memcpy.S | 4 ++++ libc/string/sparc/sparc32/memset.S | 4 ++++ libc/string/sparc/sparc32/strchr.S | 6 ++++++ libc/string/sparc/sparc64/memcpy.S | 3 +++ libc/string/sparc/sparc64/memset.S | 3 +++ libc/string/sparc/sparc64/sparcv9b/memcpy.S | 4 ++++ libc/string/sparc/sparc64/strchr.S | 5 +++++ 7 files changed, 29 insertions(+) (limited to 'libc/string/sparc') 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 + /* 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 + /* 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 + .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 #include #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 #include #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 + #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 #include #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 -- cgit v1.2.3