]> git.proxmox.com Git - qemu.git/commitdiff
target-arm: Handle UNDEF cases for VDUP (scalar)
authorJuha Riihimäki <juha.riihimaki@nokia.com>
Mon, 11 Apr 2011 15:26:23 +0000 (16:26 +0100)
committerAurelien Jarno <aurelien@aurel32.net>
Tue, 12 Apr 2011 21:33:33 +0000 (23:33 +0200)
Handle the UNDEF cases for VDUP(scalar):
 imm4 == x000
 Q == 1 && Vd<0> == 1

Signed-off-by: Juha Riihimäki <juha.riihimaki@nokia.com>
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
target-arm/translate.c

index be25c8f33ae689993adb4a0a438b77a600fd999a..6190028d0822056b3976d692f6ab5bf4c41e5a99 100644 (file)
@@ -6057,6 +6057,9 @@ static int disas_neon_data_insn(CPUState * env, DisasContext *s, uint32_t insn)
                 tcg_temp_free_i32(tmp);
             } else if ((insn & 0x380) == 0) {
                 /* VDUP */
+                if ((insn & (7 << 16)) == 0 || (q && (rd & 1))) {
+                    return 1;
+                }
                 if (insn & (1 << 19)) {
                     tmp = neon_load_reg(rm, 1);
                 } else {