192 |
|
#define Eb OP_E, b_mode |
193 |
|
#define Ev OP_E, v_mode |
194 |
|
#define Ed OP_E, d_mode |
195 |
+ |
#define Edq OP_E, dq_mode |
196 |
|
#define indirEb OP_indirE, b_mode |
197 |
|
#define indirEv OP_indirE, v_mode |
198 |
|
#define Ew OP_E, w_mode |
312 |
|
#define m_mode 7 /* d_mode in 32bit, q_mode in 64bit mode. */ |
313 |
|
#define cond_jump_mode 8 |
314 |
|
#define loop_jcxz_mode 9 |
315 |
+ |
#define dq_mode 10 /* operand size depends on REX prefixes. */ |
316 |
|
|
317 |
|
#define es_reg 100 |
318 |
|
#define cs_reg 101 |
879 |
|
{ "packssdw", MX, EM, XX }, |
880 |
|
{ PREGRP26 }, |
881 |
|
{ PREGRP24 }, |
882 |
< |
{ "movd", MX, Ed, XX }, |
882 |
> |
{ "movd", MX, Edq, XX }, |
883 |
|
{ PREGRP19 }, |
884 |
|
/* 70 */ |
885 |
|
{ PREGRP22 }, |
1612 |
|
}, |
1613 |
|
/* PREGRP23 */ |
1614 |
|
{ |
1615 |
< |
{ "movd", Ed, MX, XX }, |
1615 |
> |
{ "movd", Edq, MX, XX }, |
1616 |
|
{ "movq", XM, EX, XX }, |
1617 |
< |
{ "movd", Ed, XM, XX }, |
1617 |
> |
{ "movd", Edq, XM, XX }, |
1618 |
|
{ "(bad)", Ed, XM, XX }, |
1619 |
|
}, |
1620 |
|
/* PREGRP24 */ |
3001 |
|
oappend (names32[rm + add]); |
3002 |
|
break; |
3003 |
|
case v_mode: |
3004 |
+ |
case dq_mode: |
3005 |
|
USED_REX (REX_MODE64); |
3006 |
|
if (rex & REX_MODE64) |
3007 |
|
oappend (names64[rm + add]); |
3008 |
< |
else if (sizeflag & DFLAG) |
3008 |
> |
else if ((sizeflag & DFLAG) || bytemode == dq_mode) |
3009 |
|
oappend (names32[rm + add]); |
3010 |
|
else |
3011 |
|
oappend (names16[rm + add]); |