aboutsummaryrefslogtreecommitdiff
path: root/opcodes/i386-dis.c
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2008-02-12 00:04:45 +0000
committerH.J. Lu <hjl.tools@gmail.com>2008-02-12 00:04:45 +0000
commit475a2301db23da20a59a59814f8b1a9eebce7855 (patch)
tree5a6d714e4f60447a7317b10e356ba4fece733b78 /opcodes/i386-dis.c
parent86ed6051f72836e8bac640770bb47b04571df758 (diff)
downloadfsf-binutils-gdb-475a2301db23da20a59a59814f8b1a9eebce7855.zip
fsf-binutils-gdb-475a2301db23da20a59a59814f8b1a9eebce7855.tar.gz
fsf-binutils-gdb-475a2301db23da20a59a59814f8b1a9eebce7855.tar.bz2
gas/testsuite/
2002-02-11 H.J. Lu <hongjiu.lu@intel.com> * gas/i386/i386.exp: Run xsave, xsave-intel, x86-64-xsave and x86-64-xsave-intel. * gas/i386/x86-64-xsave-intel.d: New file. * gas/i386/x86-64-xsave.d: Likewise. * gas/i386/x86-64-xsave.s: Likewise. * gas/i386/xsave-intel.d: Likewise. * gas/i386/xsave.d: Likewise. * gas/i386/xsave.s: Likewise. opcodes/ 2008-02-11 H.J. Lu <hongjiu.lu@intel.com> * i386-gen.c (cpu_flags): Add CpuXsave. * i386-opc.h (CpuXsave): New. (Cpu64): Updated. (i386_cpu_flags): Add cpuxsave. * i386-dis.c (MOD_0FAE_REG_4): New. (RM_0F01_REG_2): Likewise. (MOD_0FAE_REG_5): Updated. (RM_0F01_REG_3): Likewise. (reg_table): Use MOD_0FAE_REG_4. (mod_table): Use RM_0F01_REG_2. Add MOD_0FAE_REG_4. Updated for xrstor. (rm_table): Add RM_0F01_REG_2. * i386-opc.tbl: Add xsave, xrstor, xgetbv and xsetbv. * i386-init.h: Regenerated. * i386-tbl.h: Likewise.
Diffstat (limited to 'opcodes/i386-dis.c')
-rw-r--r--opcodes/i386-dis.c28
1 files changed, 23 insertions, 5 deletions
diff --git a/opcodes/i386-dis.c b/opcodes/i386-dis.c
index 4f14a32..149bafb 100644
--- a/opcodes/i386-dis.c
+++ b/opcodes/i386-dis.c
@@ -542,7 +542,8 @@ fetch_data (struct disassemble_info *info, bfd_byte *addr)
#define MOD_0FAE_REG_1 (MOD_0FAE_REG_0 + 1)
#define MOD_0FAE_REG_2 (MOD_0FAE_REG_1 + 1)
#define MOD_0FAE_REG_3 (MOD_0FAE_REG_2 + 1)
-#define MOD_0FAE_REG_5 (MOD_0FAE_REG_3 + 1)
+#define MOD_0FAE_REG_4 (MOD_0FAE_REG_3 + 1)
+#define MOD_0FAE_REG_5 (MOD_0FAE_REG_4 + 1)
#define MOD_0FAE_REG_6 (MOD_0FAE_REG_5 + 1)
#define MOD_0FAE_REG_7 (MOD_0FAE_REG_6 + 1)
#define MOD_0FB2 (MOD_0FAE_REG_7 + 1)
@@ -560,7 +561,8 @@ fetch_data (struct disassemble_info *info, bfd_byte *addr)
#define RM_0F01_REG_0 0
#define RM_0F01_REG_1 (RM_0F01_REG_0 + 1)
-#define RM_0F01_REG_3 (RM_0F01_REG_1 + 1)
+#define RM_0F01_REG_2 (RM_0F01_REG_1 + 1)
+#define RM_0F01_REG_3 (RM_0F01_REG_2 + 1)
#define RM_0F01_REG_7 (RM_0F01_REG_3 + 1)
#define RM_0FAE_REG_5 (RM_0F01_REG_7 + 1)
#define RM_0FAE_REG_6 (RM_0FAE_REG_5 + 1)
@@ -1764,7 +1766,7 @@ static const struct dis386 reg_table[][8] = {
{ MOD_TABLE (MOD_0FAE_REG_1) },
{ MOD_TABLE (MOD_0FAE_REG_2) },
{ MOD_TABLE (MOD_0FAE_REG_3) },
- { "(bad)", { XX } },
+ { MOD_TABLE (MOD_0FAE_REG_4) },
{ MOD_TABLE (MOD_0FAE_REG_5) },
{ MOD_TABLE (MOD_0FAE_REG_6) },
{ MOD_TABLE (MOD_0FAE_REG_7) },
@@ -4549,7 +4551,7 @@ static const struct dis386 mod_table[][2] = {
{
/* MOD_0F01_REG_2 */
{ X86_64_TABLE (X86_64_0F01_REG_2) },
- { "(bad)", { XX } },
+ { RM_TABLE (RM_0F01_REG_2) },
},
{
/* MOD_0F01_REG_3 */
@@ -4727,8 +4729,13 @@ static const struct dis386 mod_table[][2] = {
{ "(bad)", { XX } },
},
{
- /* MOD_0FAE_REG_5 */
+ /* MOD_0FAE_REG_4 */
+ { "xsave", { M } },
{ "(bad)", { XX } },
+ },
+ {
+ /* MOD_0FAE_REG_5 */
+ { "xrstor", { M } },
{ RM_TABLE (RM_0FAE_REG_5) },
},
{
@@ -4827,6 +4834,17 @@ static const struct dis386 rm_table[][8] = {
{ "(bad)", { XX } },
},
{
+ /* RM_0F01_REG_2 */
+ { "xgetbv", { Skip_MODRM } },
+ { "xsetbv", { Skip_MODRM } },
+ { "(bad)", { XX } },
+ { "(bad)", { XX } },
+ { "(bad)", { XX } },
+ { "(bad)", { XX } },
+ { "(bad)", { XX } },
+ { "(bad)", { XX } },
+ },
+ {
/* RM_0F01_REG_3 */
{ "vmrun", { Skip_MODRM } },
{ "vmmcall", { Skip_MODRM } },