ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/cebix/mon/src/disass/i386-dis.c
(Generate patch)

Comparing mon/src/disass/i386-dis.c (file contents):
Revision 1.2 by gbeauche, 2002-09-07T12:48:15Z vs.
Revision 1.3 by gbeauche, 2003-02-06T10:20:49Z

# Line 192 | Line 192 | fetch_data (info, addr)
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
# Line 311 | Line 312 | fetch_data (info, addr)
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
# Line 877 | Line 879 | static const struct dis386 dis386_twobyt
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 },
# Line 1610 | Line 1612 | static const struct dis386 prefix_user_t
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 */
# Line 2999 | Line 3001 | OP_E (bytemode, sizeflag)
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]);

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines