aboutsummaryrefslogtreecommitdiff
path: root/target/riscv/insn16.decode
diff options
context:
space:
mode:
authorRichard Henderson <richard.henderson@linaro.org>2019-04-25 10:26:36 -0700
committerPalmer Dabbelt <palmer@sifive.com>2019-05-24 12:09:25 -0700
commit4cc16b3b9282e04fab8e84d136540757e82af019 (patch)
treea6caaae619e90e0d1bd36105f1fb986847435c53 /target/riscv/insn16.decode
parente06431108b0b1ef6ca76398d2b0b792ea24ae6bc (diff)
target/riscv: Add checks for several RVC reserved operands
C.ADDI16SP, C.LWSP, C.JR, C.ADDIW, C.LDSP all have reserved operands that were not diagnosed. Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Reviewed-by: Palmer Dabbelt <palmer@sifive.com> Signed-off-by: Palmer Dabbelt <palmer@sifive.com>
Diffstat (limited to 'target/riscv/insn16.decode')
-rw-r--r--target/riscv/insn16.decode7
1 files changed, 6 insertions, 1 deletions
diff --git a/target/riscv/insn16.decode b/target/riscv/insn16.decode
index 433c0e8c68..1cb93876fe 100644
--- a/target/riscv/insn16.decode
+++ b/target/riscv/insn16.decode
@@ -96,6 +96,7 @@ sw 110 ... ... .. ... 00 @cs_w
addi 000 . ..... ..... 01 @ci
addi 010 . ..... ..... 01 @c_li
{
+ illegal 011 0 ----- 00000 01 # c.addi16sp and c.lui, RES nzimm=0
addi 011 . 00010 ..... 01 @c_addi16sp
lui 011 . ..... ..... 01 @c_lui
}
@@ -113,8 +114,12 @@ bne 111 ... ... ..... 01 @cb_z
# *** RV32/64C Standard Extension (Quadrant 2) ***
slli 000 . ..... ..... 10 @c_shift2
fld 001 . ..... ..... 10 @c_ldsp
-lw 010 . ..... ..... 10 @c_lwsp
{
+ illegal 010 - 00000 ----- 10 # c.lwsp, RES rd=0
+ lw 010 . ..... ..... 10 @c_lwsp
+}
+{
+ illegal 100 0 00000 00000 10 # c.jr, RES rs1=0
jalr 100 0 ..... 00000 10 @c_jalr rd=0 # C.JR
addi 100 0 ..... ..... 10 @c_mv
}