From: Juha Riihimäki <juha.riihim...@nokia.com>

add an extra check in "two registers and a shift" to ensure element
size decoding logic cannot fail.

Signed-off-by: Juha Riihimäki <juha.riihim...@nokia.com>
Signed-off-by: Riku Voipio <riku.voi...@nokia.com>
---
 target-arm/translate.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/target-arm/translate.c b/target-arm/translate.c
index 743b846..8bba034 100644
--- a/target-arm/translate.c
+++ b/target-arm/translate.c
@@ -4567,8 +4567,9 @@ static int disas_neon_data_insn(CPUState * env, 
DisasContext *s, uint32_t insn)
                 size = 3;
             } else {
                 size = 2;
-                while (size && (insn & (1 << (size + 19))) == 0)
+                while (size && (insn & (1 << (size + 19))) == 0) {
                     size--;
+                }
             }
             shift = (insn >> 16) & ((1 << (3 + size)) - 1);
             /* To avoid excessive dumplication of ops we implement shift
-- 
1.6.5



Reply via email to