mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-24 05:20:53 +07:00
sparc32: debride memcpy.S a bit
unreachable code, unused macros... Acked-by: David S. Miller <davem@davemloft.net> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
parent
70a6fcf328
commit
fb2e6fdbbd
@ -59,88 +59,9 @@ x:
|
||||
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; \
|
||||
srl %t0, shir, %t5; \
|
||||
srl %t1, shir, %t6; \
|
||||
sll %t0, shil, %t0; \
|
||||
or %t5, %prev, %t5; \
|
||||
sll %t1, shil, %prev; \
|
||||
or %t6, %t0, %t0; \
|
||||
srl %t2, shir, %t1; \
|
||||
srl %t3, shir, %t6; \
|
||||
sll %t2, shil, %t2; \
|
||||
or %t1, %prev, %t1; \
|
||||
std %t4, [%dst + (offset) + (offset2) - 0x04]; \
|
||||
std %t0, [%dst + (offset) + (offset2) + 0x04]; \
|
||||
sll %t3, shil, %prev; \
|
||||
or %t6, %t2, %t4;
|
||||
|
||||
#define SMOVE_ALIGNCHUNK(src, dst, offset, t0, t1, t2, t3, t4, t5, t6, prev, shil, shir, offset2) \
|
||||
ldd [%src + (offset) + 0x00], %t0; \
|
||||
ldd [%src + (offset) + 0x08], %t2; \
|
||||
srl %t0, shir, %t4; \
|
||||
srl %t1, shir, %t5; \
|
||||
sll %t0, shil, %t6; \
|
||||
or %t4, %prev, %t0; \
|
||||
sll %t1, shil, %prev; \
|
||||
or %t5, %t6, %t1; \
|
||||
srl %t2, shir, %t4; \
|
||||
srl %t3, shir, %t5; \
|
||||
sll %t2, shil, %t6; \
|
||||
or %t4, %prev, %t2; \
|
||||
sll %t3, shil, %prev; \
|
||||
or %t5, %t6, %t3; \
|
||||
std %t0, [%dst + (offset) + (offset2) + 0x00]; \
|
||||
std %t2, [%dst + (offset) + (offset2) + 0x08];
|
||||
|
||||
.text
|
||||
.align 4
|
||||
|
||||
0:
|
||||
retl
|
||||
nop ! Only bcopy returns here and it retuns void...
|
||||
|
||||
FUNC(memmove)
|
||||
EXPORT_SYMBOL(memmove)
|
||||
cmp %o0, %o1
|
||||
|
Loading…
Reference in New Issue
Block a user