disas/riscv: Disassemble reserved compressed encodings as illegal
commitf88222dae552c202685f5bee43e6c2e12d3c088c
authorMichael Clark <mjc@sifive.com>
Mon, 24 Jun 2019 23:42:33 +0000 (24 16:42 -0700)
committerPalmer Dabbelt <palmer@sifive.com>
Thu, 27 Jun 2019 09:44:35 +0000 (27 02:44 -0700)
treecff6f231606d5ef22065e242e000c59211ae4392
parent28a4df979a2ef92d9129886cd9dcb00c497ac4cb
disas/riscv: Disassemble reserved compressed encodings as illegal

Due to the design of the disassembler, the immediate is not
known during decoding of the opcode; so to handle compressed
encodings with reserved immediate values (non-zero), we need
to add an additional check during decompression to match
reserved encodings with zero immediates and translate them
into the illegal instruction.

The following compressed opcodes have reserved encodings with
zero immediates: c.addi4spn, c.addi, c.lui, c.addi16sp, c.srli,
c.srai, c.andi and c.slli

Signed-off-by: Michael Clark <mjc@sifive.com>
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
[Palmer: Broke long lines]
Reviewed-by: Palmer Dabbelt <palmer@sifive.com>
Signed-off-by: Palmer Dabbelt <palmer@sifive.com>
disas/riscv.c