aboutsummaryrefslogtreecommitdiffstats
path: root/arch/m32r/lib/memcpy.S
diff options
context:
space:
mode:
authorArnd Bergmann <arnd@arndb.de>2018-03-07 15:36:19 -0500
committerArnd Bergmann <arnd@arndb.de>2018-03-09 17:20:00 -0500
commit553b085c2075f6a4a2591108554f830fa61e881f (patch)
tree68d63911f2c12e0fb9fa23498df9300442a88f92 /arch/m32r/lib/memcpy.S
parentfd8773f9f544955f6f47dc2ac3ab85ad64376b7f (diff)
arch: remove m32r port
The Mitsubishi/Renesas m32r architecture has been around for many years, but the Linux port has been obsolete for a very long time as well, with the last significant updates done for linux-2.6.14. While some m32r microcontrollers are still being marketed by Renesas, those are apparently no longer possible to support, mainly due to the lack of an external memory interface. Hirokazu Takata was the maintainer until the architecture got marked Orphaned in 2014. Link: http://www.linux-m32r.org/ Link: https://www.renesas.com/en-eu/products/microcontrollers-microprocessors/m32r.html Cc: Hirokazu Takata <takata@linux-m32r.org> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Diffstat (limited to 'arch/m32r/lib/memcpy.S')
-rw-r--r--arch/m32r/lib/memcpy.S93
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
22ENTRY(memcpy)
23memcopy:
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
35word_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)
41byte_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)
46byte_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
54end_memcopy:
55 jmp r14
56
57#else /* not CONFIG_ISA_DUAL_ISSUE */
58
59 .text
60ENTRY(memcpy)
61memcopy:
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
74word_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
81byte_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
88end_memcopy:
89 jmp r14
90
91#endif /* not CONFIG_ISA_DUAL_ISSUE */
92
93 .end