target/mips: Fix DEXTRV_S.H DSP opcode
authorPhilippe Mathieu-Daudé <f4bug@amsat.org>
Wed, 13 Oct 2021 21:42:37 +0000 (23:42 +0200)
committerPhilippe Mathieu-Daudé <f4bug@amsat.org>
Sun, 17 Oct 2021 22:41:36 +0000 (00:41 +0200)
commit0e235827de65b8a0a5fa403ad9ed15d04f8b1a4f
treec318321d22783dd0c059ee18d413deedc13fb90f
parentd2db0f729da6946873b1352bfb7c12c2c9f91fb0
target/mips: Fix DEXTRV_S.H DSP opcode

While for the DEXTR_S.H opcode:

  "The shift argument is provided in the instruction."

For the DEXTRV_S.H opcode we have:

  "The five least-significant bits of register rs provide the
   shift argument, interpreted as a five-bit unsigned integer;
   the remaining bits in rs are ignored."

While 't1' contains the 'rs' register content (the shift value
for DEXTR_S.H), we need to load the value of 'rs' for DEXTRV_S.H.
We can directly use the v1_t TCG register which already contains
this shift value.

Fixes: b53371ed5d4 ("target-mips: Add ASE DSP accumulator instructions")
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20211013215652.1764551-1-f4bug@amsat.org>
target/mips/tcg/translate.c