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 --- |