[Midnightbsd-cvs] src [6498] trunk/contrib/binutils: bring in patches right before the gplv3 license change that we missed.

laffer1 at midnightbsd.org laffer1 at midnightbsd.org
Wed Dec 18 22:58:25 EST 2013


Revision: 6498
          http://svnweb.midnightbsd.org/src/?rev=6498
Author:   laffer1
Date:     2013-12-18 22:58:25 -0500 (Wed, 18 Dec 2013)
Log Message:
-----------
bring in patches right before the gplv3 license change that we missed.

Modified Paths:
--------------
    trunk/contrib/binutils/FREEBSD-Xlist
    trunk/contrib/binutils/FREEBSD-deletelist
    trunk/contrib/binutils/FREEBSD-upgrade
    trunk/contrib/binutils/bfd/dwarf2.c
    trunk/contrib/binutils/bfd/elf.c
    trunk/contrib/binutils/bfd/elflink.c
    trunk/contrib/binutils/bfd/freebsd.h
    trunk/contrib/binutils/binutils/arlex.l
    trunk/contrib/binutils/binutils/dwarf.c
    trunk/contrib/binutils/binutils/readelf.c
    trunk/contrib/binutils/gas/config/tc-i386.c
    trunk/contrib/binutils/include/elf/dwarf2.h
    trunk/contrib/binutils/ld/ldlex.l
    trunk/contrib/binutils/opcodes/i386-dis.c
    trunk/contrib/binutils/opcodes/i386-opc.h
    trunk/contrib/binutils/opcodes/i386-opc.tbl
    trunk/contrib/binutils/opcodes/i386-tbl.h

Modified: trunk/contrib/binutils/FREEBSD-Xlist
===================================================================
--- trunk/contrib/binutils/FREEBSD-Xlist	2013-12-15 06:44:13 UTC (rev 6497)
+++ trunk/contrib/binutils/FREEBSD-Xlist	2013-12-19 03:58:25 UTC (rev 6498)
@@ -1,4 +1,4 @@
-$FreeBSD$
+$FreeBSD: release/9.2.0/contrib/binutils/FREEBSD-Xlist 77357 2001-05-28 17:48:04Z obrien $
 .cvsignore
 mkdep
 *-hp*

Modified: trunk/contrib/binutils/FREEBSD-deletelist
===================================================================
--- trunk/contrib/binutils/FREEBSD-deletelist	2013-12-15 06:44:13 UTC (rev 6497)
+++ trunk/contrib/binutils/FREEBSD-deletelist	2013-12-19 03:58:25 UTC (rev 6498)
@@ -1,4 +1,4 @@
-$FreeBSD$
+$FreeBSD: release/9.2.0/contrib/binutils/FREEBSD-deletelist 91056 2002-02-22 05:11:49Z obrien $
 CVS
 testsuite
 .cvsignore

Modified: trunk/contrib/binutils/FREEBSD-upgrade
===================================================================
--- trunk/contrib/binutils/FREEBSD-upgrade	2013-12-15 06:44:13 UTC (rev 6497)
+++ trunk/contrib/binutils/FREEBSD-upgrade	2013-12-19 03:58:25 UTC (rev 6498)
@@ -1,4 +1,4 @@
-$FreeBSD$
+$FreeBSD: release/9.2.0/contrib/binutils/FREEBSD-upgrade 92216 2002-03-13 07:16:00Z obrien $
 
 To get a copy of the Binutils source from the Sourceware CVS repository
 this command line was used:

Modified: trunk/contrib/binutils/bfd/dwarf2.c
===================================================================
--- trunk/contrib/binutils/bfd/dwarf2.c	2013-12-15 06:44:13 UTC (rev 6497)
+++ trunk/contrib/binutils/bfd/dwarf2.c	2013-12-19 03:58:25 UTC (rev 6498)
@@ -633,6 +633,9 @@
       attr->u.val = read_1_byte (abfd, info_ptr);
       info_ptr += 1;
       break;
+    case DW_FORM_flag_present:
+      attr->u.val = 1;
+      break;
     case DW_FORM_sdata:
       attr->u.sval = read_signed_leb128 (abfd, info_ptr, &bytes_read);
       info_ptr += bytes_read;

Modified: trunk/contrib/binutils/bfd/elf.c
===================================================================
--- trunk/contrib/binutils/bfd/elf.c	2013-12-15 06:44:13 UTC (rev 6497)
+++ trunk/contrib/binutils/bfd/elf.c	2013-12-19 03:58:25 UTC (rev 6498)
@@ -20,7 +20,7 @@
    Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.  */
 
 
-/* $FreeBSD$ */
+/* $FreeBSD: release/9.2.0/contrib/binutils/bfd/elf.c 218822 2011-02-18 20:54:12Z dim $ */
 
 
 /*

Modified: trunk/contrib/binutils/bfd/elflink.c
===================================================================
--- trunk/contrib/binutils/bfd/elflink.c	2013-12-15 06:44:13 UTC (rev 6497)
+++ trunk/contrib/binutils/bfd/elflink.c	2013-12-19 03:58:25 UTC (rev 6498)
@@ -10584,6 +10584,7 @@
 	{
 	  /* Keep debug and special sections.  */
 	  if ((o->flags & (SEC_DEBUGGING | SEC_LINKER_CREATED)) != 0
+	      || elf_section_data (o)->this_hdr.sh_type == SHT_NOTE
 	      || (o->flags & (SEC_ALLOC | SEC_LOAD | SEC_RELOC)) == 0)
 	    o->gc_mark = 1;
 

Modified: trunk/contrib/binutils/bfd/freebsd.h
===================================================================
--- trunk/contrib/binutils/bfd/freebsd.h	2013-12-15 06:44:13 UTC (rev 6497)
+++ trunk/contrib/binutils/bfd/freebsd.h	2013-12-19 03:58:25 UTC (rev 6498)
@@ -19,7 +19,7 @@
    Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301,
    USA.  */
 
-/* $FreeBSD$ */
+/* $FreeBSD: release/9.2.0/contrib/binutils/bfd/freebsd.h 218822 2011-02-18 20:54:12Z dim $ */
 
 /* FreeBSD QMAGIC files have the header in the text. */
 #define	N_HEADER_IN_TEXT(x)	1

Modified: trunk/contrib/binutils/binutils/arlex.l
===================================================================
--- trunk/contrib/binutils/binutils/arlex.l	2013-12-15 06:44:13 UTC (rev 6497)
+++ trunk/contrib/binutils/binutils/arlex.l	2013-12-19 03:58:25 UTC (rev 6498)
@@ -28,13 +28,13 @@
 #include "libiberty.h"
 #include "arparse.h"
 
-#define YY_NO_UNPUT
-
 extern int yylex (void);
 
 int linenumber;
 %}
 
+%option nounput
+
 %a 10000
 %o 25000
 

Modified: trunk/contrib/binutils/binutils/dwarf.c
===================================================================
--- trunk/contrib/binutils/binutils/dwarf.c	2013-12-15 06:44:13 UTC (rev 6497)
+++ trunk/contrib/binutils/binutils/dwarf.c	2013-12-19 03:58:25 UTC (rev 6498)
@@ -557,6 +557,7 @@
     case DW_FORM_ref8:		return "DW_FORM_ref8";
     case DW_FORM_ref_udata:	return "DW_FORM_ref_udata";
     case DW_FORM_indirect:	return "DW_FORM_indirect";
+    case DW_FORM_flag_present:	return "DW_FORM_flag_present";
     default:
       {
 	static char buffer[100];
@@ -969,6 +970,10 @@
       data += offset_size;
       break;
 
+    case DW_FORM_flag_present:
+      uvalue = 1;
+      break;
+
     case DW_FORM_ref1:
     case DW_FORM_flag:
     case DW_FORM_data1:
@@ -1030,6 +1035,7 @@
 	printf (" %#lx", uvalue);
       break;
 
+    case DW_FORM_flag_present:
     case DW_FORM_flag:
     case DW_FORM_data1:
     case DW_FORM_data2:

Modified: trunk/contrib/binutils/binutils/readelf.c
===================================================================
--- trunk/contrib/binutils/binutils/readelf.c	2013-12-15 06:44:13 UTC (rev 6497)
+++ trunk/contrib/binutils/binutils/readelf.c	2013-12-19 03:58:25 UTC (rev 6498)
@@ -174,7 +174,7 @@
 static unsigned long dynamic_syminfo_offset;
 static unsigned int dynamic_syminfo_nent;
 static char program_interpreter[PATH_MAX];
-static bfd_vma dynamic_info[DT_JMPREL + 1];
+static bfd_vma dynamic_info[DT_ENCODING];
 static bfd_vma dynamic_info_DT_GNU_HASH;
 static bfd_vma version_info[16];
 static Elf_Internal_Ehdr elf_header;

Modified: trunk/contrib/binutils/gas/config/tc-i386.c
===================================================================
--- trunk/contrib/binutils/gas/config/tc-i386.c	2013-12-15 06:44:13 UTC (rev 6497)
+++ trunk/contrib/binutils/gas/config/tc-i386.c	2013-12-19 03:58:25 UTC (rev 6498)
@@ -517,7 +517,9 @@
   {".sse4a", PROCESSOR_UNKNOWN,
    CpuMMX|CpuMMX2|CpuSSE|CpuSSE2|CpuSSE3|CpuSSE4a},
   {".abm", PROCESSOR_UNKNOWN,
-   CpuABM}
+   CpuABM},
+  {".xsave", PROCESSOR_UNKNOWN,
+   CpuXSAVE}
 };
 
 const pseudo_typeS md_pseudo_table[] =
@@ -3988,6 +3990,16 @@
 	      goto check_prefix;
 	    }
 	}
+      else if (i.tm.base_opcode == 0x660f3880 || i.tm.base_opcode == 0x660f3881)
+	{
+	  /* invept and invvpid are 3 byte instructions with a
+	     mandatory prefix. */
+	  if (i.tm.base_opcode & 0xff000000)
+	    {
+	      prefix = (i.tm.base_opcode >> 24) & 0xff;
+	      add_prefix (prefix);
+	    }
+	}
       else if ((i.tm.base_opcode & 0xff0000) != 0)
 	{
 	  prefix = (i.tm.base_opcode >> 16) & 0xff;
@@ -4027,6 +4039,12 @@
 	      p = frag_more (3);
 	      *p++ = (i.tm.base_opcode >> 16) & 0xff;
 	    }
+	  else if (i.tm.base_opcode == 0x660f3880 ||
+		   i.tm.base_opcode == 0x660f3881)
+	    {
+	      p = frag_more (3);
+	      *p++ = (i.tm.base_opcode >> 16) & 0xff;
+	    }
 	  else
 	    p = frag_more (2);
 

Modified: trunk/contrib/binutils/include/elf/dwarf2.h
===================================================================
--- trunk/contrib/binutils/include/elf/dwarf2.h	2013-12-15 06:44:13 UTC (rev 6497)
+++ trunk/contrib/binutils/include/elf/dwarf2.h	2013-12-19 03:58:25 UTC (rev 6498)
@@ -238,7 +238,8 @@
     DW_FORM_ref4 = 0x13,
     DW_FORM_ref8 = 0x14,
     DW_FORM_ref_udata = 0x15,
-    DW_FORM_indirect = 0x16
+    DW_FORM_indirect = 0x16,
+    DW_FORM_flag_present = 0x19
   };
 
 /* Attribute names and codes.  */

Modified: trunk/contrib/binutils/ld/ldlex.l
===================================================================
--- trunk/contrib/binutils/ld/ldlex.l	2013-12-15 06:44:13 UTC (rev 6497)
+++ trunk/contrib/binutils/ld/ldlex.l	2013-12-19 03:58:25 UTC (rev 6498)
@@ -63,8 +63,6 @@
 #undef YY_INPUT
 #define YY_INPUT(buf,result,max_size) yy_input (buf, &result, max_size)
 
-#define YY_NO_UNPUT
-
 #define MAX_INCLUDE_DEPTH 10
 static YY_BUFFER_STATE include_stack[MAX_INCLUDE_DEPTH];
 static const char *file_name_stack[MAX_INCLUDE_DEPTH];
@@ -72,7 +70,7 @@
 static unsigned int include_stack_ptr = 0;
 static int vers_node_nesting = 0;
 
-static void yy_input (char *, int *, int);
+static void yy_input (char *, yy_size_t *, yy_size_t);
 static void comment (void);
 static void lex_warn_invalid (char *where, char *what);
 
@@ -94,6 +92,8 @@
 #endif
 %}
 
+%option nounput
+
 %a 4000
 %o 5000
 
@@ -612,7 +612,7 @@
    either the number of characters read, or 0 to indicate EOF.  */
 
 static void
-yy_input (char *buf, int *result, int max_size)
+yy_input (char *buf, yy_size_t *result, yy_size_t max_size)
 {
   *result = 0;
   if (YY_CURRENT_BUFFER->yy_input_file)

Modified: trunk/contrib/binutils/opcodes/i386-dis.c
===================================================================
--- trunk/contrib/binutils/opcodes/i386-dis.c	2013-12-15 06:44:13 UTC (rev 6497)
+++ trunk/contrib/binutils/opcodes/i386-dis.c	2013-12-19 03:58:25 UTC (rev 6498)
@@ -93,6 +93,7 @@
 static void OP_SIMD_Suffix (int, int);
 static void SIMD_Fixup (int, int);
 static void PNI_Fixup (int, int);
+static void XCR_Fixup (int, int);
 static void SVME_Fixup (int, int);
 static void INVLPG_Fixup (int, int);
 static void BadOp (void);
@@ -212,6 +213,7 @@
 #define Ew { OP_E, w_mode }
 #define M { OP_M, 0 }		/* lea, lgdt, etc. */
 #define Ma { OP_M, v_mode }
+#define Mo { OP_M, o_mode }
 #define Mp { OP_M, f_mode }		/* 32 or 48 bit memory operand for LDS, LES etc */
 #define Mq { OP_M, q_mode }
 #define Gb { OP_G, b_mode }
@@ -539,6 +541,8 @@
 #define PREGRP95  NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 95 } }
 #define PREGRP96  NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 96 } }
 #define PREGRP97  NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 97 } }
+#define PREGRP98  NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 98 } }
+#define PREGRP99  NULL, { { NULL, USE_PREFIX_USER_TABLE }, { NULL, 99 } }
 
 
 #define X86_64_0  NULL, { { NULL, X86_64_SPECIAL }, { NULL, 0 } }
@@ -1693,7 +1697,7 @@
   {
     { "sgdt{Q|IQ||}", { { VMX_Fixup, 0 } } },
     { "sidt{Q|IQ||}", { { PNI_Fixup, 0 } } },
-    { "lgdt{Q|Q||}",	 { M } },
+    { "lgdt{Q|Q||}",	 { { XCR_Fixup, 0 }  } },
     { "lidt{Q|Q||}",	 { { SVME_Fixup, 0 } } },
     { "smswD",	{ Sv } },
     { "(bad)",	{ XX } },
@@ -1783,9 +1787,9 @@
     { "fxrstor",	{ Ev } },
     { "ldmxcsr",	{ Ev } },
     { "stmxcsr",	{ Ev } },
-    { "(bad)",		{ XX } },
-    { "lfence",		{ { OP_0fae, 0 } } },
-    { "mfence",		{ { OP_0fae, 0 } } },
+    { "xsave",		{ Ev } },
+    { "xrstor",		{ { OP_0fae, v_mode } } },
+    { "xsaveopt",	{ { OP_0fae, v_mode } } },
     { "clflush",	{ { OP_0fae, 0 } } },
   },
   /* GRP16 */
@@ -2585,6 +2589,22 @@
     { "punpckldq",{ MX, EMq } },
     { "(bad)",	{ XX } },
   },
+
+  /* PREGRP98 */
+  {
+    { "(bad)",	{ XX } },
+    { "(bad)",	{ XX } },
+    { "invept",	{ Gm, Mo } },
+    { "(bad)",	{ XX } },
+  },
+
+  /* PREGRP99 */
+  {
+    { "(bad)",	{ XX } },
+    { "(bad)",	{ XX } },
+    { "invvpid",{ Gm, Mo } },
+    { "(bad)",	{ XX } },
+  },
 };
 
 static const struct dis386 x86_64_table[][2] = {
@@ -2754,6 +2774,8 @@
     { "(bad)", { XX } },
     { "(bad)", { XX } },
     /* 80 */
+    { PREGRP98 },
+    { PREGRP99 },
     { "(bad)", { XX } },
     { "(bad)", { XX } },
     { "(bad)", { XX } },
@@ -2760,8 +2782,6 @@
     { "(bad)", { XX } },
     { "(bad)", { XX } },
     { "(bad)", { XX } },
-    { "(bad)", { XX } },
-    { "(bad)", { XX } },
     /* 88 */
     { "(bad)", { XX } },
     { "(bad)", { XX } },
@@ -5883,7 +5903,7 @@
 OP_M (int bytemode, int sizeflag)
 {
   if (modrm.mod == 3)
-    /* bad bound,lea,lds,les,lfs,lgs,lss,cmpxchg8b,vmptrst modrm */
+    /* bad bound,lea,lds,les,lfs,lgs,lss,cmpxchg8b,vmptrst,invept,invvpid modrm */
     BadOp ();
   else
     OP_E (bytemode, sizeflag);
@@ -5905,6 +5925,10 @@
     {
       if (modrm.reg == 7)
 	strcpy (obuf + strlen (obuf) - sizeof ("clflush") + 1, "sfence");
+      else if (modrm.reg == 6)
+	strcpy (obuf + strlen (obuf) - sizeof ("xsaveopt") + 1, "mfence");
+      else if (modrm.reg == 5)
+	strcpy (obuf + strlen (obuf) - sizeof ("xrstor") + 1, "lfence");
 
       if (modrm.reg < 5 || modrm.rm != 0)
 	{
@@ -5911,12 +5935,8 @@
 	  BadOp ();	/* bad sfence, mfence, or lfence */
 	  return;
 	}
+      bytemode = 0;
     }
-  else if (modrm.reg != 7)
-    {
-      BadOp ();		/* bad clflush */
-      return;
-    }
 
   OP_E (bytemode, sizeflag);
 }
@@ -6170,6 +6190,43 @@
 }
 
 static void
+XCR_Fixup (int extrachar ATTRIBUTE_UNUSED, int sizeflag)
+{
+  if (modrm.mod == 3 && modrm.reg == 2 && modrm.rm <= 1)
+    {
+      /* Override "lgdt".  */
+      size_t olen = strlen (obuf);
+      char *p = obuf + olen - 4;
+
+      /* We might have a suffix when disassembling with -Msuffix.  */
+      if (*p == 'i')
+	--p;
+
+      /* Remove "addr16/addr32" if we aren't in Intel mode.  */
+      if (!intel_syntax
+	  && (prefixes & PREFIX_ADDR)
+	  && olen >= (4 + 7)
+	  && *(p - 1) == ' '
+	  && CONST_STRNEQ (p - 7, "addr")
+	  && (CONST_STRNEQ (p - 3, "16")
+	      || CONST_STRNEQ (p - 3, "32")))
+	p -= 7;
+
+      if (modrm.rm)
+	{
+	  strcpy (p, "xsetbv");
+	}
+      else
+	{
+	  strcpy (p, "xgetbv");
+	}
+
+      codep++;
+    }
+  else
+    OP_M (0, sizeflag);
+}
+static void
 SVME_Fixup (int bytemode, int sizeflag)
 {
   const char *alt;

Modified: trunk/contrib/binutils/opcodes/i386-opc.h
===================================================================
--- trunk/contrib/binutils/opcodes/i386-opc.h	2013-12-15 06:44:13 UTC (rev 6497)
+++ trunk/contrib/binutils/opcodes/i386-opc.h	2013-12-19 03:58:25 UTC (rev 6498)
@@ -71,6 +71,7 @@
 #define CpuABM       0x200000   /* ABM New Instructions required */
 #define CpuSSE4_1    0x400000	/* SSE4.1 Instructions required */
 #define CpuSSE4_2    0x800000	/* SSE4.2 Instructions required */
+#define CpuXSAVE    0x1000000	/* XSAVE Instructions required */
 
 /* SSE4.1/4.2 Instructions required */
 #define CpuSSE4	     (CpuSSE4_1|CpuSSE4_2)
@@ -83,7 +84,7 @@
 #define CpuUnknownFlags (Cpu186|Cpu286|Cpu386|Cpu486|Cpu586|Cpu686 \
 	|CpuP4|CpuSledgehammer|CpuMMX|CpuMMX2|CpuSSE|CpuSSE2|CpuSSE3|CpuVMX \
 	|Cpu3dnow|Cpu3dnowA|CpuK6|CpuPadLock|CpuSVME|CpuSSSE3|CpuSSE4_1 \
-	|CpuSSE4_2|CpuABM|CpuSSE4a)
+	|CpuSSE4_2|CpuABM|CpuSSE4a|CpuXSAVE)
 
   /* the bits in opcode_modifier are used to generate the final opcode from
      the base_opcode.  These bits also are used to detect alternate forms of

Modified: trunk/contrib/binutils/opcodes/i386-opc.tbl
===================================================================
--- trunk/contrib/binutils/opcodes/i386-opc.tbl	2013-12-15 06:44:13 UTC (rev 6497)
+++ trunk/contrib/binutils/opcodes/i386-opc.tbl	2013-12-19 03:58:25 UTC (rev 6498)
@@ -1289,6 +1289,10 @@
 mwait, 2, 0xf01, 0xc9, CpuSSE3|Cpu64, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt|NoRex64, { Reg64, Reg64 }
 
 // VMX instructions.
+invept, 2, 0x660f3880, None, CpuVMX|CpuNo64, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_xSuf|NoRex64, { BaseIndex|Disp8|Disp16|Disp32|Disp32S, Reg32 }
+invept, 2, 0x660f3880, None, CpuVMX|Cpu64, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_xSuf|NoRex64, { BaseIndex|Disp8|Disp16|Disp32|Disp32S, Reg64 }
+invvpid, 2, 0x660f3881, None, CpuVMX|CpuNo64, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_xSuf|NoRex64, { BaseIndex|Disp8|Disp16|Disp32|Disp32S, Reg32 }
+invvpid, 2, 0x660f3881, None, CpuVMX|Cpu64, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_xSuf|NoRex64, { BaseIndex|Disp8|Disp16|Disp32|Disp32S, Reg64 }
 vmcall, 0, 0xf01, 0xc1, CpuVMX, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt, { 0 }
 vmclear, 1, 0x660fc7, 0x6, CpuVMX, Modrm|IgnoreSize|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|NoRex64, { BaseIndex|Disp8|Disp16|Disp32|Disp32S }
 vmlaunch, 0, 0xf01, 0xc2, CpuVMX, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt, { 0 }
@@ -1487,3 +1491,10 @@
 xcryptofb, 0, 0xf30fa7, 0xe8, Cpu686|CpuPadLock, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|IsString|ImmExt, { 0 }
 // Alias for xstore-rng.
 xstore, 0, 0xfa7, 0xc0, Cpu686|CpuPadLock, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|IsString|ImmExt, { 0 }
+
+// XSAVE/XRSTOR related instructions
+xgetbv, 0, 0xf01, 0xd0, CpuXSAVE, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt, { 0 }
+xsetbv, 0, 0xf01, 0xd1, CpuXSAVE, No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt, { 0 }
+xsave, 1, 0xfae, 0x4, CpuXSAVE, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_xSuf, { BaseIndex|Disp8|Disp16|Disp32|Disp32S }
+xsaveopt, 1, 0xfae, 0x6, CpuXSAVE, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_xSuf, { BaseIndex|Disp8|Disp16|Disp32|Disp32S }
+xrstor, 1, 0xfae, 0x5, CpuXSAVE, Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_xSuf, { BaseIndex|Disp8|Disp16|Disp32|Disp32S }

Modified: trunk/contrib/binutils/opcodes/i386-tbl.h
===================================================================
--- trunk/contrib/binutils/opcodes/i386-tbl.h	2013-12-15 06:44:13 UTC (rev 6497)
+++ trunk/contrib/binutils/opcodes/i386-tbl.h	2013-12-19 03:58:25 UTC (rev 6498)
@@ -3625,6 +3625,22 @@
     No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt|NoRex64,
     { Reg64,
       Reg64 } },
+  { "invept", 2, 0x660f3880, None, CpuVMX|CpuNo64,
+    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_xSuf|NoRex64,
+    { BaseIndex|Disp8|Disp16|Disp32|Disp32S,
+      Reg32 } },
+  { "invept", 2, 0x660f3880, None, CpuVMX|Cpu64,
+    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_xSuf|NoRex64,
+    { BaseIndex|Disp8|Disp16|Disp32|Disp32S,
+      Reg64 } },
+  { "invvpid", 2, 0x660f3881, None, CpuVMX|CpuNo64,
+    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_xSuf|NoRex64,
+    { BaseIndex|Disp8|Disp16|Disp32|Disp32S,
+      Reg32 } },
+  { "invvpid", 2, 0x660f3881, None, CpuVMX|Cpu64,
+    Modrm|IgnoreSize|No_bSuf|No_wSuf|No_sSuf|No_qSuf|No_xSuf|NoRex64,
+    { BaseIndex|Disp8|Disp16|Disp32|Disp32S,
+      Reg64 } },
   { "vmcall", 0, 0xf01, 0xc1, CpuVMX,
     No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt,
     { 0 } },
@@ -4288,6 +4304,21 @@
   { "xstore", 0, 0xfa7, 0xc0, Cpu686|CpuPadLock,
     No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|IsString|ImmExt,
     { 0 } },
+  { "xgetbv", 0, 0xf01, 0xd0, CpuXSAVE,
+    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt,
+    { 0 } },
+  { "xsetbv", 0, 0xf01, 0xd1, CpuXSAVE,
+    No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_xSuf|ImmExt,
+    { 0 } },
+  { "xsave", 1, 0xfae, 0x4, CpuXSAVE,
+    Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_xSuf,
+    { BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
+  { "xsaveopt", 1, 0xfae, 0x6, CpuXSAVE,
+    Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_xSuf,
+    { BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
+  { "xrstor", 1, 0xfae, 0x5, CpuXSAVE,
+    Modrm|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_xSuf,
+    { BaseIndex|Disp8|Disp16|Disp32|Disp32S } },
   { NULL, 0, 0, 0, 0, 0, { 0 } }
 };
 



More information about the Midnightbsd-cvs mailing list