diff options
Diffstat (limited to 'arch/arm/lib/io-writesw-armv4.S')
-rw-r--r-- | arch/arm/lib/io-writesw-armv4.S | 25 |
1 files changed, 13 insertions, 12 deletions
diff --git a/arch/arm/lib/io-writesw-armv4.S b/arch/arm/lib/io-writesw-armv4.S index 5e240e452af6..c8e85bd653b7 100644 --- a/arch/arm/lib/io-writesw-armv4.S +++ b/arch/arm/lib/io-writesw-armv4.S | |||
@@ -22,8 +22,8 @@ | |||
22 | #endif | 22 | #endif |
23 | .endm | 23 | .endm |
24 | 24 | ||
25 | .outsw_align: movs ip, r1, lsl #31 | 25 | .Loutsw_align: movs ip, r1, lsl #31 |
26 | bne .outsw_noalign | 26 | bne .Loutsw_noalign |
27 | 27 | ||
28 | ldrh r3, [r1], #2 | 28 | ldrh r3, [r1], #2 |
29 | sub r2, r2, #1 | 29 | sub r2, r2, #1 |
@@ -33,35 +33,35 @@ ENTRY(__raw_writesw) | |||
33 | teq r2, #0 | 33 | teq r2, #0 |
34 | moveq pc, lr | 34 | moveq pc, lr |
35 | ands r3, r1, #3 | 35 | ands r3, r1, #3 |
36 | bne .outsw_align | 36 | bne .Loutsw_align |
37 | 37 | ||
38 | stmfd sp!, {r4, r5, lr} | 38 | stmfd sp!, {r4, r5, lr} |
39 | 39 | ||
40 | subs r2, r2, #8 | 40 | subs r2, r2, #8 |
41 | bmi .no_outsw_8 | 41 | bmi .Lno_outsw_8 |
42 | 42 | ||
43 | .outsw_8_lp: ldmia r1!, {r3, r4, r5, ip} | 43 | .Loutsw_8_lp: ldmia r1!, {r3, r4, r5, ip} |
44 | subs r2, r2, #8 | 44 | subs r2, r2, #8 |
45 | outword r3 | 45 | outword r3 |
46 | outword r4 | 46 | outword r4 |
47 | outword r5 | 47 | outword r5 |
48 | outword ip | 48 | outword ip |
49 | bpl .outsw_8_lp | 49 | bpl .Loutsw_8_lp |
50 | 50 | ||
51 | .no_outsw_8: tst r2, #4 | 51 | .Lno_outsw_8: tst r2, #4 |
52 | beq .no_outsw_4 | 52 | beq .Lno_outsw_4 |
53 | 53 | ||
54 | ldmia r1!, {r3, ip} | 54 | ldmia r1!, {r3, ip} |
55 | outword r3 | 55 | outword r3 |
56 | outword ip | 56 | outword ip |
57 | 57 | ||
58 | .no_outsw_4: movs r2, r2, lsl #31 | 58 | .Lno_outsw_4: movs r2, r2, lsl #31 |
59 | bcc .no_outsw_2 | 59 | bcc .Lno_outsw_2 |
60 | 60 | ||
61 | ldr r3, [r1], #4 | 61 | ldr r3, [r1], #4 |
62 | outword r3 | 62 | outword r3 |
63 | 63 | ||
64 | .no_outsw_2: ldrneh r3, [r1] | 64 | .Lno_outsw_2: ldrneh r3, [r1] |
65 | strneh r3, [r0] | 65 | strneh r3, [r0] |
66 | 66 | ||
67 | ldmfd sp!, {r4, r5, pc} | 67 | ldmfd sp!, {r4, r5, pc} |
@@ -74,7 +74,8 @@ ENTRY(__raw_writesw) | |||
74 | #define push_hbyte1 lsl #8 | 74 | #define push_hbyte1 lsl #8 |
75 | #endif | 75 | #endif |
76 | 76 | ||
77 | .outsw_noalign: ldr r3, [r1, -r3]! | 77 | .Loutsw_noalign: |
78 | ldr r3, [r1, -r3]! | ||
78 | subcs r2, r2, #1 | 79 | subcs r2, r2, #1 |
79 | bcs 2f | 80 | bcs 2f |
80 | subs r2, r2, #2 | 81 | subs r2, r2, #2 |