diff options
-rw-r--r-- | arch/arm/include/asm/assembler.h | 8 | ||||
-rw-r--r-- | arch/arm/lib/copy_template.S | 36 | ||||
-rw-r--r-- | arch/arm/lib/csumpartialcopygeneric.S | 96 | ||||
-rw-r--r-- | arch/arm/lib/io-readsl.S | 12 | ||||
-rw-r--r-- | arch/arm/lib/io-writesl.S | 12 | ||||
-rw-r--r-- | arch/arm/lib/memmove.S | 36 | ||||
-rw-r--r-- | arch/arm/lib/uaccess.S | 192 |
7 files changed, 196 insertions, 196 deletions
diff --git a/arch/arm/include/asm/assembler.h b/arch/arm/include/asm/assembler.h index 5c2285160575..380ac4f20000 100644 --- a/arch/arm/include/asm/assembler.h +++ b/arch/arm/include/asm/assembler.h | |||
@@ -30,8 +30,8 @@ | |||
30 | * Endian independent macros for shifting bytes within registers. | 30 | * Endian independent macros for shifting bytes within registers. |
31 | */ | 31 | */ |
32 | #ifndef __ARMEB__ | 32 | #ifndef __ARMEB__ |
33 | #define pull lsr | 33 | #define lspull lsr |
34 | #define push lsl | 34 | #define lspush lsl |
35 | #define get_byte_0 lsl #0 | 35 | #define get_byte_0 lsl #0 |
36 | #define get_byte_1 lsr #8 | 36 | #define get_byte_1 lsr #8 |
37 | #define get_byte_2 lsr #16 | 37 | #define get_byte_2 lsr #16 |
@@ -41,8 +41,8 @@ | |||
41 | #define put_byte_2 lsl #16 | 41 | #define put_byte_2 lsl #16 |
42 | #define put_byte_3 lsl #24 | 42 | #define put_byte_3 lsl #24 |
43 | #else | 43 | #else |
44 | #define pull lsl | 44 | #define lspull lsl |
45 | #define push lsr | 45 | #define lspush lsr |
46 | #define get_byte_0 lsr #24 | 46 | #define get_byte_0 lsr #24 |
47 | #define get_byte_1 lsr #16 | 47 | #define get_byte_1 lsr #16 |
48 | #define get_byte_2 lsr #8 | 48 | #define get_byte_2 lsr #8 |
diff --git a/arch/arm/lib/copy_template.S b/arch/arm/lib/copy_template.S index 805e3f8fb007..3bc8eb811a73 100644 --- a/arch/arm/lib/copy_template.S +++ b/arch/arm/lib/copy_template.S | |||
@@ -197,24 +197,24 @@ | |||
197 | 197 | ||
198 | 12: PLD( pld [r1, #124] ) | 198 | 12: PLD( pld [r1, #124] ) |
199 | 13: ldr4w r1, r4, r5, r6, r7, abort=19f | 199 | 13: ldr4w r1, r4, r5, r6, r7, abort=19f |
200 | mov r3, lr, pull #\pull | 200 | mov r3, lr, lspull #\pull |
201 | subs r2, r2, #32 | 201 | subs r2, r2, #32 |
202 | ldr4w r1, r8, r9, ip, lr, abort=19f | 202 | ldr4w r1, r8, r9, ip, lr, abort=19f |
203 | orr r3, r3, r4, push #\push | 203 | orr r3, r3, r4, lspush #\push |
204 | mov r4, r4, pull #\pull | 204 | mov r4, r4, lspull #\pull |
205 | orr r4, r4, r5, push #\push | 205 | orr r4, r4, r5, lspush #\push |
206 | mov r5, r5, pull #\pull | 206 | mov r5, r5, lspull #\pull |
207 | orr r5, r5, r6, push #\push | 207 | orr r5, r5, r6, lspush #\push |
208 | mov r6, r6, pull #\pull | 208 | mov r6, r6, lspull #\pull |
209 | orr r6, r6, r7, push #\push | 209 | orr r6, r6, r7, lspush #\push |
210 | mov r7, r7, pull #\pull | 210 | mov r7, r7, lspull #\pull |
211 | orr r7, r7, r8, push #\push | 211 | orr r7, r7, r8, lspush #\push |
212 | mov r8, r8, pull #\pull | 212 | mov r8, r8, lspull #\pull |
213 | orr r8, r8, r9, push #\push | 213 | orr r8, r8, r9, lspush #\push |
214 | mov r9, r9, pull #\pull | 214 | mov r9, r9, lspull #\pull |
215 | orr r9, r9, ip, push #\push | 215 | orr r9, r9, ip, lspush #\push |
216 | mov ip, ip, pull #\pull | 216 | mov ip, ip, lspull #\pull |
217 | orr ip, ip, lr, push #\push | 217 | orr ip, ip, lr, lspush #\push |
218 | str8w r0, r3, r4, r5, r6, r7, r8, r9, ip, , abort=19f | 218 | str8w r0, r3, r4, r5, r6, r7, r8, r9, ip, , abort=19f |
219 | bge 12b | 219 | bge 12b |
220 | PLD( cmn r2, #96 ) | 220 | PLD( cmn r2, #96 ) |
@@ -225,10 +225,10 @@ | |||
225 | 14: ands ip, r2, #28 | 225 | 14: ands ip, r2, #28 |
226 | beq 16f | 226 | beq 16f |
227 | 227 | ||
228 | 15: mov r3, lr, pull #\pull | 228 | 15: mov r3, lr, lspull #\pull |
229 | ldr1w r1, lr, abort=21f | 229 | ldr1w r1, lr, abort=21f |
230 | subs ip, ip, #4 | 230 | subs ip, ip, #4 |
231 | orr r3, r3, lr, push #\push | 231 | orr r3, r3, lr, lspush #\push |
232 | str1w r0, r3, abort=21f | 232 | str1w r0, r3, abort=21f |
233 | bgt 15b | 233 | bgt 15b |
234 | CALGN( cmp r2, #0 ) | 234 | CALGN( cmp r2, #0 ) |
diff --git a/arch/arm/lib/csumpartialcopygeneric.S b/arch/arm/lib/csumpartialcopygeneric.S index d620a5f22a09..d6e742d24007 100644 --- a/arch/arm/lib/csumpartialcopygeneric.S +++ b/arch/arm/lib/csumpartialcopygeneric.S | |||
@@ -141,7 +141,7 @@ FN_ENTRY | |||
141 | tst len, #2 | 141 | tst len, #2 |
142 | mov r5, r4, get_byte_0 | 142 | mov r5, r4, get_byte_0 |
143 | beq .Lexit | 143 | beq .Lexit |
144 | adcs sum, sum, r4, push #16 | 144 | adcs sum, sum, r4, lspush #16 |
145 | strb r5, [dst], #1 | 145 | strb r5, [dst], #1 |
146 | mov r5, r4, get_byte_1 | 146 | mov r5, r4, get_byte_1 |
147 | strb r5, [dst], #1 | 147 | strb r5, [dst], #1 |
@@ -171,23 +171,23 @@ FN_ENTRY | |||
171 | cmp ip, #2 | 171 | cmp ip, #2 |
172 | beq .Lsrc2_aligned | 172 | beq .Lsrc2_aligned |
173 | bhi .Lsrc3_aligned | 173 | bhi .Lsrc3_aligned |
174 | mov r4, r5, pull #8 @ C = 0 | 174 | mov r4, r5, lspull #8 @ C = 0 |
175 | bics ip, len, #15 | 175 | bics ip, len, #15 |
176 | beq 2f | 176 | beq 2f |
177 | 1: load4l r5, r6, r7, r8 | 177 | 1: load4l r5, r6, r7, r8 |
178 | orr r4, r4, r5, push #24 | 178 | orr r4, r4, r5, lspush #24 |
179 | mov r5, r5, pull #8 | 179 | mov r5, r5, lspull #8 |
180 | orr r5, r5, r6, push #24 | 180 | orr r5, r5, r6, lspush #24 |
181 | mov r6, r6, pull #8 | 181 | mov r6, r6, lspull #8 |
182 | orr r6, r6, r7, push #24 | 182 | orr r6, r6, r7, lspush #24 |
183 | mov r7, r7, pull #8 | 183 | mov r7, r7, lspull #8 |
184 | orr r7, r7, r8, push #24 | 184 | orr r7, r7, r8, lspush #24 |
185 | stmia dst!, {r4, r5, r6, r7} | 185 | stmia dst!, {r4, r5, r6, r7} |
186 | adcs sum, sum, r4 | 186 | adcs sum, sum, r4 |
187 | adcs sum, sum, r5 | 187 | adcs sum, sum, r5 |
188 | adcs sum, sum, r6 | 188 | adcs sum, sum, r6 |
189 | adcs sum, sum, r7 | 189 | adcs sum, sum, r7 |
190 | mov r4, r8, pull #8 | 190 | mov r4, r8, lspull #8 |
191 | sub ip, ip, #16 | 191 | sub ip, ip, #16 |
192 | teq ip, #0 | 192 | teq ip, #0 |
193 | bne 1b | 193 | bne 1b |
@@ -196,50 +196,50 @@ FN_ENTRY | |||
196 | tst ip, #8 | 196 | tst ip, #8 |
197 | beq 3f | 197 | beq 3f |
198 | load2l r5, r6 | 198 | load2l r5, r6 |
199 | orr r4, r4, r5, push #24 | 199 | orr r4, r4, r5, lspush #24 |
200 | mov r5, r5, pull #8 | 200 | mov r5, r5, lspull #8 |
201 | orr r5, r5, r6, push #24 | 201 | orr r5, r5, r6, lspush #24 |
202 | stmia dst!, {r4, r5} | 202 | stmia dst!, {r4, r5} |
203 | adcs sum, sum, r4 | 203 | adcs sum, sum, r4 |
204 | adcs sum, sum, r5 | 204 | adcs sum, sum, r5 |
205 | mov r4, r6, pull #8 | 205 | mov r4, r6, lspull #8 |
206 | tst ip, #4 | 206 | tst ip, #4 |
207 | beq 4f | 207 | beq 4f |
208 | 3: load1l r5 | 208 | 3: load1l r5 |
209 | orr r4, r4, r5, push #24 | 209 | orr r4, r4, r5, lspush #24 |
210 | str r4, [dst], #4 | 210 | str r4, [dst], #4 |
211 | adcs sum, sum, r4 | 211 | adcs sum, sum, r4 |
212 | mov r4, r5, pull #8 | 212 | mov r4, r5, lspull #8 |
213 | 4: ands len, len, #3 | 213 | 4: ands len, len, #3 |
214 | beq .Ldone | 214 | beq .Ldone |
215 | mov r5, r4, get_byte_0 | 215 | mov r5, r4, get_byte_0 |
216 | tst len, #2 | 216 | tst len, #2 |
217 | beq .Lexit | 217 | beq .Lexit |
218 | adcs sum, sum, r4, push #16 | 218 | adcs sum, sum, r4, lspush #16 |
219 | strb r5, [dst], #1 | 219 | strb r5, [dst], #1 |
220 | mov r5, r4, get_byte_1 | 220 | mov r5, r4, get_byte_1 |
221 | strb r5, [dst], #1 | 221 | strb r5, [dst], #1 |
222 | mov r5, r4, get_byte_2 | 222 | mov r5, r4, get_byte_2 |
223 | b .Lexit | 223 | b .Lexit |
224 | 224 | ||
225 | .Lsrc2_aligned: mov r4, r5, pull #16 | 225 | .Lsrc2_aligned: mov r4, r5, lspull #16 |
226 | adds sum, sum, #0 | 226 | adds sum, sum, #0 |
227 | bics ip, len, #15 | 227 | bics ip, len, #15 |
228 | beq 2f | 228 | beq 2f |
229 | 1: load4l r5, r6, r7, r8 | 229 | 1: load4l r5, r6, r7, r8 |
230 | orr r4, r4, r5, push #16 | 230 | orr r4, r4, r5, lspush #16 |
231 | mov r5, r5, pull #16 | 231 | mov r5, r5, lspull #16 |
232 | orr r5, r5, r6, push #16 | 232 | orr r5, r5, r6, lspush #16 |
233 | mov r6, r6, pull #16 | 233 | mov r6, r6, lspull #16 |
234 | orr r6, r6, r7, push #16 | 234 | orr r6, r6, r7, lspush #16 |
235 | mov r7, r7, pull #16 | 235 | mov r7, r7, lspull #16 |
236 | orr r7, r7, r8, push #16 | 236 | orr r7, r7, r8, lspush #16 |
237 | stmia dst!, {r4, r5, r6, r7} | 237 | stmia dst!, {r4, r5, r6, r7} |
238 | adcs sum, sum, r4 | 238 | adcs sum, sum, r4 |
239 | adcs sum, sum, r5 | 239 | adcs sum, sum, r5 |
240 | adcs sum, sum, r6 | 240 | adcs sum, sum, r6 |
241 | adcs sum, sum, r7 | 241 | adcs sum, sum, r7 |
242 | mov r4, r8, pull #16 | 242 | mov r4, r8, lspull #16 |
243 | sub ip, ip, #16 | 243 | sub ip, ip, #16 |
244 | teq ip, #0 | 244 | teq ip, #0 |
245 | bne 1b | 245 | bne 1b |
@@ -248,20 +248,20 @@ FN_ENTRY | |||
248 | tst ip, #8 | 248 | tst ip, #8 |
249 | beq 3f | 249 | beq 3f |
250 | load2l r5, r6 | 250 | load2l r5, r6 |
251 | orr r4, r4, r5, push #16 | 251 | orr r4, r4, r5, lspush #16 |
252 | mov r5, r5, pull #16 | 252 | mov r5, r5, lspull #16 |
253 | orr r5, r5, r6, push #16 | 253 | orr r5, r5, r6, lspush #16 |
254 | stmia dst!, {r4, r5} | 254 | stmia dst!, {r4, r5} |
255 | adcs sum, sum, r4 | 255 | adcs sum, sum, r4 |
256 | adcs sum, sum, r5 | 256 | adcs sum, sum, r5 |
257 | mov r4, r6, pull #16 | 257 | mov r4, r6, lspull #16 |
258 | tst ip, #4 | 258 | tst ip, #4 |
259 | beq 4f | 259 | beq 4f |
260 | 3: load1l r5 | 260 | 3: load1l r5 |
261 | orr r4, r4, r5, push #16 | 261 | orr r4, r4, r5, lspush #16 |
262 | str r4, [dst], #4 | 262 | str r4, [dst], #4 |
263 | adcs sum, sum, r4 | 263 | adcs sum, sum, r4 |
264 | mov r4, r5, pull #16 | 264 | mov r4, r5, lspull #16 |
265 | 4: ands len, len, #3 | 265 | 4: ands len, len, #3 |
266 | beq .Ldone | 266 | beq .Ldone |
267 | mov r5, r4, get_byte_0 | 267 | mov r5, r4, get_byte_0 |
@@ -276,24 +276,24 @@ FN_ENTRY | |||
276 | load1b r5 | 276 | load1b r5 |
277 | b .Lexit | 277 | b .Lexit |
278 | 278 | ||
279 | .Lsrc3_aligned: mov r4, r5, pull #24 | 279 | .Lsrc3_aligned: mov r4, r5, lspull #24 |
280 | adds sum, sum, #0 | 280 | adds sum, sum, #0 |
281 | bics ip, len, #15 | 281 | bics ip, len, #15 |
282 | beq 2f | 282 | beq 2f |
283 | 1: load4l r5, r6, r7, r8 | 283 | 1: load4l r5, r6, r7, r8 |
284 | orr r4, r4, r5, push #8 | 284 | orr r4, r4, r5, lspush #8 |
285 | mov r5, r5, pull #24 | 285 | mov r5, r5, lspull #24 |
286 | orr r5, r5, r6, push #8 | 286 | orr r5, r5, r6, lspush #8 |
287 | mov r6, r6, pull #24 | 287 | mov r6, r6, lspull #24 |
288 | orr r6, r6, r7, push #8 | 288 | orr r6, r6, r7, lspush #8 |
289 | mov r7, r7, pull #24 | 289 | mov r7, r7, lspull #24 |
290 | orr r7, r7, r8, push #8 | 290 | orr r7, r7, r8, lspush #8 |
291 | stmia dst!, {r4, r5, r6, r7} | 291 | stmia dst!, {r4, r5, r6, r7} |
292 | adcs sum, sum, r4 | 292 | adcs sum, sum, r4 |
293 | adcs sum, sum, r5 | 293 | adcs sum, sum, r5 |
294 | adcs sum, sum, r6 | 294 | adcs sum, sum, r6 |
295 | adcs sum, sum, r7 | 295 | adcs sum, sum, r7 |
296 | mov r4, r8, pull #24 | 296 | mov r4, r8, lspull #24 |
297 | sub ip, ip, #16 | 297 | sub ip, ip, #16 |
298 | teq ip, #0 | 298 | teq ip, #0 |
299 | bne 1b | 299 | bne 1b |
@@ -302,20 +302,20 @@ FN_ENTRY | |||
302 | tst ip, #8 | 302 | tst ip, #8 |
303 | beq 3f | 303 | beq 3f |
304 | load2l r5, r6 | 304 | load2l r5, r6 |
305 | orr r4, r4, r5, push #8 | 305 | orr r4, r4, r5, lspush #8 |
306 | mov r5, r5, pull #24 | 306 | mov r5, r5, lspull #24 |
307 | orr r5, r5, r6, push #8 | 307 | orr r5, r5, r6, lspush #8 |
308 | stmia dst!, {r4, r5} | 308 | stmia dst!, {r4, r5} |
309 | adcs sum, sum, r4 | 309 | adcs sum, sum, r4 |
310 | adcs sum, sum, r5 | 310 | adcs sum, sum, r5 |
311 | mov r4, r6, pull #24 | 311 | mov r4, r6, lspull #24 |
312 | tst ip, #4 | 312 | tst ip, #4 |
313 | beq 4f | 313 | beq 4f |
314 | 3: load1l r5 | 314 | 3: load1l r5 |
315 | orr r4, r4, r5, push #8 | 315 | orr r4, r4, r5, lspush #8 |
316 | str r4, [dst], #4 | 316 | str r4, [dst], #4 |
317 | adcs sum, sum, r4 | 317 | adcs sum, sum, r4 |
318 | mov r4, r5, pull #24 | 318 | mov r4, r5, lspull #24 |
319 | 4: ands len, len, #3 | 319 | 4: ands len, len, #3 |
320 | beq .Ldone | 320 | beq .Ldone |
321 | mov r5, r4, get_byte_0 | 321 | mov r5, r4, get_byte_0 |
@@ -326,7 +326,7 @@ FN_ENTRY | |||
326 | load1l r4 | 326 | load1l r4 |
327 | mov r5, r4, get_byte_0 | 327 | mov r5, r4, get_byte_0 |
328 | strb r5, [dst], #1 | 328 | strb r5, [dst], #1 |
329 | adcs sum, sum, r4, push #24 | 329 | adcs sum, sum, r4, lspush #24 |
330 | mov r5, r4, get_byte_1 | 330 | mov r5, r4, get_byte_1 |
331 | b .Lexit | 331 | b .Lexit |
332 | FN_EXIT | 332 | FN_EXIT |
diff --git a/arch/arm/lib/io-readsl.S b/arch/arm/lib/io-readsl.S index 5fb97e7f9f4b..7a7430950c79 100644 --- a/arch/arm/lib/io-readsl.S +++ b/arch/arm/lib/io-readsl.S | |||
@@ -47,25 +47,25 @@ ENTRY(__raw_readsl) | |||
47 | strb ip, [r1], #1 | 47 | strb ip, [r1], #1 |
48 | 48 | ||
49 | 4: subs r2, r2, #1 | 49 | 4: subs r2, r2, #1 |
50 | mov ip, r3, pull #24 | 50 | mov ip, r3, lspull #24 |
51 | ldrne r3, [r0] | 51 | ldrne r3, [r0] |
52 | orrne ip, ip, r3, push #8 | 52 | orrne ip, ip, r3, lspush #8 |
53 | strne ip, [r1], #4 | 53 | strne ip, [r1], #4 |
54 | bne 4b | 54 | bne 4b |
55 | b 8f | 55 | b 8f |
56 | 56 | ||
57 | 5: subs r2, r2, #1 | 57 | 5: subs r2, r2, #1 |
58 | mov ip, r3, pull #16 | 58 | mov ip, r3, lspull #16 |
59 | ldrne r3, [r0] | 59 | ldrne r3, [r0] |
60 | orrne ip, ip, r3, push #16 | 60 | orrne ip, ip, r3, lspush #16 |
61 | strne ip, [r1], #4 | 61 | strne ip, [r1], #4 |
62 | bne 5b | 62 | bne 5b |
63 | b 7f | 63 | b 7f |
64 | 64 | ||
65 | 6: subs r2, r2, #1 | 65 | 6: subs r2, r2, #1 |
66 | mov ip, r3, pull #8 | 66 | mov ip, r3, lspull #8 |
67 | ldrne r3, [r0] | 67 | ldrne r3, [r0] |
68 | orrne ip, ip, r3, push #24 | 68 | orrne ip, ip, r3, lspush #24 |
69 | strne ip, [r1], #4 | 69 | strne ip, [r1], #4 |
70 | bne 6b | 70 | bne 6b |
71 | 71 | ||
diff --git a/arch/arm/lib/io-writesl.S b/arch/arm/lib/io-writesl.S index 8d3b7813725c..d0d104a0dd11 100644 --- a/arch/arm/lib/io-writesl.S +++ b/arch/arm/lib/io-writesl.S | |||
@@ -41,26 +41,26 @@ ENTRY(__raw_writesl) | |||
41 | blt 5f | 41 | blt 5f |
42 | bgt 6f | 42 | bgt 6f |
43 | 43 | ||
44 | 4: mov ip, r3, pull #16 | 44 | 4: mov ip, r3, lspull #16 |
45 | ldr r3, [r1], #4 | 45 | ldr r3, [r1], #4 |
46 | subs r2, r2, #1 | 46 | subs r2, r2, #1 |
47 | orr ip, ip, r3, push #16 | 47 | orr ip, ip, r3, lspush #16 |
48 | str ip, [r0] | 48 | str ip, [r0] |
49 | bne 4b | 49 | bne 4b |
50 | mov pc, lr | 50 | mov pc, lr |
51 | 51 | ||
52 | 5: mov ip, r3, pull #8 | 52 | 5: mov ip, r3, lspull #8 |
53 | ldr r3, [r1], #4 | 53 | ldr r3, [r1], #4 |
54 | subs r2, r2, #1 | 54 | subs r2, r2, #1 |
55 | orr ip, ip, r3, push #24 | 55 | orr ip, ip, r3, lspush #24 |
56 | str ip, [r0] | 56 | str ip, [r0] |
57 | bne 5b | 57 | bne 5b |
58 | mov pc, lr | 58 | mov pc, lr |
59 | 59 | ||
60 | 6: mov ip, r3, pull #24 | 60 | 6: mov ip, r3, lspull #24 |
61 | ldr r3, [r1], #4 | 61 | ldr r3, [r1], #4 |
62 | subs r2, r2, #1 | 62 | subs r2, r2, #1 |
63 | orr ip, ip, r3, push #8 | 63 | orr ip, ip, r3, lspush #8 |
64 | str ip, [r0] | 64 | str ip, [r0] |
65 | bne 6b | 65 | bne 6b |
66 | mov pc, lr | 66 | mov pc, lr |
diff --git a/arch/arm/lib/memmove.S b/arch/arm/lib/memmove.S index 938fc14f962d..d1fc0c0c342c 100644 --- a/arch/arm/lib/memmove.S +++ b/arch/arm/lib/memmove.S | |||
@@ -147,24 +147,24 @@ ENTRY(memmove) | |||
147 | 147 | ||
148 | 12: PLD( pld [r1, #-128] ) | 148 | 12: PLD( pld [r1, #-128] ) |
149 | 13: ldmdb r1!, {r7, r8, r9, ip} | 149 | 13: ldmdb r1!, {r7, r8, r9, ip} |
150 | mov lr, r3, push #\push | 150 | mov lr, r3, lspush #\push |
151 | subs r2, r2, #32 | 151 | subs r2, r2, #32 |
152 | ldmdb r1!, {r3, r4, r5, r6} | 152 | ldmdb r1!, {r3, r4, r5, r6} |
153 | orr lr, lr, ip, pull #\pull | 153 | orr lr, lr, ip, lspull #\pull |
154 | mov ip, ip, push #\push | 154 | mov ip, ip, lspush #\push |
155 | orr ip, ip, r9, pull #\pull | 155 | orr ip, ip, r9, lspull #\pull |
156 | mov r9, r9, push #\push | 156 | mov r9, r9, lspush #\push |
157 | orr r9, r9, r8, pull #\pull | 157 | orr r9, r9, r8, lspull #\pull |
158 | mov r8, r8, push #\push | 158 | mov r8, r8, lspush #\push |
159 | orr r8, r8, r7, pull #\pull | 159 | orr r8, r8, r7, lspull #\pull |
160 | mov r7, r7, push #\push | 160 | mov r7, r7, lspush #\push |
161 | orr r7, r7, r6, pull #\pull | 161 | orr r7, r7, r6, lspull #\pull |
162 | mov r6, r6, push #\push | 162 | mov r6, r6, lspush #\push |
163 | orr r6, r6, r5, pull #\pull | 163 | orr r6, r6, r5, lspull #\pull |
164 | mov r5, r5, push #\push | 164 | mov r5, r5, lspush #\push |
165 | orr r5, r5, r4, pull #\pull | 165 | orr r5, r5, r4, lspull #\pull |
166 | mov r4, r4, push #\push | 166 | mov r4, r4, lspush #\push |
167 | orr r4, r4, r3, pull #\pull | 167 | orr r4, r4, r3, lspull #\pull |
168 | stmdb r0!, {r4 - r9, ip, lr} | 168 | stmdb r0!, {r4 - r9, ip, lr} |
169 | bge 12b | 169 | bge 12b |
170 | PLD( cmn r2, #96 ) | 170 | PLD( cmn r2, #96 ) |
@@ -175,10 +175,10 @@ ENTRY(memmove) | |||
175 | 14: ands ip, r2, #28 | 175 | 14: ands ip, r2, #28 |
176 | beq 16f | 176 | beq 16f |
177 | 177 | ||
178 | 15: mov lr, r3, push #\push | 178 | 15: mov lr, r3, lspush #\push |
179 | ldr r3, [r1, #-4]! | 179 | ldr r3, [r1, #-4]! |
180 | subs ip, ip, #4 | 180 | subs ip, ip, #4 |
181 | orr lr, lr, r3, pull #\pull | 181 | orr lr, lr, r3, lspull #\pull |
182 | str lr, [r0, #-4]! | 182 | str lr, [r0, #-4]! |
183 | bgt 15b | 183 | bgt 15b |
184 | CALGN( cmp r2, #0 ) | 184 | CALGN( cmp r2, #0 ) |
diff --git a/arch/arm/lib/uaccess.S b/arch/arm/lib/uaccess.S index 5c908b1cb8ed..e50520904b76 100644 --- a/arch/arm/lib/uaccess.S +++ b/arch/arm/lib/uaccess.S | |||
@@ -117,9 +117,9 @@ USER( TUSER( strgtb) r3, [r0], #1) @ May fault | |||
117 | .Lc2u_1fupi: subs r2, r2, #4 | 117 | .Lc2u_1fupi: subs r2, r2, #4 |
118 | addmi ip, r2, #4 | 118 | addmi ip, r2, #4 |
119 | bmi .Lc2u_1nowords | 119 | bmi .Lc2u_1nowords |
120 | mov r3, r7, pull #8 | 120 | mov r3, r7, lspull #8 |
121 | ldr r7, [r1], #4 | 121 | ldr r7, [r1], #4 |
122 | orr r3, r3, r7, push #24 | 122 | orr r3, r3, r7, lspush #24 |
123 | USER( TUSER( str) r3, [r0], #4) @ May fault | 123 | USER( TUSER( str) r3, [r0], #4) @ May fault |
124 | mov ip, r0, lsl #32 - PAGE_SHIFT | 124 | mov ip, r0, lsl #32 - PAGE_SHIFT |
125 | rsb ip, ip, #0 | 125 | rsb ip, ip, #0 |
@@ -131,30 +131,30 @@ USER( TUSER( str) r3, [r0], #4) @ May fault | |||
131 | subs ip, ip, #16 | 131 | subs ip, ip, #16 |
132 | blt .Lc2u_1rem8lp | 132 | blt .Lc2u_1rem8lp |
133 | 133 | ||
134 | .Lc2u_1cpy8lp: mov r3, r7, pull #8 | 134 | .Lc2u_1cpy8lp: mov r3, r7, lspull #8 |
135 | ldmia r1!, {r4 - r7} | 135 | ldmia r1!, {r4 - r7} |
136 | subs ip, ip, #16 | 136 | subs ip, ip, #16 |
137 | orr r3, r3, r4, push #24 | 137 | orr r3, r3, r4, lspush #24 |
138 | mov r4, r4, pull #8 | 138 | mov r4, r4, lspull #8 |
139 | orr r4, r4, r5, push #24 | 139 | orr r4, r4, r5, lspush #24 |
140 | mov r5, r5, pull #8 | 140 | mov r5, r5, lspull #8 |
141 | orr r5, r5, r6, push #24 | 141 | orr r5, r5, r6, lspush #24 |
142 | mov r6, r6, pull #8 | 142 | mov r6, r6, lspull #8 |
143 | orr r6, r6, r7, push #24 | 143 | orr r6, r6, r7, lspush #24 |
144 | stmia r0!, {r3 - r6} @ Shouldnt fault | 144 | stmia r0!, {r3 - r6} @ Shouldnt fault |
145 | bpl .Lc2u_1cpy8lp | 145 | bpl .Lc2u_1cpy8lp |
146 | 146 | ||
147 | .Lc2u_1rem8lp: tst ip, #8 | 147 | .Lc2u_1rem8lp: tst ip, #8 |
148 | movne r3, r7, pull #8 | 148 | movne r3, r7, lspull #8 |
149 | ldmneia r1!, {r4, r7} | 149 | ldmneia r1!, {r4, r7} |
150 | orrne r3, r3, r4, push #24 | 150 | orrne r3, r3, r4, lspush #24 |
151 | movne r4, r4, pull #8 | 151 | movne r4, r4, lspull #8 |
152 | orrne r4, r4, r7, push #24 | 152 | orrne r4, r4, r7, lspush #24 |
153 | stmneia r0!, {r3 - r4} @ Shouldnt fault | 153 | stmneia r0!, {r3 - r4} @ Shouldnt fault |
154 | tst ip, #4 | 154 | tst ip, #4 |
155 | movne r3, r7, pull #8 | 155 | movne r3, r7, lspull #8 |
156 | ldrne r7, [r1], #4 | 156 | ldrne r7, [r1], #4 |
157 | orrne r3, r3, r7, push #24 | 157 | orrne r3, r3, r7, lspush #24 |
158 | TUSER( strne) r3, [r0], #4 @ Shouldnt fault | 158 | TUSER( strne) r3, [r0], #4 @ Shouldnt fault |
159 | ands ip, ip, #3 | 159 | ands ip, ip, #3 |
160 | beq .Lc2u_1fupi | 160 | beq .Lc2u_1fupi |
@@ -172,9 +172,9 @@ USER( TUSER( strgtb) r3, [r0], #1) @ May fault | |||
172 | .Lc2u_2fupi: subs r2, r2, #4 | 172 | .Lc2u_2fupi: subs r2, r2, #4 |
173 | addmi ip, r2, #4 | 173 | addmi ip, r2, #4 |
174 | bmi .Lc2u_2nowords | 174 | bmi .Lc2u_2nowords |
175 | mov r3, r7, pull #16 | 175 | mov r3, r7, lspull #16 |
176 | ldr r7, [r1], #4 | 176 | ldr r7, [r1], #4 |
177 | orr r3, r3, r7, push #16 | 177 | orr r3, r3, r7, lspush #16 |
178 | USER( TUSER( str) r3, [r0], #4) @ May fault | 178 | USER( TUSER( str) r3, [r0], #4) @ May fault |
179 | mov ip, r0, lsl #32 - PAGE_SHIFT | 179 | mov ip, r0, lsl #32 - PAGE_SHIFT |
180 | rsb ip, ip, #0 | 180 | rsb ip, ip, #0 |
@@ -186,30 +186,30 @@ USER( TUSER( str) r3, [r0], #4) @ May fault | |||
186 | subs ip, ip, #16 | 186 | subs ip, ip, #16 |
187 | blt .Lc2u_2rem8lp | 187 | blt .Lc2u_2rem8lp |
188 | 188 | ||
189 | .Lc2u_2cpy8lp: mov r3, r7, pull #16 | 189 | .Lc2u_2cpy8lp: mov r3, r7, lspull #16 |
190 | ldmia r1!, {r4 - r7} | 190 | ldmia r1!, {r4 - r7} |
191 | subs ip, ip, #16 | 191 | subs ip, ip, #16 |
192 | orr r3, r3, r4, push #16 | 192 | orr r3, r3, r4, lspush #16 |
193 | mov r4, r4, pull #16 | 193 | mov r4, r4, lspull #16 |
194 | orr r4, r4, r5, push #16 | 194 | orr r4, r4, r5, lspush #16 |
195 | mov r5, r5, pull #16 | 195 | mov r5, r5, lspull #16 |
196 | orr r5, r5, r6, push #16 | 196 | orr r5, r5, r6, lspush #16 |
197 | mov r6, r6, pull #16 | 197 | mov r6, r6, lspull #16 |
198 | orr r6, r6, r7, push #16 | 198 | orr r6, r6, r7, lspush #16 |
199 | stmia r0!, {r3 - r6} @ Shouldnt fault | 199 | stmia r0!, {r3 - r6} @ Shouldnt fault |
200 | bpl .Lc2u_2cpy8lp | 200 | bpl .Lc2u_2cpy8lp |
201 | 201 | ||
202 | .Lc2u_2rem8lp: tst ip, #8 | 202 | .Lc2u_2rem8lp: tst ip, #8 |
203 | movne r3, r7, pull #16 | 203 | movne r3, r7, lspull #16 |
204 | ldmneia r1!, {r4, r7} | 204 | ldmneia r1!, {r4, r7} |
205 | orrne r3, r3, r4, push #16 | 205 | orrne r3, r3, r4, lspush #16 |
206 | movne r4, r4, pull #16 | 206 | movne r4, r4, lspull #16 |
207 | orrne r4, r4, r7, push #16 | 207 | orrne r4, r4, r7, lspush #16 |
208 | stmneia r0!, {r3 - r4} @ Shouldnt fault | 208 | stmneia r0!, {r3 - r4} @ Shouldnt fault |
209 | tst ip, #4 | 209 | tst ip, #4 |
210 | movne r3, r7, pull #16 | 210 | movne r3, r7, lspull #16 |
211 | ldrne r7, [r1], #4 | 211 | ldrne r7, [r1], #4 |
212 | orrne r3, r3, r7, push #16 | 212 | orrne r3, r3, r7, lspush #16 |
213 | TUSER( strne) r3, [r0], #4 @ Shouldnt fault | 213 | TUSER( strne) r3, [r0], #4 @ Shouldnt fault |
214 | ands ip, ip, #3 | 214 | ands ip, ip, #3 |
215 | beq .Lc2u_2fupi | 215 | beq .Lc2u_2fupi |
@@ -227,9 +227,9 @@ USER( TUSER( strgtb) r3, [r0], #1) @ May fault | |||
227 | .Lc2u_3fupi: subs r2, r2, #4 | 227 | .Lc2u_3fupi: subs r2, r2, #4 |
228 | addmi ip, r2, #4 | 228 | addmi ip, r2, #4 |
229 | bmi .Lc2u_3nowords | 229 | bmi .Lc2u_3nowords |
230 | mov r3, r7, pull #24 | 230 | mov r3, r7, lspull #24 |
231 | ldr r7, [r1], #4 | 231 | ldr r7, [r1], #4 |
232 | orr r3, r3, r7, push #8 | 232 | orr r3, r3, r7, lspush #8 |
233 | USER( TUSER( str) r3, [r0], #4) @ May fault | 233 | USER( TUSER( str) r3, [r0], #4) @ May fault |
234 | mov ip, r0, lsl #32 - PAGE_SHIFT | 234 | mov ip, r0, lsl #32 - PAGE_SHIFT |
235 | rsb ip, ip, #0 | 235 | rsb ip, ip, #0 |
@@ -241,30 +241,30 @@ USER( TUSER( str) r3, [r0], #4) @ May fault | |||
241 | subs ip, ip, #16 | 241 | subs ip, ip, #16 |
242 | blt .Lc2u_3rem8lp | 242 | blt .Lc2u_3rem8lp |
243 | 243 | ||
244 | .Lc2u_3cpy8lp: mov r3, r7, pull #24 | 244 | .Lc2u_3cpy8lp: mov r3, r7, lspull #24 |
245 | ldmia r1!, {r4 - r7} | 245 | ldmia r1!, {r4 - r7} |
246 | subs ip, ip, #16 | 246 | subs ip, ip, #16 |
247 | orr r3, r3, r4, push #8 | 247 | orr r3, r3, r4, lspush #8 |
248 | mov r4, r4, pull #24 | 248 | mov r4, r4, lspull #24 |
249 | orr r4, r4, r5, push #8 | 249 | orr r4, r4, r5, lspush #8 |
250 | mov r5, r5, pull #24 | 250 | mov r5, r5, lspull #24 |
251 | orr r5, r5, r6, push #8 | 251 | orr r5, r5, r6, lspush #8 |
252 | mov r6, r6, pull #24 | 252 | mov r6, r6, lspull #24 |
253 | orr r6, r6, r7, push #8 | 253 | orr r6, r6, r7, lspush #8 |
254 | stmia r0!, {r3 - r6} @ Shouldnt fault | 254 | stmia r0!, {r3 - r6} @ Shouldnt fault |
255 | bpl .Lc2u_3cpy8lp | 255 | bpl .Lc2u_3cpy8lp |
256 | 256 | ||
257 | .Lc2u_3rem8lp: tst ip, #8 | 257 | .Lc2u_3rem8lp: tst ip, #8 |
258 | movne r3, r7, pull #24 | 258 | movne r3, r7, lspull #24 |
259 | ldmneia r1!, {r4, r7} | 259 | ldmneia r1!, {r4, r7} |
260 | orrne r3, r3, r4, push #8 | 260 | orrne r3, r3, r4, lspush #8 |
261 | movne r4, r4, pull #24 | 261 | movne r4, r4, lspull #24 |
262 | orrne r4, r4, r7, push #8 | 262 | orrne r4, r4, r7, lspush #8 |
263 | stmneia r0!, {r3 - r4} @ Shouldnt fault | 263 | stmneia r0!, {r3 - r4} @ Shouldnt fault |
264 | tst ip, #4 | 264 | tst ip, #4 |
265 | movne r3, r7, pull #24 | 265 | movne r3, r7, lspull #24 |
266 | ldrne r7, [r1], #4 | 266 | ldrne r7, [r1], #4 |
267 | orrne r3, r3, r7, push #8 | 267 | orrne r3, r3, r7, lspush #8 |
268 | TUSER( strne) r3, [r0], #4 @ Shouldnt fault | 268 | TUSER( strne) r3, [r0], #4 @ Shouldnt fault |
269 | ands ip, ip, #3 | 269 | ands ip, ip, #3 |
270 | beq .Lc2u_3fupi | 270 | beq .Lc2u_3fupi |
@@ -382,9 +382,9 @@ USER( TUSER( ldr) r7, [r1], #4) @ May fault | |||
382 | .Lcfu_1fupi: subs r2, r2, #4 | 382 | .Lcfu_1fupi: subs r2, r2, #4 |
383 | addmi ip, r2, #4 | 383 | addmi ip, r2, #4 |
384 | bmi .Lcfu_1nowords | 384 | bmi .Lcfu_1nowords |
385 | mov r3, r7, pull #8 | 385 | mov r3, r7, lspull #8 |
386 | USER( TUSER( ldr) r7, [r1], #4) @ May fault | 386 | USER( TUSER( ldr) r7, [r1], #4) @ May fault |
387 | orr r3, r3, r7, push #24 | 387 | orr r3, r3, r7, lspush #24 |
388 | str r3, [r0], #4 | 388 | str r3, [r0], #4 |
389 | mov ip, r1, lsl #32 - PAGE_SHIFT | 389 | mov ip, r1, lsl #32 - PAGE_SHIFT |
390 | rsb ip, ip, #0 | 390 | rsb ip, ip, #0 |
@@ -396,30 +396,30 @@ USER( TUSER( ldr) r7, [r1], #4) @ May fault | |||
396 | subs ip, ip, #16 | 396 | subs ip, ip, #16 |
397 | blt .Lcfu_1rem8lp | 397 | blt .Lcfu_1rem8lp |
398 | 398 | ||
399 | .Lcfu_1cpy8lp: mov r3, r7, pull #8 | 399 | .Lcfu_1cpy8lp: mov r3, r7, lspull #8 |
400 | ldmia r1!, {r4 - r7} @ Shouldnt fault | 400 | ldmia r1!, {r4 - r7} @ Shouldnt fault |
401 | subs ip, ip, #16 | 401 | subs ip, ip, #16 |
402 | orr r3, r3, r4, push #24 | 402 | orr r3, r3, r4, lspush #24 |
403 | mov r4, r4, pull #8 | 403 | mov r4, r4, lspull #8 |
404 | orr r4, r4, r5, push #24 | 404 | orr r4, r4, r5, lspush #24 |
405 | mov r5, r5, pull #8 | 405 | mov r5, r5, lspull #8 |
406 | orr r5, r5, r6, push #24 | 406 | orr r5, r5, r6, lspush #24 |
407 | mov r6, r6, pull #8 | 407 | mov r6, r6, lspull #8 |
408 | orr r6, r6, r7, push #24 | 408 | orr r6, r6, r7, lspush #24 |
409 | stmia r0!, {r3 - r6} | 409 | stmia r0!, {r3 - r6} |
410 | bpl .Lcfu_1cpy8lp | 410 | bpl .Lcfu_1cpy8lp |
411 | 411 | ||
412 | .Lcfu_1rem8lp: tst ip, #8 | 412 | .Lcfu_1rem8lp: tst ip, #8 |
413 | movne r3, r7, pull #8 | 413 | movne r3, r7, lspull #8 |
414 | ldmneia r1!, {r4, r7} @ Shouldnt fault | 414 | ldmneia r1!, {r4, r7} @ Shouldnt fault |
415 | orrne r3, r3, r4, push #24 | 415 | orrne r3, r3, r4, lspush #24 |
416 | movne r4, r4, pull #8 | 416 | movne r4, r4, lspull #8 |
417 | orrne r4, r4, r7, push #24 | 417 | orrne r4, r4, r7, lspush #24 |
418 | stmneia r0!, {r3 - r4} | 418 | stmneia r0!, {r3 - r4} |
419 | tst ip, #4 | 419 | tst ip, #4 |
420 | movne r3, r7, pull #8 | 420 | movne r3, r7, lspull #8 |
421 | USER( TUSER( ldrne) r7, [r1], #4) @ May fault | 421 | USER( TUSER( ldrne) r7, [r1], #4) @ May fault |
422 | orrne r3, r3, r7, push #24 | 422 | orrne r3, r3, r7, lspush #24 |
423 | strne r3, [r0], #4 | 423 | strne r3, [r0], #4 |
424 | ands ip, ip, #3 | 424 | ands ip, ip, #3 |
425 | beq .Lcfu_1fupi | 425 | beq .Lcfu_1fupi |
@@ -437,9 +437,9 @@ USER( TUSER( ldrne) r7, [r1], #4) @ May fault | |||
437 | .Lcfu_2fupi: subs r2, r2, #4 | 437 | .Lcfu_2fupi: subs r2, r2, #4 |
438 | addmi ip, r2, #4 | 438 | addmi ip, r2, #4 |
439 | bmi .Lcfu_2nowords | 439 | bmi .Lcfu_2nowords |
440 | mov r3, r7, pull #16 | 440 | mov r3, r7, lspull #16 |
441 | USER( TUSER( ldr) r7, [r1], #4) @ May fault | 441 | USER( TUSER( ldr) r7, [r1], #4) @ May fault |
442 | orr r3, r3, r7, push #16 | 442 | orr r3, r3, r7, lspush #16 |
443 | str r3, [r0], #4 | 443 | str r3, [r0], #4 |
444 | mov ip, r1, lsl #32 - PAGE_SHIFT | 444 | mov ip, r1, lsl #32 - PAGE_SHIFT |
445 | rsb ip, ip, #0 | 445 | rsb ip, ip, #0 |
@@ -452,30 +452,30 @@ USER( TUSER( ldr) r7, [r1], #4) @ May fault | |||
452 | blt .Lcfu_2rem8lp | 452 | blt .Lcfu_2rem8lp |
453 | 453 | ||
454 | 454 | ||
455 | .Lcfu_2cpy8lp: mov r3, r7, pull #16 | 455 | .Lcfu_2cpy8lp: mov r3, r7, lspull #16 |
456 | ldmia r1!, {r4 - r7} @ Shouldnt fault | 456 | ldmia r1!, {r4 - r7} @ Shouldnt fault |
457 | subs ip, ip, #16 | 457 | subs ip, ip, #16 |
458 | orr r3, r3, r4, push #16 | 458 | orr r3, r3, r4, lspush #16 |
459 | mov r4, r4, pull #16 | 459 | mov r4, r4, lspull #16 |
460 | orr r4, r4, r5, push #16 | 460 | orr r4, r4, r5, lspush #16 |
461 | mov r5, r5, pull #16 | 461 | mov r5, r5, lspull #16 |
462 | orr r5, r5, r6, push #16 | 462 | orr r5, r5, r6, lspush #16 |
463 | mov r6, r6, pull #16 | 463 | mov r6, r6, lspull #16 |
464 | orr r6, r6, r7, push #16 | 464 | orr r6, r6, r7, lspush #16 |
465 | stmia r0!, {r3 - r6} | 465 | stmia r0!, {r3 - r6} |
466 | bpl .Lcfu_2cpy8lp | 466 | bpl .Lcfu_2cpy8lp |
467 | 467 | ||
468 | .Lcfu_2rem8lp: tst ip, #8 | 468 | .Lcfu_2rem8lp: tst ip, #8 |
469 | movne r3, r7, pull #16 | 469 | movne r3, r7, lspull #16 |
470 | ldmneia r1!, {r4, r7} @ Shouldnt fault | 470 | ldmneia r1!, {r4, r7} @ Shouldnt fault |
471 | orrne r3, r3, r4, push #16 | 471 | orrne r3, r3, r4, lspush #16 |
472 | movne r4, r4, pull #16 | 472 | movne r4, r4, lspull #16 |
473 | orrne r4, r4, r7, push #16 | 473 | orrne r4, r4, r7, lspush #16 |
474 | stmneia r0!, {r3 - r4} | 474 | stmneia r0!, {r3 - r4} |
475 | tst ip, #4 | 475 | tst ip, #4 |
476 | movne r3, r7, pull #16 | 476 | movne r3, r7, lspull #16 |
477 | USER( TUSER( ldrne) r7, [r1], #4) @ May fault | 477 | USER( TUSER( ldrne) r7, [r1], #4) @ May fault |
478 | orrne r3, r3, r7, push #16 | 478 | orrne r3, r3, r7, lspush #16 |
479 | strne r3, [r0], #4 | 479 | strne r3, [r0], #4 |
480 | ands ip, ip, #3 | 480 | ands ip, ip, #3 |
481 | beq .Lcfu_2fupi | 481 | beq .Lcfu_2fupi |
@@ -493,9 +493,9 @@ USER( TUSER( ldrgtb) r3, [r1], #0) @ May fault | |||
493 | .Lcfu_3fupi: subs r2, r2, #4 | 493 | .Lcfu_3fupi: subs r2, r2, #4 |
494 | addmi ip, r2, #4 | 494 | addmi ip, r2, #4 |
495 | bmi .Lcfu_3nowords | 495 | bmi .Lcfu_3nowords |
496 | mov r3, r7, pull #24 | 496 | mov r3, r7, lspull #24 |
497 | USER( TUSER( ldr) r7, [r1], #4) @ May fault | 497 | USER( TUSER( ldr) r7, [r1], #4) @ May fault |
498 | orr r3, r3, r7, push #8 | 498 | orr r3, r3, r7, lspush #8 |
499 | str r3, [r0], #4 | 499 | str r3, [r0], #4 |
500 | mov ip, r1, lsl #32 - PAGE_SHIFT | 500 | mov ip, r1, lsl #32 - PAGE_SHIFT |
501 | rsb ip, ip, #0 | 501 | rsb ip, ip, #0 |
@@ -507,30 +507,30 @@ USER( TUSER( ldr) r7, [r1], #4) @ May fault | |||
507 | subs ip, ip, #16 | 507 | subs ip, ip, #16 |
508 | blt .Lcfu_3rem8lp | 508 | blt .Lcfu_3rem8lp |
509 | 509 | ||
510 | .Lcfu_3cpy8lp: mov r3, r7, pull #24 | 510 | .Lcfu_3cpy8lp: mov r3, r7, lspull #24 |
511 | ldmia r1!, {r4 - r7} @ Shouldnt fault | 511 | ldmia r1!, {r4 - r7} @ Shouldnt fault |
512 | orr r3, r3, r4, push #8 | 512 | orr r3, r3, r4, lspush #8 |
513 | mov r4, r4, pull #24 | 513 | mov r4, r4, lspull #24 |
514 | orr r4, r4, r5, push #8 | 514 | orr r4, r4, r5, lspush #8 |
515 | mov r5, r5, pull #24 | 515 | mov r5, r5, lspull #24 |
516 | orr r5, r5, r6, push #8 | 516 | orr r5, r5, r6, lspush #8 |
517 | mov r6, r6, pull #24 | 517 | mov r6, r6, lspull #24 |
518 | orr r6, r6, r7, push #8 | 518 | orr r6, r6, r7, lspush #8 |
519 | stmia r0!, {r3 - r6} | 519 | stmia r0!, {r3 - r6} |
520 | subs ip, ip, #16 | 520 | subs ip, ip, #16 |
521 | bpl .Lcfu_3cpy8lp | 521 | bpl .Lcfu_3cpy8lp |
522 | 522 | ||
523 | .Lcfu_3rem8lp: tst ip, #8 | 523 | .Lcfu_3rem8lp: tst ip, #8 |
524 | movne r3, r7, pull #24 | 524 | movne r3, r7, lspull #24 |
525 | ldmneia r1!, {r4, r7} @ Shouldnt fault | 525 | ldmneia r1!, {r4, r7} @ Shouldnt fault |
526 | orrne r3, r3, r4, push #8 | 526 | orrne r3, r3, r4, lspush #8 |
527 | movne r4, r4, pull #24 | 527 | movne r4, r4, lspull #24 |
528 | orrne r4, r4, r7, push #8 | 528 | orrne r4, r4, r7, lspush #8 |
529 | stmneia r0!, {r3 - r4} | 529 | stmneia r0!, {r3 - r4} |
530 | tst ip, #4 | 530 | tst ip, #4 |
531 | movne r3, r7, pull #24 | 531 | movne r3, r7, lspull #24 |
532 | USER( TUSER( ldrne) r7, [r1], #4) @ May fault | 532 | USER( TUSER( ldrne) r7, [r1], #4) @ May fault |
533 | orrne r3, r3, r7, push #8 | 533 | orrne r3, r3, r7, lspush #8 |
534 | strne r3, [r0], #4 | 534 | strne r3, [r0], #4 |
535 | ands ip, ip, #3 | 535 | ands ip, ip, #3 |
536 | beq .Lcfu_3fupi | 536 | beq .Lcfu_3fupi |