mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-08 02:03:56 -06:00
target/arm: Implement MVE VMLSLDAV
Implement the MVE insn VMLSLDAV, which multiplies source elements, alternately adding and subtracting them, and accumulates into a 64-bit result in a pair of general purpose registers. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20210617121628.20116-21-peter.maydell@linaro.org
This commit is contained in:
parent
1d2386f70a
commit
181cd97143
4 changed files with 23 additions and 0 deletions
|
@ -461,3 +461,14 @@ static bool trans_VMLALDAV_U(DisasContext *s, arg_vmlaldav *a)
|
|||
};
|
||||
return do_long_dual_acc(s, a, fns[a->size][a->x]);
|
||||
}
|
||||
|
||||
static bool trans_VMLSLDAV(DisasContext *s, arg_vmlaldav *a)
|
||||
{
|
||||
static MVEGenDualAccOpFn * const fns[4][2] = {
|
||||
{ NULL, NULL },
|
||||
{ gen_helper_mve_vmlsldavsh, gen_helper_mve_vmlsldavxsh },
|
||||
{ gen_helper_mve_vmlsldavsw, gen_helper_mve_vmlsldavxsw },
|
||||
{ NULL, NULL },
|
||||
};
|
||||
return do_long_dual_acc(s, a, fns[a->size][a->x]);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue