switch ((*codep & 0x1f))
{
default:
- BadOp ();
+ dp = &bad_opcode;
+ return dp;
case 0x8:
vex_table_index = XOP_08;
break;
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))
switch ((*codep & 0x1f))
{
default:
- BadOp ();
+ dp = &bad_opcode;
+ return dp;
case 0x1:
vex_table_index = VEX_0F;
break;
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))
vex.register_specifier = (~(*codep >> 3)) & 0xf;
if (address_mode != mode_64bit
&& vex.register_specifier > 0x7)
- BadOp ();
+ {
+ dp = &bad_opcode;
+ return dp;
+ }
vex.w = 0;
int sizeflag;
const char *p;
struct dis_private priv;
- unsigned char op;
int prefix_length;
int default_prefixes;
return 1;
}
- op = 0;
-
if (*codep == 0x0f)
{
unsigned char threebyte;
OP_sI (int bytemode, int sizeflag)
{
bfd_signed_vma op;
- bfd_signed_vma mask = -1;
switch (bytemode)
{
op = *codep++;
if ((op & 0x80) != 0)
op -= 0x100;
- mask = 0xffffffff;
break;
case v_mode:
USED_REX (REX_W);
if (sizeflag & DFLAG)
{
op = get32s ();
- mask = 0xffffffff;
}
else
{
- mask = 0xffffffff;
op = get16 ();
if ((op & 0x8000) != 0)
op -= 0x10000;
break;
case w_mode:
op = get16 ();
- mask = 0xffffffff;
if ((op & 0x8000) != 0)
op -= 0x10000;
break;