hc
2024-02-20 102a0743326a03cd1a1202ceda21e175b7d3575c
kernel/arch/arm/lib/copy_to_user.S
....@@ -1,13 +1,10 @@
1
+/* SPDX-License-Identifier: GPL-2.0-only */
12 /*
23 * linux/arch/arm/lib/copy_to_user.S
34 *
45 * Author: Nicolas Pitre
56 * Created: Sep 29, 2005
67 * Copyright: MontaVista Software, Inc.
7
- *
8
- * This program is free software; you can redistribute it and/or modify
9
- * it under the terms of the GNU General Public License version 2 as
10
- * published by the Free Software Foundation.
118 */
129
1310 #include <linux/linkage.h>
....@@ -35,11 +32,6 @@
3532 */
3633
3734 #define LDR1W_SHIFT 0
38
-#ifndef CONFIG_THUMB2_KERNEL
39
-#define STR1W_SHIFT 0
40
-#else
41
-#define STR1W_SHIFT 1
42
-#endif
4335
4436 .macro ldr1w ptr reg abort
4537 W(ldr) \reg, [\ptr], #4
....@@ -54,8 +46,16 @@
5446 .endm
5547
5648 .macro ldr1b ptr reg cond=al abort
57
- ldr\cond\()b \reg, [\ptr], #1
49
+ ldrb\cond \reg, [\ptr], #1
5850 .endm
51
+
52
+#ifdef CONFIG_CPU_USE_DOMAINS
53
+
54
+#ifndef CONFIG_THUMB2_KERNEL
55
+#define STR1W_SHIFT 0
56
+#else
57
+#define STR1W_SHIFT 1
58
+#endif
5959
6060 .macro str1w ptr reg abort
6161 strusr \reg, \ptr, 4, abort=\abort
....@@ -72,6 +72,20 @@
7272 str1w \ptr, \reg8, \abort
7373 .endm
7474
75
+#else
76
+
77
+#define STR1W_SHIFT 0
78
+
79
+ .macro str1w ptr reg abort
80
+ USERL(\abort, W(str) \reg, [\ptr], #4)
81
+ .endm
82
+
83
+ .macro str8w ptr reg1 reg2 reg3 reg4 reg5 reg6 reg7 reg8 abort
84
+ USERL(\abort, stmia \ptr!, {\reg1, \reg2, \reg3, \reg4, \reg5, \reg6, \reg7, \reg8})
85
+ .endm
86
+
87
+#endif /* CONFIG_CPU_USE_DOMAINS */
88
+
7589 .macro str1b ptr reg cond=al abort
7690 strusr \reg, \ptr, 1, \cond, abort=\abort
7791 .endm