diff options
author | Jan Hubicka <jh@suse.cz> | 2001-02-12 16:42:49 +0000 |
---|---|---|
committer | Jan Hubicka <jh@suse.cz> | 2001-02-12 16:42:49 +0000 |
commit | 76f227a511409df74d5e65573b7707970037b1ce (patch) | |
tree | ac1cca14057ac9815cd8b4e7c79768c76bc4a37c /opcodes/i386-dis.c | |
parent | b1e2e654ad11d228622a53657b21b9f153c223b9 (diff) | |
download | gdb-76f227a511409df74d5e65573b7707970037b1ce.zip gdb-76f227a511409df74d5e65573b7707970037b1ce.tar.gz gdb-76f227a511409df74d5e65573b7707970037b1ce.tar.bz2 |
* i386.h (i386_optab): SSE integer converison instructions have
64bit versions on x86-64.
* i386-dis.c (prefix_user_t): Add 'Y' to SSE ineger converison
instructions.
(putop): Handle 'Y'
Diffstat (limited to 'opcodes/i386-dis.c')
-rw-r--r-- | opcodes/i386-dis.c | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c index 90794c0..c3f33bc 100644 --- a/opcodes/i386-dis.c +++ b/opcodes/i386-dis.c @@ -439,6 +439,7 @@ struct dis386 { 'T' => print 'q' in 64bit mode and behave as 'I' otherwise 'X' => print 's', 'd' depending on data16 prefix (for XMM) 'W' => print 'b' or 'w' ("w" or "de" in intel mode) + 'Y' => 'q' if instruction has an REX 64bit overwrite prefix */ static const struct dis386 dis386_att[] = { @@ -2578,23 +2579,23 @@ static const struct dis386 prefix_user_table[][4] = { /* PREGRP2 */ { { "cvtpi2ps", XM, EM, XX }, - { "cvtsi2ss", XM, Ev, XX }, + { "cvtsi2ssY", XM, Ev, XX }, { "cvtpi2pd", XM, EM, XX }, - { "cvtsi2sd", XM, Ev, XX }, + { "cvtsi2sdY", XM, Ev, XX }, }, /* PREGRP3 */ { { "cvtps2pi", MX, EX, XX }, - { "cvtss2si", Gv, EX, XX }, + { "cvtss2siY", Gv, EX, XX }, { "cvtpd2pi", MX, EX, XX }, - { "cvtsd2si", Gv, EX, XX }, + { "cvtsd2siY", Gv, EX, XX }, }, /* PREGRP4 */ { { "cvttps2pi", MX, EX, XX }, - { "cvttss2si", Gv, EX, XX }, + { "cvttss2siY", Gv, EX, XX }, { "cvttpd2pi", MX, EX, XX }, - { "cvttsd2si", Gv, EX, XX }, + { "cvttsd2siY", Gv, EX, XX }, }, /* PREGRP5 */ { @@ -3850,6 +3851,15 @@ putop (template, sizeflag) *obufp++ = 's'; used_prefixes |= (prefixes & PREFIX_DATA); break; + case 'Y': + if (intel_syntax) + break; + if (rex & REX_MODE64) + { + USED_REX (REX_MODE64); + *obufp++ = 'q'; + } + break; /* implicit operand size 'l' for i386 or 'q' for x86-64 */ case 'W': /* operand size flag for cwtl, cbtw */ |