Decode sc in the major opcode decode table
authorPaul Mackerras <paulus@ozlabs.org>
Mon, 6 Apr 2020 03:24:08 +0000 (13:24 +1000)
committerPaul Mackerras <paulus@ozlabs.org>
Tue, 7 Apr 2020 10:08:43 +0000 (20:08 +1000)
commit6f7ef8b1b91d2d5e0ed52f0538a727c6f39aa899
tree793e8ab7148413a8a10019a722e12b2b214ac2c5
parent278ac5e0eb79bd5aee0434f9bc97fcead2b88109
Decode sc in the major opcode decode table

This decodes sc using entry 17 of the major_decode_rom_array table
instead of a special case in the decode1_1 process.  This means that
only the major opcode (the top 6 bits) is checked at decode time.
To make sure that the instruction is sc not scv, we now check bit
1 of the instruction at execute time and generate an illegal
instruction interrupt if it is 0 (indicating scv).  The level field
of the sc instruction is now ignored.

This reduces LUT consumption by 31 LUTs on the Arty A7-100.

Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
decode1.vhdl
execute1.vhdl