mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-06 17:23:56 -06:00
target/riscv: Consolidate RV32/64 16-bit instructions
This patch removes the insn16-32.decode and insn16-64.decode decode files and consolidates the instructions into the general RISC-V insn16.decode decode tree. This means that all of the instructions are avaliable in both the 32-bit and 64-bit builds. This also means that we run a check to ensure we are running a 64-bit softmmu before we execute the 64-bit only instructions. This allows us to include the 32-bit instructions in the 64-bit build, while also ensuring that 32-bit only software can not execute the instructions. Signed-off-by: Alistair Francis <alistair.francis@wdc.com> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 01e2b0efeae311adc7ebf133c2cde6a7a37224d7.1619234854.git.alistair.francis@wdc.com
This commit is contained in:
parent
daf866b606
commit
6baba30ad0
5 changed files with 39 additions and 72 deletions
|
@ -92,6 +92,16 @@ lw 010 ... ... .. ... 00 @cl_w
|
|||
fsd 101 ... ... .. ... 00 @cs_d
|
||||
sw 110 ... ... .. ... 00 @cs_w
|
||||
|
||||
# *** RV32C and RV64C specific Standard Extension (Quadrant 0) ***
|
||||
{
|
||||
ld 011 ... ... .. ... 00 @cl_d
|
||||
flw 011 ... ... .. ... 00 @cl_w
|
||||
}
|
||||
{
|
||||
sd 111 ... ... .. ... 00 @cs_d
|
||||
fsw 111 ... ... .. ... 00 @cs_w
|
||||
}
|
||||
|
||||
# *** RV32/64C Standard Extension (Quadrant 1) ***
|
||||
addi 000 . ..... ..... 01 @ci
|
||||
addi 010 . ..... ..... 01 @c_li
|
||||
|
@ -111,6 +121,15 @@ jal 101 ........... 01 @cj rd=0 # C.J
|
|||
beq 110 ... ... ..... 01 @cb_z
|
||||
bne 111 ... ... ..... 01 @cb_z
|
||||
|
||||
# *** RV64C and RV32C specific Standard Extension (Quadrant 1) ***
|
||||
{
|
||||
c64_illegal 001 - 00000 ----- 01 # c.addiw, RES rd=0
|
||||
addiw 001 . ..... ..... 01 @ci
|
||||
jal 001 ........... 01 @cj rd=1 # C.JAL
|
||||
}
|
||||
subw 100 1 11 ... 00 ... 01 @cs_2
|
||||
addw 100 1 11 ... 01 ... 01 @cs_2
|
||||
|
||||
# *** RV32/64C Standard Extension (Quadrant 2) ***
|
||||
slli 000 . ..... ..... 10 @c_shift2
|
||||
fld 001 . ..... ..... 10 @c_ldsp
|
||||
|
@ -130,3 +149,14 @@ fld 001 . ..... ..... 10 @c_ldsp
|
|||
}
|
||||
fsd 101 ...... ..... 10 @c_sdsp
|
||||
sw 110 . ..... ..... 10 @c_swsp
|
||||
|
||||
# *** RV32C and RV64C specific Standard Extension (Quadrant 2) ***
|
||||
{
|
||||
c64_illegal 011 - 00000 ----- 10 # c.ldsp, RES rd=0
|
||||
ld 011 . ..... ..... 10 @c_ldsp
|
||||
flw 011 . ..... ..... 10 @c_lwsp
|
||||
}
|
||||
{
|
||||
sd 111 . ..... ..... 10 @c_sdsp
|
||||
fsw 111 . ..... ..... 10 @c_swsp
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue