diff options
author | Peter Maydell | 2021-06-17 14:15:45 +0200 |
---|---|---|
committer | Peter Maydell | 2021-06-21 17:49:38 +0200 |
commit | 507b6a500c2f0f6cf6182aa69efac4c20eb3e97b (patch) | |
tree | c808f16caa45dc0fc5431bdb122c274702b0d17f /target/arm/helper-mve.h | |
parent | target/arm: Handle FPU check for FPCXT_NS insns via vfp_access_check_m() (diff) | |
download | qemu-507b6a500c2f0f6cf6182aa69efac4c20eb3e97b.tar.gz qemu-507b6a500c2f0f6cf6182aa69efac4c20eb3e97b.tar.xz qemu-507b6a500c2f0f6cf6182aa69efac4c20eb3e97b.zip |
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/helper-mve.h')
-rw-r--r-- | target/arm/helper-mve.h | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/target/arm/helper-mve.h b/target/arm/helper-mve.h new file mode 100644 index 0000000000..9e3b0b09af --- /dev/null +++ b/target/arm/helper-mve.h @@ -0,0 +1,24 @@ +/* + * M-profile MVE specific helper definitions + * + * Copyright (c) 2021 Linaro, Ltd. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, see <http://www.gnu.org/licenses/>. + */ +DEF_HELPER_FLAGS_3(mve_vldrb, TCG_CALL_NO_WG, void, env, ptr, i32) +DEF_HELPER_FLAGS_3(mve_vldrh, TCG_CALL_NO_WG, void, env, ptr, i32) +DEF_HELPER_FLAGS_3(mve_vldrw, TCG_CALL_NO_WG, void, env, ptr, i32) +DEF_HELPER_FLAGS_3(mve_vstrb, TCG_CALL_NO_WG, void, env, ptr, i32) +DEF_HELPER_FLAGS_3(mve_vstrh, TCG_CALL_NO_WG, void, env, ptr, i32) +DEF_HELPER_FLAGS_3(mve_vstrw, TCG_CALL_NO_WG, void, env, ptr, i32) |