diff --git a/firmware/target/coldfire/memswap128-coldfire.S b/firmware/target/coldfire/memswap128-coldfire.S index 2509fd0e45..5de628dabd 100644 --- a/firmware/target/coldfire/memswap128-coldfire.S +++ b/firmware/target/coldfire/memswap128-coldfire.S @@ -27,23 +27,23 @@ memswap128: lea.l -28(%sp), %sp | save registers movem.l %d2-%d7/%a2, (%sp) | - movem.l 32(%sp), %a0-%a2 | %a0 = buf1 + movem.l 32(%sp), %a0-%a2 | %a0 = buf1 | %a1 = buf2 | %a2 = len lea.l -15(%a0, %a2.l), %a2 | %a2 = end address - 15 cmp.l %a0, %a2 | end address <= buf1? bls.b .no_lines | not at least a line? leave .loop: | - movem.l (%a0), %d0-%d3 | read four longwords from buf1 - movem.l (%a1), %d4-%d7 | read four longwords from buf2 - movem.l %d4-%d7, (%a0) | write buf2 data to buf1 - movem.l %d0-%d3, (%a1) | write buf1 data to buf2 + movem.l (%a0), %d0-%d3 | read four longwords from buf1 + movem.l (%a1), %d4-%d7 | read four longwords from buf2 + movem.l %d4-%d7, (%a0) | write buf2 data to buf1 + movem.l %d0-%d3, (%a1) | write buf1 data to buf2 lea.l 16(%a0), %a0 | buf1 += 16 lea.l 16(%a1), %a1 | buf2 += 16 cmp.l %a0, %a2 | %a0 < %d0? bhi.b .loop | yes? keep exchanging .no_lines: | - movem.l (%sp), %d2-%d7/%a2 | restore registers + movem.l (%sp), %d2-%d7/%a2 | restore registers lea.l 28(%sp), %sp | rts | .end: