aboutsummaryrefslogtreecommitdiff
path: root/riscv/encoding.h
diff options
context:
space:
mode:
authorAndrew Waterman <waterman@cs.berkeley.edu>2015-10-05 21:24:01 -0700
committerAndrew Waterman <waterman@cs.berkeley.edu>2015-10-05 21:24:01 -0700
commitb0f3ed6e3bc78f11371864a0587d918c547b8022 (patch)
tree099ef5a8fa6eec84fcdb5eac73c428c0294d5c93 /riscv/encoding.h
parent3fddbcc0a5b2fc6a446967405e58a92be5db9f5f (diff)
downloadspike-b0f3ed6e3bc78f11371864a0587d918c547b8022.zip
spike-b0f3ed6e3bc78f11371864a0587d918c547b8022.tar.gz
spike-b0f3ed6e3bc78f11371864a0587d918c547b8022.tar.bz2
more work towards RVC 1.8
Diffstat (limited to 'riscv/encoding.h')
-rw-r--r--riscv/encoding.h79
1 files changed, 38 insertions, 41 deletions
diff --git a/riscv/encoding.h b/riscv/encoding.h
index 5e8b122..5be3bdb 100644
--- a/riscv/encoding.h
+++ b/riscv/encoding.h
@@ -485,7 +485,7 @@
#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
@@ -493,32 +493,30 @@
#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
@@ -557,22 +555,22 @@
#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)