Return bad_opcode on unknown bits in opcode.
2010-04-16 H.J. Lu <hongjiu.lu@intel.com> * i386-dis.c (get_valid_dis386): Return bad_opcode on unknown bits in opcode.
This commit is contained in:
parent
f90824dcbc
commit
f07af43e36
@ -1,3 +1,8 @@
|
||||
2010-04-16 H.J. Lu <hongjiu.lu@intel.com>
|
||||
|
||||
* i386-dis.c (get_valid_dis386): Return bad_opcode on unknown
|
||||
bits in opcode.
|
||||
|
||||
2010-04-09 Nick Clifton <nickc@redhat.com>
|
||||
|
||||
* i386-dis.c (print_insn): Remove unused variable op.
|
||||
|
@ -11058,7 +11058,9 @@ get_valid_dis386 (const struct dis386 *dp, disassemble_info *info)
|
||||
switch ((*codep & 0x1f))
|
||||
{
|
||||
default:
|
||||
BadOp ();
|
||||
dp = &bad_opcode;
|
||||
return dp;
|
||||
break;
|
||||
case 0x8:
|
||||
vex_table_index = XOP_08;
|
||||
break;
|
||||
@ -11077,7 +11079,10 @@ get_valid_dis386 (const struct dis386 *dp, disassemble_info *info)
|
||||
vex.register_specifier = (~(*codep >> 3)) & 0xf;
|
||||
if (address_mode != mode_64bit
|
||||
&& vex.register_specifier > 0x7)
|
||||
BadOp ();
|
||||
{
|
||||
dp = &bad_opcode;
|
||||
return dp;
|
||||
}
|
||||
|
||||
vex.length = (*codep & 0x4) ? 256 : 128;
|
||||
switch ((*codep & 0x3))
|
||||
@ -11115,7 +11120,8 @@ get_valid_dis386 (const struct dis386 *dp, disassemble_info *info)
|
||||
switch ((*codep & 0x1f))
|
||||
{
|
||||
default:
|
||||
BadOp ();
|
||||
dp = &bad_opcode;
|
||||
return dp;
|
||||
case 0x1:
|
||||
vex_table_index = VEX_0F;
|
||||
break;
|
||||
@ -11134,7 +11140,10 @@ get_valid_dis386 (const struct dis386 *dp, disassemble_info *info)
|
||||
vex.register_specifier = (~(*codep >> 3)) & 0xf;
|
||||
if (address_mode != mode_64bit
|
||||
&& vex.register_specifier > 0x7)
|
||||
BadOp ();
|
||||
{
|
||||
dp = &bad_opcode;
|
||||
return dp;
|
||||
}
|
||||
|
||||
vex.length = (*codep & 0x4) ? 256 : 128;
|
||||
switch ((*codep & 0x3))
|
||||
@ -11176,7 +11185,10 @@ get_valid_dis386 (const struct dis386 *dp, disassemble_info *info)
|
||||
vex.register_specifier = (~(*codep >> 3)) & 0xf;
|
||||
if (address_mode != mode_64bit
|
||||
&& vex.register_specifier > 0x7)
|
||||
BadOp ();
|
||||
{
|
||||
dp = &bad_opcode;
|
||||
return dp;
|
||||
}
|
||||
|
||||
vex.w = 0;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user