bench: added max.s and sum.s
authorBernhard Urban <lewurm@gmail.com>
Tue, 9 Nov 2010 17:53:32 +0000 (18:53 +0100)
committerBernhard Urban <lewurm@gmail.com>
Tue, 9 Nov 2010 17:53:32 +0000 (18:53 +0100)
3_test/max.s [new symlink]
3_test/sum.s [changed from file to symlink]
8_benchs/src/max.s [new file with mode: 0644]
8_benchs/src/sum.s [new file with mode: 0644]

diff --git a/3_test/max.s b/3_test/max.s
new file mode 120000 (symlink)
index 0000000..9866627
--- /dev/null
@@ -0,0 +1 @@
+../8_benchs/src/max.s
\ No newline at end of file
deleted file mode 100644 (file)
index 9a571fcbe7a811b1d8a7f868b87ec43bfe646b14..0000000000000000000000000000000000000000
+++ /dev/null
@@ -1,45 +0,0 @@
-.text
-main:
-       ldis r2, 0x100
-
-       ldis r0, 1      
-       stw r0, 0(r2) ;1
-
-       addi r0,r0,2
-       stw r0, 4(r2) ;3
-
-       addi r0,r0,100
-       stw r0, 8(r2) ;103
-
-       addis r0,r0,-53
-       stw r0, 12(r2) ;50
-
-       addis r0,r0,-10
-       stw r0, 16(r2) ;40
-
-       ldis r1, 5
-       call sum 
-       ;r0 sollte 1+3+103+50+40=197 sein
-       br dummynop
-
-sum:
-       ;r1 = len
-       ;r2 = arr
-       ;r3 = i
-       ;r0 = sum
-       ;r4 arr data
-       ldis r0, 0
-       addi r3, r1, 0
-       retzs- ; check len != 0
-loop:
-       ;load arr data
-       ldw r4, 0(r2)
-       ;sum += arr[i];
-       add r0, r0, r4
-       addi r2, r2, 4
-       subi r3, r3, 1
-       brnz+ loop
-       ret
-
-dummynop:
-       addi r0,r0,0
new file mode 120000 (symlink)
index 0000000000000000000000000000000000000000..329a1520d6942dc6b78d93a8fcb672a99b33798b
--- /dev/null
@@ -0,0 +1 @@
+../8_benchs/src/sum.s
\ No newline at end of file
diff --git a/8_benchs/src/max.s b/8_benchs/src/max.s
new file mode 100644 (file)
index 0000000..4eb2e2f
--- /dev/null
@@ -0,0 +1,40 @@
+.data
+arr:
+       .fill 2
+       .fill 3
+       .fill 5
+       .fill 7
+       .fill 11
+       .fill 13
+       .fill 17
+       .fill 19
+       .fill 23
+       .fill 29
+       .fill 31
+       .fill 37
+       .fill 41
+       .fill 43
+       .fill 47
+       .fill 53
+
+.text
+main:
+       ldis r1, 16
+       ldil r2, arr@lo
+       ldih r2, arr@hi
+
+       call+ max
+       br+ main
+
+max:
+       ; r0 = x = arr[0]
+       ldw r0, 0(r2)
+maxloop:
+       ldw r4, 4(r2)
+       cmp r0, r4
+       movlt r0, r4
+       subi r1, r1, 1
+       ;cmpi r1, 1 ; nicht noetig hier, weil wegen subi ueberfluessig (?)
+       reteq-
+       addi r2, r2, 4
+       br+ maxloop
diff --git a/8_benchs/src/sum.s b/8_benchs/src/sum.s
new file mode 100644 (file)
index 0000000..9054ce4
--- /dev/null
@@ -0,0 +1,45 @@
+.data
+arr:
+       .fill 2
+       .fill 3
+       .fill 5
+       .fill 7
+       .fill 11
+       .fill 13
+       .fill 17
+       .fill 19
+       .fill 23
+       .fill 29
+       .fill 31
+       .fill 37
+       .fill 41
+       .fill 43
+       .fill 47
+       .fill 53
+
+.text
+main:
+       ldis r1, 16
+       ldil r2, arr@lo
+       ldih r2, arr@hi
+       call+ sum
+       br+ main
+
+sum:
+       ;r1 = len
+       ;r2 = arr
+       ;r3 = i
+       ;r0 = sum
+       ;r4 arr data
+       ldis r0, 0
+       addi r3, r1, 0
+       retzs- ; check len != 0
+loop:
+       ;load arr data
+       ldw r4, 0(r2)
+       ;sum += arr[i];
+       add r0, r0, r4
+       addi r2, r2, 4
+       subi r3, r3, 1
+       brnz+ loop
+       ret