sparc: Pull bcopy/memmove out of memcpy.S implementations.
authorDavid S. Miller <davem@davemloft.net>
Mon, 22 Feb 2010 11:59:49 +0000 (03:59 -0800)
committerDavid S. Miller <davem@davemloft.net>
Fri, 26 Feb 2010 07:58:50 +0000 (23:58 -0800)
2010-02-25  David S. Miller  <davem@davemloft.net>

* sysdeps/sparc/sparc32/bcopy.c: Delete.
* sysdeps/sparc/sparc32/memmove.c: Delete.
* sysdeps/sparc/sparc32/sparcv9/bcopy.c: Delete.
* sysdeps/sparc/sparc32/sparcv9/memmove.c: Delete.
* sysdeps/sparc/sparc64/bcopy.c: Delete.
* sysdeps/sparc/sparc64/memmove.c: Delete.
* sysdeps/sparc/sparc64/memcopy.h: New.
* sysdeps/sparc/sparc32/memcpy.S (bcopy, memmove): Remove.
* sysdeps/sparc/sparc64/memcpy.S (bcopy, memmove): Likewise.
* sysdeps/sparc/sparc64/sparcv9b/memcpy.S (bcopy, memmove): Likewise.
* sysdeps/sparc/sparc64/sparcv9v/memcpy.S (bcopy, memmove): Likewise.
* sysdeps/sparc/sparc64/sparcv9v2/memcpy.S (bcopy, memmove): Likewise.

13 files changed:
ChangeLog
sysdeps/sparc/sparc32/bcopy.c [deleted file]
sysdeps/sparc/sparc32/memcpy.S
sysdeps/sparc/sparc32/memmove.c [deleted file]
sysdeps/sparc/sparc32/sparcv9/bcopy.c [deleted file]
sysdeps/sparc/sparc32/sparcv9/memmove.c [deleted file]
sysdeps/sparc/sparc64/bcopy.c [deleted file]
sysdeps/sparc/sparc64/memcopy.h [new file with mode: 0644]
sysdeps/sparc/sparc64/memcpy.S
sysdeps/sparc/sparc64/memmove.c [deleted file]
sysdeps/sparc/sparc64/sparcv9b/memcpy.S
sysdeps/sparc/sparc64/sparcv9v/memcpy.S
sysdeps/sparc/sparc64/sparcv9v2/memcpy.S

index 1f49dbd..ed2409a 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
        __align_cpy_2, __align_cpy_4, __align_cpy_8, __align_cpy_16):
        Remove.
 
+       * sysdeps/sparc/sparc32/bcopy.c: Delete.
+       * sysdeps/sparc/sparc32/memmove.c: Delete.
+       * sysdeps/sparc/sparc32/sparcv9/bcopy.c: Delete.
+       * sysdeps/sparc/sparc32/sparcv9/memmove.c: Delete.
+       * sysdeps/sparc/sparc64/bcopy.c: Delete.
+       * sysdeps/sparc/sparc64/memmove.c: Delete.
+       * sysdeps/sparc/sparc64/memcopy.h: New.
+       * sysdeps/sparc/sparc32/memcpy.S (bcopy, memmove): Remove.
+       * sysdeps/sparc/sparc64/memcpy.S (bcopy, memmove): Likewise.
+       * sysdeps/sparc/sparc64/sparcv9b/memcpy.S (bcopy, memmove): Likewise.
+       * sysdeps/sparc/sparc64/sparcv9v/memcpy.S (bcopy, memmove): Likewise.
+       * sysdeps/sparc/sparc64/sparcv9v2/memcpy.S (bcopy, memmove): Likewise.
+
 2009-02-20  David S. Miller  <davem@davemloft.net>
 
        * sysdeps/sparc/sparc32/dl-machine.h (elf_machine_runtime_setup):
diff --git a/sysdeps/sparc/sparc32/bcopy.c b/sysdeps/sparc/sparc32/bcopy.c
deleted file mode 100644 (file)
index 9a455f3..0000000
+++ /dev/null
@@ -1 +0,0 @@
-/* bcopy is in memcpy.S */
index 6bd55c0..c9c7c40 100644 (file)
        stb     %t0, [%dst - offset - 0x02];                                                            \
        stb     %t1, [%dst - offset - 0x01];
 
-/* Both these macros have to start with exactly the same insn */
-#define RMOVE_BIGCHUNK(src, dst, offset, t0, t1, t2, t3, t4, t5, t6, t7)                               \
-       ldd     [%src - offset - 0x20], %t0;                                                            \
-       ldd     [%src - offset - 0x18], %t2;                                                            \
-       ldd     [%src - offset - 0x10], %t4;                                                            \
-       ldd     [%src - offset - 0x08], %t6;                                                            \
-       st      %t0, [%dst - offset - 0x20];                                                            \
-       st      %t1, [%dst - offset - 0x1c];                                                            \
-       st      %t2, [%dst - offset - 0x18];                                                            \
-       st      %t3, [%dst - offset - 0x14];                                                            \
-       st      %t4, [%dst - offset - 0x10];                                                            \
-       st      %t5, [%dst - offset - 0x0c];                                                            \
-       st      %t6, [%dst - offset - 0x08];                                                            \
-       st      %t7, [%dst - offset - 0x04];
-
-#define RMOVE_BIGALIGNCHUNK(src, dst, offset, t0, t1, t2, t3, t4, t5, t6, t7)                          \
-       ldd     [%src - offset - 0x20], %t0;                                                            \
-       ldd     [%src - offset - 0x18], %t2;                                                            \
-       ldd     [%src - offset - 0x10], %t4;                                                            \
-       ldd     [%src - offset - 0x08], %t6;                                                            \
-       std     %t0, [%dst - offset - 0x20];                                                            \
-       std     %t2, [%dst - offset - 0x18];                                                            \
-       std     %t4, [%dst - offset - 0x10];                                                            \
-       std     %t6, [%dst - offset - 0x08];
-
-#define RMOVE_LASTCHUNK(src, dst, offset, t0, t1, t2, t3)                                              \
-       ldd     [%src + offset + 0x00], %t0;                                                            \
-       ldd     [%src + offset + 0x08], %t2;                                                            \
-       st      %t0, [%dst + offset + 0x00];                                                            \
-       st      %t1, [%dst + offset + 0x04];                                                            \
-       st      %t2, [%dst + offset + 0x08];                                                            \
-       st      %t3, [%dst + offset + 0x0c];
-
-#define RMOVE_SHORTCHUNK(src, dst, offset, t0, t1)                                                     \
-       ldub    [%src + offset + 0x00], %t0;                                                            \
-       ldub    [%src + offset + 0x01], %t1;                                                            \
-       stb     %t0, [%dst + offset + 0x00];                                                            \
-       stb     %t1, [%dst + offset + 0x01];
-
 #define SMOVE_CHUNK(src, dst, offset, t0, t1, t2, t3, t4, t5, t6, prev, shil, shir, offset2)           \
        ldd     [%src + offset + 0x00], %t0;                                                            \
        ldd     [%src + offset + 0x08], %t2;                                                            \
        .text
        .align  4
 
-ENTRY(bcopy)
-       mov             %o0, %o3
-       mov             %o1, %o0
-       mov             %o3, %o1
-END(bcopy)
-
-ENTRY(memmove)
-       cmp             %o0, %o1
-       st              %o0, [%sp + 64]
-       bleu            9f
-        sub            %o0, %o1, %o4
-
-       add             %o1, %o2, %o3
-       cmp             %o3, %o0
-       bleu            0f
-        andcc          %o4, 3, %o5
-
-       add             %o1, %o2, %o1
-       add             %o0, %o2, %o0
-       bne             77f
-        cmp            %o2, 15
-       bleu            91f
-        andcc          %o1, 3, %g0
-       be              3f
-        nop
-
-       andcc           %o1, 1, %g0
-       be              4f
-        andcc          %o1, 2, %g0
-
-       ldub            [%o1 - 1], %g2
-       sub             %o1, 1, %o1
-       stb             %g2, [%o0 - 1]
-       sub             %o2, 1, %o2
-       be              3f
-        sub            %o0, 1, %o0
-4:     lduh            [%o1 - 2], %g2
-       sub             %o1, 2, %o1
-       sth             %g2, [%o0 - 2]
-       sub             %o2, 2, %o2
-       sub             %o0, 2, %o0
-
-3:     andcc           %o1, 4, %g0
-
-       be              2f
-        mov            %o2, %g1
-
-       ld              [%o1 - 4], %o4
-       sub             %g1, 4, %g1
-       st              %o4, [%o0 - 4]
-       sub             %o1, 4, %o1
-       sub             %o0, 4, %o0
-2:     andcc           %g1, 0xffffff80, %g6
-       be              3f
-        andcc          %o0, 4, %g0
-
-       be              74f + 4
-5:     RMOVE_BIGCHUNK(o1, o0, 0x00, o2, o3, o4, o5, g2, g3, g4, g5)
-       RMOVE_BIGCHUNK(o1, o0, 0x20, o2, o3, o4, o5, g2, g3, g4, g5)
-       RMOVE_BIGCHUNK(o1, o0, 0x40, o2, o3, o4, o5, g2, g3, g4, g5)
-       RMOVE_BIGCHUNK(o1, o0, 0x60, o2, o3, o4, o5, g2, g3, g4, g5)
-       subcc           %g6, 128, %g6
-       sub             %o1, 128, %o1
-       bne             5b
-        sub            %o0, 128, %o0
-
-3:     andcc           %g1, 0x70, %g6
-       be              72f
-        andcc          %g1, 8, %g0
-
-       srl             %g6, 1, %o4
-       mov             %o7, %g2
-       add             %g6, %o4, %o4
-101:   call            100f
-        sub            %o1, %g6, %o1
-       mov             %g2, %o7
-       jmpl            %o5 + (72f - 101b), %g0
-        sub            %o0, %g6, %o0
-
-71:    RMOVE_LASTCHUNK(o1, o0, 0x60, g2, g3, g4, g5)
-       RMOVE_LASTCHUNK(o1, o0, 0x50, g2, g3, g4, g5)
-       RMOVE_LASTCHUNK(o1, o0, 0x40, g2, g3, g4, g5)
-       RMOVE_LASTCHUNK(o1, o0, 0x30, g2, g3, g4, g5)
-       RMOVE_LASTCHUNK(o1, o0, 0x20, g2, g3, g4, g5)
-       RMOVE_LASTCHUNK(o1, o0, 0x10, g2, g3, g4, g5)
-       RMOVE_LASTCHUNK(o1, o0, 0x00, g2, g3, g4, g5)
-72:    be              73f
-        andcc          %g1, 4, %g0
-
-       ldd             [%o1 - 0x08], %g2
-       sub             %o0, 8, %o0
-       sub             %o1, 8, %o1
-       st              %g2, [%o0]
-       st              %g3, [%o0 + 0x04]
-73:    be              1f
-        andcc          %g1, 2, %g0
-
-       ld              [%o1 - 4], %g2
-       sub             %o1, 4, %o1
-       st              %g2, [%o0 - 4]
-       sub             %o0, 4, %o0
-1:     be              1f
-        andcc          %g1, 1, %g0
-
-       lduh            [%o1 - 2], %g2
-       sub             %o1, 2, %o1
-       sth             %g2, [%o0 - 2]
-       sub             %o0, 2, %o0
-1:     be              1f
-        nop
-
-       ldub            [%o1 - 1], %g2
-       stb             %g2, [%o0 - 1]
-1:     retl
-        ld             [%sp + 64], %o0
-
-74:    RMOVE_BIGALIGNCHUNK(o1, o0, 0x00, o2, o3, o4, o5, g2, g3, g4, g5)
-       RMOVE_BIGALIGNCHUNK(o1, o0, 0x20, o2, o3, o4, o5, g2, g3, g4, g5)
-       RMOVE_BIGALIGNCHUNK(o1, o0, 0x40, o2, o3, o4, o5, g2, g3, g4, g5)
-       RMOVE_BIGALIGNCHUNK(o1, o0, 0x60, o2, o3, o4, o5, g2, g3, g4, g5)
-       subcc           %g6, 128, %g6
-       sub             %o1, 128, %o1
-       bne             74b
-        sub            %o0, 128, %o0
-
-       andcc           %g1, 0x70, %g6
-       be              72b
-        andcc          %g1, 8, %g0
-
-       srl             %g6, 1, %o4
-       mov             %o7, %g2
-       add             %g6, %o4, %o4
-102:   call            100f
-        sub            %o1, %g6, %o1
-       mov             %g2, %o7
-       jmpl            %o5 + (72b - 102b), %g0
-        sub            %o0, %g6, %o0
-
-75:    and             %o2, 0xe, %o3
-       mov             %o7, %g2
-       sll             %o3, 3, %o4
-       sub             %o0, %o3, %o0
-103:   call            100f
-        sub            %o1, %o3, %o1
-       mov             %g2, %o7
-       jmpl            %o5 + (76f - 103b), %g0
-        andcc          %o2, 1, %g0
-
-       RMOVE_SHORTCHUNK(o1, o0, 0x0c, g2, g3)
-       RMOVE_SHORTCHUNK(o1, o0, 0x0a, g2, g3)
-       RMOVE_SHORTCHUNK(o1, o0, 0x08, g2, g3)
-       RMOVE_SHORTCHUNK(o1, o0, 0x06, g2, g3)
-       RMOVE_SHORTCHUNK(o1, o0, 0x04, g2, g3)
-       RMOVE_SHORTCHUNK(o1, o0, 0x02, g2, g3)
-       RMOVE_SHORTCHUNK(o1, o0, 0x00, g2, g3)
-
-76:    be              1f
-        nop
-       ldub            [%o1 - 1], %g2
-       stb             %g2, [%o0 - 1]
-1:     retl
-        ld             [%sp + 64], %o0
-
-91:    bne             75b
-        andcc          %o2, 8, %g0
-
-       be              1f
-        andcc          %o2, 4, %g0
-
-       ld              [%o1 - 0x08], %g2
-       ld              [%o1 - 0x04], %g3
-       sub             %o1, 8, %o1
-       st              %g2, [%o0 - 0x08]
-       st              %g3, [%o0 - 0x04]
-       sub             %o0, 8, %o0
-1:     b               73b
-        mov            %o2, %g1
-
-77:    cmp             %o2, 15
-       bleu            75b
-        andcc          %o0, 3, %g0
-       be              64f
-        andcc          %o0, 1, %g0
-       be              63f
-        andcc          %o0, 2, %g0
-       ldub            [%o1 - 1], %g5
-       sub             %o1, 1, %o1
-       stb             %g5, [%o0 - 1]
-       sub             %o0, 1, %o0
-       be              64f
-        sub            %o2, 1, %o2
-
-63:    ldub            [%o1 - 1], %g5
-       sub             %o1, 2, %o1
-       stb             %g5, [%o0 - 1]
-       sub             %o0, 2, %o0
-       ldub            [%o1], %g5
-       sub             %o2, 2, %o2
-       stb             %g5, [%o0]
-64:    and             %o1, 3, %g2
-       and             %o1, -4, %o1
-       and             %o2, 0xc, %g3
-       add             %o1, 4, %o1
-       cmp             %g3, 4
-       sll             %g2, 3, %g4
-       mov             32, %g2
-       be              4f
-        sub            %g2, %g4, %g6
-
-       blu             3f
-        cmp            %g3, 8
-
-       be              2f
-        srl            %o2, 2, %g3
-
-       ld              [%o1 - 4], %o3
-       add             %o0, -8, %o0
-       ld              [%o1 - 8], %o4
-       add             %o1, -16, %o1
-       b               7f
-        add            %g3, 1, %g3
-2:     ld              [%o1 - 4], %o4
-       add             %o0, -4, %o0
-       ld              [%o1 - 8], %g1
-       add             %o1, -12, %o1
-       b               8f
-        add            %g3, 2, %g3
-3:     ld              [%o1 - 4], %o5
-       add             %o0, -12, %o0
-       ld              [%o1 - 8], %o3
-       add             %o1, -20, %o1
-       b               6f
-        srl            %o2, 2, %g3
-4:     ld              [%o1 - 4], %g1
-       srl             %o2, 2, %g3
-       ld              [%o1 - 8], %o5
-       add             %o1, -24, %o1
-       add             %o0, -16, %o0
-       add             %g3, -1, %g3
-
-       ld              [%o1 + 12], %o3
-5:     sll             %o5, %g4, %g2
-       srl             %g1, %g6, %g5
-       or              %g2, %g5, %g2
-       st              %g2, [%o0 + 12]
-6:     ld              [%o1 + 8], %o4
-       sll             %o3, %g4, %g2
-       srl             %o5, %g6, %g5
-       or              %g2, %g5, %g2
-       st              %g2, [%o0 + 8]
-7:     ld              [%o1 + 4], %g1
-       sll             %o4, %g4, %g2
-       srl             %o3, %g6, %g5
-       or              %g2, %g5, %g2
-       st              %g2, [%o0 + 4]
-8:     ld              [%o1], %o5
-       sll             %g1, %g4, %g2
-       srl             %o4, %g6, %g5
-       addcc           %g3, -4, %g3
-       or              %g2, %g5, %g2
-       add             %o1, -16, %o1
-       st              %g2, [%o0]
-       add             %o0, -16, %o0
-       bne,a           5b      
-        ld             [%o1 + 12], %o3
-       sll             %o5, %g4, %g2
-       srl             %g1, %g6, %g5
-       srl             %g4, 3, %g3
-       or              %g2, %g5, %g2
-       add             %o1, %g3, %o1
-       andcc           %o2, 2, %g0
-       st              %g2, [%o0 + 12]
-       be              1f
-        andcc          %o2, 1, %g0
-       
-       ldub            [%o1 + 15], %g5
-       add             %o1, -2, %o1
-       stb             %g5, [%o0 + 11]
-       add             %o0, -2, %o0
-       ldub            [%o1 + 16], %g5
-       stb             %g5, [%o0 + 12]
-1:     be              1f
-        nop
-       ldub            [%o1 + 15], %g5
-       stb             %g5, [%o0 + 11]
-1:     retl
-        ld             [%sp + 64], %o0
-
-78:    andcc           %o1, 1, %g0
-       be              4f
-        andcc          %o1, 2, %g0
-
-       ldub            [%o1], %g2
-       add             %o1, 1, %o1
-       stb             %g2, [%o0]
-       sub             %o2, 1, %o2
-       bne             3f
-        add            %o0, 1, %o0
-4:     lduh            [%o1], %g2
-       add             %o1, 2, %o1
-       sth             %g2, [%o0]
-       sub             %o2, 2, %o2
-       b               3f
-        add            %o0, 2, %o0
-END(memmove)
-
 ENTRY(memcpy)          /* %o0=dst %o1=src %o2=len */
        sub             %o0, %o1, %o4
        st              %o0, [%sp + 64]
@@ -968,5 +623,5 @@ ENTRY(memcpy)               /* %o0=dst %o1=src %o2=len */
 110:   retl
         sub            %o7, %g6, %o5
 END(memcpy)
+
 libc_hidden_builtin_def (memcpy)
-libc_hidden_builtin_def (memmove)
diff --git a/sysdeps/sparc/sparc32/memmove.c b/sysdeps/sparc/sparc32/memmove.c
deleted file mode 100644 (file)
index a8d2d49..0000000
+++ /dev/null
@@ -1 +0,0 @@
-/* memmove is in memcpy.S */
diff --git a/sysdeps/sparc/sparc32/sparcv9/bcopy.c b/sysdeps/sparc/sparc32/sparcv9/bcopy.c
deleted file mode 100644 (file)
index 9a455f3..0000000
+++ /dev/null
@@ -1 +0,0 @@
-/* bcopy is in memcpy.S */
diff --git a/sysdeps/sparc/sparc32/sparcv9/memmove.c b/sysdeps/sparc/sparc32/sparcv9/memmove.c
deleted file mode 100644 (file)
index a8d2d49..0000000
+++ /dev/null
@@ -1 +0,0 @@
-/* memmove is in memcpy.S */
diff --git a/sysdeps/sparc/sparc64/bcopy.c b/sysdeps/sparc/sparc64/bcopy.c
deleted file mode 100644 (file)
index 9a455f3..0000000
+++ /dev/null
@@ -1 +0,0 @@
-/* bcopy is in memcpy.S */
diff --git a/sysdeps/sparc/sparc64/memcopy.h b/sysdeps/sparc/sparc64/memcopy.h
new file mode 100644 (file)
index 0000000..ec978e3
--- /dev/null
@@ -0,0 +1 @@
+#include <sparc32/memcopy.h>
index 709d366..71e7100 100644 (file)
        stx             %t0, [%dst - offset - 0x10];            \
        stx             %t1, [%dst - offset - 0x08];
 
-       /* Macros for non-VIS memmove code. */
-#define RMOVE_BIGCHUNK(src, dst, offset, t0, t1, t2, t3)       \
-       ldx             [%src - offset - 0x20], %t0;            \
-       ldx             [%src - offset - 0x18], %t1;            \
-       ldx             [%src - offset - 0x10], %t2;            \
-       ldx             [%src - offset - 0x08], %t3;            \
-       stw             %t0, [%dst - offset - 0x1c];            \
-       srlx            %t0, 32, %t0;                           \
-       stw             %t0, [%dst - offset - 0x20];            \
-       stw             %t1, [%dst - offset - 0x14];            \
-       srlx            %t1, 32, %t1;                           \
-       stw             %t1, [%dst - offset - 0x18];            \
-       stw             %t2, [%dst - offset - 0x0c];            \
-       srlx            %t2, 32, %t2;                           \
-       stw             %t2, [%dst - offset - 0x10];            \
-       stw             %t3, [%dst - offset - 0x04];            \
-       srlx            %t3, 32, %t3;                           \
-       stw             %t3, [%dst - offset - 0x08];
-
-#define RMOVE_BIGALIGNCHUNK(src, dst, offset, t0, t1, t2, t3)  \
-       ldx             [%src - offset - 0x20], %t0;            \
-       ldx             [%src - offset - 0x18], %t1;            \
-       ldx             [%src - offset - 0x10], %t2;            \
-       ldx             [%src - offset - 0x08], %t3;            \
-       stx             %t0, [%dst - offset - 0x20];            \
-       stx             %t1, [%dst - offset - 0x18];            \
-       stx             %t2, [%dst - offset - 0x10];            \
-       stx             %t3, [%dst - offset - 0x08];            \
-       ldx             [%src - offset - 0x40], %t0;            \
-       ldx             [%src - offset - 0x38], %t1;            \
-       ldx             [%src - offset - 0x30], %t2;            \
-       ldx             [%src - offset - 0x28], %t3;            \
-       stx             %t0, [%dst - offset - 0x40];            \
-       stx             %t1, [%dst - offset - 0x38];            \
-       stx             %t2, [%dst - offset - 0x30];            \
-       stx             %t3, [%dst - offset - 0x28];
-
-#define RMOVE_LASTCHUNK(src, dst, offset, t0, t1, t2, t3)      \
-       ldx             [%src + offset + 0x00], %t0;            \
-       ldx             [%src + offset + 0x08], %t1;            \
-       stw             %t0, [%dst + offset + 0x04];            \
-       srlx            %t0, 32, %t2;                           \
-       stw             %t2, [%dst + offset + 0x00];            \
-       stw             %t1, [%dst + offset + 0x0c];            \
-       srlx            %t1, 32, %t3;                           \
-       stw             %t3, [%dst + offset + 0x08];
-
-#define RMOVE_LASTALIGNCHUNK(src, dst, offset, t0, t1)         \
-       ldx             [%src + offset + 0x00], %t0;            \
-       ldx             [%src + offset + 0x08], %t1;            \
-       stx             %t0, [%dst + offset + 0x00];            \
-       stx             %t1, [%dst + offset + 0x08];
-
        .text
        .align          32
-
-ENTRY(bcopy)
-       sub             %o1, %o0, %o4                   /* IEU0         Group           */
-       mov             %o0, %g3                        /* IEU1                         */
-       cmp             %o4, %o2                        /* IEU1         Group           */
-       mov             %o1, %o0                        /* IEU0                         */
-       bgeu,pt         %XCC, 210f                      /* CTI                          */
-        mov            %g3, %o1                        /* IEU0         Group           */
-#ifndef USE_BPR
-       srl             %o2, 0, %o2                     /* IEU1                         */
-#endif
-       brnz,pn         %o2, 220f                       /* CTI          Group           */
-        add            %o0, %o2, %o0                   /* IEU0                         */
-       retl
-        nop
-END(bcopy)
-
-       .align          32
 ENTRY(__memcpy_large)
 200:   be,pt           %xcc, 201f                      /* CTI                          */
         andcc          %o0, 0x38, %g5                  /* IEU1         Group           */
@@ -640,223 +569,4 @@ ENTRY(memcpy)
         mov            %g4, %o0
 END(memcpy)
 
-       .align          32
-ENTRY(__memmove_slowpath)
-228:   andcc           %o2, 1, %g0                     /* IEU1         Group           */
-       be,pt           %icc, 2f+4                      /* CTI                          */
-1:      ldub           [%o1 - 1], %o5                  /* LOAD         Group           */
-       sub             %o1, 1, %o1                     /* IEU0                         */
-       sub             %o0, 1, %o0                     /* IEU1                         */
-       subcc           %o2, 1, %o2                     /* IEU1         Group           */
-       be,pn           %xcc, 229f                      /* CTI                          */
-        stb            %o5, [%o0]                      /* Store                        */
-2:     ldub            [%o1 - 1], %o5                  /* LOAD         Group           */
-       sub             %o0, 2, %o0                     /* IEU0                         */
-       ldub            [%o1 - 2], %g5                  /* LOAD         Group           */
-       sub             %o1, 2, %o1                     /* IEU0                         */
-       subcc           %o2, 2, %o2                     /* IEU1         Group           */
-       stb             %o5, [%o0 + 1]                  /* Store                        */
-       bne,pt          %xcc, 2b                        /* CTI                          */
-        stb            %g5, [%o0]                      /* Store                        */
-229:   retl
-        mov            %g4, %o0
-219:   retl
-        nop
-END(__memmove_slowpath)
-
-       .align          32
-ENTRY(memmove)
-#ifndef USE_BPR
-       srl             %o2, 0, %o2                     /* IEU1         Group           */
-#endif
-       brz,pn          %o2, 219b                       /* CTI          Group           */
-        sub            %o0, %o1, %o4                   /* IEU0                         */
-       cmp             %o4, %o2                        /* IEU1         Group           */
-       bgeu,pt         %XCC, 218b                      /* CTI                          */
-        mov            %o0, %g4                        /* IEU0                         */
-       add             %o0, %o2, %o0                   /* IEU0         Group           */
-220:   add             %o1, %o2, %o1                   /* IEU1                         */
-       cmp             %o2, 15                         /* IEU1         Group           */
-       bleu,pn         %xcc, 228b                      /* CTI                          */
-        andcc          %o0, 7, %g2                     /* IEU1         Group           */
-       sub             %o0, %o1, %g5                   /* IEU0                         */
-       andcc           %g5, 3, %o5                     /* IEU1         Group           */
-       bne,pn          %xcc, 232f                      /* CTI                          */
-        andcc          %o1, 3, %g0                     /* IEU1         Group           */
-       be,a,pt         %xcc, 236f                      /* CTI                          */
-        andcc          %o1, 4, %g0                     /* IEU1         Group           */
-       andcc           %o1, 1, %g0                     /* IEU1         Group           */
-       be,pn           %xcc, 4f                        /* CTI                          */
-        andcc          %o1, 2, %g0                     /* IEU1         Group           */
-       ldub            [%o1 - 1], %g2                  /* Load         Group           */
-       sub             %o1, 1, %o1                     /* IEU0                         */
-       sub             %o0, 1, %o0                     /* IEU1                         */
-       sub             %o2, 1, %o2                     /* IEU0         Group           */
-       be,pn           %xcc, 5f                        /* CTI          Group           */
-        stb            %g2, [%o0]                      /* Store                        */
-4:     lduh            [%o1 - 2], %g2                  /* Load         Group           */
-       sub             %o1, 2, %o1                     /* IEU0                         */
-       sub             %o0, 2, %o0                     /* IEU1                         */
-       sub             %o2, 2, %o2                     /* IEU0                         */
-       sth             %g2, [%o0]                      /* Store        Group + bubble  */
-5:     andcc           %o1, 4, %g0                     /* IEU1                         */
-236:   be,a,pn         %xcc, 2f                        /* CTI                          */
-        andcc          %o2, -128, %g6                  /* IEU1         Group           */
-       lduw            [%o1 - 4], %g5                  /* Load         Group           */
-       sub             %o1, 4, %o1                     /* IEU0                         */
-       sub             %o0, 4, %o0                     /* IEU1                         */
-       sub             %o2, 4, %o2                     /* IEU0         Group           */
-       stw             %g5, [%o0]                      /* Store                        */
-       andcc           %o2, -128, %g6                  /* IEU1         Group           */
-2:     be,pn           %xcc, 235f                      /* CTI                          */
-        andcc          %o0, 4, %g0                     /* IEU1         Group           */
-       be,pn           %xcc, 282f + 4                  /* CTI          Group           */
-5:     RMOVE_BIGCHUNK(o1, o0, 0x00, g1, g3, g5, o5)
-       RMOVE_BIGCHUNK(o1, o0, 0x20, g1, g3, g5, o5)
-       RMOVE_BIGCHUNK(o1, o0, 0x40, g1, g3, g5, o5)
-       RMOVE_BIGCHUNK(o1, o0, 0x60, g1, g3, g5, o5)
-       subcc           %g6, 128, %g6                   /* IEU1         Group           */
-       sub             %o1, 128, %o1                   /* IEU0                         */
-       bne,pt          %xcc, 5b                        /* CTI                          */
-        sub            %o0, 128, %o0                   /* IEU0         Group           */
-235:   andcc           %o2, 0x70, %g6                  /* IEU1         Group           */
-41:    be,pn           %xcc, 280f                      /* CTI                          */
-        andcc          %o2, 8, %g0                     /* IEU1         Group           */
-                                                       /* Clk1 8-(                     */
-                                                       /* Clk2 8-(                     */
-                                                       /* Clk3 8-(                     */
-                                                       /* Clk4 8-(                     */
-279:   rd              %pc, %o5                        /* PDU          Group           */
-       sll             %g6, 1, %g5                     /* IEU0         Group           */
-       sub             %o1, %g6, %o1                   /* IEU1                         */
-       sub             %o5, %g5, %o5                   /* IEU0         Group           */
-       jmpl            %o5 + %lo(280f - 279b), %g0     /* CTI          Group brk forced*/
-        sub            %o0, %g6, %o0                   /* IEU0         Group           */
-       RMOVE_LASTCHUNK(o1, o0, 0x60, g2, g3, g5, o5)
-       RMOVE_LASTCHUNK(o1, o0, 0x50, g2, g3, g5, o5)
-       RMOVE_LASTCHUNK(o1, o0, 0x40, g2, g3, g5, o5)
-       RMOVE_LASTCHUNK(o1, o0, 0x30, g2, g3, g5, o5)
-       RMOVE_LASTCHUNK(o1, o0, 0x20, g2, g3, g5, o5)
-       RMOVE_LASTCHUNK(o1, o0, 0x10, g2, g3, g5, o5)
-       RMOVE_LASTCHUNK(o1, o0, 0x00, g2, g3, g5, o5)
-280:   be,pt           %xcc, 281f                      /* CTI                          */
-        andcc          %o2, 4, %g0                     /* IEU1                         */
-       ldx             [%o1 - 8], %g2                  /* Load         Group           */
-       sub             %o0, 8, %o0                     /* IEU0                         */
-       stw             %g2, [%o0 + 4]                  /* Store        Group           */
-       sub             %o1, 8, %o1                     /* IEU1                         */
-       srlx            %g2, 32, %g2                    /* IEU0         Group           */
-       stw             %g2, [%o0]                      /* Store                        */
-281:   be,pt           %xcc, 1f                        /* CTI                          */
-        andcc          %o2, 2, %g0                     /* IEU1         Group           */
-       lduw            [%o1 - 4], %g2                  /* Load         Group           */
-       sub             %o1, 4, %o1                     /* IEU0                         */
-       stw             %g2, [%o0 - 4]                  /* Store        Group           */
-       sub             %o0, 4, %o0                     /* IEU0                         */
-1:     be,pt           %xcc, 1f                        /* CTI                          */
-        andcc          %o2, 1, %g0                     /* IEU1         Group           */
-       lduh            [%o1 - 2], %g2                  /* Load         Group           */
-       sub             %o1, 2, %o1                     /* IEU0                         */
-       sth             %g2, [%o0 - 2]                  /* Store        Group           */
-       sub             %o0, 2, %o0                     /* IEU0                         */
-1:     be,pt           %xcc, 211f                      /* CTI                          */
-        nop                                            /* IEU1                         */
-       ldub            [%o1 - 1], %g2                  /* Load         Group           */
-       stb             %g2, [%o0 - 1]                  /* Store        Group + bubble  */
-211:   retl
-        mov            %g4, %o0
-
-282:   RMOVE_BIGALIGNCHUNK(o1, o0, 0x00, g1, g3, g5, o5)
-       RMOVE_BIGALIGNCHUNK(o1, o0, 0x40, g1, g3, g5, o5)
-       subcc           %g6, 128, %g6                   /* IEU1         Group           */
-       sub             %o1, 128, %o1                   /* IEU0                         */
-       bne,pt          %xcc, 282b                      /* CTI                          */
-        sub            %o0, 128, %o0                   /* IEU0         Group           */
-       andcc           %o2, 0x70, %g6                  /* IEU1                         */
-       be,pn           %xcc, 284f                      /* CTI                          */
-        andcc          %o2, 8, %g0                     /* IEU1         Group           */
-                                                       /* Clk1 8-(                     */
-                                                       /* Clk2 8-(                     */
-                                                       /* Clk3 8-(                     */
-                                                       /* Clk4 8-(                     */
-283:   rd              %pc, %o5                        /* PDU          Group           */
-       sub             %o1, %g6, %o1                   /* IEU0         Group           */
-       sub             %o5, %g6, %o5                   /* IEU1                         */
-       jmpl            %o5 + %lo(284f - 283b), %g0     /* CTI          Group brk forced*/
-        sub            %o0, %g6, %o0                   /* IEU0         Group           */
-       RMOVE_LASTALIGNCHUNK(o1, o0, 0x60, g2, g3)
-       RMOVE_LASTALIGNCHUNK(o1, o0, 0x50, g2, g3)
-       RMOVE_LASTALIGNCHUNK(o1, o0, 0x40, g2, g3)
-       RMOVE_LASTALIGNCHUNK(o1, o0, 0x30, g2, g3)
-       RMOVE_LASTALIGNCHUNK(o1, o0, 0x20, g2, g3)
-       RMOVE_LASTALIGNCHUNK(o1, o0, 0x10, g2, g3)
-       RMOVE_LASTALIGNCHUNK(o1, o0, 0x00, g2, g3)
-284:   be,pt           %xcc, 285f                      /* CTI          Group           */
-        andcc          %o2, 4, %g0                     /* IEU1                         */
-       ldx             [%o1 - 8], %g2                  /* Load         Group           */
-       sub             %o0, 8, %o0                     /* IEU0                         */
-       sub             %o1, 8, %o1                     /* IEU0         Group           */
-       stx             %g2, [%o0]                      /* Store                        */
-285:   be,pt           %xcc, 1f                        /* CTI                          */
-        andcc          %o2, 2, %g0                     /* IEU1         Group           */
-       lduw            [%o1 - 4], %g2                  /* Load         Group           */
-       sub             %o0, 4, %o0                     /* IEU0                         */
-       sub             %o1, 4, %o1                     /* IEU0         Group           */
-       stw             %g2, [%o0]                      /* Store                        */
-1:     be,pt           %xcc, 1f                        /* CTI                          */
-        andcc          %o2, 1, %g0                     /* IEU1         Group           */
-       lduh            [%o1 - 2], %g2                  /* Load         Group           */
-       sub             %o0, 2, %o0                     /* IEU0                         */
-       sub             %o1, 2, %o1                     /* IEU0         Group           */
-       sth             %g2, [%o0]                      /* Store                        */
-1:     be,pt           %xcc, 1f                        /* CTI                          */
-        nop                                            /* IEU0         Group           */
-       ldub            [%o1 - 1], %g2                  /* Load         Group           */
-       stb             %g2, [%o0 - 1]                  /* Store        Group + bubble  */
-1:     retl
-        mov            %g4, %o0
-
-232:   brz,pt          %g2, 2f                         /* CTI          Group           */
-        sub            %o2, %g2, %o2                   /* IEU0         Group           */
-1:     ldub            [%o1 - 1], %g5                  /* Load         Group           */
-       sub             %o1, 1, %o1                     /* IEU0                         */
-       sub             %o0, 1, %o0                     /* IEU1                         */
-       subcc           %g2, 1, %g2                     /* IEU1         Group           */
-       bne,pt          %xcc, 1b                        /* CTI                          */
-        stb            %g5, [%o0]                      /* Store                        */
-2:     andn            %o2, 7, %g5                     /* IEU0         Group           */
-       and             %o2, 7, %o2                     /* IEU1                         */
-       fmovd           %f0, %f2                        /* FPU                          */
-       alignaddr       %o1, %g0, %g1                   /* GRU          Group           */
-       ldd             [%g1], %f4                      /* Load         Group           */
-1:     ldd             [%g1 - 8], %f6                  /* Load         Group           */
-       sub             %g1, 8, %g1                     /* IEU0         Group           */
-       subcc           %g5, 8, %g5                     /* IEU1                         */
-       faligndata      %f6, %f4, %f0                   /* GRU          Group           */
-       std             %f0, [%o0 - 8]                  /* Store                        */
-       sub             %o1, 8, %o1                     /* IEU0         Group           */
-       be,pn           %xcc, 233f                      /* CTI                          */
-        sub            %o0, 8, %o0                     /* IEU1                         */
-       ldd             [%g1 - 8], %f4                  /* Load         Group           */
-       sub             %g1, 8, %g1                     /* IEU0                         */
-       subcc           %g5, 8, %g5                     /* IEU1                         */
-       faligndata      %f4, %f6, %f0                   /* GRU          Group           */
-       std             %f0, [%o0 - 8]                  /* Store                        */
-       sub             %o1, 8, %o1                     /* IEU0                         */
-       bne,pn          %xcc, 1b                        /* CTI          Group           */
-        sub            %o0, 8, %o0                     /* IEU0                         */
-233:   brz,pn          %o2, 234f                       /* CTI          Group           */
-        nop                                            /* IEU0                         */
-237:   ldub            [%o1 - 1], %g5                  /* LOAD                         */
-       sub             %o1, 1, %o1                     /* IEU0                         */
-       sub             %o0, 1, %o0                     /* IEU1                         */
-       subcc           %o2, 1, %o2                     /* IEU1                         */
-       bne,pt          %xcc, 237b                      /* CTI                          */
-        stb            %g5, [%o0]                      /* Store        Group           */
-234:   wr              %g0, FPRS_FEF, %fprs
-       retl
-        mov            %g4, %o0
-END(memmove)
-
 libc_hidden_builtin_def (memcpy)
-libc_hidden_builtin_def (memmove)
diff --git a/sysdeps/sparc/sparc64/memmove.c b/sysdeps/sparc/sparc64/memmove.c
deleted file mode 100644 (file)
index a8d2d49..0000000
+++ /dev/null
@@ -1 +0,0 @@
-/* memmove is in memcpy.S */
index 2a4146f..389e09d 100644 (file)
        .register       %g6,#scratch
 
        .text
-       .align  32
-
-ENTRY(bcopy)
-       sub             %o1, %o0, %o4
-       mov             %o0, %g4
-       cmp             %o4, %o2
-       mov             %o1, %o0
-       bgeu,pt         %XCC, 100f
-        mov            %g4, %o1
-#ifndef USE_BPR
-       srl             %o2, 0, %o2
-#endif
-       brnz,pn         %o2, 220f
-        add            %o0, %o2, %o0
-       retl
-        nop
-END(bcopy)
 
        /* Special/non-trivial issues of this code:
         *
@@ -332,272 +315,4 @@ small_copy_unaligned:
 
 END(memcpy)
 
-#define RMOVE_BIGCHUNK(src, dst, offset, t0, t1, t2, t3)       \
-       ldx             [%src - offset - 0x20], %t0;            \
-       ldx             [%src - offset - 0x18], %t1;            \
-       ldx             [%src - offset - 0x10], %t2;            \
-       ldx             [%src - offset - 0x08], %t3;            \
-       stw             %t0, [%dst - offset - 0x1c];            \
-       srlx            %t0, 32, %t0;                           \
-       stw             %t0, [%dst - offset - 0x20];            \
-       stw             %t1, [%dst - offset - 0x14];            \
-       srlx            %t1, 32, %t1;                           \
-       stw             %t1, [%dst - offset - 0x18];            \
-       stw             %t2, [%dst - offset - 0x0c];            \
-       srlx            %t2, 32, %t2;                           \
-       stw             %t2, [%dst - offset - 0x10];            \
-       stw             %t3, [%dst - offset - 0x04];            \
-       srlx            %t3, 32, %t3;                           \
-       stw             %t3, [%dst - offset - 0x08];
-
-#define RMOVE_BIGALIGNCHUNK(src, dst, offset, t0, t1, t2, t3)  \
-       ldx             [%src - offset - 0x20], %t0;            \
-       ldx             [%src - offset - 0x18], %t1;            \
-       ldx             [%src - offset - 0x10], %t2;            \
-       ldx             [%src - offset - 0x08], %t3;            \
-       stx             %t0, [%dst - offset - 0x20];            \
-       stx             %t1, [%dst - offset - 0x18];            \
-       stx             %t2, [%dst - offset - 0x10];            \
-       stx             %t3, [%dst - offset - 0x08];            \
-       ldx             [%src - offset - 0x40], %t0;            \
-       ldx             [%src - offset - 0x38], %t1;            \
-       ldx             [%src - offset - 0x30], %t2;            \
-       ldx             [%src - offset - 0x28], %t3;            \
-       stx             %t0, [%dst - offset - 0x40];            \
-       stx             %t1, [%dst - offset - 0x38];            \
-       stx             %t2, [%dst - offset - 0x30];            \
-       stx             %t3, [%dst - offset - 0x28];
-
-#define RMOVE_LASTCHUNK(src, dst, offset, t0, t1, t2, t3)      \
-       ldx             [%src + offset + 0x00], %t0;            \
-       ldx             [%src + offset + 0x08], %t1;            \
-       stw             %t0, [%dst + offset + 0x04];            \
-       srlx            %t0, 32, %t2;                           \
-       stw             %t2, [%dst + offset + 0x00];            \
-       stw             %t1, [%dst + offset + 0x0c];            \
-       srlx            %t1, 32, %t3;                           \
-       stw             %t3, [%dst + offset + 0x08];
-
-#define RMOVE_LASTALIGNCHUNK(src, dst, offset, t0, t1)         \
-       ldx             [%src + offset + 0x00], %t0;            \
-       ldx             [%src + offset + 0x08], %t1;            \
-       stx             %t0, [%dst + offset + 0x00];            \
-       stx             %t1, [%dst + offset + 0x08];
-
-       .align          32
-228:   andcc           %o2, 1, %g0                     /* IEU1         Group           */
-       be,pt           %icc, 2f+4                      /* CTI                          */
-1:      ldub           [%o1 - 1], %o5                  /* LOAD         Group           */
-       sub             %o1, 1, %o1                     /* IEU0                         */
-       sub             %o0, 1, %o0                     /* IEU1                         */
-       subcc           %o2, 1, %o2                     /* IEU1         Group           */
-       be,pn           %xcc, 229f                      /* CTI                          */
-        stb            %o5, [%o0]                      /* Store                        */
-2:     ldub            [%o1 - 1], %o5                  /* LOAD         Group           */
-       sub             %o0, 2, %o0                     /* IEU0                         */
-       ldub            [%o1 - 2], %g5                  /* LOAD         Group           */
-       sub             %o1, 2, %o1                     /* IEU0                         */
-       subcc           %o2, 2, %o2                     /* IEU1         Group           */
-       stb             %o5, [%o0 + 1]                  /* Store                        */
-       bne,pt          %xcc, 2b                        /* CTI                          */
-        stb            %g5, [%o0]                      /* Store                        */
-229:   retl
-        mov            %g4, %o0
-
-       .align          32
-ENTRY(memmove)
-       mov             %o0, %g5
-#ifndef USE_BPR
-       srl             %o2, 0, %o2                     /* IEU1         Group           */
-#endif
-       brz,pn          %o2, out                        /* CTI          Group           */
-        sub            %o0, %o1, %o4                   /* IEU0                         */
-       cmp             %o4, %o2                        /* IEU1         Group           */
-       bgeu,pt         %XCC, 218b                      /* CTI                          */
-        mov            %o0, %g4                        /* IEU0                         */
-       add             %o0, %o2, %o0                   /* IEU0         Group           */
-220:   add             %o1, %o2, %o1                   /* IEU1                         */
-       cmp             %o2, 15                         /* IEU1         Group           */
-       bleu,pn         %xcc, 228b                      /* CTI                          */
-        andcc          %o0, 7, %g2                     /* IEU1         Group           */
-       sub             %o0, %o1, %g5                   /* IEU0                         */
-       andcc           %g5, 3, %o5                     /* IEU1         Group           */
-       bne,pn          %xcc, 232f                      /* CTI                          */
-        andcc          %o1, 3, %g0                     /* IEU1         Group           */
-       be,a,pt         %xcc, 236f                      /* CTI                          */
-        andcc          %o1, 4, %g0                     /* IEU1         Group           */
-       andcc           %o1, 1, %g0                     /* IEU1         Group           */
-       be,pn           %xcc, 4f                        /* CTI                          */
-        andcc          %o1, 2, %g0                     /* IEU1         Group           */
-       ldub            [%o1 - 1], %g2                  /* Load         Group           */
-       sub             %o1, 1, %o1                     /* IEU0                         */
-       sub             %o0, 1, %o0                     /* IEU1                         */
-       sub             %o2, 1, %o2                     /* IEU0         Group           */
-       be,pn           %xcc, 5f                        /* CTI          Group           */
-        stb            %g2, [%o0]                      /* Store                        */
-4:     lduh            [%o1 - 2], %g2                  /* Load         Group           */
-       sub             %o1, 2, %o1                     /* IEU0                         */
-       sub             %o0, 2, %o0                     /* IEU1                         */
-       sub             %o2, 2, %o2                     /* IEU0                         */
-       sth             %g2, [%o0]                      /* Store        Group + bubble  */
-5:     andcc           %o1, 4, %g0                     /* IEU1                         */
-236:   be,a,pn         %xcc, 2f                        /* CTI                          */
-        andcc          %o2, -128, %g6                  /* IEU1         Group           */
-       lduw            [%o1 - 4], %g5                  /* Load         Group           */
-       sub             %o1, 4, %o1                     /* IEU0                         */
-       sub             %o0, 4, %o0                     /* IEU1                         */
-       sub             %o2, 4, %o2                     /* IEU0         Group           */
-       stw             %g5, [%o0]                      /* Store                        */
-       andcc           %o2, -128, %g6                  /* IEU1         Group           */
-2:     be,pn           %xcc, 235f                      /* CTI                          */
-        andcc          %o0, 4, %g0                     /* IEU1         Group           */
-       be,pn           %xcc, 282f + 4                  /* CTI          Group           */
-5:     RMOVE_BIGCHUNK(o1, o0, 0x00, g1, g3, g5, o5)
-       RMOVE_BIGCHUNK(o1, o0, 0x20, g1, g3, g5, o5)
-       RMOVE_BIGCHUNK(o1, o0, 0x40, g1, g3, g5, o5)
-       RMOVE_BIGCHUNK(o1, o0, 0x60, g1, g3, g5, o5)
-       subcc           %g6, 128, %g6                   /* IEU1         Group           */
-       sub             %o1, 128, %o1                   /* IEU0                         */
-       bne,pt          %xcc, 5b                        /* CTI                          */
-        sub            %o0, 128, %o0                   /* IEU0         Group           */
-235:   andcc           %o2, 0x70, %g6                  /* IEU1         Group           */
-41:    be,pn           %xcc, 280f                      /* CTI                          */
-        andcc          %o2, 8, %g0                     /* IEU1         Group           */
-                                                       /* Clk1 8-(                     */
-                                                       /* Clk2 8-(                     */
-                                                       /* Clk3 8-(                     */
-                                                       /* Clk4 8-(                     */
-279:   rd              %pc, %o5                        /* PDU          Group           */
-       sll             %g6, 1, %g5                     /* IEU0         Group           */
-       sub             %o1, %g6, %o1                   /* IEU1                         */
-       sub             %o5, %g5, %o5                   /* IEU0         Group           */
-       jmpl            %o5 + %lo(280f - 279b), %g0     /* CTI          Group brk forced*/
-        sub            %o0, %g6, %o0                   /* IEU0         Group           */
-       RMOVE_LASTCHUNK(o1, o0, 0x60, g2, g3, g5, o5)
-       RMOVE_LASTCHUNK(o1, o0, 0x50, g2, g3, g5, o5)
-       RMOVE_LASTCHUNK(o1, o0, 0x40, g2, g3, g5, o5)
-       RMOVE_LASTCHUNK(o1, o0, 0x30, g2, g3, g5, o5)
-       RMOVE_LASTCHUNK(o1, o0, 0x20, g2, g3, g5, o5)
-       RMOVE_LASTCHUNK(o1, o0, 0x10, g2, g3, g5, o5)
-       RMOVE_LASTCHUNK(o1, o0, 0x00, g2, g3, g5, o5)
-280:   be,pt           %xcc, 281f                      /* CTI                          */
-        andcc          %o2, 4, %g0                     /* IEU1                         */
-       ldx             [%o1 - 8], %g2                  /* Load         Group           */
-       sub             %o0, 8, %o0                     /* IEU0                         */
-       stw             %g2, [%o0 + 4]                  /* Store        Group           */
-       sub             %o1, 8, %o1                     /* IEU1                         */
-       srlx            %g2, 32, %g2                    /* IEU0         Group           */
-       stw             %g2, [%o0]                      /* Store                        */
-281:   be,pt           %xcc, 1f                        /* CTI                          */
-        andcc          %o2, 2, %g0                     /* IEU1         Group           */
-       lduw            [%o1 - 4], %g2                  /* Load         Group           */
-       sub             %o1, 4, %o1                     /* IEU0                         */
-       stw             %g2, [%o0 - 4]                  /* Store        Group           */
-       sub             %o0, 4, %o0                     /* IEU0                         */
-1:     be,pt           %xcc, 1f                        /* CTI                          */
-        andcc          %o2, 1, %g0                     /* IEU1         Group           */
-       lduh            [%o1 - 2], %g2                  /* Load         Group           */
-       sub             %o1, 2, %o1                     /* IEU0                         */
-       sth             %g2, [%o0 - 2]                  /* Store        Group           */
-       sub             %o0, 2, %o0                     /* IEU0                         */
-1:     be,pt           %xcc, 211f                      /* CTI                          */
-        nop                                            /* IEU1                         */
-       ldub            [%o1 - 1], %g2                  /* Load         Group           */
-       stb             %g2, [%o0 - 1]                  /* Store        Group + bubble  */
-211:   retl
-        mov            %g4, %o0
-
-282:   RMOVE_BIGALIGNCHUNK(o1, o0, 0x00, g1, g3, g5, o5)
-       RMOVE_BIGALIGNCHUNK(o1, o0, 0x40, g1, g3, g5, o5)
-       subcc           %g6, 128, %g6                   /* IEU1         Group           */
-       sub             %o1, 128, %o1                   /* IEU0                         */
-       bne,pt          %xcc, 282b                      /* CTI                          */
-        sub            %o0, 128, %o0                   /* IEU0         Group           */
-       andcc           %o2, 0x70, %g6                  /* IEU1                         */
-       be,pn           %xcc, 284f                      /* CTI                          */
-        andcc          %o2, 8, %g0                     /* IEU1         Group           */
-                                                       /* Clk1 8-(                     */
-                                                       /* Clk2 8-(                     */
-                                                       /* Clk3 8-(                     */
-                                                       /* Clk4 8-(                     */
-283:   rd              %pc, %o5                        /* PDU          Group           */
-       sub             %o1, %g6, %o1                   /* IEU0         Group           */
-       sub             %o5, %g6, %o5                   /* IEU1                         */
-       jmpl            %o5 + %lo(284f - 283b), %g0     /* CTI          Group brk forced*/
-        sub            %o0, %g6, %o0                   /* IEU0         Group           */
-       RMOVE_LASTALIGNCHUNK(o1, o0, 0x60, g2, g3)
-       RMOVE_LASTALIGNCHUNK(o1, o0, 0x50, g2, g3)
-       RMOVE_LASTALIGNCHUNK(o1, o0, 0x40, g2, g3)
-       RMOVE_LASTALIGNCHUNK(o1, o0, 0x30, g2, g3)
-       RMOVE_LASTALIGNCHUNK(o1, o0, 0x20, g2, g3)
-       RMOVE_LASTALIGNCHUNK(o1, o0, 0x10, g2, g3)
-       RMOVE_LASTALIGNCHUNK(o1, o0, 0x00, g2, g3)
-284:   be,pt           %xcc, 285f                      /* CTI          Group           */
-        andcc          %o2, 4, %g0                     /* IEU1                         */
-       ldx             [%o1 - 8], %g2                  /* Load         Group           */
-       sub             %o0, 8, %o0                     /* IEU0                         */
-       sub             %o1, 8, %o1                     /* IEU0         Group           */
-       stx             %g2, [%o0]                      /* Store                        */
-285:   be,pt           %xcc, 1f                        /* CTI                          */
-        andcc          %o2, 2, %g0                     /* IEU1         Group           */
-       lduw            [%o1 - 4], %g2                  /* Load         Group           */
-       sub             %o0, 4, %o0                     /* IEU0                         */
-       sub             %o1, 4, %o1                     /* IEU0         Group           */
-       stw             %g2, [%o0]                      /* Store                        */
-1:     be,pt           %xcc, 1f                        /* CTI                          */
-        andcc          %o2, 1, %g0                     /* IEU1         Group           */
-       lduh            [%o1 - 2], %g2                  /* Load         Group           */
-       sub             %o0, 2, %o0                     /* IEU0                         */
-       sub             %o1, 2, %o1                     /* IEU0         Group           */
-       sth             %g2, [%o0]                      /* Store                        */
-1:     be,pt           %xcc, 1f                        /* CTI                          */
-        nop                                            /* IEU0         Group           */
-       ldub            [%o1 - 1], %g2                  /* Load         Group           */
-       stb             %g2, [%o0 - 1]                  /* Store        Group + bubble  */
-1:     retl
-        mov            %g4, %o0
-
-232:   brz,pt          %g2, 2f                         /* CTI          Group           */
-        sub            %o2, %g2, %o2                   /* IEU0         Group           */
-1:     ldub            [%o1 - 1], %g5                  /* Load         Group           */
-       sub             %o1, 1, %o1                     /* IEU0                         */
-       sub             %o0, 1, %o0                     /* IEU1                         */
-       subcc           %g2, 1, %g2                     /* IEU1         Group           */
-       bne,pt          %xcc, 1b                        /* CTI                          */
-        stb            %g5, [%o0]                      /* Store                        */
-2:     andn            %o2, 7, %g5                     /* IEU0         Group           */
-       and             %o2, 7, %o2                     /* IEU1                         */
-       fmovd           %f0, %f2                        /* FPU                          */
-       alignaddr       %o1, %g0, %g1                   /* GRU          Group           */
-       ldd             [%g1], %f4                      /* Load         Group           */
-1:     ldd             [%g1 - 8], %f6                  /* Load         Group           */
-       sub             %g1, 8, %g1                     /* IEU0         Group           */
-       subcc           %g5, 8, %g5                     /* IEU1                         */
-       faligndata      %f6, %f4, %f0                   /* GRU          Group           */
-       std             %f0, [%o0 - 8]                  /* Store                        */
-       sub             %o1, 8, %o1                     /* IEU0         Group           */
-       be,pn           %xcc, 233f                      /* CTI                          */
-        sub            %o0, 8, %o0                     /* IEU1                         */
-       ldd             [%g1 - 8], %f4                  /* Load         Group           */
-       sub             %g1, 8, %g1                     /* IEU0                         */
-       subcc           %g5, 8, %g5                     /* IEU1                         */
-       faligndata      %f4, %f6, %f0                   /* GRU          Group           */
-       std             %f0, [%o0 - 8]                  /* Store                        */
-       sub             %o1, 8, %o1                     /* IEU0                         */
-       bne,pn          %xcc, 1b                        /* CTI          Group           */
-        sub            %o0, 8, %o0                     /* IEU0                         */
-233:   brz,pn          %o2, 234f                       /* CTI          Group           */
-        nop                                            /* IEU0                         */
-237:   ldub            [%o1 - 1], %g5                  /* LOAD                         */
-       sub             %o1, 1, %o1                     /* IEU0                         */
-       sub             %o0, 1, %o0                     /* IEU1                         */
-       subcc           %o2, 1, %o2                     /* IEU1                         */
-       bne,pt          %xcc, 237b                      /* CTI                          */
-        stb            %g5, [%o0]                      /* Store        Group           */
-234:   wr              %g0, FPRS_FEF, %fprs
-       retl
-        mov            %g4, %o0
-END(memmove)
-
 libc_hidden_builtin_def (memcpy)
-libc_hidden_builtin_def (memmove)
index 61db9ff..116c711 100644 (file)
        .register       %g6,#scratch
 
        .text
-       .align          32
-
-ENTRY(bcopy)
-       sub             %o1, %o0, %o4
-       mov             %o0, %g4
-       cmp             %o4, %o2
-       mov             %o1, %o0
-       bgeu,pt         %XCC, 100f
-        mov            %g4, %o1
-#ifndef USE_BPR
-       srl             %o2, 0, %o2
-#endif
-       brnz,pn         %o2, 220f
-        add            %o0, %o2, %o0
-       retl
-        nop
-END(bcopy)
 
        .align          32
 ENTRY(memcpy)
@@ -354,236 +337,4 @@ ENTRY(memcpy)
 
 END(memcpy)
 
-#define RMOVE_BIGCHUNK(src, dst, offset, t0, t1, t2, t3)       \
-       ldx             [%src - offset - 0x20], %t0;            \
-       ldx             [%src - offset - 0x18], %t1;            \
-       ldx             [%src - offset - 0x10], %t2;            \
-       ldx             [%src - offset - 0x08], %t3;            \
-       stw             %t0, [%dst - offset - 0x1c];            \
-       srlx            %t0, 32, %t0;                           \
-       stw             %t0, [%dst - offset - 0x20];            \
-       stw             %t1, [%dst - offset - 0x14];            \
-       srlx            %t1, 32, %t1;                           \
-       stw             %t1, [%dst - offset - 0x18];            \
-       stw             %t2, [%dst - offset - 0x0c];            \
-       srlx            %t2, 32, %t2;                           \
-       stw             %t2, [%dst - offset - 0x10];            \
-       stw             %t3, [%dst - offset - 0x04];            \
-       srlx            %t3, 32, %t3;                           \
-       stw             %t3, [%dst - offset - 0x08];
-
-#define RMOVE_BIGALIGNCHUNK(src, dst, offset, t0, t1, t2, t3)  \
-       ldx             [%src - offset - 0x20], %t0;            \
-       ldx             [%src - offset - 0x18], %t1;            \
-       ldx             [%src - offset - 0x10], %t2;            \
-       ldx             [%src - offset - 0x08], %t3;            \
-       stx             %t0, [%dst - offset - 0x20];            \
-       stx             %t1, [%dst - offset - 0x18];            \
-       stx             %t2, [%dst - offset - 0x10];            \
-       stx             %t3, [%dst - offset - 0x08];            \
-       ldx             [%src - offset - 0x40], %t0;            \
-       ldx             [%src - offset - 0x38], %t1;            \
-       ldx             [%src - offset - 0x30], %t2;            \
-       ldx             [%src - offset - 0x28], %t3;            \
-       stx             %t0, [%dst - offset - 0x40];            \
-       stx             %t1, [%dst - offset - 0x38];            \
-       stx             %t2, [%dst - offset - 0x30];            \
-       stx             %t3, [%dst - offset - 0x28];
-
-#define RMOVE_LASTCHUNK(src, dst, offset, t0, t1, t2, t3)      \
-       ldx             [%src + offset + 0x00], %t0;            \
-       ldx             [%src + offset + 0x08], %t1;            \
-       stw             %t0, [%dst + offset + 0x04];            \
-       srlx            %t0, 32, %t2;                           \
-       stw             %t2, [%dst + offset + 0x00];            \
-       stw             %t1, [%dst + offset + 0x0c];            \
-       srlx            %t1, 32, %t3;                           \
-       stw             %t3, [%dst + offset + 0x08];
-
-#define RMOVE_LASTALIGNCHUNK(src, dst, offset, t0, t1)         \
-       ldx             [%src + offset + 0x00], %t0;            \
-       ldx             [%src + offset + 0x08], %t1;            \
-       stx             %t0, [%dst + offset + 0x00];            \
-       stx             %t1, [%dst + offset + 0x08];
-
-       .align          32
-228:   andcc           %o2, 1, %g0
-       be,pt           %icc, 2f+4
-1:      ldub           [%o1 - 1], %o5
-       sub             %o1, 1, %o1
-       sub             %o0, 1, %o0
-       subcc           %o2, 1, %o2
-       be,pn           %xcc, 229f
-        stb            %o5, [%o0]
-2:     ldub            [%o1 - 1], %o5
-       sub             %o0, 2, %o0
-       ldub            [%o1 - 2], %g5
-       sub             %o1, 2, %o1
-       subcc           %o2, 2, %o2
-       stb             %o5, [%o0 + 1]
-       bne,pt          %xcc, 2b
-        stb            %g5, [%o0]
-229:   retl
-        mov            %g4, %o0
-out:   retl
-        mov            %g5, %o0
-
-       .align          32
-ENTRY(memmove)
-       mov             %o0, %g5
-#ifndef USE_BPR
-       srl             %o2, 0, %o2
-#endif
-       brz,pn          %o2, out
-        sub            %o0, %o1, %o4
-       cmp             %o4, %o2
-       bgeu,pt         %XCC, 218b
-        mov            %o0, %g4
-       add             %o0, %o2, %o0
-220:   add             %o1, %o2, %o1
-       cmp             %o2, 15
-       bleu,pn         %xcc, 228b
-        andcc          %o0, 7, %g2
-       sub             %o0, %o1, %g5
-       andcc           %g5, 3, %o5
-       bne,pn          %xcc, 232f
-        andcc          %o1, 3, %g0
-       be,a,pt         %xcc, 236f
-        andcc          %o1, 4, %g0
-       andcc           %o1, 1, %g0
-       be,pn           %xcc, 4f
-        andcc          %o1, 2, %g0
-       ldub            [%o1 - 1], %g2
-       sub             %o1, 1, %o1
-       sub             %o0, 1, %o0
-       sub             %o2, 1, %o2
-       be,pn           %xcc, 5f
-        stb            %g2, [%o0]
-4:     lduh            [%o1 - 2], %g2
-       sub             %o1, 2, %o1
-       sub             %o0, 2, %o0
-       sub             %o2, 2, %o2
-       sth             %g2, [%o0]
-5:     andcc           %o1, 4, %g0
-236:   be,a,pn         %xcc, 2f
-        andcc          %o2, -128, %g6
-       lduw            [%o1 - 4], %g5
-       sub             %o1, 4, %o1
-       sub             %o0, 4, %o0
-       sub             %o2, 4, %o2
-       stw             %g5, [%o0]
-       andcc           %o2, -128, %g6
-2:     be,pn           %xcc, 235f
-        andcc          %o0, 4, %g0
-       be,pn           %xcc, 282f + 4
-5:     RMOVE_BIGCHUNK(o1, o0, 0x00, g1, g3, g5, o5)
-       RMOVE_BIGCHUNK(o1, o0, 0x20, g1, g3, g5, o5)
-       RMOVE_BIGCHUNK(o1, o0, 0x40, g1, g3, g5, o5)
-       RMOVE_BIGCHUNK(o1, o0, 0x60, g1, g3, g5, o5)
-       subcc           %g6, 128, %g6
-       sub             %o1, 128, %o1
-       bne,pt          %xcc, 5b
-        sub            %o0, 128, %o0
-235:   andcc           %o2, 0x70, %g6
-41:    be,pn           %xcc, 280f
-        andcc          %o2, 8, %g0
-
-279:   rd              %pc, %o5
-       sll             %g6, 1, %g5
-       sub             %o1, %g6, %o1
-       sub             %o5, %g5, %o5
-       jmpl            %o5 + %lo(280f - 279b), %g0
-        sub            %o0, %g6, %o0
-       RMOVE_LASTCHUNK(o1, o0, 0x60, g2, g3, g5, o5)
-       RMOVE_LASTCHUNK(o1, o0, 0x50, g2, g3, g5, o5)
-       RMOVE_LASTCHUNK(o1, o0, 0x40, g2, g3, g5, o5)
-       RMOVE_LASTCHUNK(o1, o0, 0x30, g2, g3, g5, o5)
-       RMOVE_LASTCHUNK(o1, o0, 0x20, g2, g3, g5, o5)
-       RMOVE_LASTCHUNK(o1, o0, 0x10, g2, g3, g5, o5)
-       RMOVE_LASTCHUNK(o1, o0, 0x00, g2, g3, g5, o5)
-280:   be,pt           %xcc, 281f
-        andcc          %o2, 4, %g0
-       ldx             [%o1 - 8], %g2
-       sub             %o0, 8, %o0
-       stw             %g2, [%o0 + 4]
-       sub             %o1, 8, %o1
-       srlx            %g2, 32, %g2
-       stw             %g2, [%o0]
-281:   be,pt           %xcc, 1f
-        andcc          %o2, 2, %g0
-       lduw            [%o1 - 4], %g2
-       sub             %o1, 4, %o1
-       stw             %g2, [%o0 - 4]
-       sub             %o0, 4, %o0
-1:     be,pt           %xcc, 1f
-        andcc          %o2, 1, %g0
-       lduh            [%o1 - 2], %g2
-       sub             %o1, 2, %o1
-       sth             %g2, [%o0 - 2]
-       sub             %o0, 2, %o0
-1:     be,pt           %xcc, 211f
-        nop
-       ldub            [%o1 - 1], %g2
-       stb             %g2, [%o0 - 1]
-211:   retl
-        mov            %g4, %o0
-
-282:   RMOVE_BIGALIGNCHUNK(o1, o0, 0x00, g1, g3, g5, o5)
-       RMOVE_BIGALIGNCHUNK(o1, o0, 0x40, g1, g3, g5, o5)
-       subcc           %g6, 128, %g6
-       sub             %o1, 128, %o1
-       bne,pt          %xcc, 282b
-        sub            %o0, 128, %o0
-       andcc           %o2, 0x70, %g6
-       be,pn           %xcc, 284f
-        andcc          %o2, 8, %g0
-
-283:   rd              %pc, %o5
-       sub             %o1, %g6, %o1
-       sub             %o5, %g6, %o5
-       jmpl            %o5 + %lo(284f - 283b), %g0
-        sub            %o0, %g6, %o0
-       RMOVE_LASTALIGNCHUNK(o1, o0, 0x60, g2, g3)
-       RMOVE_LASTALIGNCHUNK(o1, o0, 0x50, g2, g3)
-       RMOVE_LASTALIGNCHUNK(o1, o0, 0x40, g2, g3)
-       RMOVE_LASTALIGNCHUNK(o1, o0, 0x30, g2, g3)
-       RMOVE_LASTALIGNCHUNK(o1, o0, 0x20, g2, g3)
-       RMOVE_LASTALIGNCHUNK(o1, o0, 0x10, g2, g3)
-       RMOVE_LASTALIGNCHUNK(o1, o0, 0x00, g2, g3)
-284:   be,pt           %xcc, 285f
-        andcc          %o2, 4, %g0
-       ldx             [%o1 - 8], %g2
-       sub             %o0, 8, %o0
-       sub             %o1, 8, %o1
-       stx             %g2, [%o0]
-285:   be,pt           %xcc, 1f
-        andcc          %o2, 2, %g0
-       lduw            [%o1 - 4], %g2
-       sub             %o0, 4, %o0
-       sub             %o1, 4, %o1
-       stw             %g2, [%o0]
-1:     be,pt           %xcc, 1f
-        andcc          %o2, 1, %g0
-       lduh            [%o1 - 2], %g2
-       sub             %o0, 2, %o0
-       sub             %o1, 2, %o1
-       sth             %g2, [%o0]
-1:     be,pt           %xcc, 1f
-        nop
-       ldub            [%o1 - 1], %g2
-       stb             %g2, [%o0 - 1]
-1:     retl
-        mov            %g4, %o0
-
-232:   ldub            [%o1 - 1], %g5
-       sub             %o1, 1, %o1
-       sub             %o0, 1, %o0
-       subcc           %o2, 1, %o2
-       bne,pt          %xcc, 232b
-        stb            %g5, [%o0]
-234:   retl
-        mov            %g4, %o0
-END(memmove)
-
 libc_hidden_builtin_def (memcpy)
-libc_hidden_builtin_def (memmove)
index 2b1444e..300b12f 100644 (file)
        .register       %g6,#scratch
 
        .text
-       .align          32
-
-ENTRY(bcopy)
-       sub             %o1, %o0, %o4
-       mov             %o0, %g4
-       cmp             %o4, %o2
-       mov             %o1, %o0
-       bgeu,pt         %XCC, 100f
-        mov            %g4, %o1
-#ifndef USE_BPR
-       srl             %o2, 0, %o2
-#endif
-       brnz,pn         %o2, 220f
-        add            %o0, %o2, %o0
-       retl
-        nop
-END(bcopy)
 
        .align          32
 ENTRY(memcpy)
@@ -504,236 +487,4 @@ ENTRY(memcpy)
 
 END(memcpy)
 
-#define RMOVE_BIGCHUNK(src, dst, offset, t0, t1, t2, t3)       \
-       ldx             [%src - offset - 0x20], %t0;            \
-       ldx             [%src - offset - 0x18], %t1;            \
-       ldx             [%src - offset - 0x10], %t2;            \
-       ldx             [%src - offset - 0x08], %t3;            \
-       stw             %t0, [%dst - offset - 0x1c];            \
-       srlx            %t0, 32, %t0;                           \
-       stw             %t0, [%dst - offset - 0x20];            \
-       stw             %t1, [%dst - offset - 0x14];            \
-       srlx            %t1, 32, %t1;                           \
-       stw             %t1, [%dst - offset - 0x18];            \
-       stw             %t2, [%dst - offset - 0x0c];            \
-       srlx            %t2, 32, %t2;                           \
-       stw             %t2, [%dst - offset - 0x10];            \
-       stw             %t3, [%dst - offset - 0x04];            \
-       srlx            %t3, 32, %t3;                           \
-       stw             %t3, [%dst - offset - 0x08];
-
-#define RMOVE_BIGALIGNCHUNK(src, dst, offset, t0, t1, t2, t3)  \
-       ldx             [%src - offset - 0x20], %t0;            \
-       ldx             [%src - offset - 0x18], %t1;            \
-       ldx             [%src - offset - 0x10], %t2;            \
-       ldx             [%src - offset - 0x08], %t3;            \
-       stx             %t0, [%dst - offset - 0x20];            \
-       stx             %t1, [%dst - offset - 0x18];            \
-       stx             %t2, [%dst - offset - 0x10];            \
-       stx             %t3, [%dst - offset - 0x08];            \
-       ldx             [%src - offset - 0x40], %t0;            \
-       ldx             [%src - offset - 0x38], %t1;            \
-       ldx             [%src - offset - 0x30], %t2;            \
-       ldx             [%src - offset - 0x28], %t3;            \
-       stx             %t0, [%dst - offset - 0x40];            \
-       stx             %t1, [%dst - offset - 0x38];            \
-       stx             %t2, [%dst - offset - 0x30];            \
-       stx             %t3, [%dst - offset - 0x28];
-
-#define RMOVE_LASTCHUNK(src, dst, offset, t0, t1, t2, t3)      \
-       ldx             [%src + offset + 0x00], %t0;            \
-       ldx             [%src + offset + 0x08], %t1;            \
-       stw             %t0, [%dst + offset + 0x04];            \
-       srlx            %t0, 32, %t2;                           \
-       stw             %t2, [%dst + offset + 0x00];            \
-       stw             %t1, [%dst + offset + 0x0c];            \
-       srlx            %t1, 32, %t3;                           \
-       stw             %t3, [%dst + offset + 0x08];
-
-#define RMOVE_LASTALIGNCHUNK(src, dst, offset, t0, t1)         \
-       ldx             [%src + offset + 0x00], %t0;            \
-       ldx             [%src + offset + 0x08], %t1;            \
-       stx             %t0, [%dst + offset + 0x00];            \
-       stx             %t1, [%dst + offset + 0x08];
-
-       .align          32
-228:   andcc           %o2, 1, %g0
-       be,pt           %icc, 2f+4
-1:      ldub           [%o1 - 1], %o5
-       sub             %o1, 1, %o1
-       sub             %o0, 1, %o0
-       subcc           %o2, 1, %o2
-       be,pn           %XCC, 229f
-        stb            %o5, [%o0]
-2:     ldub            [%o1 - 1], %o5
-       sub             %o0, 2, %o0
-       ldub            [%o1 - 2], %g5
-       sub             %o1, 2, %o1
-       subcc           %o2, 2, %o2
-       stb             %o5, [%o0 + 1]
-       bne,pt          %XCC, 2b
-        stb            %g5, [%o0]
-229:   retl
-        mov            %g4, %o0
-out:   retl
-        mov            %g5, %o0
-
-       .align          32
-ENTRY(memmove)
-       mov             %o0, %g5
-#ifndef USE_BPR
-       srl             %o2, 0, %o2
-#endif
-       brz,pn          %o2, out
-        sub            %o0, %o1, %o4
-       cmp             %o4, %o2
-       bgeu,pt         %XCC, 218b
-        mov            %o0, %g4
-       add             %o0, %o2, %o0
-220:   add             %o1, %o2, %o1
-       cmp             %o2, 15
-       bleu,pn         %XCC, 228b
-        andcc          %o0, 7, %g2
-       sub             %o0, %o1, %g5
-       andcc           %g5, 3, %o5
-       bne,pn          %XCC, 232f
-        andcc          %o1, 3, %g0
-       be,a,pt         %XCC, 236f
-        andcc          %o1, 4, %g0
-       andcc           %o1, 1, %g0
-       be,pn           %XCC, 4f
-        andcc          %o1, 2, %g0
-       ldub            [%o1 - 1], %g2
-       sub             %o1, 1, %o1
-       sub             %o0, 1, %o0
-       sub             %o2, 1, %o2
-       be,pn           %XCC, 5f
-        stb            %g2, [%o0]
-4:     lduh            [%o1 - 2], %g2
-       sub             %o1, 2, %o1
-       sub             %o0, 2, %o0
-       sub             %o2, 2, %o2
-       sth             %g2, [%o0]
-5:     andcc           %o1, 4, %g0
-236:   be,a,pn         %XCC, 2f
-        andcc          %o2, -128, %g6
-       lduw            [%o1 - 4], %g5
-       sub             %o1, 4, %o1
-       sub             %o0, 4, %o0
-       sub             %o2, 4, %o2
-       stw             %g5, [%o0]
-       andcc           %o2, -128, %g6
-2:     be,pn           %XCC, 235f
-        andcc          %o0, 4, %g0
-       be,pn           %XCC, 282f + 4
-5:     RMOVE_BIGCHUNK(o1, o0, 0x00, g1, g3, g5, o5)
-       RMOVE_BIGCHUNK(o1, o0, 0x20, g1, g3, g5, o5)
-       RMOVE_BIGCHUNK(o1, o0, 0x40, g1, g3, g5, o5)
-       RMOVE_BIGCHUNK(o1, o0, 0x60, g1, g3, g5, o5)
-       subcc           %g6, 128, %g6
-       sub             %o1, 128, %o1
-       bne,pt          %XCC, 5b
-        sub            %o0, 128, %o0
-235:   andcc           %o2, 0x70, %g6
-41:    be,pn           %XCC, 280f
-        andcc          %o2, 8, %g0
-
-279:   rd              %pc, %o5
-       sll             %g6, 1, %g5
-       sub             %o1, %g6, %o1
-       sub             %o5, %g5, %o5
-       jmpl            %o5 + %lo(280f - 279b), %g0
-        sub            %o0, %g6, %o0
-       RMOVE_LASTCHUNK(o1, o0, 0x60, g2, g3, g5, o5)
-       RMOVE_LASTCHUNK(o1, o0, 0x50, g2, g3, g5, o5)
-       RMOVE_LASTCHUNK(o1, o0, 0x40, g2, g3, g5, o5)
-       RMOVE_LASTCHUNK(o1, o0, 0x30, g2, g3, g5, o5)
-       RMOVE_LASTCHUNK(o1, o0, 0x20, g2, g3, g5, o5)
-       RMOVE_LASTCHUNK(o1, o0, 0x10, g2, g3, g5, o5)
-       RMOVE_LASTCHUNK(o1, o0, 0x00, g2, g3, g5, o5)
-280:   be,pt           %XCC, 281f
-        andcc          %o2, 4, %g0
-       ldx             [%o1 - 8], %g2
-       sub             %o0, 8, %o0
-       stw             %g2, [%o0 + 4]
-       sub             %o1, 8, %o1
-       srlx            %g2, 32, %g2
-       stw             %g2, [%o0]
-281:   be,pt           %XCC, 1f
-        andcc          %o2, 2, %g0
-       lduw            [%o1 - 4], %g2
-       sub             %o1, 4, %o1
-       stw             %g2, [%o0 - 4]
-       sub             %o0, 4, %o0
-1:     be,pt           %XCC, 1f
-        andcc          %o2, 1, %g0
-       lduh            [%o1 - 2], %g2
-       sub             %o1, 2, %o1
-       sth             %g2, [%o0 - 2]
-       sub             %o0, 2, %o0
-1:     be,pt           %XCC, 211f
-        nop
-       ldub            [%o1 - 1], %g2
-       stb             %g2, [%o0 - 1]
-211:   retl
-        mov            %g4, %o0
-
-282:   RMOVE_BIGALIGNCHUNK(o1, o0, 0x00, g1, g3, g5, o5)
-       RMOVE_BIGALIGNCHUNK(o1, o0, 0x40, g1, g3, g5, o5)
-       subcc           %g6, 128, %g6
-       sub             %o1, 128, %o1
-       bne,pt          %XCC, 282b
-        sub            %o0, 128, %o0
-       andcc           %o2, 0x70, %g6
-       be,pn           %XCC, 284f
-        andcc          %o2, 8, %g0
-
-283:   rd              %pc, %o5
-       sub             %o1, %g6, %o1
-       sub             %o5, %g6, %o5
-       jmpl            %o5 + %lo(284f - 283b), %g0
-        sub            %o0, %g6, %o0
-       RMOVE_LASTALIGNCHUNK(o1, o0, 0x60, g2, g3)
-       RMOVE_LASTALIGNCHUNK(o1, o0, 0x50, g2, g3)
-       RMOVE_LASTALIGNCHUNK(o1, o0, 0x40, g2, g3)
-       RMOVE_LASTALIGNCHUNK(o1, o0, 0x30, g2, g3)
-       RMOVE_LASTALIGNCHUNK(o1, o0, 0x20, g2, g3)
-       RMOVE_LASTALIGNCHUNK(o1, o0, 0x10, g2, g3)
-       RMOVE_LASTALIGNCHUNK(o1, o0, 0x00, g2, g3)
-284:   be,pt           %XCC, 285f
-        andcc          %o2, 4, %g0
-       ldx             [%o1 - 8], %g2
-       sub             %o0, 8, %o0
-       sub             %o1, 8, %o1
-       stx             %g2, [%o0]
-285:   be,pt           %XCC, 1f
-        andcc          %o2, 2, %g0
-       lduw            [%o1 - 4], %g2
-       sub             %o0, 4, %o0
-       sub             %o1, 4, %o1
-       stw             %g2, [%o0]
-1:     be,pt           %XCC, 1f
-        andcc          %o2, 1, %g0
-       lduh            [%o1 - 2], %g2
-       sub             %o0, 2, %o0
-       sub             %o1, 2, %o1
-       sth             %g2, [%o0]
-1:     be,pt           %XCC, 1f
-        nop
-       ldub            [%o1 - 1], %g2
-       stb             %g2, [%o0 - 1]
-1:     retl
-        mov            %g4, %o0
-
-232:   ldub            [%o1 - 1], %g5
-       sub             %o1, 1, %o1
-       sub             %o0, 1, %o0
-       subcc           %o2, 1, %o2
-       bne,pt          %XCC, 232b
-        stb            %g5, [%o0]
-234:   retl
-        mov            %g4, %o0
-END(memmove)
-
 libc_hidden_builtin_def (memcpy)
-libc_hidden_builtin_def (memmove)