diff options
author | Peter Maydell <peter.maydell@linaro.org> | 2021-09-01 09:02:34 +0100 |
---|---|---|
committer | Peter Maydell <peter.maydell@linaro.org> | 2021-09-01 11:08:16 +0100 |
commit | 1e35cd916695389074b12614d254087a9f51b852 (patch) | |
tree | 7a7df092b27d80b64cf1ba986123c13a1913f583 /target/arm/translate.h | |
parent | 52e64f5b1f2c81472b57dbad255ab9b00302f10d (diff) |
target/arm: Implement MVE VADD (floating-point)
Implement the MVE VADD (floating-point) insn. Handling of this is
similar to the 2-operand integer insns, except that we must take care
to only update the floating point exception status if the least
significant bit of the predicate mask for each element is active.
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'target/arm/translate.h')
-rw-r--r-- | target/arm/translate.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/target/arm/translate.h b/target/arm/translate.h index 241596c5bd..8636c20c3b 100644 --- a/target/arm/translate.h +++ b/target/arm/translate.h @@ -181,6 +181,12 @@ static inline int rsub_8(DisasContext *s, int x) return 8 - x; } +static inline int neon_3same_fp_size(DisasContext *s, int x) +{ + /* Convert 0==fp32, 1==fp16 into a MO_* value */ + return MO_32 - x; +} + static inline int arm_dc_feature(DisasContext *dc, int feature) { return (dc->features & (1ULL << feature)) != 0; |