summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Waterman <waterman@eecs.berkeley.edu>2014-01-31 00:59:25 -0800
committerAndrew Waterman <waterman@eecs.berkeley.edu>2014-01-31 00:59:25 -0800
commit217bb5eef46deb0eeac7b8f11c9d36d9310feabb (patch)
treee503edea526ffc9cd046114d1b6fced7850c5e50
parent746361936518f56549726c3e661606e5f28a1b96 (diff)
downloadenv-217bb5eef46deb0eeac7b8f11c9d36d9310feabb.zip
env-217bb5eef46deb0eeac7b8f11c9d36d9310feabb.tar.gz
env-217bb5eef46deb0eeac7b8f11c9d36d9310feabb.tar.bz2
Use TESTNUM instead of x28 directly
-rw-r--r--p/riscv_test.h12
-rw-r--r--v/riscv_test.h36
2 files changed, 19 insertions, 29 deletions
diff --git a/p/riscv_test.h b/p/riscv_test.h
index a121846..d9d7cff 100644
--- a/p/riscv_test.h
+++ b/p/riscv_test.h
@@ -97,21 +97,19 @@ _start: \
csrw tohost, 1; \
1: b 1b; \
+#define TESTNUM x28
#define RVTEST_FAIL \
fence; \
- beqz x28, 1f; \
- sll x28, x28, 1; \
- or x28, x28, 1; \
- csrw tohost, x28; \
+ beqz TESTNUM, 1f; \
+ sll TESTNUM, TESTNUM, 1; \
+ or TESTNUM, TESTNUM, 1; \
+ csrw tohost, TESTNUM; \
1: b 1b; \
//-----------------------------------------------------------------------
// Data Section Macro
//-----------------------------------------------------------------------
-//#define RVTEST_DATA_BEGIN EXTRA_DATA
-//#define RVTEST_DATA_END
-
#define EXTRA_DATA
#define RVTEST_DATA_BEGIN EXTRA_DATA .align 4; .global begin_signature; begin_signature:
diff --git a/v/riscv_test.h b/v/riscv_test.h
index e129566..e8a9015 100644
--- a/v/riscv_test.h
+++ b/v/riscv_test.h
@@ -1,22 +1,20 @@
#ifndef _ENV_VIRTUAL_SINGLE_CORE_H
#define _ENV_VIRTUAL_SINGLE_CORE_H
+#include "../p/riscv_test.h"
+
//-----------------------------------------------------------------------
// Begin Macro
//-----------------------------------------------------------------------
-#define RVTEST_RV64U \
- .macro init; \
- .endm
-
-#define RVTEST_RV64UF \
- .macro init; \
- fssr x0; \
- .endm
+#undef RVTEST_FP_ENABLE
+#define RVTEST_FP_ENABLE fssr x0
+#undef RVTEST_RV64UV
#define RVTEST_RV64UV \
RVTEST_RV64UF
+#undef RVTEST_CODE_BEGIN
#define RVTEST_CODE_BEGIN \
.text; \
.align 13; \
@@ -25,35 +23,29 @@ userstart: \
init
//-----------------------------------------------------------------------
-// End Macro
-//-----------------------------------------------------------------------
-
-#define RVTEST_CODE_END \
-
-//-----------------------------------------------------------------------
// Pass/Fail Macro
//-----------------------------------------------------------------------
-#define RVTEST_PASS li a0, 1; scall;
-#define RVTEST_FAIL sll a0, x28, 1; 1:beqz a0, 1b; or a0, a0, 1; scall;
+#undef RVTEST_PASS
+#define RVTEST_PASS li a0, 1; scall
+
+#undef RVTEST_FAIL
+#define RVTEST_FAIL sll a0, TESTNUM, 1; 1:beqz a0, 1b; or a0, a0, 1; scall;
//-----------------------------------------------------------------------
// Data Section Macro
//-----------------------------------------------------------------------
+#undef RVTEST_DATA_BEGIN
#define RVTEST_DATA_BEGIN
-#define RVTEST_DATA_END
-//#define RVTEST_DATA_BEGIN .align 4; .global begin_signature; begin_signature:
-//#define RVTEST_DATA_END .align 4; .global end_signature; end_signature:
+#undef RVTEST_DATA_END
+#define RVTEST_DATA_END
//-----------------------------------------------------------------------
// Supervisor mode definitions and macros
//-----------------------------------------------------------------------
-#include "../encoding.h"
-#include "../hwacha_xcpt.h"
-
#define dword_bit_cmd(dw) ((dw >> 32) & 0x1)
#define dword_bit_cnt(dw) (!dword_bit_cmd(dw))
#define dword_bit_imm1(dw) ((dw >> 35) & 0x1)