OSDN Git Service

target/riscv: fix shifts shamt value for rv128c
authorFrédéric Pétrot <frederic.petrot@univ-grenoble-alpes.fr>
Sun, 10 Jul 2022 11:04:51 +0000 (13:04 +0200)
committerAlistair Francis <alistair.francis@wdc.com>
Wed, 7 Sep 2022 07:18:32 +0000 (09:18 +0200)
commit3363277525958e173b4526f9dca225e125b1a5de
tree58eb5fb7b67a6839480d710a9347e8402bf1101b
parent9a1f054d5bd9acaa82b66e09309482cba9eced63
target/riscv: fix shifts shamt value for rv128c

For rv128c shifts, a shamt of 0 is a shamt of 64, while for rv32c/rv64c
it stays 0 and is a hint instruction that does not change processor state.
For rv128c right shifts, the 6-bit shamt is in addition sign extended to
7 bits.

Signed-off-by: Frédéric Pétrot <frederic.petrot@univ-grenoble-alpes.fr>
Reviewed-by: Weiwei Li <liweiwei@iscas.ac.cn>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20220710110451.245567-1-frederic.petrot@univ-grenoble-alpes.fr>
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
disas/riscv.c
target/riscv/insn16.decode
target/riscv/translate.c