[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH for-7.1 v6 13/51] target/nios2: Use hw/registerfields.h for CR_ST
From: |
Richard Henderson |
Subject: |
[PATCH for-7.1 v6 13/51] target/nios2: Use hw/registerfields.h for CR_STATUS fields |
Date: |
Wed, 16 Mar 2022 22:05:00 -0700 |
Add all fields; retain the helper macros for single bit fields.
So far there are no uses of the multi-bit status fields.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
target/nios2/cpu.h | 28 +++++++++++++++++++---------
1 file changed, 19 insertions(+), 9 deletions(-)
diff --git a/target/nios2/cpu.h b/target/nios2/cpu.h
index 1bcbc9ed63..ecf8cc929f 100644
--- a/target/nios2/cpu.h
+++ b/target/nios2/cpu.h
@@ -23,6 +23,7 @@
#include "exec/cpu-defs.h"
#include "hw/core/cpu.h"
+#include "hw/registerfields.h"
#include "qom/object.h"
typedef struct CPUArchState CPUNios2State;
@@ -79,15 +80,24 @@ struct Nios2CPUClass {
/* Control register aliases */
#define CR_STATUS 0
-#define CR_STATUS_PIE (1 << 0)
-#define CR_STATUS_U (1 << 1)
-#define CR_STATUS_EH (1 << 2)
-#define CR_STATUS_IH (1 << 3)
-#define CR_STATUS_IL (63 << 4)
-#define CR_STATUS_CRS (63 << 10)
-#define CR_STATUS_PRS (63 << 16)
-#define CR_STATUS_NMI (1 << 22)
-#define CR_STATUS_RSIE (1 << 23)
+
+FIELD(CR_STATUS, PIE, 0, 1)
+FIELD(CR_STATUS, U, 1, 1)
+FIELD(CR_STATUS, EH, 2, 1)
+FIELD(CR_STATUS, IH, 3, 1)
+FIELD(CR_STATUS, IL, 4, 6)
+FIELD(CR_STATUS, CRS, 10, 6)
+FIELD(CR_STATUS, PRS, 16, 6)
+FIELD(CR_STATUS, NMI, 22, 1)
+FIELD(CR_STATUS, RSIE, 23, 1)
+
+#define CR_STATUS_PIE R_CR_STATUS_PIE_MASK
+#define CR_STATUS_U R_CR_STATUS_U_MASK
+#define CR_STATUS_EH R_CR_STATUS_EH_MASK
+#define CR_STATUS_IH R_CR_STATUS_IH_MASK
+#define CR_STATUS_NMI R_CR_STATUS_NMI_MASK
+#define CR_STATUS_RSIE R_CR_STATUS_RSIE_MASK
+
#define CR_ESTATUS 1
#define CR_BSTATUS 2
#define CR_IENABLE 3
--
2.25.1
- [PATCH for-7.1 v6 02/51] target/nios2: Check supervisor on eret, (continued)
- [PATCH for-7.1 v6 02/51] target/nios2: Check supervisor on eret, Richard Henderson, 2022/03/17
- [PATCH for-7.1 v6 04/51] target/nios2: Add NUM_GP_REGS and NUM_CP_REGS, Richard Henderson, 2022/03/17
- [PATCH for-7.1 v6 06/51] target/nios2: Split out helper for eret instruction, Richard Henderson, 2022/03/17
- [PATCH for-7.1 v6 05/51] target/nios2: Split PC out of env->regs[], Richard Henderson, 2022/03/17
- [PATCH for-7.1 v6 07/51] target/nios2: Fix BRET instruction, Richard Henderson, 2022/03/17
- [PATCH for-7.1 v6 08/51] target/nios2: Do not create TCGv for control registers, Richard Henderson, 2022/03/17
- [PATCH for-7.1 v6 10/51] target/nios2: Remove cpu_interrupts_enabled, Richard Henderson, 2022/03/17
- [PATCH for-7.1 v6 09/51] linux-user/nios2: Only initialize SP and PC in target_cpu_copy_regs, Richard Henderson, 2022/03/17
- [PATCH for-7.1 v6 11/51] target/nios2: Split control registers away from general registers, Richard Henderson, 2022/03/17
- [PATCH for-7.1 v6 12/51] target/nios2: Clean up nios2_cpu_dump_state, Richard Henderson, 2022/03/17
- [PATCH for-7.1 v6 13/51] target/nios2: Use hw/registerfields.h for CR_STATUS fields,
Richard Henderson <=
- [PATCH for-7.1 v6 14/51] target/nios2: Use hw/registerfields.h for CR_EXCEPTION fields, Richard Henderson, 2022/03/17
- [PATCH for-7.1 v6 15/51] target/nios2: Use hw/registerfields.h for CR_TLBADDR fields, Richard Henderson, 2022/03/17
- [PATCH for-7.1 v6 16/51] target/nios2: Use hw/registerfields.h for CR_TLBACC fields, Richard Henderson, 2022/03/17
- [PATCH for-7.1 v6 17/51] target/nios2: Rename CR_TLBMISC_WR to CR_TLBMISC_WE, Richard Henderson, 2022/03/17
- [PATCH for-7.1 v6 18/51] target/nios2: Use hw/registerfields.h for CR_TLBMISC fields, Richard Henderson, 2022/03/17
- [PATCH for-7.1 v6 20/51] target/nios2: Create EXCP_SEMIHOST for semi-hosting, Richard Henderson, 2022/03/17
- [PATCH for-7.1 v6 19/51] target/nios2: Move R_FOO and CR_BAR into enumerations, Richard Henderson, 2022/03/17
- [PATCH for-7.1 v6 22/51] target/nios2: Hoist CPU_LOG_INT logging, Richard Henderson, 2022/03/17