target/arm: Decode aa64 armv8.1 scalar/vector x indexed element
Reviewed-by: Alex Bennée <alex.bennee@linaro.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20180228193125.20577-7-richard.henderson@linaro.org Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
parent
e7186d8229
commit
d345df7a3f
@ -11987,6 +11987,13 @@ static void disas_simd_indexed(DisasContext *s, uint32_t insn)
|
||||
case 0x19: /* FMULX */
|
||||
is_fp = true;
|
||||
break;
|
||||
case 0x1d: /* SQRDMLAH */
|
||||
case 0x1f: /* SQRDMLSH */
|
||||
if (!arm_dc_feature(s, ARM_FEATURE_V8_RDM)) {
|
||||
unallocated_encoding(s);
|
||||
return;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
unallocated_encoding(s);
|
||||
return;
|
||||
@ -12230,6 +12237,28 @@ static void disas_simd_indexed(DisasContext *s, uint32_t insn)
|
||||
tcg_op, tcg_idx);
|
||||
}
|
||||
break;
|
||||
case 0x1d: /* SQRDMLAH */
|
||||
read_vec_element_i32(s, tcg_res, rd, pass,
|
||||
is_scalar ? size : MO_32);
|
||||
if (size == 1) {
|
||||
gen_helper_neon_qrdmlah_s16(tcg_res, cpu_env,
|
||||
tcg_op, tcg_idx, tcg_res);
|
||||
} else {
|
||||
gen_helper_neon_qrdmlah_s32(tcg_res, cpu_env,
|
||||
tcg_op, tcg_idx, tcg_res);
|
||||
}
|
||||
break;
|
||||
case 0x1f: /* SQRDMLSH */
|
||||
read_vec_element_i32(s, tcg_res, rd, pass,
|
||||
is_scalar ? size : MO_32);
|
||||
if (size == 1) {
|
||||
gen_helper_neon_qrdmlsh_s16(tcg_res, cpu_env,
|
||||
tcg_op, tcg_idx, tcg_res);
|
||||
} else {
|
||||
gen_helper_neon_qrdmlsh_s32(tcg_res, cpu_env,
|
||||
tcg_op, tcg_idx, tcg_res);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
g_assert_not_reached();
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user