summaryrefslogtreecommitdiff
path: root/riscv
diff options
context:
space:
mode:
authorPrashanth Mundkur2018-11-09 12:05:23 -0800
committerPrashanth Mundkur2018-11-09 12:05:30 -0800
commitfdfea2412245d8be89b12a78cb321364b3ab77a5 (patch)
tree9c45c141f1a3bfd3dc2ab9c0abacbdbf9e78911c /riscv
parent7091dd1a68ef85f91d6113b80746555580145a96 (diff)
RISC-V: add missed c.ebreak instruction
Diffstat (limited to 'riscv')
-rw-r--r--riscv/riscv.sail10
1 files changed, 10 insertions, 0 deletions
diff --git a/riscv/riscv.sail b/riscv/riscv.sail
index f9945a4d..f50514aa 100644
--- a/riscv/riscv.sail
+++ b/riscv/riscv.sail
@@ -1492,6 +1492,16 @@ function clause execute (C_MV(rd, rs2)) =
mapping clause assembly = C_MV(rd, rs2) if rd != zreg & rs2 != zreg <-> "c.mv" ^ spc() ^ reg_name(rd) ^ sep() ^ reg_name(rs2) if rd != zreg & rs2 != zreg
/* ****************************************************************** */
+union clause ast = C_EBREAK : unit
+
+mapping clause encdec_compressed = C_EBREAK() <-> 0b100 @ 0b1 @ 0b00000 @ 0b00000 @ 0b10
+
+function clause execute C_EBREAK() =
+ execute(EBREAK())
+
+mapping clause assembly = C_EBREAK() <-> "c.ebreak"
+
+/* ****************************************************************** */
union clause ast = C_ADD : (regbits, regbits)
mapping clause encdec_compressed = C_ADD(rsd, rs2) if rsd != zreg & rs2 != zreg <-> 0b100 @ 0b1 @ rsd : regbits @ rs2 : regbits @ 0b10 if rsd != zreg & rs2 != zreg