summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJens Arnold <amiconn@rockbox.org>2010-05-02 19:36:20 +0000
committerJens Arnold <amiconn@rockbox.org>2010-05-02 19:36:20 +0000
commite891e90883fa816536a0b8771ca4b18234d83088 (patch)
tree8729ae69f1913a1e70848fd56b405d477323b1f0
parent5768f2b145bbf4fff6d7fbfb91648b05495c5248 (diff)
downloadrockbox-e891e90883fa816536a0b8771ca4b18234d83088.tar.gz
rockbox-e891e90883fa816536a0b8771ca4b18234d83088.zip
Save a few instructions by better use of conditions.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@25786 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--firmware/target/coldfire/ata-as-coldfire.S18
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