diff options
Diffstat (limited to 'arch/arm/lib')
-rw-r--r-- | arch/arm/lib/io-acorn.S | 4 | ||||
-rw-r--r-- | arch/arm/lib/io-readsb.S | 24 | ||||
-rw-r--r-- | arch/arm/lib/io-readsw-armv3.S | 30 | ||||
-rw-r--r-- | arch/arm/lib/io-readsw-armv4.S | 24 | ||||
-rw-r--r-- | arch/arm/lib/io-writesb.S | 25 | ||||
-rw-r--r-- | arch/arm/lib/io-writesw-armv3.S | 30 | ||||
-rw-r--r-- | arch/arm/lib/io-writesw-armv4.S | 25 |
7 files changed, 82 insertions, 80 deletions
diff --git a/arch/arm/lib/io-acorn.S b/arch/arm/lib/io-acorn.S index 3aacd01d40e1..b153523631c3 100644 --- a/arch/arm/lib/io-acorn.S +++ b/arch/arm/lib/io-acorn.S | |||
@@ -17,7 +17,7 @@ | |||
17 | .text | 17 | .text |
18 | .align | 18 | .align |
19 | 19 | ||
20 | .iosl_warning: | 20 | .Liosl_warning: |
21 | .ascii "<4>insl/outsl not implemented, called from %08lX\0" | 21 | .ascii "<4>insl/outsl not implemented, called from %08lX\0" |
22 | .align | 22 | .align |
23 | 23 | ||
@@ -27,6 +27,6 @@ | |||
27 | */ | 27 | */ |
28 | ENTRY(insl) | 28 | ENTRY(insl) |
29 | ENTRY(outsl) | 29 | ENTRY(outsl) |
30 | adr r0, .iosl_warning | 30 | adr r0, .Liosl_warning |
31 | mov r1, lr | 31 | mov r1, lr |
32 | b printk | 32 | b printk |
diff --git a/arch/arm/lib/io-readsb.S b/arch/arm/lib/io-readsb.S index 081ef749298a..d3d8de71a2c8 100644 --- a/arch/arm/lib/io-readsb.S +++ b/arch/arm/lib/io-readsb.S | |||
@@ -10,7 +10,7 @@ | |||
10 | #include <linux/linkage.h> | 10 | #include <linux/linkage.h> |
11 | #include <asm/assembler.h> | 11 | #include <asm/assembler.h> |
12 | 12 | ||
13 | .insb_align: rsb ip, ip, #4 | 13 | .Linsb_align: rsb ip, ip, #4 |
14 | cmp ip, r2 | 14 | cmp ip, r2 |
15 | movgt ip, r2 | 15 | movgt ip, r2 |
16 | cmp ip, #2 | 16 | cmp ip, #2 |
@@ -21,20 +21,20 @@ | |||
21 | ldrgtb r3, [r0] | 21 | ldrgtb r3, [r0] |
22 | strgtb r3, [r1], #1 | 22 | strgtb r3, [r1], #1 |
23 | subs r2, r2, ip | 23 | subs r2, r2, ip |
24 | bne .insb_aligned | 24 | bne .Linsb_aligned |
25 | 25 | ||
26 | ENTRY(__raw_readsb) | 26 | ENTRY(__raw_readsb) |
27 | teq r2, #0 @ do we have to check for the zero len? | 27 | teq r2, #0 @ do we have to check for the zero len? |
28 | moveq pc, lr | 28 | moveq pc, lr |
29 | ands ip, r1, #3 | 29 | ands ip, r1, #3 |
30 | bne .insb_align | 30 | bne .Linsb_align |
31 | 31 | ||
32 | .insb_aligned: stmfd sp!, {r4 - r6, lr} | 32 | .Linsb_aligned: stmfd sp!, {r4 - r6, lr} |
33 | 33 | ||
34 | subs r2, r2, #16 | 34 | subs r2, r2, #16 |
35 | bmi .insb_no_16 | 35 | bmi .Linsb_no_16 |
36 | 36 | ||
37 | .insb_16_lp: ldrb r3, [r0] | 37 | .Linsb_16_lp: ldrb r3, [r0] |
38 | ldrb r4, [r0] | 38 | ldrb r4, [r0] |
39 | ldrb r5, [r0] | 39 | ldrb r5, [r0] |
40 | mov r3, r3, put_byte_0 | 40 | mov r3, r3, put_byte_0 |
@@ -69,13 +69,13 @@ ENTRY(__raw_readsb) | |||
69 | stmia r1!, {r3 - r6} | 69 | stmia r1!, {r3 - r6} |
70 | 70 | ||
71 | subs r2, r2, #16 | 71 | subs r2, r2, #16 |
72 | bpl .insb_16_lp | 72 | bpl .Linsb_16_lp |
73 | 73 | ||
74 | tst r2, #15 | 74 | tst r2, #15 |
75 | LOADREGS(eqfd, sp!, {r4 - r6, pc}) | 75 | LOADREGS(eqfd, sp!, {r4 - r6, pc}) |
76 | 76 | ||
77 | .insb_no_16: tst r2, #8 | 77 | .Linsb_no_16: tst r2, #8 |
78 | beq .insb_no_8 | 78 | beq .Linsb_no_8 |
79 | 79 | ||
80 | ldrb r3, [r0] | 80 | ldrb r3, [r0] |
81 | ldrb r4, [r0] | 81 | ldrb r4, [r0] |
@@ -95,8 +95,8 @@ ENTRY(__raw_readsb) | |||
95 | orr r4, r4, ip, put_byte_3 | 95 | orr r4, r4, ip, put_byte_3 |
96 | stmia r1!, {r3, r4} | 96 | stmia r1!, {r3, r4} |
97 | 97 | ||
98 | .insb_no_8: tst r2, #4 | 98 | .Linsb_no_8: tst r2, #4 |
99 | beq .insb_no_4 | 99 | beq .Linsb_no_4 |
100 | 100 | ||
101 | ldrb r3, [r0] | 101 | ldrb r3, [r0] |
102 | ldrb r4, [r0] | 102 | ldrb r4, [r0] |
@@ -108,7 +108,7 @@ ENTRY(__raw_readsb) | |||
108 | orr r3, r3, r6, put_byte_3 | 108 | orr r3, r3, r6, put_byte_3 |
109 | str r3, [r1], #4 | 109 | str r3, [r1], #4 |
110 | 110 | ||
111 | .insb_no_4: ands r2, r2, #3 | 111 | .Linsb_no_4: ands r2, r2, #3 |
112 | LOADREGS(eqfd, sp!, {r4 - r6, pc}) | 112 | LOADREGS(eqfd, sp!, {r4 - r6, pc}) |
113 | 113 | ||
114 | cmp r2, #2 | 114 | cmp r2, #2 |
diff --git a/arch/arm/lib/io-readsw-armv3.S b/arch/arm/lib/io-readsw-armv3.S index 476cf7f8a633..146d47c15455 100644 --- a/arch/arm/lib/io-readsw-armv3.S +++ b/arch/arm/lib/io-readsw-armv3.S | |||
@@ -11,16 +11,16 @@ | |||
11 | #include <asm/assembler.h> | 11 | #include <asm/assembler.h> |
12 | #include <asm/hardware.h> | 12 | #include <asm/hardware.h> |
13 | 13 | ||
14 | .insw_bad_alignment: | 14 | .Linsw_bad_alignment: |
15 | adr r0, .insw_bad_align_msg | 15 | adr r0, .Linsw_bad_align_msg |
16 | mov r2, lr | 16 | mov r2, lr |
17 | b panic | 17 | b panic |
18 | .insw_bad_align_msg: | 18 | .Linsw_bad_align_msg: |
19 | .asciz "insw: bad buffer alignment (0x%p, lr=0x%08lX)\n" | 19 | .asciz "insw: bad buffer alignment (0x%p, lr=0x%08lX)\n" |
20 | .align | 20 | .align |
21 | 21 | ||
22 | .insw_align: tst r1, #1 | 22 | .Linsw_align: tst r1, #1 |
23 | bne .insw_bad_alignment | 23 | bne .Linsw_bad_alignment |
24 | 24 | ||
25 | ldr r3, [r0] | 25 | ldr r3, [r0] |
26 | strb r3, [r1], #1 | 26 | strb r3, [r1], #1 |
@@ -34,16 +34,16 @@ ENTRY(__raw_readsw) | |||
34 | teq r2, #0 @ do we have to check for the zero len? | 34 | teq r2, #0 @ do we have to check for the zero len? |
35 | moveq pc, lr | 35 | moveq pc, lr |
36 | tst r1, #3 | 36 | tst r1, #3 |
37 | bne .insw_align | 37 | bne .Linsw_align |
38 | 38 | ||
39 | .insw_aligned: mov ip, #0xff | 39 | .Linsw_aligned: mov ip, #0xff |
40 | orr ip, ip, ip, lsl #8 | 40 | orr ip, ip, ip, lsl #8 |
41 | stmfd sp!, {r4, r5, r6, lr} | 41 | stmfd sp!, {r4, r5, r6, lr} |
42 | 42 | ||
43 | subs r2, r2, #8 | 43 | subs r2, r2, #8 |
44 | bmi .no_insw_8 | 44 | bmi .Lno_insw_8 |
45 | 45 | ||
46 | .insw_8_lp: ldr r3, [r0] | 46 | .Linsw_8_lp: ldr r3, [r0] |
47 | and r3, r3, ip | 47 | and r3, r3, ip |
48 | ldr r4, [r0] | 48 | ldr r4, [r0] |
49 | orr r3, r3, r4, lsl #16 | 49 | orr r3, r3, r4, lsl #16 |
@@ -66,13 +66,13 @@ ENTRY(__raw_readsw) | |||
66 | stmia r1!, {r3 - r6} | 66 | stmia r1!, {r3 - r6} |
67 | 67 | ||
68 | subs r2, r2, #8 | 68 | subs r2, r2, #8 |
69 | bpl .insw_8_lp | 69 | bpl .Linsw_8_lp |
70 | 70 | ||
71 | tst r2, #7 | 71 | tst r2, #7 |
72 | LOADREGS(eqfd, sp!, {r4, r5, r6, pc}) | 72 | LOADREGS(eqfd, sp!, {r4, r5, r6, pc}) |
73 | 73 | ||
74 | .no_insw_8: tst r2, #4 | 74 | .Lno_insw_8: tst r2, #4 |
75 | beq .no_insw_4 | 75 | beq .Lno_insw_4 |
76 | 76 | ||
77 | ldr r3, [r0] | 77 | ldr r3, [r0] |
78 | and r3, r3, ip | 78 | and r3, r3, ip |
@@ -86,8 +86,8 @@ ENTRY(__raw_readsw) | |||
86 | 86 | ||
87 | stmia r1!, {r3, r4} | 87 | stmia r1!, {r3, r4} |
88 | 88 | ||
89 | .no_insw_4: tst r2, #2 | 89 | .Lno_insw_4: tst r2, #2 |
90 | beq .no_insw_2 | 90 | beq .Lno_insw_2 |
91 | 91 | ||
92 | ldr r3, [r0] | 92 | ldr r3, [r0] |
93 | and r3, r3, ip | 93 | and r3, r3, ip |
@@ -96,7 +96,7 @@ ENTRY(__raw_readsw) | |||
96 | 96 | ||
97 | str r3, [r1], #4 | 97 | str r3, [r1], #4 |
98 | 98 | ||
99 | .no_insw_2: tst r2, #1 | 99 | .Lno_insw_2: tst r2, #1 |
100 | ldrne r3, [r0] | 100 | ldrne r3, [r0] |
101 | strneb r3, [r1], #1 | 101 | strneb r3, [r1], #1 |
102 | movne r3, r3, lsr #8 | 102 | movne r3, r3, lsr #8 |
diff --git a/arch/arm/lib/io-readsw-armv4.S b/arch/arm/lib/io-readsw-armv4.S index c92b66ecbe86..4db1c5f0b219 100644 --- a/arch/arm/lib/io-readsw-armv4.S +++ b/arch/arm/lib/io-readsw-armv4.S | |||
@@ -18,8 +18,8 @@ | |||
18 | #endif | 18 | #endif |
19 | .endm | 19 | .endm |
20 | 20 | ||
21 | .insw_align: movs ip, r1, lsl #31 | 21 | .Linsw_align: movs ip, r1, lsl #31 |
22 | bne .insw_noalign | 22 | bne .Linsw_noalign |
23 | ldrh ip, [r0] | 23 | ldrh ip, [r0] |
24 | sub r2, r2, #1 | 24 | sub r2, r2, #1 |
25 | strh ip, [r1], #2 | 25 | strh ip, [r1], #2 |
@@ -28,14 +28,14 @@ ENTRY(__raw_readsw) | |||
28 | teq r2, #0 | 28 | teq r2, #0 |
29 | moveq pc, lr | 29 | moveq pc, lr |
30 | tst r1, #3 | 30 | tst r1, #3 |
31 | bne .insw_align | 31 | bne .Linsw_align |
32 | 32 | ||
33 | stmfd sp!, {r4, r5, lr} | 33 | stmfd sp!, {r4, r5, lr} |
34 | 34 | ||
35 | subs r2, r2, #8 | 35 | subs r2, r2, #8 |
36 | bmi .no_insw_8 | 36 | bmi .Lno_insw_8 |
37 | 37 | ||
38 | .insw_8_lp: ldrh r3, [r0] | 38 | .Linsw_8_lp: ldrh r3, [r0] |
39 | ldrh r4, [r0] | 39 | ldrh r4, [r0] |
40 | pack r3, r3, r4 | 40 | pack r3, r3, r4 |
41 | 41 | ||
@@ -53,10 +53,10 @@ ENTRY(__raw_readsw) | |||
53 | 53 | ||
54 | subs r2, r2, #8 | 54 | subs r2, r2, #8 |
55 | stmia r1!, {r3 - r5, ip} | 55 | stmia r1!, {r3 - r5, ip} |
56 | bpl .insw_8_lp | 56 | bpl .Linsw_8_lp |
57 | 57 | ||
58 | .no_insw_8: tst r2, #4 | 58 | .Lno_insw_8: tst r2, #4 |
59 | beq .no_insw_4 | 59 | beq .Lno_insw_4 |
60 | 60 | ||
61 | ldrh r3, [r0] | 61 | ldrh r3, [r0] |
62 | ldrh r4, [r0] | 62 | ldrh r4, [r0] |
@@ -68,15 +68,15 @@ ENTRY(__raw_readsw) | |||
68 | 68 | ||
69 | stmia r1!, {r3, r4} | 69 | stmia r1!, {r3, r4} |
70 | 70 | ||
71 | .no_insw_4: movs r2, r2, lsl #31 | 71 | .Lno_insw_4: movs r2, r2, lsl #31 |
72 | bcc .no_insw_2 | 72 | bcc .Lno_insw_2 |
73 | 73 | ||
74 | ldrh r3, [r0] | 74 | ldrh r3, [r0] |
75 | ldrh ip, [r0] | 75 | ldrh ip, [r0] |
76 | pack r3, r3, ip | 76 | pack r3, r3, ip |
77 | str r3, [r1], #4 | 77 | str r3, [r1], #4 |
78 | 78 | ||
79 | .no_insw_2: ldrneh r3, [r0] | 79 | .Lno_insw_2: ldrneh r3, [r0] |
80 | strneh r3, [r1] | 80 | strneh r3, [r1] |
81 | 81 | ||
82 | ldmfd sp!, {r4, r5, pc} | 82 | ldmfd sp!, {r4, r5, pc} |
@@ -93,7 +93,7 @@ ENTRY(__raw_readsw) | |||
93 | #define pull_hbyte1 lsr #8 | 93 | #define pull_hbyte1 lsr #8 |
94 | #endif | 94 | #endif |
95 | 95 | ||
96 | .insw_noalign: stmfd sp!, {r4, lr} | 96 | .Linsw_noalign: stmfd sp!, {r4, lr} |
97 | ldrccb ip, [r1, #-1]! | 97 | ldrccb ip, [r1, #-1]! |
98 | bcc 1f | 98 | bcc 1f |
99 | 99 | ||
diff --git a/arch/arm/lib/io-writesb.S b/arch/arm/lib/io-writesb.S index 70b2561bdb09..08209fc640ea 100644 --- a/arch/arm/lib/io-writesb.S +++ b/arch/arm/lib/io-writesb.S | |||
@@ -30,7 +30,7 @@ | |||
30 | #endif | 30 | #endif |
31 | .endm | 31 | .endm |
32 | 32 | ||
33 | .outsb_align: rsb ip, ip, #4 | 33 | .Loutsb_align: rsb ip, ip, #4 |
34 | cmp ip, r2 | 34 | cmp ip, r2 |
35 | movgt ip, r2 | 35 | movgt ip, r2 |
36 | cmp ip, #2 | 36 | cmp ip, #2 |
@@ -41,44 +41,45 @@ | |||
41 | ldrgtb r3, [r1], #1 | 41 | ldrgtb r3, [r1], #1 |
42 | strgtb r3, [r0] | 42 | strgtb r3, [r0] |
43 | subs r2, r2, ip | 43 | subs r2, r2, ip |
44 | bne .outsb_aligned | 44 | bne .Loutsb_aligned |
45 | 45 | ||
46 | ENTRY(__raw_writesb) | 46 | ENTRY(__raw_writesb) |
47 | teq r2, #0 @ do we have to check for the zero len? | 47 | teq r2, #0 @ do we have to check for the zero len? |
48 | moveq pc, lr | 48 | moveq pc, lr |
49 | ands ip, r1, #3 | 49 | ands ip, r1, #3 |
50 | bne .outsb_align | 50 | bne .Loutsb_align |
51 | 51 | ||
52 | .outsb_aligned: stmfd sp!, {r4, r5, lr} | 52 | .Loutsb_aligned: |
53 | stmfd sp!, {r4, r5, lr} | ||
53 | 54 | ||
54 | subs r2, r2, #16 | 55 | subs r2, r2, #16 |
55 | bmi .outsb_no_16 | 56 | bmi .Loutsb_no_16 |
56 | 57 | ||
57 | .outsb_16_lp: ldmia r1!, {r3, r4, r5, ip} | 58 | .Loutsb_16_lp: ldmia r1!, {r3, r4, r5, ip} |
58 | outword r3 | 59 | outword r3 |
59 | outword r4 | 60 | outword r4 |
60 | outword r5 | 61 | outword r5 |
61 | outword ip | 62 | outword ip |
62 | subs r2, r2, #16 | 63 | subs r2, r2, #16 |
63 | bpl .outsb_16_lp | 64 | bpl .Loutsb_16_lp |
64 | 65 | ||
65 | tst r2, #15 | 66 | tst r2, #15 |
66 | LOADREGS(eqfd, sp!, {r4, r5, pc}) | 67 | LOADREGS(eqfd, sp!, {r4, r5, pc}) |
67 | 68 | ||
68 | .outsb_no_16: tst r2, #8 | 69 | .Loutsb_no_16: tst r2, #8 |
69 | beq .outsb_no_8 | 70 | beq .Loutsb_no_8 |
70 | 71 | ||
71 | ldmia r1!, {r3, r4} | 72 | ldmia r1!, {r3, r4} |
72 | outword r3 | 73 | outword r3 |
73 | outword r4 | 74 | outword r4 |
74 | 75 | ||
75 | .outsb_no_8: tst r2, #4 | 76 | .Loutsb_no_8: tst r2, #4 |
76 | beq .outsb_no_4 | 77 | beq .Loutsb_no_4 |
77 | 78 | ||
78 | ldr r3, [r1], #4 | 79 | ldr r3, [r1], #4 |
79 | outword r3 | 80 | outword r3 |
80 | 81 | ||
81 | .outsb_no_4: ands r2, r2, #3 | 82 | .Loutsb_no_4: ands r2, r2, #3 |
82 | LOADREGS(eqfd, sp!, {r4, r5, pc}) | 83 | LOADREGS(eqfd, sp!, {r4, r5, pc}) |
83 | 84 | ||
84 | cmp r2, #2 | 85 | cmp r2, #2 |
diff --git a/arch/arm/lib/io-writesw-armv3.S b/arch/arm/lib/io-writesw-armv3.S index 950e7e310f1a..52d62b481295 100644 --- a/arch/arm/lib/io-writesw-armv3.S +++ b/arch/arm/lib/io-writesw-armv3.S | |||
@@ -11,16 +11,16 @@ | |||
11 | #include <asm/assembler.h> | 11 | #include <asm/assembler.h> |
12 | #include <asm/hardware.h> | 12 | #include <asm/hardware.h> |
13 | 13 | ||
14 | .outsw_bad_alignment: | 14 | .Loutsw_bad_alignment: |
15 | adr r0, .outsw_bad_align_msg | 15 | adr r0, .Loutsw_bad_align_msg |
16 | mov r2, lr | 16 | mov r2, lr |
17 | b panic | 17 | b panic |
18 | .outsw_bad_align_msg: | 18 | .Loutsw_bad_align_msg: |
19 | .asciz "outsw: bad buffer alignment (0x%p, lr=0x%08lX)\n" | 19 | .asciz "outsw: bad buffer alignment (0x%p, lr=0x%08lX)\n" |
20 | .align | 20 | .align |
21 | 21 | ||
22 | .outsw_align: tst r1, #1 | 22 | .Loutsw_align: tst r1, #1 |
23 | bne .outsw_bad_alignment | 23 | bne .Loutsw_bad_alignment |
24 | 24 | ||
25 | add r1, r1, #2 | 25 | add r1, r1, #2 |
26 | 26 | ||
@@ -35,14 +35,14 @@ ENTRY(__raw_writesw) | |||
35 | teq r2, #0 @ do we have to check for the zero len? | 35 | teq r2, #0 @ do we have to check for the zero len? |
36 | moveq pc, lr | 36 | moveq pc, lr |
37 | tst r1, #3 | 37 | tst r1, #3 |
38 | bne .outsw_align | 38 | bne .Loutsw_align |
39 | 39 | ||
40 | .outsw_aligned: stmfd sp!, {r4, r5, r6, lr} | 40 | stmfd sp!, {r4, r5, r6, lr} |
41 | 41 | ||
42 | subs r2, r2, #8 | 42 | subs r2, r2, #8 |
43 | bmi .no_outsw_8 | 43 | bmi .Lno_outsw_8 |
44 | 44 | ||
45 | .outsw_8_lp: ldmia r1!, {r3, r4, r5, r6} | 45 | .Loutsw_8_lp: ldmia r1!, {r3, r4, r5, r6} |
46 | 46 | ||
47 | mov ip, r3, lsl #16 | 47 | mov ip, r3, lsl #16 |
48 | orr ip, ip, ip, lsr #16 | 48 | orr ip, ip, ip, lsr #16 |
@@ -77,13 +77,13 @@ ENTRY(__raw_writesw) | |||
77 | str ip, [r0] | 77 | str ip, [r0] |
78 | 78 | ||
79 | subs r2, r2, #8 | 79 | subs r2, r2, #8 |
80 | bpl .outsw_8_lp | 80 | bpl .Loutsw_8_lp |
81 | 81 | ||
82 | tst r2, #7 | 82 | tst r2, #7 |
83 | LOADREGS(eqfd, sp!, {r4, r5, r6, pc}) | 83 | LOADREGS(eqfd, sp!, {r4, r5, r6, pc}) |
84 | 84 | ||
85 | .no_outsw_8: tst r2, #4 | 85 | .Lno_outsw_8: tst r2, #4 |
86 | beq .no_outsw_4 | 86 | beq .Lno_outsw_4 |
87 | 87 | ||
88 | ldmia r1!, {r3, r4} | 88 | ldmia r1!, {r3, r4} |
89 | 89 | ||
@@ -103,8 +103,8 @@ ENTRY(__raw_writesw) | |||
103 | orr ip, ip, ip, lsl #16 | 103 | orr ip, ip, ip, lsl #16 |
104 | str ip, [r0] | 104 | str ip, [r0] |
105 | 105 | ||
106 | .no_outsw_4: tst r2, #2 | 106 | .Lno_outsw_4: tst r2, #2 |
107 | beq .no_outsw_2 | 107 | beq .Lno_outsw_2 |
108 | 108 | ||
109 | ldr r3, [r1], #4 | 109 | ldr r3, [r1], #4 |
110 | 110 | ||
@@ -116,7 +116,7 @@ ENTRY(__raw_writesw) | |||
116 | orr ip, ip, ip, lsl #16 | 116 | orr ip, ip, ip, lsl #16 |
117 | str ip, [r0] | 117 | str ip, [r0] |
118 | 118 | ||
119 | .no_outsw_2: tst r2, #1 | 119 | .Lno_outsw_2: tst r2, #1 |
120 | 120 | ||
121 | ldrne r3, [r1] | 121 | ldrne r3, [r1] |
122 | 122 | ||
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 |