OSDN Git Service

Add hidden versions, hope I made it correctly. Sparc optimized string functions are...
authorPeter S. Mazinger <ps.m@gmx.net>
Sat, 12 Nov 2005 00:48:12 +0000 (00:48 -0000)
committerPeter S. Mazinger <ps.m@gmx.net>
Sat, 12 Nov 2005 00:48:12 +0000 (00:48 -0000)
17 files changed:
libc/string/sparc/sparc32/memchr.S
libc/string/sparc/sparc32/memcpy.S
libc/string/sparc/sparc32/memset.S
libc/string/sparc/sparc32/stpcpy.S
libc/string/sparc/sparc32/strcat.S
libc/string/sparc/sparc32/strchr.S
libc/string/sparc/sparc32/strcmp.S
libc/string/sparc/sparc32/strcpy.S
libc/string/sparc/sparc32/strlen.S
libc/string/sparc/sparc64/memcpy.S
libc/string/sparc/sparc64/memset.S
libc/string/sparc/sparc64/sparcv9b/memcpy.S
libc/string/sparc/sparc64/strcat.S
libc/string/sparc/sparc64/strchr.S
libc/string/sparc/sparc64/strcmp.S
libc/string/sparc/sparc64/strcpy.S
libc/string/sparc/sparc64/strlen.S

index c00df24..e8f44f1 100644 (file)
@@ -63,6 +63,9 @@
 1:     retl
         sub            %o0, 1, %o0
 
+.globl memchr
+.set memchr,__memchr
+.hidden __memchr
 ENTRY(__memchr)
        andcc           %o1, 0xff, %o1
        sll             %o1, 8, %g6
@@ -138,7 +141,6 @@ ENTRY(__memchr)
         sub            %o0, 4, %o0
 END(__memchr)
 
-weak_alias (__memchr, memchr)
 #if !__BOUNDED_POINTERS__
 weak_alias (__memchr, __ubp_memchr)
 #endif
index d0a8088..b2a9b16 100644 (file)
        b               3f
         sub            %o0, 2, %o0
 
-ENTRY(bcopy)
+.globl bcopy
+.set bcopy,__bcopy
+.hidden __bcopy
+ENTRY(__bcopy)
        mov             %o0, %o3
        mov             %o1, %o0
        mov             %o3, %o1
-END(bcopy)
-ENTRY(memmove)
+END(__bcopy)
+
+.globl memmove
+.set memmove,__memmove
+.hidden __memmove
+ENTRY(__memmove)
        cmp             %o0, %o1
        st              %o0, [%sp + 64]
        bleu            9f
@@ -446,9 +453,12 @@ ENTRY(memmove)
        sub             %o2, 2, %o2
        b               3f
         add            %o0, 2, %o0
-END(memmove)
+END(__memmove)
 
-ENTRY(memcpy)          /* %o0=dst %o1=src %o2=len */
+.globl memcpy
+.set memcpy,__memcpy
+.hidden __memcpy
+ENTRY(__memcpy)                /* %o0=dst %o1=src %o2=len */
        sub             %o0, %o1, %o4
        st              %o0, [%sp + 64]
 9:     andcc           %o4, 3, %o5
@@ -963,4 +973,4 @@ ENTRY(memcpy)               /* %o0=dst %o1=src %o2=len */
         sub            %o7, %o4, %o5
 110:   retl
         sub            %o7, %g6, %o5
-END(memcpy)
+END(__memcpy)
index 02cebb7..ef8a5b6 100644 (file)
@@ -62,7 +62,10 @@ ENTRY(__bzero)
         sub            %o0, %o2, %o0
 END(__bzero)
 
-ENTRY(memset)
+.globl memset
+.set memset,__memset
+.hidden __memset
+ENTRY(__memset)
        and             %o1, 0xff, %g3
        sll             %g3, 8, %g2
        or              %g3, %g2, %g3
@@ -147,6 +150,6 @@ ENTRY(memset)
        stb             %g3, [%o0 + 6]
 0:     retl
         nop
-END(memset)
+END(__memset)
 
 weak_alias (__bzero, bzero)
index b7e7a00..97a5dce 100644 (file)
@@ -65,6 +65,9 @@
 1:     retl
         add            %o0, -1, %o0
 
+.globl stpcpy
+.set stpcpy,__stpcpy
+.hidden __stpcpy
 ENTRY(__stpcpy)
        andcc           %o1, 3, %g0
        bne             10b
@@ -157,5 +160,3 @@ ENTRY(__stpcpy)
 19:    retl
         nop
 END(__stpcpy)
-
-weak_alias (__stpcpy, stpcpy)
index e4ff21d..8efe6ae 100644 (file)
        b               3f
         sub            %o0, 1, %o0
 
-ENTRY(strcat)
+.globl strcat
+.set strcat,__strcat
+.hidden __strcat
+ENTRY(__strcat)
        mov             %o0, %g2
        andcc           %o0, 3, %g0
        bne             11b
@@ -343,4 +346,4 @@ ENTRY(strcat)
         srl            %o5, 16, %o4
        retl
         mov            %g2, %o0
-END(strcat)
+END(__strcat)
index f18a8ab..450b4ff 100644 (file)
 1:     retl
         sub            %o0, 1, %o0
 
-ENTRY(strchr)
+.globl strchr
+.set strchr,__strchr
+.hidden __strchr
+ENTRY(__strchr)
        andcc           %o1, 0xff, %o1
        be              12f
         sll            %o1, 8, %o2
@@ -215,9 +218,12 @@ ENTRY(strchr)
 1:      or             %o4, %lo(0x01010101), %o2
        b               7f
         ld             [%o0], %g4
-END(strchr)
+END(__strchr)
 
-ENTRY(strrchr)
+.globl strrchr
+.set strrchr,__strrchr
+.hidden __strrchr
+ENTRY(__strrchr)
        andcc           %o1, 0xff, %o1
        clr             %o5
        be              12b
@@ -274,7 +280,7 @@ ENTRY(strrchr)
         ld             [%o0], %g4
 9:     retl
         mov            %o5, %o0
-END(strrchr)
+END(__strrchr)
 
 weak_alias (strchr, index)
 weak_alias (strrchr, rindex)
index d6cf9e7..2ae1b2e 100644 (file)
 2:     retl
         mov            %o4, %o0
 
-ENTRY(strcmp)
+.globl strcmp
+.set strcmp,__strcmp
+.hidden __strcmp
+ENTRY(__strcmp)
        andcc           %o0, 3, %g0
        bne             10b
         sethi          %hi(0x80808080), %g1
@@ -252,4 +255,4 @@ ENTRY(strcmp)
         ld             [%i0], %i4
        jmpl            %i7 + 8, %g0
         restore        %g4, %g0, %o0
-END(strcmp)
+END(__strcmp)
index c368580..6dc3517 100644 (file)
        b               6f
         andcc          %o0, 3, %g3
 
-ENTRY(strcpy)
+.globl strcpy
+.set strcpy,__strcpy
+.hidden __strcpy
+ENTRY(__strcpy)
        mov             %o0, %g2
        andcc           %o1, 3, %g0
        bne             1b
@@ -269,4 +272,4 @@ ENTRY(strcpy)
         srl            %o5, 16, %o4
        retl
         mov            %g2, %o0
-END(strcpy)
+END(__strcpy)
index cc455ac..116700e 100644 (file)
 3:     retl
         mov            2, %o0
 
-ENTRY(strlen)
+.globl strlen
+.set strlen,__strlen
+.hidden __strlen
+ENTRY(__strlen)
        mov             %o0, %o1
        andcc           %o0, 3, %g0
        bne             10b
@@ -98,4 +101,4 @@ ENTRY(strlen)
        add             %o4, 1, %o4
 13:    retl
         sub            %o4, %o1, %o0
-END(strlen)
+END(__strlen)
index 660fae6..47f812a 100644 (file)
        .text
        .align          32
 
-ENTRY(bcopy)
+.globl bcopy
+.set bcopy,__bcopy
+.hidden __bcopy
+ENTRY(__bcopy)
        sub             %o1, %o0, %o4                   /* IEU0         Group           */
        mov             %o0, %g3                        /* IEU1                         */
        cmp             %o4, %o2                        /* IEU1         Group           */
@@ -205,7 +208,7 @@ ENTRY(bcopy)
         add            %o0, %o2, %o0                   /* IEU0                         */
        retl
         nop
-END(bcopy)
+END(__bcopy)
 
        .align          32
 200:   be,pt           %xcc, 201f                      /* CTI                          */
@@ -503,7 +506,10 @@ END(__align_cpy_16)
 #endif
 
        .align          32
-ENTRY(memcpy)
+.globl memcpy
+.set memcpy,__memcpy
+.hidden __memcpy
+ENTRY(__memcpy)
 210:
 #ifndef USE_BPR
        srl             %o2, 0, %o2                     /* IEU1         Group           */
@@ -694,7 +700,7 @@ ENTRY(memcpy)
 214:   wr              %g0, FPRS_FEF, %fprs
        retl
         mov            %g4, %o0
-END(memcpy)
+END(__memcpy)
 
        .align          32
 228:   andcc           %o2, 1, %g0                     /* IEU1         Group           */
@@ -719,7 +725,10 @@ END(memcpy)
         nop
 
        .align          32
-ENTRY(memmove)
+.globl memmove
+.set memmove,__memmove
+.hidden __memmove
+ENTRY(__memmove)
 #ifndef USE_BPR
        srl             %o2, 0, %o2                     /* IEU1         Group           */
 #endif
@@ -910,7 +919,7 @@ ENTRY(memmove)
 234:   wr              %g0, FPRS_FEF, %fprs
        retl
         mov            %g4, %o0
-END(memmove)
+END(__memmove)
 
 #ifdef USE_BPR
 weak_alias (memcpy, __align_cpy_1)
index 2e23f92..5d29114 100644 (file)
        /* Well, memset is a lot easier to get right than bcopy... */
        .text
        .align          32
-ENTRY(memset)
+.globl memset
+.set memset,__memset
+.hidden __memset
+ENTRY(__memset)
        andcc           %o1, 0xff, %o1
        mov             %o0, %o5
        be,a,pt         %icc, 50f
@@ -176,7 +179,7 @@ ENTRY(memset)
         nop
        ba,pt           %xcc, 18b
         ldd            [%o0], %f0
-END(memset)
+END(__memset)
 
 #define ZERO_BLOCKS(base, offset, source)              \
        stx             source, [base - offset - 0x38]; \
index 7f36b7c..91e74d4 100644 (file)
        .text
        .align  32
 
-ENTRY(bcopy)
+.globl bcopy
+.set bcopy,__bcopy
+.hidden __bcopy
+ENTRY(__bcopy)
        sub             %o1, %o0, %o4
        mov             %o0, %g4
        cmp             %o4, %o2
@@ -50,7 +53,7 @@ ENTRY(bcopy)
         add            %o0, %o2, %o0
        retl
         nop
-END(bcopy)
+END(__bcopy)
 
        /* Special/non-trivial issues of this code:
         *
@@ -67,7 +70,10 @@ END(bcopy)
         * of up to 2.4GB per second.
         */
        .align          32
-ENTRY(memcpy)
+.globl memcpy
+.set memcpy,__memcpy
+.hidden __memcpy
+ENTRY(__memcpy)
 
 100: /* %o0=dst, %o1=src, %o2=len */
        mov             %o0, %g5
@@ -328,7 +334,7 @@ small_copy_unaligned:
        retl
         mov            %g5, %o0
 
-END(memcpy)
+END(__memcpy)
 
 #define RMOVE_BIGCHUNK(src, dst, offset, t0, t1, t2, t3)       \
        ldx             [%src - offset - 0x20], %t0;            \
@@ -403,7 +409,10 @@ END(memcpy)
         mov            %g4, %o0
 
        .align          32
-ENTRY(memmove)
+.globl memmove
+.set memmove,__memmove
+.hidden __memmove
+ENTRY(__memmove)
        mov             %o0, %g5
 #ifndef USE_BPR
        srl             %o2, 0, %o2                     /* IEU1         Group           */
@@ -595,7 +604,7 @@ ENTRY(memmove)
 234:   wr              %g0, FPRS_FEF, %fprs
        retl
         mov            %g4, %o0
-END(memmove)
+END(__memmove)
 
 #ifdef USE_BPR
 weak_alias (memcpy, __align_cpy_1)
index 21ff119..3b81e59 100644 (file)
 
        .text
        .align          32
-ENTRY(strcat)
+.globl strcat
+.set strcat,__strcat
+.hidden __strcat
+ENTRY(__strcat)
        sethi           %hi(0x01010101), %g1            /* IEU0         Group           */
        ldub            [%o0], %o3                      /* Load                         */
        or              %g1, %lo(0x01010101), %g1       /* IEU0         Group           */
@@ -335,4 +338,4 @@ ENTRY(strcat)
        stb             %o4, [%o0 - 8]                  /* Store                        */
        retl                                            /* CTI+IEU1     Group           */
         mov            %g6, %o0                        /* IEU0                         */
-END(strcat)
+END(__strcat)
index 784b7fe..6943e8b 100644 (file)
 
        .text
        .align          32
-ENTRY(strchr)
+.globl strchr
+.set strchr,__strchr
+.hidden __strchr
+ENTRY(__strchr)
        andcc           %o1, 0xff, %o1                  /* IEU1         Group           */
        be,pn           %icc, 17f                       /* CTI                          */
         sllx           %o1, 8, %g3                     /* IEU0         Group           */
@@ -327,10 +330,13 @@ ENTRY(strchr)
         lduba          [%o0] ASI_PNF, %o3              /* Load                         */
        retl                                            /* CTI+IEU1     Group           */
         add            %o0, -1, %o0                    /* IEU0                         */
-END(strchr)
+END(__strchr)
 
        .align          32
-ENTRY(strrchr)
+.globl strrchr
+.set strrchr,__strrchr
+.hidden __strrchr
+ENTRY(__strrchr)
        andcc           %o1, 0xff, %o1                  /* IEU1         Group           */
        be,pn           %icc, 17b                       /* CTI                          */
         clr            %g4                             /* IEU0                         */
@@ -474,7 +480,7 @@ ENTRY(strrchr)
        ba,pt           %xcc, 1b                        /* CTI          Group           */
 
         ldx            [%o0], %o3                      /* Load                         */
-END(strrchr)
+END(__strrchr)
 
 weak_alias (strchr, index)
 weak_alias (strrchr, rindex)
index 5866778..a4eb366 100644 (file)
 
        .text
        .align          32
-ENTRY(strcmp)
+.globl strcmp
+.set strcmp,__strcmp
+.hidden __strcmp
+ENTRY(__strcmp)
        sethi           %hi(0x01010101), %g1                    /* IEU0         Group           */
        andcc           %o0, 7, %g0                             /* IEU1                         */
        bne,pn          %icc, 7f                                /* CTI                          */
@@ -275,4 +278,4 @@ ENTRY(strcmp)
 
        ba,pt           %xcc, 11b                               /* CTI          Group           */
         ldxa           [%o1 + %o0] ASI_PNF, %g6                /* Load                         */
-END(strcmp)
+END(__strcmp)
index aa5d2ae..cc906ba 100644 (file)
 
        .text
        .align          32
-ENTRY(strcpy)
+.globl strcpy
+.set strcpy,__strcpy
+.hidden __strcpy
+ENTRY(__strcpy)
        sethi           %hi(0x01010101), %g1            /* IEU0         Group           */
        mov             %o0, %g6                        /* IEU1                         */
        or              %g1, %lo(0x01010101), %g1       /* IEU0         Group           */
@@ -240,4 +243,4 @@ ENTRY(strcpy)
        stb             %o4, [%o0 - 8]                  /* Store                        */
        retl                                            /* CTI+IEU1     Group           */
         mov            %g6, %o0                        /* IEU0                         */
-END(strcpy)
+END(__strcpy)
index 5167ad5..9f48fe6 100644 (file)
 
        .text
        .align          32
-ENTRY(strlen)
+.globl strlen
+.set strlen,__strlen
+.hidden __strlen
+ENTRY(__strlen)
        sethi           %hi(0x01010101), %g1            /* IEU0         Group           */
        ldub            [%o0], %o3                      /* Load                         */
        or              %g1, %lo(0x01010101), %g1       /* IEU0         Group           */
@@ -169,4 +172,4 @@ ENTRY(strlen)
        add             %o0, -1, %o0                    /* IEU0         Group           */
        retl                                            /* CTI+IEU1     Group           */
         sub            %o0, %o1, %o0                   /* IEU0                         */
-END(strlen)
+END(__strlen)