aboutsummaryrefslogtreecommitdiff
path: root/benchmarks/towers
diff options
context:
space:
mode:
authorAndrew Waterman <waterman@eecs.berkeley.edu>2014-02-06 01:36:26 -0800
committerAndrew Waterman <waterman@eecs.berkeley.edu>2014-02-06 01:36:26 -0800
commit71330800b89cb4c6ae8716a7e78bdcf574fe04ab (patch)
tree5395bdf46cccee8f6c94538b63ab161fa41648db /benchmarks/towers
parent6fdd12c130d0c0c13934364a4dfe12d8dcf28e27 (diff)
downloadriscv-tests-71330800b89cb4c6ae8716a7e78bdcf574fe04ab.zip
riscv-tests-71330800b89cb4c6ae8716a7e78bdcf574fe04ab.tar.gz
riscv-tests-71330800b89cb4c6ae8716a7e78bdcf574fe04ab.tar.bz2
Clean up benchmarks; support uarch-specific counters
Diffstat (limited to 'benchmarks/towers')
-rw-r--r--benchmarks/towers/bmark.mk3
-rw-r--r--benchmarks/towers/towers_main.c44
2 files changed, 4 insertions, 43 deletions
diff --git a/benchmarks/towers/bmark.mk b/benchmarks/towers/bmark.mk
index 0c16a81..b16bf04 100644
--- a/benchmarks/towers/bmark.mk
+++ b/benchmarks/towers/bmark.mk
@@ -10,6 +10,7 @@
towers_c_src = \
towers_main.c \
+ syscalls.c \
towers_riscv_src = \
crt.S \
@@ -23,7 +24,7 @@ $(towers_host_bin) : $(towers_c_src)
towers_riscv_bin = towers.riscv
$(towers_riscv_bin) : $(towers_c_objs) $(towers_riscv_objs)
- $(RISCV_LINK) $(towers_c_objs) $(towers_riscv_objs) -o $(towers_riscv_bin)
+ $(RISCV_LINK) $(towers_c_objs) $(towers_riscv_objs) -o $(towers_riscv_bin) $(RISCV_LINK_OPTS)
junk += $(towers_c_objs) $(towers_riscv_objs) \
$(towers_host_bin) $(towers_riscv_bin)
diff --git a/benchmarks/towers/towers_main.c b/benchmarks/towers/towers_main.c
index 724b73b..9f60017 100644
--- a/benchmarks/towers/towers_main.c
+++ b/benchmarks/towers/towers_main.c
@@ -16,51 +16,13 @@
// smips processor simulator itself. You should not change anything except
// the HOST_DEBUG and PREALLOCATE macros for your timing run.
-int ncores = 1;
#include "util.h"
-//--------------------------------------------------------------------------
-// Macros
-
-// Set HOST_DEBUG to 1 if you are going to compile this for a host
-// machine (ie Athena/Linux) for debug purposes and set HOST_DEBUG
-// to 0 if you are compiling with the smips-gcc toolchain.
-
-#ifndef HOST_DEBUG
-#define HOST_DEBUG 0
-#endif
-
-// Set PREALLOCATE to 1 if you want to preallocate the benchmark
-// function before starting stats. If you have instruction/data
-// caches and you don't want to count the overhead of misses, then
-// you will need to use preallocation.
-
-#ifndef PREALLOCATE
-#define PREALLOCATE 0
-#endif
-
-// Set SET_STATS to 1 if you want to carve out the piece that actually
-// does the computation.
-
-#ifndef SET_STATS
-#define SET_STATS 0
-#endif
-
// This is the number of discs in the puzzle.
#define NUM_DISCS 7
//--------------------------------------------------------------------------
-// Helper functions
-
-void setStats( int enable )
-{
-#if ( !HOST_DEBUG && SET_STATS )
- asm( "mtpcr %0, cr10" : : "r" (enable) );
-#endif
-}
-
-//--------------------------------------------------------------------------
// List data structure and functions
struct Node
@@ -278,7 +240,7 @@ int towers_verify( struct Towers* this )
return 6;
}
- return 1;
+ return 0;
}
//--------------------------------------------------------------------------
@@ -323,8 +285,6 @@ int main( int argc, char* argv[] )
#endif
// Check the results
-
- finishTest( towers_verify( &towers ) );
-
+ return towers_verify( &towers );
}