memmove.S (e5451c8f8330e03ad3cfa16048b4daf961af434f) memmove.S (d3867f0483103b8ff7edfdea3ef1981c03d96891)
1/* memmove.S: Simple memmove implementation.
2 *
3 * Copyright (C) 1997, 2004 David S. Miller (davem@redhat.com)
4 * Copyright (C) 1996, 1997, 1998, 1999 Jakub Jelinek (jj@ultra.linux.cz)
5 */
6
7#include <linux/linkage.h>
1/* memmove.S: Simple memmove implementation.
2 *
3 * Copyright (C) 1997, 2004 David S. Miller (davem@redhat.com)
4 * Copyright (C) 1996, 1997, 1998, 1999 Jakub Jelinek (jj@ultra.linux.cz)
5 */
6
7#include <linux/linkage.h>
8#include <asm/export.h>
8
9 .text
10ENTRY(memmove) /* o0=dst o1=src o2=len */
11 brz,pn %o2, 99f
12 mov %o0, %g1
13
14 cmp %o0, %o1
15 bleu,pt %xcc, 2f

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

524: ldub [%o1], %g7
53 add %o1, 1, %o1
54 subcc %o2, 1, %o2
55 add %o0, 1, %o0
56 bne,pt %icc, 4b
57 stb %g7, [%o0 - 0x1]
58 ba,a,pt %xcc, 99b
59ENDPROC(memmove)
9
10 .text
11ENTRY(memmove) /* o0=dst o1=src o2=len */
12 brz,pn %o2, 99f
13 mov %o0, %g1
14
15 cmp %o0, %o1
16 bleu,pt %xcc, 2f

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

534: ldub [%o1], %g7
54 add %o1, 1, %o1
55 subcc %o2, 1, %o2
56 add %o0, 1, %o0
57 bne,pt %icc, 4b
58 stb %g7, [%o0 - 0x1]
59 ba,a,pt %xcc, 99b
60ENDPROC(memmove)
61EXPORT_SYMBOL(memmove)