target/arm: Improve vector REV
We can eliminate the requirement for a zero-extended output, because the following store will ignore any garbage high bits. Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
parent
2b0a39e51e
commit
50a7470e3e
@ -12444,12 +12444,10 @@ static void handle_rev(DisasContext *s, int opcode, bool u,
|
||||
read_vec_element(s, tcg_tmp, rn, i, grp_size);
|
||||
switch (grp_size) {
|
||||
case MO_16:
|
||||
tcg_gen_bswap16_i64(tcg_tmp, tcg_tmp,
|
||||
TCG_BSWAP_IZ | TCG_BSWAP_OZ);
|
||||
tcg_gen_bswap16_i64(tcg_tmp, tcg_tmp, TCG_BSWAP_IZ);
|
||||
break;
|
||||
case MO_32:
|
||||
tcg_gen_bswap32_i64(tcg_tmp, tcg_tmp,
|
||||
TCG_BSWAP_IZ | TCG_BSWAP_OZ);
|
||||
tcg_gen_bswap32_i64(tcg_tmp, tcg_tmp, TCG_BSWAP_IZ);
|
||||
break;
|
||||
case MO_64:
|
||||
tcg_gen_bswap64_i64(tcg_tmp, tcg_tmp);
|
||||
|
Loading…
Reference in New Issue
Block a user