From 629d3d47b90c483b7335b96a8e26c70c1a062976 Mon Sep 17 00:00:00 2001 From: chad Date: Wed, 2 Oct 2013 01:53:32 -0400 Subject: [PATCH] Bubble sort test program. --- src/test/bubble.s | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/test/bubble.s b/src/test/bubble.s index 26544547..ff30dd1b 100644 --- a/src/test/bubble.s +++ b/src/test/bubble.s @@ -7,26 +7,29 @@ .global entry: ldi %r1, Array; /* p = array; */ + ldi %r6, ArrayEnd; /* lim = array+N */ + oloop: /* do { */ - ori %r2, %r1, #0; /* q = p; */ + ldi %r2, Array; /* q = array; */ iloop: - subi %r3, %r2, ArrayEnd; /* while (q != array+N) { */ + sub %r3, %r2, %r6; /* while (q != lim) { */ iszero @p0, %r3; @p0 ? jmpi onext; ld %r3, %r2, #0; /* if (*q > *(q + 1)) { */ ld %r4, %r2, __WORD; /* temp = *(q + 1); */ - sub %r5, %r3, %r4; + sub %r5, %r4, %r3; isneg @p0, %r5; notp @p0, @p0; @p0 ? jmpi inext; st %r3, %r2, __WORD; /* *(q + 1) = *q; */ - st %r3, %r2, #0; /* *q = temp; */ + st %r4, %r2, #0; /* *q = temp; */ /* } */ -inext: addi %r2, %r2, #1; /* q++; */ +inext: addi %r2, %r2, __WORD; /* q++; */ jmpi iloop; /* } */ -onext: addi %r1, %r1, #1; /* p++; */ - subi %r3, %r1, ArrayEnd; /* } while (p != p + SIZE); */ +onext: addi %r1, %r1, __WORD; /* p++; */ + subi %r6, %r6, __WORD; /* lim--; */ + subi %r3, %r1, ArrayEnd; /* } while (p != array+N) */ rtop @p0, %r3; @p0 ? jmpi oloop;