diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2007-07-28 23:34:14 +0000 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2007-07-28 23:34:14 +0000 |
commit | 09335d057c1d2cbdfa5bb0183011d79c3e997b70 (patch) | |
tree | 745976f56366fa902a8b592822ef97e2d10285e2 /opcodes/i386-dis.c | |
parent | bd5a94b03d7bcaab419f50b0eb42593ec426f6f3 (diff) | |
download | gdb-09335d057c1d2cbdfa5bb0183011d79c3e997b70.zip gdb-09335d057c1d2cbdfa5bb0183011d79c3e997b70.tar.gz gdb-09335d057c1d2cbdfa5bb0183011d79c3e997b70.tar.bz2 |
gas/testsuite/
2007-07-28 H.J. Lu <hongjiu.lu@intel.com>
PR binutils/4835
* gas/i386/simd-intel.d: Updated.
* gas/i386/simd.d: Likewise.
* gas/i386/x86-64-simd-intel.d: Likewise.
* gas/i386/x86-64-simd.d: Likewise.
* gas/i386/simd.s: Add new tests.
* gas/i386/x86-64-simd.s: Likewise.
opcodes/
2007-07-28 H.J. Lu <hongjiu.lu@intel.com>
PR binutils/4835
* i386-dis.c (Eq): New.
(EMC): Renamed to ...
(EMCq): This. Use q_mode instead of v_mode.
(prefix_user_table): Updated to use EXd, EXq, EMCq, Ed and Eq
when appropriated.
Diffstat (limited to 'opcodes/i386-dis.c')
-rw-r--r-- | opcodes/i386-dis.c | 71 |
1 files changed, 36 insertions, 35 deletions
diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c index 291c079..48b701f 100644 --- a/opcodes/i386-dis.c +++ b/opcodes/i386-dis.c @@ -207,6 +207,7 @@ fetch_data (struct disassemble_info *info, bfd_byte *addr) #define Edqw { OP_E, dqw_mode } #define Edqb { OP_E, dqb_mode } #define Edqd { OP_E, dqd_mode } +#define Eq { OP_E, q_mode } #define indirEv { OP_indirE, stack_v_mode } #define indirEp { OP_indirE, f_mode } #define stackEv { OP_E, stack_v_mode } @@ -315,7 +316,7 @@ fetch_data (struct disassemble_info *info, bfd_byte *addr) #define EXx { OP_EX, x_mode } #define MS { OP_MS, v_mode } #define XS { OP_XS, v_mode } -#define EMC { OP_EMC, v_mode } +#define EMCq { OP_EMC, q_mode } #define MXC { OP_MXC, 0 } #define VM { OP_VMX, q_mode } #define OPSUF { OP_3DNowSuffix, 0 } @@ -1847,100 +1848,100 @@ static const struct dis386 prefix_user_table[][4] = { /* PREGRP1 */ { { "", { XM, EXx, OPSIMD } }, /* See OP_SIMD_SUFFIX. */ + { "", { XM, EXd, OPSIMD } }, { "", { XM, EXx, OPSIMD } }, - { "", { XM, EXx, OPSIMD } }, - { "", { XM, EXx, OPSIMD } }, + { "", { XM, EXq, OPSIMD } }, }, /* PREGRP2 */ { - { "cvtpi2ps", { XM, EMC } }, + { "cvtpi2ps", { XM, EMCq } }, { "cvtsi2ssY", { XM, Ev } }, - { "cvtpi2pd", { XM, EMC } }, + { "cvtpi2pd", { XM, EMCq } }, { "cvtsi2sdY", { XM, Ev } }, }, /* PREGRP3 */ { - { "cvtps2pi", { MXC, EXx } }, - { "cvtss2siY", { Gv, EXx } }, + { "cvtps2pi", { MXC, EXq } }, + { "cvtss2siY", { Gv, EXd } }, { "cvtpd2pi", { MXC, EXx } }, - { "cvtsd2siY", { Gv, EXx } }, + { "cvtsd2siY", { Gv, EXq } }, }, /* PREGRP4 */ { - { "cvttps2pi", { MXC, EXx } }, - { "cvttss2siY", { Gv, EXx } }, + { "cvttps2pi", { MXC, EXq } }, + { "cvttss2siY", { Gv, EXd } }, { "cvttpd2pi", { MXC, EXx } }, - { "cvttsd2siY", { Gv, EXx } }, + { "cvttsd2siY", { Gv, EXq } }, }, /* PREGRP5 */ { { "divps", { XM, EXx } }, - { "divss", { XM, EXx } }, + { "divss", { XM, EXd } }, { "divpd", { XM, EXx } }, - { "divsd", { XM, EXx } }, + { "divsd", { XM, EXq } }, }, /* PREGRP6 */ { { "maxps", { XM, EXx } }, - { "maxss", { XM, EXx } }, + { "maxss", { XM, EXd } }, { "maxpd", { XM, EXx } }, - { "maxsd", { XM, EXx } }, + { "maxsd", { XM, EXq } }, }, /* PREGRP7 */ { { "minps", { XM, EXx } }, - { "minss", { XM, EXx } }, + { "minss", { XM, EXd } }, { "minpd", { XM, EXx } }, - { "minsd", { XM, EXx } }, + { "minsd", { XM, EXq } }, }, /* PREGRP8 */ { { "movups", { XM, EXx } }, - { "movss", { XM, EXx } }, + { "movss", { XM, EXd } }, { "movupd", { XM, EXx } }, - { "movsd", { XM, EXx } }, + { "movsd", { XM, EXq } }, }, /* PREGRP9 */ { { "movups", { EXx, XM } }, - { "movss", { EXx, XM } }, + { "movss", { EXd, XM } }, { "movupd", { EXx, XM } }, - { "movsd", { EXx, XM } }, + { "movsd", { EXq, XM } }, }, /* PREGRP10 */ { { "mulps", { XM, EXx } }, - { "mulss", { XM, EXx } }, + { "mulss", { XM, EXd } }, { "mulpd", { XM, EXx } }, - { "mulsd", { XM, EXx } }, + { "mulsd", { XM, EXq } }, }, /* PREGRP11 */ { { "rcpps", { XM, EXx } }, - { "rcpss", { XM, EXx } }, + { "rcpss", { XM, EXd } }, { "(bad)", { XM, EXx } }, { "(bad)", { XM, EXx } }, }, /* PREGRP12 */ { { "rsqrtps",{ XM, EXx } }, - { "rsqrtss",{ XM, EXx } }, + { "rsqrtss",{ XM, EXd } }, { "(bad)", { XM, EXx } }, { "(bad)", { XM, EXx } }, }, /* PREGRP13 */ { { "sqrtps", { XM, EXx } }, - { "sqrtss", { XM, EXx } }, + { "sqrtss", { XM, EXd } }, { "sqrtpd", { XM, EXx } }, - { "sqrtsd", { XM, EXx } }, + { "sqrtsd", { XM, EXq } }, }, /* PREGRP14 */ { { "subps", { XM, EXx } }, - { "subss", { XM, EXx } }, + { "subss", { XM, EXd } }, { "subpd", { XM, EXx } }, - { "subsd", { XM, EXx } }, + { "subsd", { XM, EXq } }, }, /* PREGRP15 */ { @@ -1959,9 +1960,9 @@ static const struct dis386 prefix_user_table[][4] = { /* PREGRP17 */ { { "cvtps2pd", { XM, EXq } }, - { "cvtss2sd", { XM, EXx } }, + { "cvtss2sd", { XM, EXd } }, { "cvtpd2ps", { XM, EXx } }, - { "cvtsd2ss", { XM, EXx } }, + { "cvtsd2ss", { XM, EXq } }, }, /* PREGRP18 */ { @@ -2071,9 +2072,9 @@ static const struct dis386 prefix_user_table[][4] = { /* PREGRP33 */ { {"movntps", { Ev, XM } }, - {"movntss", { Ev, XM } }, + {"movntss", { Ed, XM } }, {"movntpd", { Ev, XM } }, - {"movntsd", { Ev, XM } }, + {"movntsd", { Eq, XM } }, }, /* PREGRP34 */ @@ -2376,7 +2377,7 @@ static const struct dis386 prefix_user_table[][4] = { { { "(bad)", { XX } }, { "(bad)", { XX } }, - { "roundss", { XM, EXx, Ib } }, + { "roundss", { XM, EXd, Ib } }, { "(bad)", { XX } }, }, @@ -2384,7 +2385,7 @@ static const struct dis386 prefix_user_table[][4] = { { { "(bad)", { XX } }, { "(bad)", { XX } }, - { "roundsd", { XM, EXx, Ib } }, + { "roundsd", { XM, EXq, Ib } }, { "(bad)", { XX } }, }, |