diff options
Diffstat (limited to 'arch/m32r/lib/memcpy.S')
-rw-r--r-- | arch/m32r/lib/memcpy.S | 93 |
1 files changed, 0 insertions, 93 deletions
diff --git a/arch/m32r/lib/memcpy.S b/arch/m32r/lib/memcpy.S deleted file mode 100644 index 249da3e3358d..000000000000 --- a/arch/m32r/lib/memcpy.S +++ /dev/null | |||
@@ -1,93 +0,0 @@ | |||
1 | /* SPDX-License-Identifier: GPL-2.0 */ | ||
2 | /* | ||
3 | * linux/arch/m32r/lib/memcpy.S | ||
4 | * | ||
5 | * Copyright (C) 2001 Hiroyuki Kondo, and Hirokazu Takata | ||
6 | * Copyright (C) 2004 Hirokazu Takata | ||
7 | * | ||
8 | * void *memcopy(void *dst, const void *src, int n); | ||
9 | * | ||
10 | * dst: r0 | ||
11 | * src: r1 | ||
12 | * n : r2 | ||
13 | */ | ||
14 | |||
15 | .text | ||
16 | #include <linux/linkage.h> | ||
17 | #include <asm/assembler.h> | ||
18 | |||
19 | #ifdef CONFIG_ISA_DUAL_ISSUE | ||
20 | |||
21 | .text | ||
22 | ENTRY(memcpy) | ||
23 | memcopy: | ||
24 | mv r4, r0 || mv r7, r0 | ||
25 | or r7, r1 || cmpz r2 | ||
26 | jc r14 || cmpeq r0, r1 ; return if r2=0 | ||
27 | jc r14 ; return if r0=r1 | ||
28 | |||
29 | and3 r7, r7, #3 | ||
30 | bnez r7, byte_copy | ||
31 | srl3 r3, r2, #2 | ||
32 | and3 r2, r2, #3 | ||
33 | beqz r3, byte_copy | ||
34 | addi r4, #-4 | ||
35 | word_copy: | ||
36 | ld r7, @r1+ || addi r3, #-1 | ||
37 | st r7, @+r4 || cmpz r2 | ||
38 | bnez r3, word_copy | ||
39 | addi r4, #4 || jc r14 ; return if r2=0 | ||
40 | #if defined(CONFIG_ISA_M32R2) | ||
41 | byte_copy: | ||
42 | ldb r7, @r1 || addi r1, #1 | ||
43 | addi r2, #-1 || stb r7, @r4+ | ||
44 | bnez r2, byte_copy | ||
45 | #elif defined(CONFIG_ISA_M32R) | ||
46 | byte_copy: | ||
47 | ldb r7, @r1 || addi r1, #1 | ||
48 | addi r2, #-1 || stb r7, @r4 | ||
49 | addi r4, #1 | ||
50 | bnez r2, byte_copy | ||
51 | #else | ||
52 | #error unknown isa configuration | ||
53 | #endif | ||
54 | end_memcopy: | ||
55 | jmp r14 | ||
56 | |||
57 | #else /* not CONFIG_ISA_DUAL_ISSUE */ | ||
58 | |||
59 | .text | ||
60 | ENTRY(memcpy) | ||
61 | memcopy: | ||
62 | mv r4, r0 | ||
63 | mv r7, r0 | ||
64 | or r7, r1 | ||
65 | beq r0, r1, end_memcopy | ||
66 | beqz r2, end_memcopy | ||
67 | |||
68 | and3 r7, r7, #3 | ||
69 | bnez r7, byte_copy | ||
70 | srl3 r3, r2, #2 | ||
71 | and3 r2, r2, #3 | ||
72 | beqz r3, byte_copy | ||
73 | addi r4, #-4 | ||
74 | word_copy: | ||
75 | ld r7, @r1+ | ||
76 | addi r3, #-1 | ||
77 | st r7, @+r4 | ||
78 | bnez r3, word_copy | ||
79 | beqz r2, end_memcopy | ||
80 | addi r4, #4 | ||
81 | byte_copy: | ||
82 | ldb r7, @r1 | ||
83 | addi r1, #1 | ||
84 | addi r2, #-1 | ||
85 | stb r7, @r4 | ||
86 | addi r4, #1 | ||
87 | bnez r2, byte_copy | ||
88 | end_memcopy: | ||
89 | jmp r14 | ||
90 | |||
91 | #endif /* not CONFIG_ISA_DUAL_ISSUE */ | ||
92 | |||
93 | .end | ||