MOD_8D = 0,
MOD_C6_REG_7,
MOD_C7_REG_7,
+ MOD_FF_REG_3,
+ MOD_FF_REG_5,
MOD_0F01_REG_0,
MOD_0F01_REG_1,
MOD_0F01_REG_2,
{ "incQ", { Evh1 } },
{ "decQ", { Evh1 } },
{ "call{T|}", { indirEv, BND } },
- { "Jcall{T|}", { indirEp } },
+ { MOD_TABLE (MOD_FF_REG_3) },
{ "jmp{T|}", { indirEv, BND } },
- { "Jjmp{T|}", { indirEp } },
+ { MOD_TABLE (MOD_FF_REG_5) },
{ "pushU", { stackEv } },
{ Bad_Opcode },
},
{ Bad_Opcode },
{ RM_TABLE (RM_C7_REG_7) },
},
+ {
+ /* MOD_FF_REG_3 */
+ { "Jcall{T|}", { indirEp } },
+ },
+ {
+ /* MOD_FF_REG_5 */
+ { "Jjmp{T|}", { indirEp } },
+ },
{
/* MOD_0F01_REG_0 */
{ X86_64_TABLE (X86_64_0F01_REG_0) },
}
/* Check if the REX prefix is used. */
- if (rex_ignored == 0 && (rex ^ rex_used) == 0)
+ if (rex_ignored == 0 && (rex ^ rex_used) == 0 && last_rex_prefix >= 0)
all_prefixes[last_rex_prefix] = 0;
/* Check if the SEG prefix is used. */
}
/* FALLTHRU */
case v_mode:
- case v_bnd_mode:
case v_swap_mode:
case dq_mode:
USED_REX (REX_W);
abort ();
oappend ("WORD PTR ");
break;
+ case v_bnd_mode:
default:
break;
}
names = names64;
break;
case m_mode:
+ case v_bnd_mode:
names = address_mode == mode_64bit ? names64 : names32;
break;
case bnd_mode:
bytemode = v_mode;
/* FALLTHRU */
case v_mode:
- case v_bnd_mode:
case v_swap_mode:
case dq_mode:
case dqb_mode:
switch (bytemode)
{
case vex_vsib_d_w_dq_mode:
+ case vex_vsib_q_w_dq_mode:
case evex_x_gscat_mode:
case xmm_mdq_mode:
shift = vex.w ? 3 : 2;
break;
- case vex_vsib_q_w_dq_mode:
- shift = 3;
- break;
case x_mode:
case evex_half_bcst_xmmq_mode:
if (vex.b)