aboutsummaryrefslogtreecommitdiff
path: root/target/arm/internals.h
diff options
context:
space:
mode:
authorPeter Maydell <peter.maydell@linaro.org>2021-06-17 13:15:45 +0100
committerPeter Maydell <peter.maydell@linaro.org>2021-06-21 16:49:38 +0100
commit507b6a500c2f0f6cf6182aa69efac4c20eb3e97b (patch)
treec808f16caa45dc0fc5431bdb122c274702b0d17f /target/arm/internals.h
parent88137f787f374ac4117877bcc8c8af97326a10bd (diff)
downloadqemu-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.h11
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