diff options
author | Peter Maydell | 2021-06-17 14:16:17 +0200 |
---|---|---|
committer | Peter Maydell | 2021-06-24 15:58:47 +0200 |
commit | 9dc868c41d8c630f3c13040e2732b4df6d4739de (patch) | |
tree | 83589348cee2d3d843ef3f832b9d4a465eb33474 /target/arm/mve_helper.c | |
parent | target/arm: Implement MVE VQSHL (vector) (diff) | |
download | qemu-9dc868c41d8c630f3c13040e2732b4df6d4739de.tar.gz qemu-9dc868c41d8c630f3c13040e2732b4df6d4739de.tar.xz qemu-9dc868c41d8c630f3c13040e2732b4df6d4739de.zip |
target/arm: Implement MVE VQRSHL
Implement the MV VQRSHL (vector) insn. Again, the code to perform
the actual shifts is borrowed from neon_helper.c.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20210617121628.20116-34-peter.maydell@linaro.org
Diffstat (limited to 'target/arm/mve_helper.c')
-rw-r--r-- | target/arm/mve_helper.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/target/arm/mve_helper.c b/target/arm/mve_helper.c index d9f5fe13b1..64cb5b0c84 100644 --- a/target/arm/mve_helper.c +++ b/target/arm/mve_helper.c @@ -607,9 +607,15 @@ DO_2OP_SAT(vqsubsw, 4, int32_t, DO_SQSUB_W) WRAP_QRSHL_HELPER(do_sqrshl_bhs, N, M, false, satp) #define DO_UQSHL_OP(N, M, satp) \ WRAP_QRSHL_HELPER(do_uqrshl_bhs, N, M, false, satp) +#define DO_SQRSHL_OP(N, M, satp) \ + WRAP_QRSHL_HELPER(do_sqrshl_bhs, N, M, true, satp) +#define DO_UQRSHL_OP(N, M, satp) \ + WRAP_QRSHL_HELPER(do_uqrshl_bhs, N, M, true, satp) DO_2OP_SAT_S(vqshls, DO_SQSHL_OP) DO_2OP_SAT_U(vqshlu, DO_UQSHL_OP) +DO_2OP_SAT_S(vqrshls, DO_SQRSHL_OP) +DO_2OP_SAT_U(vqrshlu, DO_UQRSHL_OP) #define DO_2OP_SCALAR(OP, ESIZE, TYPE, FN) \ void HELPER(glue(mve_, OP))(CPUARMState *env, void *vd, void *vn, \ |