From c6dfad912afbda75fe5a36804589968bed8bd1c1 Mon Sep 17 00:00:00 2001 From: Bernhard Urban Date: Tue, 9 Nov 2010 18:53:32 +0100 Subject: [PATCH] bench: added max.s and sum.s --- 3_test/max.s | 1 + 3_test/sum.s | 46 +--------------------------------------------- 8_benchs/src/max.s | 40 ++++++++++++++++++++++++++++++++++++++++ 8_benchs/src/sum.s | 45 +++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 87 insertions(+), 45 deletions(-) create mode 120000 3_test/max.s mode change 100644 => 120000 3_test/sum.s create mode 100644 8_benchs/src/max.s create mode 100644 8_benchs/src/sum.s diff --git a/3_test/max.s b/3_test/max.s new file mode 120000 index 0000000..9866627 --- /dev/null +++ b/3_test/max.s @@ -0,0 +1 @@ +../8_benchs/src/max.s \ No newline at end of file diff --git a/3_test/sum.s b/3_test/sum.s deleted file mode 100644 index 9a571fc..0000000 --- a/3_test/sum.s +++ /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 diff --git a/3_test/sum.s b/3_test/sum.s new file mode 120000 index 0000000..329a152 --- /dev/null +++ b/3_test/sum.s @@ -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 index 0000000..4eb2e2f --- /dev/null +++ b/8_benchs/src/max.s @@ -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 index 0000000..9054ce4 --- /dev/null +++ b/8_benchs/src/sum.s @@ -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 -- 2.25.1