diff options
Diffstat (limited to 'firmware/target/coldfire/ata-as-coldfire.S')
-rw-r--r-- | firmware/target/coldfire/ata-as-coldfire.S | 18 |
1 files changed, 5 insertions, 13 deletions
diff --git a/firmware/target/coldfire/ata-as-coldfire.S b/firmware/target/coldfire/ata-as-coldfire.S index 7f46a987ee..28993c1769 100644 --- a/firmware/target/coldfire/ata-as-coldfire.S +++ b/firmware/target/coldfire/ata-as-coldfire.S | |||
@@ -80,7 +80,7 @@ copy_read_sectors: | |||
80 | and.l #0xFFFFFFF0,%d0 /* d0 == first line bound */ | 80 | and.l #0xFFFFFFF0,%d0 /* d0 == first line bound */ |
81 | cmp.l %a0, %d0 /* any leading longwords? */ | 81 | cmp.l %a0, %d0 /* any leading longwords? */ |
82 | bls.b .r_end_u_l1 /* no: skip loop */ | 82 | bls.b .r_end_u_l1 /* no: skip loop */ |
83 | 83 | ||
84 | .r_loop_u_l1: | 84 | .r_loop_u_l1: |
85 | move.w (%a2), %d3 /* load first word */ | 85 | move.w (%a2), %d3 /* load first word */ |
86 | swap %d3 /* move to upper 16 bit */ | 86 | swap %d3 /* move to upper 16 bit */ |
@@ -150,9 +150,7 @@ copy_read_sectors: | |||
150 | bhi.b .r_loop_u_l2 | 150 | bhi.b .r_loop_u_l2 |
151 | 151 | ||
152 | .r_end_u_l2: | 152 | .r_end_u_l2: |
153 | addq.l #2, %a1 /* back to final end address */ | 153 | blo.b .r_end_u_w2 /* one word left? */ |
154 | cmp.l %a0, %a1 /* one word left? */ | ||
155 | bls.b .r_end_u_w2 | ||
156 | 154 | ||
157 | swap %d2 /* move old word to upper 16 bits */ | 155 | swap %d2 /* move old word to upper 16 bits */ |
158 | move.w (%a2), %d2 /* load final word */ | 156 | move.w (%a2), %d2 /* load final word */ |
@@ -220,9 +218,7 @@ copy_read_sectors: | |||
220 | bhi.b .r_loop_a_l2 | 218 | bhi.b .r_loop_a_l2 |
221 | 219 | ||
222 | .r_end_a_l2: | 220 | .r_end_a_l2: |
223 | addq.l #2, %a1 /* back to final end address */ | 221 | blo.b .r_end_a_w2 /* one word left? */ |
224 | cmp.l %a0, %a1 /* one word left? */ | ||
225 | bls.b .r_end_a_w2 | ||
226 | 222 | ||
227 | move.w (%a2), (%a0)+ /* copy final word */ | 223 | move.w (%a2), (%a0)+ /* copy final word */ |
228 | 224 | ||
@@ -366,9 +362,7 @@ copy_write_sectors: | |||
366 | bhi.b .w_loop_u_l2 | 362 | bhi.b .w_loop_u_l2 |
367 | 363 | ||
368 | .w_end_u_l2: | 364 | .w_end_u_l2: |
369 | addq.l #2, %a1 /* back to final end address */ | 365 | blo.b .w_end_u_w2 /* one word left? */ |
370 | cmp.l %a0, %a1 /* one word left? */ | ||
371 | bls.b .w_end_u_w2 | ||
372 | 366 | ||
373 | swap %d2 | 367 | swap %d2 |
374 | move.w (%a0)+, %d2 | 368 | move.w (%a0)+, %d2 |
@@ -444,9 +438,7 @@ copy_write_sectors: | |||
444 | bhi.b .w_loop_a_l2 | 438 | bhi.b .w_loop_a_l2 |
445 | 439 | ||
446 | .w_end_a_l2: | 440 | .w_end_a_l2: |
447 | addq.l #2, %a1 /* back to final end address */ | 441 | blo.b .w_end_a_w2 /* one word left? */ |
448 | cmp.l %a0, %a1 /* one word left? */ | ||
449 | bls.b .w_end_a_w2 | ||
450 | 442 | ||
451 | move.w (%a0)+, (%a2) /* copy final word */ | 443 | move.w (%a0)+, (%a2) /* copy final word */ |
452 | 444 | ||