aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Maydell <peter.maydell@linaro.org>2020-11-09 14:53:24 +0000
committerPeter Maydell <peter.maydell@linaro.org>2020-11-10 11:03:48 +0000
commitb6c56c8a9a4064ea783f352f43c5df6231a110fa (patch)
tree836d60a131019692bbf8817795cd754894dd1cd6
parent8006c9842bf6f52fdcfb1c8f64c9bd714e661301 (diff)
target/arm/translate-neon.c: Handle VTBL UNDEF case before VFP access checkpull-target-arm-20201110
Checks for UNDEF cases should go before the "is VFP enabled?" access check, except in special cases. Move a stray UNDEF check in the VTBL trans function up above the access check. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20201109145324.2859-1-peter.maydell@linaro.org
-rw-r--r--target/arm/translate-neon.c.inc8
1 files changed, 4 insertions, 4 deletions
diff --git a/target/arm/translate-neon.c.inc b/target/arm/translate-neon.c.inc
index 0ae95cb8df..2403825d15 100644
--- a/target/arm/translate-neon.c.inc
+++ b/target/arm/translate-neon.c.inc
@@ -2874,10 +2874,6 @@ static bool trans_VTBL(DisasContext *s, arg_VTBL *a)
return false;
}
- if (!vfp_access_check(s)) {
- return true;
- }
-
if ((a->vn + a->len + 1) > 32) {
/*
* This is UNPREDICTABLE; we choose to UNDEF to avoid the
@@ -2886,6 +2882,10 @@ static bool trans_VTBL(DisasContext *s, arg_VTBL *a)
return false;
}
+ if (!vfp_access_check(s)) {
+ return true;
+ }
+
desc = tcg_const_i32((a->vn << 2) | a->len);
def = tcg_temp_new_i64();
if (a->op) {