mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-07 01:33:56 -06:00
arm/translate-a64: add FP16 x2 ops for simd_indexed
A bunch of the vectorised bitwise operations just operate on larger chunks at a time. We can do the same for the new half-precision operations by introducing some TWOHALFOP helpers which work on each half of a pair of half-precision operations at once. Hopefully all this hoop jumping will get simpler once we have generically vectorised helpers here. Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20180227143852.11175-16-alex.bennee@linaro.org Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
parent
5d265064cf
commit
6089030c73
3 changed files with 76 additions and 6 deletions
|
@ -11417,8 +11417,13 @@ static void disas_simd_indexed(DisasContext *s, uint32_t insn)
|
|||
* multiply-add */
|
||||
tcg_gen_xori_i32(tcg_op, tcg_op, 0x80008000);
|
||||
}
|
||||
gen_helper_advsimd_muladdh(tcg_res, tcg_op, tcg_idx,
|
||||
tcg_res, fpst);
|
||||
if (is_scalar) {
|
||||
gen_helper_advsimd_muladdh(tcg_res, tcg_op, tcg_idx,
|
||||
tcg_res, fpst);
|
||||
} else {
|
||||
gen_helper_advsimd_muladd2h(tcg_res, tcg_op, tcg_idx,
|
||||
tcg_res, fpst);
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
if (opcode == 0x5) {
|
||||
|
@ -11437,10 +11442,21 @@ static void disas_simd_indexed(DisasContext *s, uint32_t insn)
|
|||
switch (size) {
|
||||
case 1:
|
||||
if (u) {
|
||||
gen_helper_advsimd_mulxh(tcg_res, tcg_op, tcg_idx,
|
||||
fpst);
|
||||
if (is_scalar) {
|
||||
gen_helper_advsimd_mulxh(tcg_res, tcg_op,
|
||||
tcg_idx, fpst);
|
||||
} else {
|
||||
gen_helper_advsimd_mulx2h(tcg_res, tcg_op,
|
||||
tcg_idx, fpst);
|
||||
}
|
||||
} else {
|
||||
g_assert_not_reached();
|
||||
if (is_scalar) {
|
||||
gen_helper_advsimd_mulh(tcg_res, tcg_op,
|
||||
tcg_idx, fpst);
|
||||
} else {
|
||||
gen_helper_advsimd_mul2h(tcg_res, tcg_op,
|
||||
tcg_idx, fpst);
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue