mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-08 02:03:56 -06:00
target/arm: Implement MVE VADD, VSUB, VMUL
Implement the MVE VADD, VSUB and VMUL insns. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20210617121628.20116-13-peter.maydell@linaro.org
This commit is contained in:
parent
68245e442c
commit
9333fe4dd3
4 changed files with 47 additions and 0 deletions
|
@ -337,6 +337,12 @@ DO_1OP(vfnegs, 8, uint64_t, DO_FNEGS)
|
|||
mve_advance_vpt(env); \
|
||||
}
|
||||
|
||||
/* provide unsigned 2-op helpers for all sizes */
|
||||
#define DO_2OP_U(OP, FN) \
|
||||
DO_2OP(OP##b, 1, uint8_t, FN) \
|
||||
DO_2OP(OP##h, 2, uint16_t, FN) \
|
||||
DO_2OP(OP##w, 4, uint32_t, FN)
|
||||
|
||||
#define DO_AND(N, M) ((N) & (M))
|
||||
#define DO_BIC(N, M) ((N) & ~(M))
|
||||
#define DO_ORR(N, M) ((N) | (M))
|
||||
|
@ -348,3 +354,11 @@ DO_2OP(vbic, 8, uint64_t, DO_BIC)
|
|||
DO_2OP(vorr, 8, uint64_t, DO_ORR)
|
||||
DO_2OP(vorn, 8, uint64_t, DO_ORN)
|
||||
DO_2OP(veor, 8, uint64_t, DO_EOR)
|
||||
|
||||
#define DO_ADD(N, M) ((N) + (M))
|
||||
#define DO_SUB(N, M) ((N) - (M))
|
||||
#define DO_MUL(N, M) ((N) * (M))
|
||||
|
||||
DO_2OP_U(vadd, DO_ADD)
|
||||
DO_2OP_U(vsub, DO_SUB)
|
||||
DO_2OP_U(vmul, DO_MUL)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue