hc
2023-12-08 01573e231f18eb2d99162747186f59511f56b64d
kernel/arch/arm/lib/memset.S
....@@ -1,11 +1,8 @@
1
+/* SPDX-License-Identifier: GPL-2.0-only */
12 /*
23 * linux/arch/arm/lib/memset.S
34 *
45 * Copyright (C) 1995-2000 Russell King
5
- *
6
- * This program is free software; you can redistribute it and/or modify
7
- * it under the terms of the GNU General Public License version 2 as
8
- * published by the Free Software Foundation.
96 *
107 * ASM optimised string functions
118 */
....@@ -44,20 +41,20 @@
4441 mov lr, r3
4542
4643 2: subs r2, r2, #64
47
- stmgeia ip!, {r1, r3, r8, lr} @ 64 bytes at a time.
48
- stmgeia ip!, {r1, r3, r8, lr}
49
- stmgeia ip!, {r1, r3, r8, lr}
50
- stmgeia ip!, {r1, r3, r8, lr}
44
+ stmiage ip!, {r1, r3, r8, lr} @ 64 bytes at a time.
45
+ stmiage ip!, {r1, r3, r8, lr}
46
+ stmiage ip!, {r1, r3, r8, lr}
47
+ stmiage ip!, {r1, r3, r8, lr}
5148 bgt 2b
52
- ldmeqfd sp!, {r8, pc} @ Now <64 bytes to go.
49
+ ldmfdeq sp!, {r8, pc} @ Now <64 bytes to go.
5350 /*
5451 * No need to correct the count; we're only testing bits from now on
5552 */
5653 tst r2, #32
57
- stmneia ip!, {r1, r3, r8, lr}
58
- stmneia ip!, {r1, r3, r8, lr}
54
+ stmiane ip!, {r1, r3, r8, lr}
55
+ stmiane ip!, {r1, r3, r8, lr}
5956 tst r2, #16
60
- stmneia ip!, {r1, r3, r8, lr}
57
+ stmiane ip!, {r1, r3, r8, lr}
6158 ldmfd sp!, {r8, lr}
6259 UNWIND( .fnend )
6360
....@@ -87,22 +84,22 @@
8784 rsb r8, r8, #32
8885 sub r2, r2, r8
8986 movs r8, r8, lsl #(32 - 4)
90
- stmcsia ip!, {r4, r5, r6, r7}
91
- stmmiia ip!, {r4, r5}
87
+ stmiacs ip!, {r4, r5, r6, r7}
88
+ stmiami ip!, {r4, r5}
9289 tst r8, #(1 << 30)
9390 mov r8, r1
9491 strne r1, [ip], #4
9592
9693 3: subs r2, r2, #64
97
- stmgeia ip!, {r1, r3-r8, lr}
98
- stmgeia ip!, {r1, r3-r8, lr}
94
+ stmiage ip!, {r1, r3-r8, lr}
95
+ stmiage ip!, {r1, r3-r8, lr}
9996 bgt 3b
100
- ldmeqfd sp!, {r4-r8, pc}
97
+ ldmfdeq sp!, {r4-r8, pc}
10198
10299 tst r2, #32
103
- stmneia ip!, {r1, r3-r8, lr}
100
+ stmiane ip!, {r1, r3-r8, lr}
104101 tst r2, #16
105
- stmneia ip!, {r4-r7}
102
+ stmiane ip!, {r4-r7}
106103 ldmfd sp!, {r4-r8, lr}
107104 UNWIND( .fnend )
108105
....@@ -110,7 +107,7 @@
110107
111108 UNWIND( .fnstart )
112109 4: tst r2, #8
113
- stmneia ip!, {r1, r3}
110
+ stmiane ip!, {r1, r3}
114111 tst r2, #4
115112 strne r1, [ip], #4
116113 /*
....@@ -118,17 +115,17 @@
118115 * may have an unaligned pointer as well.
119116 */
120117 5: tst r2, #2
121
- strneb r1, [ip], #1
122
- strneb r1, [ip], #1
118
+ strbne r1, [ip], #1
119
+ strbne r1, [ip], #1
123120 tst r2, #1
124
- strneb r1, [ip], #1
121
+ strbne r1, [ip], #1
125122 ret lr
126123
127124 6: subs r2, r2, #4 @ 1 do we have enough
128125 blt 5b @ 1 bytes to align with?
129126 cmp r3, #2 @ 1
130
- strltb r1, [ip], #1 @ 1
131
- strleb r1, [ip], #1 @ 1
127
+ strblt r1, [ip], #1 @ 1
128
+ strble r1, [ip], #1 @ 1
132129 strb r1, [ip], #1 @ 1
133130 add r2, r2, r3 @ 1 (r2 = r2 - (4 - r3))
134131 b 1b