From 217bb5eef46deb0eeac7b8f11c9d36d9310feabb Mon Sep 17 00:00:00 2001 From: Andrew Waterman Date: Fri, 31 Jan 2014 00:59:25 -0800 Subject: Use TESTNUM instead of x28 directly --- p/riscv_test.h | 12 +++++------- v/riscv_test.h | 36 ++++++++++++++---------------------- 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) -- cgit v1.1