|
From: <sv...@va...> - 2017-01-16 05:14:31
|
Author: sewardj
Date: Mon Jan 16 05:14:24 2017
New Revision: 3295
Log:
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.
Modified:
trunk/priv/guest_arm_toIR.c
Modified: trunk/priv/guest_arm_toIR.c
==============================================================================
--- trunk/priv/guest_arm_toIR.c (original)
+++ trunk/priv/guest_arm_toIR.c Mon Jan 16 05:14:24 2017
@@ -3392,6 +3392,8 @@
reg_t, dreg, reg_t, nreg, reg_t, mreg);
break;
}
+ default:
+ vassert(0);
}
} else {
switch(C) {
@@ -3489,6 +3491,8 @@
Q ? 'q' : 'd', dreg,
Q ? 'q' : 'd', nreg, Q ? 'q' : 'd', mreg);
break;
+ default:
+ vassert(0);
}
}
}
@@ -4611,6 +4615,8 @@
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 @@
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 @@
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;
|