memcpy.S (e5451c8f8330e03ad3cfa16048b4daf961af434f) memcpy.S (d3867f0483103b8ff7edfdea3ef1981c03d96891)
1/* memcpy.S: Sparc optimized memcpy and memmove code
2 * Hand optimized from GNU libc's memcpy and memmove
3 * Copyright (C) 1991,1996 Free Software Foundation
4 * Copyright (C) 1995 Linus Torvalds (Linus.Torvalds@helsinki.fi)
5 * Copyright (C) 1996 David S. Miller (davem@caip.rutgers.edu)
6 * Copyright (C) 1996 Eddie C. Dost (ecd@skynet.be)
7 * Copyright (C) 1996 Jakub Jelinek (jj@sunsite.mff.cuni.cz)
8 */
9
1/* memcpy.S: Sparc optimized memcpy and memmove code
2 * Hand optimized from GNU libc's memcpy and memmove
3 * Copyright (C) 1991,1996 Free Software Foundation
4 * Copyright (C) 1995 Linus Torvalds (Linus.Torvalds@helsinki.fi)
5 * Copyright (C) 1996 David S. Miller (davem@caip.rutgers.edu)
6 * Copyright (C) 1996 Eddie C. Dost (ecd@skynet.be)
7 * Copyright (C) 1996 Jakub Jelinek (jj@sunsite.mff.cuni.cz)
8 */
9
10#include <asm/export.h>
10#define FUNC(x) \
11 .globl x; \
12 .type x,@function; \
13 .align 4; \
14x:
15
16/* Both these macros have to start with exactly the same insn */
17#define MOVE_BIGCHUNK(src, dst, offset, t0, t1, t2, t3, t4, t5, t6, t7) \

--- 120 unchanged lines hidden (view full) ---

138
1390:
140 retl
141 nop ! Only bcopy returns here and it retuns void...
142
143#ifdef __KERNEL__
144FUNC(amemmove)
145FUNC(__memmove)
11#define FUNC(x) \
12 .globl x; \
13 .type x,@function; \
14 .align 4; \
15x:
16
17/* Both these macros have to start with exactly the same insn */
18#define MOVE_BIGCHUNK(src, dst, offset, t0, t1, t2, t3, t4, t5, t6, t7) \

--- 120 unchanged lines hidden (view full) ---

139
1400:
141 retl
142 nop ! Only bcopy returns here and it retuns void...
143
144#ifdef __KERNEL__
145FUNC(amemmove)
146FUNC(__memmove)
147EXPORT_SYMBOL(__memmove)
146#endif
147FUNC(memmove)
148#endif
149FUNC(memmove)
150EXPORT_SYMBOL(memmove)
148 cmp %o0, %o1
149 mov %o0, %g7
150 bleu 9f
151 sub %o0, %o1, %o4
152
153 add %o1, %o2, %o3
154 cmp %o3, %o0
155 bleu 0f

--- 41 unchanged lines hidden (view full) ---

197 lduh [%o1], %g2
198 add %o1, 2, %o1
199 sth %g2, [%o0]
200 sub %o2, 2, %o2
201 b 3f
202 add %o0, 2, %o0
203
204FUNC(memcpy) /* %o0=dst %o1=src %o2=len */
151 cmp %o0, %o1
152 mov %o0, %g7
153 bleu 9f
154 sub %o0, %o1, %o4
155
156 add %o1, %o2, %o3
157 cmp %o3, %o0
158 bleu 0f

--- 41 unchanged lines hidden (view full) ---

200 lduh [%o1], %g2
201 add %o1, 2, %o1
202 sth %g2, [%o0]
203 sub %o2, 2, %o2
204 b 3f
205 add %o0, 2, %o0
206
207FUNC(memcpy) /* %o0=dst %o1=src %o2=len */
208EXPORT_SYMBOL(memcpy)
205
206 sub %o0, %o1, %o4
207 mov %o0, %g7
2089:
209 andcc %o4, 3, %o5
2100:
211 bne 86f
212 cmp %o2, 15

--- 329 unchanged lines hidden ---
209
210 sub %o0, %o1, %o4
211 mov %o0, %g7
2129:
213 andcc %o4, 3, %o5
2140:
215 bne 86f
216 cmp %o2, 15

--- 329 unchanged lines hidden ---