diff options
author | Peter Maydell <peter.maydell@linaro.org> | 2021-06-17 13:15:45 +0100 |
---|---|---|
committer | Peter Maydell <peter.maydell@linaro.org> | 2021-06-21 16:49:38 +0100 |
commit | 507b6a500c2f0f6cf6182aa69efac4c20eb3e97b (patch) | |
tree | c808f16caa45dc0fc5431bdb122c274702b0d17f /target/arm/internals.h | |
parent | 88137f787f374ac4117877bcc8c8af97326a10bd (diff) | |
download | qemu-507b6a500c2f0f6cf6182aa69efac4c20eb3e97b.zip qemu-507b6a500c2f0f6cf6182aa69efac4c20eb3e97b.tar.gz qemu-507b6a500c2f0f6cf6182aa69efac4c20eb3e97b.tar.bz2 |
target/arm: Implement MVE VLDR/VSTR (non-widening forms)
Implement the forms of the MVE VLDR and VSTR insns which perform
non-widening loads of bytes, halfwords or words from memory into
vector elements of the same width (encodings T5, T6, T7).
(At the moment we know for MVE and M-profile in general that
vfp_access_check() can never return false, but we include the
conventional return-true-on-failure check for consistency
with non-M-profile translation code.)
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20210617121628.20116-2-peter.maydell@linaro.org
Diffstat (limited to 'target/arm/internals.h')
-rw-r--r-- | target/arm/internals.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/target/arm/internals.h b/target/arm/internals.h index 886db56..3ba86e8 100644 --- a/target/arm/internals.h +++ b/target/arm/internals.h @@ -1202,4 +1202,15 @@ static inline uint64_t useronly_maybe_clean_ptr(uint32_t desc, uint64_t ptr) return ptr; } +/* Values for M-profile PSR.ECI for MVE insns */ +enum MVEECIState { + ECI_NONE = 0, /* No completed beats */ + ECI_A0 = 1, /* Completed: A0 */ + ECI_A0A1 = 2, /* Completed: A0, A1 */ + /* 3 is reserved */ + ECI_A0A1A2 = 4, /* Completed: A0, A1, A2 */ + ECI_A0A1A2B0 = 5, /* Completed: A0, A1, A2, B0 */ + /* All other values reserved */ +}; + #endif |