diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2006-02-11 17:00:59 +0000 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2006-02-11 17:00:59 +0000 |
commit | 6dd5059a0631912657dd4704abc88cab1a04927f (patch) | |
tree | c52455400dfe63d444dbf264175428407694a608 /opcodes | |
parent | dd87191792c318efbb50049ba17e9441e132fe78 (diff) | |
download | gdb-6dd5059a0631912657dd4704abc88cab1a04927f.zip gdb-6dd5059a0631912657dd4704abc88cab1a04927f.tar.gz gdb-6dd5059a0631912657dd4704abc88cab1a04927f.tar.bz2 |
gas/testsuite/
2006-02-11 H.J. Lu <hongjiu.lu@intel.com>
* gas/i386/i386.exp: Add "x86-64-crx" and "x86-64-crx-suffix".
* gas/i386/x86-64-crx-suffix.d: New file.
* gas/i386/x86-64-crx.d: Likewise.
* gas/i386/x86-64-crx.s: Likewise.
opcodes/
2006-02-11 H.J. Lu <hongjiu.lu@intel.com>
* i386-dis.c ('Z'): Add a new macro.
(dis386_twobyte): Use "movZ" for control register moves.
Diffstat (limited to 'opcodes')
-rw-r--r-- | opcodes/ChangeLog | 5 | ||||
-rw-r--r-- | opcodes/i386-dis.c | 14 |
2 files changed, 17 insertions, 2 deletions
diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog index 9de01b6..629ab5e 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,3 +1,8 @@ +2006-02-11 H.J. Lu <hongjiu.lu@intel.com> + + * i386-dis.c ('Z'): Add a new macro. + (dis386_twobyte): Use "movZ" for control register moves. + 2006-02-10 Nick Clifton <nickc@redhat.com> * iq2000-asm.c: Regenerate. diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c index 973682b..65cb43c 100644 --- a/opcodes/i386-dis.c +++ b/opcodes/i386-dis.c @@ -491,6 +491,7 @@ struct dis386 { 'W' => print 'b' or 'w' ("w" or "de" in intel mode) 'X' => print 's', 'd' depending on data16 prefix (for XMM) 'Y' => 'q' if instruction has an REX 64bit overwrite prefix + 'Z' => print 'q' in 64bit mode and behave as 'L' otherwise Many of the above letters print nothing in Intel mode. See "putop" for the details. @@ -830,9 +831,9 @@ static const struct dis386 dis386_twobyte[] = { { "(bad)", XX, XX, XX }, { "(bad)", XX, XX, XX }, /* 20 */ - { "movL", Rm, Cm, XX }, + { "movZ", Rm, Cm, XX }, { "movL", Rm, Dm, XX }, - { "movL", Cm, Rm, XX }, + { "movZ", Cm, Rm, XX }, { "movL", Dm, Rm, XX }, { "movL", Rd, Td, XX }, { "(bad)", XX, XX, XX }, @@ -2856,6 +2857,15 @@ putop (const char *template, int sizeflag) break; *obufp++ = 'l'; break; + case 'Z': + if (intel_syntax) + break; + if (address_mode == mode_64bit && (sizeflag & SUFFIX_ALWAYS)) + { + *obufp++ = 'q'; + break; + } + /* Fall through. */ case 'L': if (intel_syntax) break; |