target/arm/translate-neon: Simplify align field check for VLD3
commit41c5a0f791ef4d9377ec5b952931a1c75df7a815
authorPeter Maydell <peter.maydell@linaro.org>
Thu, 3 Mar 2022 11:37:41 +0000 (3 11:37 +0000)
committerPeter Maydell <peter.maydell@linaro.org>
Mon, 7 Mar 2022 13:16:49 +0000 (7 13:16 +0000)
tree4aacdf2a56ec2a318e0963811db08bea34699273
parentc64ee036ac215f970a76e8c51cb1cfaaef70feb5
target/arm/translate-neon: Simplify align field check for VLD3

For VLD3 (single 3-element structure to one lane), there is no
alignment specification and the alignment bits in the instruction
must be zero.  This is bit [4] for the size=0 and size=1 cases, and
bits [5:4] for the size=2 case.  We do this check correctly in
VLDST_single(), but we write it a bit oddly: in the 'case 3' code we
check for bit 0 of a->align (bit [4] of the insn), and then we fall
through to the 'case 2' code which checks bit 1 of a->align (bit [5]
of the insn) in the size 2 case.  Replace this with just checking "is
a->align non-zero" for VLD3, which lets us drop the fall-through and
put the cases in this switch in numerical order.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Tested-by: Richard Henderson <richard.henderson@linaro.org>
Message-id: 20220303113741.2156877-3-peter.maydell@linaro.org
target/arm/translate-neon.c