From: Julian Seward Date: Mon, 16 Jan 2017 05:14:24 +0000 (+0000) Subject: dis_neon_data_3same: don't silently accept invalid instructions. Instead, X-Git-Tag: svn/VALGRIND_3_13_0^2~60 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0e4a16614f39457a7f429a896e91caf07de8f7a1;p=thirdparty%2Fvalgrind.git dis_neon_data_3same: don't silently accept invalid instructions. Instead, "return False" for any instruction not accepted by this function. Also, add a few switch default backstops. git-svn-id: svn://svn.valgrind.org/vex/trunk@3295 --- diff --git a/VEX/priv/guest_arm_toIR.c b/VEX/priv/guest_arm_toIR.c index 06bdc67bbd..9a14bda8a7 100644 --- a/VEX/priv/guest_arm_toIR.c +++ b/VEX/priv/guest_arm_toIR.c @@ -3392,6 +3392,8 @@ Bool dis_neon_data_3same ( UInt theInstr, IRTemp condT ) reg_t, dreg, reg_t, nreg, reg_t, mreg); break; } + default: + vassert(0); } } else { switch(C) { @@ -3489,6 +3491,8 @@ Bool dis_neon_data_3same ( UInt theInstr, IRTemp condT ) Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', nreg, Q ? 'q' : 'd', mreg); break; + default: + vassert(0); } } } @@ -4611,6 +4615,8 @@ Bool dis_neon_data_3same ( UInt theInstr, IRTemp condT ) DIP("vpadd.i%d %c%u, %c%u, %c%u\n", 8 << size, Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', nreg, Q ? 'q' : 'd', mreg); + } else { + return False; } } break; @@ -4768,6 +4774,8 @@ Bool dis_neon_data_3same ( UInt theInstr, IRTemp condT ) DIP("vacg%c.f32 %c%u, %c%u, %c%u\n", op_bit ? 't' : 'e', Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', nreg, Q ? 'q' : 'd', mreg); + } else { + return False; } } break; @@ -4827,6 +4835,8 @@ Bool dis_neon_data_3same ( UInt theInstr, IRTemp condT ) DIP("vrsqrts.f32 %c%u, %c%u, %c%u\n", Q ? 'q' : 'd', dreg, Q ? 'q' : 'd', nreg, Q ? 'q' : 'd', mreg); } + } else { + return False; } } break;