summaryrefslogtreecommitdiff
path: root/firmware/target/arm/ata-as-arm.S
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/target/arm/ata-as-arm.S')
-rw-r--r--firmware/target/arm/ata-as-arm.S32
1 files changed, 16 insertions, 16 deletions
diff --git a/firmware/target/arm/ata-as-arm.S b/firmware/target/arm/ata-as-arm.S
index 101bc4dcc1..16c2928bf1 100644
--- a/firmware/target/arm/ata-as-arm.S
+++ b/firmware/target/arm/ata-as-arm.S
@@ -139,9 +139,9 @@ copy_read_sectors:
139.r_end2_u: 139.r_end2_u:
140 140
141 tst r1, #1 /* one halfword left? */ 141 tst r1, #1 /* one halfword left? */
142 ldrneh r4, [r2] 142 ldrhne r4, [r2]
143 orrne r3, r3, r4, lsl #8 143 orrne r3, r3, r4, lsl #8
144 strneh r3, [r0], #2 144 strhne r3, [r0], #2
145 movne r3, r4, lsr #8 145 movne r3, r4, lsr #8
146 146
147 strb r3, [r0], #1 /* store final byte */ 147 strb r3, [r0], #1 /* store final byte */
@@ -151,8 +151,8 @@ copy_read_sectors:
151 /* 16-bit aligned */ 151 /* 16-bit aligned */
152.r_aligned: 152.r_aligned:
153 tst r0, #2 /* 32 bit aligned? */ 153 tst r0, #2 /* 32 bit aligned? */
154 ldrneh r3, [r2] /* no: read first halfword */ 154 ldrhne r3, [r2] /* no: read first halfword */
155 strneh r3, [r0], #2 /* store */ 155 strhne r3, [r0], #2 /* store */
156 subne r1, r1, #1 /* one halfword taken */ 156 subne r1, r1, #1 /* one halfword taken */
157 157
158 sub r1, r1, #8 /* adjust for zero-check and doing 8 halfwords/loop */ 158 sub r1, r1, #8 /* adjust for zero-check and doing 8 halfwords/loop */
@@ -186,14 +186,14 @@ copy_read_sectors:
186.r_end4_a: 186.r_end4_a:
187 187
188 tst r1, #2 /* 2 or more halfwords left? */ 188 tst r1, #2 /* 2 or more halfwords left? */
189 ldrneh r3, [r2] 189 ldrhne r3, [r2]
190 ldrneh r4, [r2] 190 ldrhne r4, [r2]
191 orrne r3, r3, r4, lsl #16 191 orrne r3, r3, r4, lsl #16
192 strne r3, [r0], #4 192 strne r3, [r0], #4
193 193
194 tst r1, #1 /* one halfword left? */ 194 tst r1, #1 /* one halfword left? */
195 ldrneh r3, [r2] 195 ldrhne r3, [r2]
196 strneh r3, [r0], #2 196 strhne r3, [r0], #2
197 197
198 ldmpc regs=r4-r5 198 ldmpc regs=r4-r5
199 199
@@ -291,9 +291,9 @@ copy_write_sectors:
291.w_end2_u: 291.w_end2_u:
292 292
293 tst r1, #1 /* one halfword left? */ 293 tst r1, #1 /* one halfword left? */
294 ldrneh r4, [r0], #2 294 ldrhne r4, [r0], #2
295 orrne r3, r3, r4, lsl #8 295 orrne r3, r3, r4, lsl #8
296 strneh r3, [r2] 296 strhne r3, [r2]
297 movne r3, r3, lsr #16 297 movne r3, r3, lsr #16
298 298
299 ldrb r4, [r0], #1 /* load final byte */ 299 ldrb r4, [r0], #1 /* load final byte */
@@ -305,8 +305,8 @@ copy_write_sectors:
305 /* 16-bit aligned */ 305 /* 16-bit aligned */
306.w_aligned: 306.w_aligned:
307 tst r0, #2 /* 32 bit aligned? */ 307 tst r0, #2 /* 32 bit aligned? */
308 ldrneh r3, [r0], #2 /* no: load first halfword */ 308 ldrhne r3, [r0], #2 /* no: load first halfword */
309 strneh r3, [r2] /* write */ 309 strhne r3, [r2] /* write */
310 subne r1, r1, #1 /* one halfword taken */ 310 subne r1, r1, #1 /* one halfword taken */
311 311
312 sub r1, r1, #8 /* adjust for zero-check and doing 8 halfwords/loop */ 312 sub r1, r1, #8 /* adjust for zero-check and doing 8 halfwords/loop */
@@ -341,13 +341,13 @@ copy_write_sectors:
341 341
342 tst r1, #2 /* 2 or more halfwords left? */ 342 tst r1, #2 /* 2 or more halfwords left? */
343 ldrne r3, [r0], #4 343 ldrne r3, [r0], #4
344 strneh r3, [r2] 344 strhne r3, [r2]
345 movne r3, r3, lsr #16 345 movne r3, r3, lsr #16
346 strneh r3, [r2] 346 strhne r3, [r2]
347 347
348 tst r1, #1 /* one halfword left? */ 348 tst r1, #1 /* one halfword left? */
349 ldrneh r3, [r0], #2 349 ldrhne r3, [r0], #2
350 strneh r3, [r2] 350 strhne r3, [r2]
351 351
352 ldmpc regs=r4-r5 352 ldmpc regs=r4-r5
353 353