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