Rework benchmarks to run in M-mode
[riscv-tests.git] / benchmarks / dhrystone / dhrystone.h
index 8abb8746752829df8eed9df124a54b235ab7d44c..89616afd3b45fec691f538ee101e9038db426b6e 100644 (file)
@@ -1,3 +1,5 @@
+// See LICENSE for license details.
+
 #ifndef _DHRYSTONE_H
 #define _DHRYSTONE_H
 
@@ -379,15 +381,11 @@ extern clock_t    clock();
 
 #elif defined(__riscv)
 
-#define HZ 976563
-#define Too_Small_Time 50
-#define rdcycle() ({ \
-  long __x; \
-  asm volatile("rdcycle %0; srl %0, %0, 10" : "=r"(__x)); \
-  __x; })
+#define HZ 1000000
+#define Too_Small_Time 1
 #define CLOCK_TYPE "rdcycle()"
-#define Start_Timer() Begin_Time = rdcycle()
-#define Stop_Timer() End_Time = rdcycle()
+#define Start_Timer() Begin_Time = read_csr(mcycle)
+#define Stop_Timer() End_Time = read_csr(mcycle)
 
 #else
                 /* Use times(2) time function unless    */
@@ -476,16 +474,4 @@ typedef struct record
           } variant;
       } Rec_Type, *Rec_Pointer;
 
-void Proc_1(Rec_Pointer Ptr_Val_Par);
-void Proc_2(int* Int_Par_Ref);
-void Proc_3(Rec_Pointer* Ptr_Ref_Par);
-void Proc_4();
-void Proc_5();
-void Proc_6(Enumeration Enum_Val_Par, Enumeration* Enum_Ref_Par);
-void Proc_7(int Int_1_Par_Val, int Int_2_Par_Val, int* Int_Par_Ref);
-void Proc_8(Arr_1_Dim Arr_1_Par_Ref, Arr_2_Dim Arr_2_Par_Ref, int Int_1_Par_Val, int Int_2_Par_Val);
-Enumeration Func_1 (char Ch_1_Par_Val, char Ch_2_Par_Val);
-Boolean Func_2(Str_30 Str_1_Par_Ref, Str_30 Str_2_Par_Ref);
-Boolean Func_3(Enumeration Enum_Par_Val);
-
 #endif