projects
/
cascardo
/
linux.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc
[cascardo/linux.git]
/
arch
/
sparc
/
lib
/
GENmemcpy.S
diff --git
a/arch/sparc/lib/GENmemcpy.S
b/arch/sparc/lib/GENmemcpy.S
index
89358ee
..
059ea24
100644
(file)
--- a/
arch/sparc/lib/GENmemcpy.S
+++ b/
arch/sparc/lib/GENmemcpy.S
@@
-4,21
+4,18
@@
*/
#ifdef __KERNEL__
*/
#ifdef __KERNEL__
+#include <linux/linkage.h>
#define GLOBAL_SPARE %g7
#else
#define GLOBAL_SPARE %g5
#endif
#ifndef EX_LD
#define GLOBAL_SPARE %g7
#else
#define GLOBAL_SPARE %g5
#endif
#ifndef EX_LD
-#define EX_LD(x
)
x
+#define EX_LD(x
,y)
x
#endif
#ifndef EX_ST
#endif
#ifndef EX_ST
-#define EX_ST(x) x
-#endif
-
-#ifndef EX_RETVAL
-#define EX_RETVAL(x) x
+#define EX_ST(x,y) x
#endif
#ifndef LOAD
#endif
#ifndef LOAD
@@
-45,6
+42,29
@@
.register %g3,#scratch
.text
.register %g3,#scratch
.text
+
+#ifndef EX_RETVAL
+#define EX_RETVAL(x) x
+ENTRY(GEN_retl_o4_1)
+ add %o4, %o2, %o4
+ retl
+ add %o4, 1, %o0
+ENDPROC(GEN_retl_o4_1)
+ENTRY(GEN_retl_g1_8)
+ add %g1, %o2, %g1
+ retl
+ add %g1, 8, %o0
+ENDPROC(GEN_retl_g1_8)
+ENTRY(GEN_retl_o2_4)
+ retl
+ add %o2, 4, %o0
+ENDPROC(GEN_retl_o2_4)
+ENTRY(GEN_retl_o2_1)
+ retl
+ add %o2, 1, %o0
+ENDPROC(GEN_retl_o2_1)
+#endif
+
.align 64
.globl FUNC_NAME
.align 64
.globl FUNC_NAME
@@
-73,8
+93,8
@@
FUNC_NAME: /* %o0=dst, %o1=src, %o2=len */
sub %g0, %o4, %o4
sub %o2, %o4, %o2
1: subcc %o4, 1, %o4
sub %g0, %o4, %o4
sub %o2, %o4, %o2
1: subcc %o4, 1, %o4
- EX_LD(LOAD(ldub, %o1, %g1))
- EX_ST(STORE(stb, %g1, %o0))
+ EX_LD(LOAD(ldub, %o1, %g1)
,GEN_retl_o4_1
)
+ EX_ST(STORE(stb, %g1, %o0)
,GEN_retl_o4_1
)
add %o1, 1, %o1
bne,pt %XCC, 1b
add %o0, 1, %o0
add %o1, 1, %o1
bne,pt %XCC, 1b
add %o0, 1, %o0
@@
-82,8
+102,8
@@
FUNC_NAME: /* %o0=dst, %o1=src, %o2=len */
andn %o2, 0x7, %g1
sub %o2, %g1, %o2
1: subcc %g1, 0x8, %g1
andn %o2, 0x7, %g1
sub %o2, %g1, %o2
1: subcc %g1, 0x8, %g1
- EX_LD(LOAD(ldx, %o1, %g2))
- EX_ST(STORE(stx, %g2, %o0))
+ EX_LD(LOAD(ldx, %o1, %g2)
,GEN_retl_g1_8
)
+ EX_ST(STORE(stx, %g2, %o0)
,GEN_retl_g1_8
)
add %o1, 0x8, %o1
bne,pt %XCC, 1b
add %o0, 0x8, %o0
add %o1, 0x8, %o1
bne,pt %XCC, 1b
add %o0, 0x8, %o0
@@
-100,8
+120,8
@@
FUNC_NAME: /* %o0=dst, %o1=src, %o2=len */
1:
subcc %o2, 4, %o2
1:
subcc %o2, 4, %o2
- EX_LD(LOAD(lduw, %o1, %g1))
- EX_ST(STORE(stw, %g1, %o1 + %o3))
+ EX_LD(LOAD(lduw, %o1, %g1)
,GEN_retl_o2_4
)
+ EX_ST(STORE(stw, %g1, %o1 + %o3)
,GEN_retl_o2_4
)
bgu,pt %XCC, 1b
add %o1, 4, %o1
bgu,pt %XCC, 1b
add %o1, 4, %o1
@@
-111,8
+131,8
@@
FUNC_NAME: /* %o0=dst, %o1=src, %o2=len */
.align 32
90:
subcc %o2, 1, %o2
.align 32
90:
subcc %o2, 1, %o2
- EX_LD(LOAD(ldub, %o1, %g1))
- EX_ST(STORE(stb, %g1, %o1 + %o3))
+ EX_LD(LOAD(ldub, %o1, %g1)
,GEN_retl_o2_1
)
+ EX_ST(STORE(stb, %g1, %o1 + %o3)
,GEN_retl_o2_1
)
bgu,pt %XCC, 90b
add %o1, 1, %o1
retl
bgu,pt %XCC, 90b
add %o1, 1, %o1
retl