#define EXxmmq { OP_EX, xmmq_mode }
#define EXymmq { OP_EX, ymmq_mode }
#define EXVexWdq { OP_EX, vex_w_dq_mode }
+#define EXVexWdqScalar { OP_EX, vex_scalar_w_dq_mode }
#define MS { OP_MS, v_mode }
#define XS { OP_XS, v_mode }
#define EMCq { OP_EMC, q_mode }
q_scalar_swap_mode,
/* like vex_mode, ignore vector length. */
vex_scalar_mode,
+ /* like vex_w_dq_mode, ignore vector length. */
+ vex_scalar_w_dq_mode,
es_reg,
cs_reg,
{
{ Bad_Opcode },
{ Bad_Opcode },
- { "vfmadd132s%XW", { XM, Vex, EXVexWdq } },
+ { "vfmadd132s%XW", { XMScalar, VexScalar, EXVexWdqScalar } },
},
/* PREFIX_VEX_389A */
{
{ Bad_Opcode },
{ Bad_Opcode },
- { "vfmsub132s%XW", { XM, Vex, EXVexWdq } },
+ { "vfmsub132s%XW", { XMScalar, VexScalar, EXVexWdqScalar } },
},
/* PREFIX_VEX_389C */
{
{ Bad_Opcode },
{ Bad_Opcode },
- { "vfnmadd132s%XW", { XM, Vex, EXVexWdq } },
+ { "vfnmadd132s%XW", { XMScalar, VexScalar, EXVexWdqScalar } },
},
/* PREFIX_VEX_389E */
{
{ Bad_Opcode },
{ Bad_Opcode },
- { "vfnmsub132s%XW", { XM, Vex, EXVexWdq } },
+ { "vfnmsub132s%XW", { XMScalar, VexScalar, EXVexWdqScalar } },
},
/* PREFIX_VEX_38A6 */
{
{ Bad_Opcode },
{ Bad_Opcode },
- { "vfmadd213s%XW", { XM, Vex, EXVexWdq } },
+ { "vfmadd213s%XW", { XMScalar, VexScalar, EXVexWdqScalar } },
},
/* PREFIX_VEX_38AA */
{
{ Bad_Opcode },
{ Bad_Opcode },
- { "vfmsub213s%XW", { XM, Vex, EXVexWdq } },
+ { "vfmsub213s%XW", { XMScalar, VexScalar, EXVexWdqScalar } },
},
/* PREFIX_VEX_38AC */
{
{ Bad_Opcode },
{ Bad_Opcode },
- { "vfnmadd213s%XW", { XM, Vex, EXVexWdq } },
+ { "vfnmadd213s%XW", { XMScalar, VexScalar, EXVexWdqScalar } },
},
/* PREFIX_VEX_38AE */
{
{ Bad_Opcode },
{ Bad_Opcode },
- { "vfnmsub213s%XW", { XM, Vex, EXVexWdq } },
+ { "vfnmsub213s%XW", { XMScalar, VexScalar, EXVexWdqScalar } },
},
/* PREFIX_VEX_38B6 */
{
{ Bad_Opcode },
{ Bad_Opcode },
- { "vfmadd231s%XW", { XM, Vex, EXVexWdq } },
+ { "vfmadd231s%XW", { XMScalar, VexScalar, EXVexWdqScalar } },
},
/* PREFIX_VEX_38BA */
{
{ Bad_Opcode },
{ Bad_Opcode },
- { "vfmsub231s%XW", { XM, Vex, EXVexWdq } },
+ { "vfmsub231s%XW", { XMScalar, VexScalar, EXVexWdqScalar } },
},
/* PREFIX_VEX_38BC */
{
{ Bad_Opcode },
{ Bad_Opcode },
- { "vfnmadd231s%XW", { XM, Vex, EXVexWdq } },
+ { "vfnmadd231s%XW", { XMScalar, VexScalar, EXVexWdqScalar } },
},
/* PREFIX_VEX_38BE */
{
{ Bad_Opcode },
{ Bad_Opcode },
- { "vfnmsub231s%XW", { XM, Vex, EXVexWdq } },
+ { "vfnmsub231s%XW", { XMScalar, VexScalar, EXVexWdqScalar } },
},
/* PREFIX_VEX_38DB */
oappend ("OWORD PTR ");
break;
case vex_w_dq_mode:
+ case vex_scalar_w_dq_mode:
if (!need_vex)
abort ();
&& bytemode != d_scalar_mode
&& bytemode != d_scalar_swap_mode
&& bytemode != q_scalar_mode
- && bytemode != q_scalar_swap_mode)
+ && bytemode != q_scalar_swap_mode
+ && bytemode != vex_scalar_w_dq_mode)
{
switch (vex.length)
{