aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChih-Min Chao <chihmin.chao@sifive.com>2020-07-15 02:16:25 -0700
committerChih-Min Chao <chihmin.chao@sifive.com>2020-08-03 21:57:08 -0700
commitf5e4f0cf329c13a9dea4bbc36c535572186e9c41 (patch)
tree999ef6a857e99738455cba0a0e600f8823e0b0b8
parent6859ccfa4a20295810dfe9d92582504b8ce23643 (diff)
downloadspike-f5e4f0cf329c13a9dea4bbc36c535572186e9c41.zip
spike-f5e4f0cf329c13a9dea4bbc36c535572186e9c41.tar.gz
spike-f5e4f0cf329c13a9dea4bbc36c535572186e9c41.tar.bz2
op: rearrange hypbervisor op/csr/cause
The change comes from the generation order in riscv-opcodes. The original definition is placed in opcode-system but the new one is placed in separated opcode-rv64h and opcode-rv32h. Signed-off-by: Chih-Min Chao <chihmin.chao@sifive.com>
-rw-r--r--riscv/encoding.h92
1 files changed, 46 insertions, 46 deletions
diff --git a/riscv/encoding.h b/riscv/encoding.h
index f8628c7..1ad6ec2 100644
--- a/riscv/encoding.h
+++ b/riscv/encoding.h
@@ -492,6 +492,36 @@
#define MASK_LR_D 0xf9f0707f
#define MATCH_SC_D 0x1800302f
#define MASK_SC_D 0xf800707f
+#define MATCH_HFENCE_VVMA 0x22000073
+#define MASK_HFENCE_VVMA 0xfe007fff
+#define MATCH_HFENCE_GVMA 0x62000073
+#define MASK_HFENCE_GVMA 0xfe007fff
+#define MATCH_HLV_B 0x60004073
+#define MASK_HLV_B 0xfff0707f
+#define MATCH_HLV_BU 0x60104073
+#define MASK_HLV_BU 0xfff0707f
+#define MATCH_HLV_H 0x64004073
+#define MASK_HLV_H 0xfff0707f
+#define MATCH_HLV_HU 0x64104073
+#define MASK_HLV_HU 0xfff0707f
+#define MATCH_HLVX_HU 0x64304073
+#define MASK_HLVX_HU 0xfff0707f
+#define MATCH_HLV_W 0x68004073
+#define MASK_HLV_W 0xfff0707f
+#define MATCH_HLVX_WU 0x68304073
+#define MASK_HLVX_WU 0xfff0707f
+#define MATCH_HSV_B 0x62004073
+#define MASK_HSV_B 0xfe007fff
+#define MATCH_HSV_H 0x66004073
+#define MASK_HSV_H 0xfe007fff
+#define MATCH_HSV_W 0x6a004073
+#define MASK_HSV_W 0xfe007fff
+#define MATCH_HLV_WU 0x68104073
+#define MASK_HLV_WU 0xfff0707f
+#define MATCH_HLV_D 0x6c004073
+#define MASK_HLV_D 0xfff0707f
+#define MATCH_HSV_D 0x6e004073
+#define MASK_HSV_D 0xfe007fff
#define MATCH_FADD_S 0x53
#define MASK_FADD_S 0xfe00007f
#define MATCH_FSUB_S 0x8000053
@@ -784,36 +814,6 @@
#define MASK_CSRRSI 0x707f
#define MATCH_CSRRCI 0x7073
#define MASK_CSRRCI 0x707f
-#define MATCH_HFENCE_VVMA 0x22000073
-#define MASK_HFENCE_VVMA 0xfe007fff
-#define MATCH_HFENCE_GVMA 0x62000073
-#define MASK_HFENCE_GVMA 0xfe007fff
-#define MATCH_HLV_B 0x60004073
-#define MASK_HLV_B 0xfff0707f
-#define MATCH_HLV_BU 0x60104073
-#define MASK_HLV_BU 0xfff0707f
-#define MATCH_HLV_H 0x64004073
-#define MASK_HLV_H 0xfff0707f
-#define MATCH_HLV_HU 0x64104073
-#define MASK_HLV_HU 0xfff0707f
-#define MATCH_HLVX_HU 0x64304073
-#define MASK_HLVX_HU 0xfff0707f
-#define MATCH_HLV_W 0x68004073
-#define MASK_HLV_W 0xfff0707f
-#define MATCH_HLV_WU 0x68104073
-#define MASK_HLV_WU 0xfff0707f
-#define MATCH_HLVX_WU 0x68304073
-#define MASK_HLVX_WU 0xfff0707f
-#define MATCH_HLV_D 0x6c004073
-#define MASK_HLV_D 0xfff0707f
-#define MATCH_HSV_B 0x62004073
-#define MASK_HSV_B 0xfe007fff
-#define MATCH_HSV_H 0x66004073
-#define MASK_HSV_H 0xfe007fff
-#define MATCH_HSV_W 0x6a004073
-#define MASK_HSV_W 0xfe007fff
-#define MATCH_HSV_D 0x6e004073
-#define MASK_HSV_D 0xfe007fff
#define MATCH_C_NOP 0x1
#define MASK_C_NOP 0xffff
#define MATCH_C_ADDI16SP 0x6101
@@ -2249,6 +2249,21 @@ DECLARE_INSN(amomaxu_d, MATCH_AMOMAXU_D, MASK_AMOMAXU_D)
DECLARE_INSN(amoswap_d, MATCH_AMOSWAP_D, MASK_AMOSWAP_D)
DECLARE_INSN(lr_d, MATCH_LR_D, MASK_LR_D)
DECLARE_INSN(sc_d, MATCH_SC_D, MASK_SC_D)
+DECLARE_INSN(hfence_vvma, MATCH_HFENCE_VVMA, MASK_HFENCE_VVMA)
+DECLARE_INSN(hfence_gvma, MATCH_HFENCE_GVMA, MASK_HFENCE_GVMA)
+DECLARE_INSN(hlv_b, MATCH_HLV_B, MASK_HLV_B)
+DECLARE_INSN(hlv_bu, MATCH_HLV_BU, MASK_HLV_BU)
+DECLARE_INSN(hlv_h, MATCH_HLV_H, MASK_HLV_H)
+DECLARE_INSN(hlv_hu, MATCH_HLV_HU, MASK_HLV_HU)
+DECLARE_INSN(hlvx_hu, MATCH_HLVX_HU, MASK_HLVX_HU)
+DECLARE_INSN(hlv_w, MATCH_HLV_W, MASK_HLV_W)
+DECLARE_INSN(hlvx_wu, MATCH_HLVX_WU, MASK_HLVX_WU)
+DECLARE_INSN(hsv_b, MATCH_HSV_B, MASK_HSV_B)
+DECLARE_INSN(hsv_h, MATCH_HSV_H, MASK_HSV_H)
+DECLARE_INSN(hsv_w, MATCH_HSV_W, MASK_HSV_W)
+DECLARE_INSN(hlv_wu, MATCH_HLV_WU, MASK_HLV_WU)
+DECLARE_INSN(hlv_d, MATCH_HLV_D, MASK_HLV_D)
+DECLARE_INSN(hsv_d, MATCH_HSV_D, MASK_HSV_D)
DECLARE_INSN(fadd_s, MATCH_FADD_S, MASK_FADD_S)
DECLARE_INSN(fsub_s, MATCH_FSUB_S, MASK_FSUB_S)
DECLARE_INSN(fmul_s, MATCH_FMUL_S, MASK_FMUL_S)
@@ -2395,21 +2410,6 @@ DECLARE_INSN(csrrc, MATCH_CSRRC, MASK_CSRRC)
DECLARE_INSN(csrrwi, MATCH_CSRRWI, MASK_CSRRWI)
DECLARE_INSN(csrrsi, MATCH_CSRRSI, MASK_CSRRSI)
DECLARE_INSN(csrrci, MATCH_CSRRCI, MASK_CSRRCI)
-DECLARE_INSN(hfence_vvma, MATCH_HFENCE_VVMA, MASK_HFENCE_VVMA)
-DECLARE_INSN(hfence_gvma, MATCH_HFENCE_GVMA, MASK_HFENCE_GVMA)
-DECLARE_INSN(hlv_b, MATCH_HLV_B, MASK_HLV_B)
-DECLARE_INSN(hlv_bu, MATCH_HLV_BU, MASK_HLV_BU)
-DECLARE_INSN(hlv_h, MATCH_HLV_H, MASK_HLV_H)
-DECLARE_INSN(hlv_hu, MATCH_HLV_HU, MASK_HLV_HU)
-DECLARE_INSN(hlvx_hu, MATCH_HLVX_HU, MASK_HLVX_HU)
-DECLARE_INSN(hlv_w, MATCH_HLV_W, MASK_HLV_W)
-DECLARE_INSN(hlv_wu, MATCH_HLV_WU, MASK_HLV_WU)
-DECLARE_INSN(hlvx_wu, MATCH_HLVX_WU, MASK_HLVX_WU)
-DECLARE_INSN(hlv_d, MATCH_HLV_D, MASK_HLV_D)
-DECLARE_INSN(hsv_b, MATCH_HSV_B, MASK_HSV_B)
-DECLARE_INSN(hsv_h, MATCH_HSV_H, MASK_HSV_H)
-DECLARE_INSN(hsv_w, MATCH_HSV_W, MASK_HSV_W)
-DECLARE_INSN(hsv_d, MATCH_HSV_D, MASK_HSV_D)
DECLARE_INSN(c_nop, MATCH_C_NOP, MASK_C_NOP)
DECLARE_INSN(c_addi16sp, MATCH_C_ADDI16SP, MASK_C_ADDI16SP)
DECLARE_INSN(c_jr, MATCH_C_JR, MASK_C_JR)
@@ -3211,8 +3211,8 @@ DECLARE_CAUSE("load access", CAUSE_LOAD_ACCESS)
DECLARE_CAUSE("misaligned store", CAUSE_MISALIGNED_STORE)
DECLARE_CAUSE("store access", CAUSE_STORE_ACCESS)
DECLARE_CAUSE("user_ecall", CAUSE_USER_ECALL)
-DECLARE_CAUSE("supervisor_ecall", CAUSE_SUPERVISOR_ECALL)
DECLARE_CAUSE("hypervisor_ecall", CAUSE_HYPERVISOR_ECALL)
+DECLARE_CAUSE("supervisor_ecall", CAUSE_SUPERVISOR_ECALL)
DECLARE_CAUSE("machine_ecall", CAUSE_MACHINE_ECALL)
DECLARE_CAUSE("fetch page fault", CAUSE_FETCH_PAGE_FAULT)
DECLARE_CAUSE("load page fault", CAUSE_LOAD_PAGE_FAULT)