more work towards RVC 1.8
[riscv-isa-sim.git] / riscv / encoding.h
index 5e8b12220d20529300bc7716393ecf9a81b075ca..5be3bdb61677d59a6f742d95b324edb3d86da738 100644 (file)
 #define MASK_FNMADD_D  0x600007f
 #define MATCH_C_NOP 0x8001
 #define MASK_C_NOP  0xffff
-#define MATCH_C_ADDI16SP 0xe001
+#define MATCH_C_ADDI16SP 0xe101
 #define MASK_C_ADDI16SP  0xef83
 #define MATCH_C_JR 0x8002
 #define MASK_C_JR  0xf07f
 #define MASK_C_JALR  0xf07f
 #define MATCH_C_EBREAK 0x9002
 #define MASK_C_EBREAK  0xffff
-#define MATCH_C_SD 0x6000
-#define MASK_C_SD  0xe003
-#define MATCH_C_LD 0xe000
+#define MATCH_C_LD 0x6000
 #define MASK_C_LD  0xe003
+#define MATCH_C_SD 0xe000
+#define MASK_C_SD  0xe003
 #define MATCH_C_ADDIW 0xa001
 #define MASK_C_ADDIW  0xe003
-#define MATCH_C_SDSP 0x6002
-#define MASK_C_SDSP  0xe003
-#define MATCH_C_LDSP 0xe002
+#define MATCH_C_LDSP 0x6002
 #define MASK_C_LDSP  0xe003
+#define MATCH_C_SDSP 0xe002
+#define MASK_C_SDSP  0xe003
 #define MATCH_C_ADDI4SPN 0x0
 #define MASK_C_ADDI4SPN  0xe003
-#define MATCH_C_FSD 0x2000
-#define MASK_C_FSD  0xe003
-#define MATCH_C_SW 0x4000
-#define MASK_C_SW  0xe003
-#define MATCH_C_FSW 0x6000
-#define MASK_C_FSW  0xe003
-#define MATCH_C_LBU 0x8000
-#define MASK_C_LBU  0xe003
-#define MATCH_C_FLD 0xa000
+#define MATCH_C_FLD 0x2000
 #define MASK_C_FLD  0xe003
-#define MATCH_C_LW 0xc000
+#define MATCH_C_LW 0x4000
 #define MASK_C_LW  0xe003
-#define MATCH_C_FLW 0xe000
+#define MATCH_C_FLW 0x6000
 #define MASK_C_FLW  0xe003
+#define MATCH_C_FSD 0xa000
+#define MASK_C_FSD  0xe003
+#define MATCH_C_SW 0xc000
+#define MASK_C_SW  0xe003
+#define MATCH_C_FSW 0xe000
+#define MASK_C_FSW  0xe003
 #define MATCH_C_SRLI 0x1
 #define MASK_C_SRLI  0xec03
 #define MATCH_C_SRAI 0x401
 #define MASK_C_LUI  0xe003
 #define MATCH_C_SLLI 0x2
 #define MASK_C_SLLI  0xe003
-#define MATCH_C_FSDSP 0x2002
-#define MASK_C_FSDSP  0xe003
-#define MATCH_C_SWSP 0x4002
-#define MASK_C_SWSP  0xe003
-#define MATCH_C_FSWSP 0x6002
-#define MASK_C_FSWSP  0xe003
+#define MATCH_C_FLDSP 0x2002
+#define MASK_C_FLDSP  0xe003
+#define MATCH_C_LWSP 0x4002
+#define MASK_C_LWSP  0xe003
+#define MATCH_C_FLWSP 0x6002
+#define MASK_C_FLWSP  0xe003
 #define MATCH_C_MV 0x8002
 #define MASK_C_MV  0xf003
 #define MATCH_C_ADD 0x9002
 #define MASK_C_ADD  0xf003
-#define MATCH_C_FLDSP 0xa002
-#define MASK_C_FLDSP  0xe003
-#define MATCH_C_LWSP 0xc002
-#define MASK_C_LWSP  0xe003
-#define MATCH_C_FLWSP 0xe002
-#define MASK_C_FLWSP  0xe003
+#define MATCH_C_FSDSP 0xa002
+#define MASK_C_FSDSP  0xe003
+#define MATCH_C_SWSP 0xc002
+#define MASK_C_SWSP  0xe003
+#define MATCH_C_FSWSP 0xe002
+#define MASK_C_FSWSP  0xe003
 #define CSR_FFLAGS 0x1
 #define CSR_FRM 0x2
 #define CSR_FCSR 0x3
@@ -820,19 +818,18 @@ DECLARE_INSN(c_addi16sp, MATCH_C_ADDI16SP, MASK_C_ADDI16SP)
 DECLARE_INSN(c_jr, MATCH_C_JR, MASK_C_JR)
 DECLARE_INSN(c_jalr, MATCH_C_JALR, MASK_C_JALR)
 DECLARE_INSN(c_ebreak, MATCH_C_EBREAK, MASK_C_EBREAK)
-DECLARE_INSN(c_sd, MATCH_C_SD, MASK_C_SD)
 DECLARE_INSN(c_ld, MATCH_C_LD, MASK_C_LD)
+DECLARE_INSN(c_sd, MATCH_C_SD, MASK_C_SD)
 DECLARE_INSN(c_addiw, MATCH_C_ADDIW, MASK_C_ADDIW)
-DECLARE_INSN(c_sdsp, MATCH_C_SDSP, MASK_C_SDSP)
 DECLARE_INSN(c_ldsp, MATCH_C_LDSP, MASK_C_LDSP)
+DECLARE_INSN(c_sdsp, MATCH_C_SDSP, MASK_C_SDSP)
 DECLARE_INSN(c_addi4spn, MATCH_C_ADDI4SPN, MASK_C_ADDI4SPN)
-DECLARE_INSN(c_fsd, MATCH_C_FSD, MASK_C_FSD)
-DECLARE_INSN(c_sw, MATCH_C_SW, MASK_C_SW)
-DECLARE_INSN(c_fsw, MATCH_C_FSW, MASK_C_FSW)
-DECLARE_INSN(c_lbu, MATCH_C_LBU, MASK_C_LBU)
 DECLARE_INSN(c_fld, MATCH_C_FLD, MASK_C_FLD)
 DECLARE_INSN(c_lw, MATCH_C_LW, MASK_C_LW)
 DECLARE_INSN(c_flw, MATCH_C_FLW, MASK_C_FLW)
+DECLARE_INSN(c_fsd, MATCH_C_FSD, MASK_C_FSD)
+DECLARE_INSN(c_sw, MATCH_C_SW, MASK_C_SW)
+DECLARE_INSN(c_fsw, MATCH_C_FSW, MASK_C_FSW)
 DECLARE_INSN(c_srli, MATCH_C_SRLI, MASK_C_SRLI)
 DECLARE_INSN(c_srai, MATCH_C_SRAI, MASK_C_SRAI)
 DECLARE_INSN(c_andi, MATCH_C_ANDI, MASK_C_ANDI)
@@ -852,14 +849,14 @@ DECLARE_INSN(c_jal, MATCH_C_JAL, MASK_C_JAL)
 DECLARE_INSN(c_li, MATCH_C_LI, MASK_C_LI)
 DECLARE_INSN(c_lui, MATCH_C_LUI, MASK_C_LUI)
 DECLARE_INSN(c_slli, MATCH_C_SLLI, MASK_C_SLLI)
-DECLARE_INSN(c_fsdsp, MATCH_C_FSDSP, MASK_C_FSDSP)
-DECLARE_INSN(c_swsp, MATCH_C_SWSP, MASK_C_SWSP)
-DECLARE_INSN(c_fswsp, MATCH_C_FSWSP, MASK_C_FSWSP)
-DECLARE_INSN(c_mv, MATCH_C_MV, MASK_C_MV)
-DECLARE_INSN(c_add, MATCH_C_ADD, MASK_C_ADD)
 DECLARE_INSN(c_fldsp, MATCH_C_FLDSP, MASK_C_FLDSP)
 DECLARE_INSN(c_lwsp, MATCH_C_LWSP, MASK_C_LWSP)
 DECLARE_INSN(c_flwsp, MATCH_C_FLWSP, MASK_C_FLWSP)
+DECLARE_INSN(c_mv, MATCH_C_MV, MASK_C_MV)
+DECLARE_INSN(c_add, MATCH_C_ADD, MASK_C_ADD)
+DECLARE_INSN(c_fsdsp, MATCH_C_FSDSP, MASK_C_FSDSP)
+DECLARE_INSN(c_swsp, MATCH_C_SWSP, MASK_C_SWSP)
+DECLARE_INSN(c_fswsp, MATCH_C_FSWSP, MASK_C_FSWSP)
 #endif
 #ifdef DECLARE_CSR
 DECLARE_CSR(fflags, CSR_FFLAGS)