OSDN Git Service

gas/
authorH.J. Lu <hjl@lucon.org>
Fri, 23 Mar 2007 16:17:20 +0000 (16:17 +0000)
committerH.J. Lu <hjl@lucon.org>
Fri, 23 Mar 2007 16:17:20 +0000 (16:17 +0000)
2003-03-23  H.J. Lu  <hongjiu.lu@intel.com>

* config/tc-i386.c (md_begin): Allow '.' in mnemonic.

gas/testsuite/

2003-03-23  H.J. Lu  <hongjiu.lu@intel.com>

* gas/i386/rex.s: Add tests for rex.WRXB.
* gas/i386/rex.d: Updated.

* gas/i386/rex.d: Replace rex64XYZ with rex.WRXB.
* gas/i386/x86-64-io-intel.d : Likewise.
* gas/i386/x86-64-io-suffix.d: Likewise.
* gas/i386/x86-64-io.d: Likewise.
* gas/i386/x86-64-opcode.d: Likewise.

opcodes/

2003-03-23  H.J. Lu  <hongjiu.lu@intel.com>

* i386-dis.c (prefix_name): Replace rex64XYZ with rex.WRXB.

* i386-opc.c (i386_optab): Add rex.wrxb.

opcodes/ChangeLog
opcodes/i386-dis.c
opcodes/i386-opc.c

index 914743b..9b386ca 100644 (file)
@@ -1,3 +1,9 @@
+2003-03-23  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * i386-dis.c (prefix_name): Replace rex64XYZ with rex.WRXB.
+
+       * i386-opc.c (i386_optab): Add rex.wrxb.
+
 2003-03-21  H.J. Lu  <hongjiu.lu@intel.com>
 
        * i386-dis.c (REX_MODE64): Remove definition.
index 8ae51d8..55ecb23 100644 (file)
@@ -2734,41 +2734,46 @@ ckprefix (void)
 static const char *
 prefix_name (int pref, int sizeflag)
 {
+  static const char *rexes [16] =
+    {
+      "rex",           /* 0x40 */
+      "rex.B",         /* 0x41 */
+      "rex.X",         /* 0x42 */
+      "rex.XB",                /* 0x43 */
+      "rex.R",         /* 0x44 */
+      "rex.RB",                /* 0x45 */
+      "rex.RX",                /* 0x46 */
+      "rex.RXB",       /* 0x47 */
+      "rex.W",         /* 0x48 */
+      "rex.WB",                /* 0x49 */
+      "rex.WX",                /* 0x4a */
+      "rex.WXB",       /* 0x4b */
+      "rex.WR",                /* 0x4c */
+      "rex.WRB",       /* 0x4d */
+      "rex.WRX",       /* 0x4e */
+      "rex.WRXB",      /* 0x4f */
+    };
+
   switch (pref)
     {
     /* REX prefixes family.  */
     case 0x40:
-      return "rex";
     case 0x41:
-      return "rexZ";
     case 0x42:
-      return "rexY";
     case 0x43:
-      return "rexYZ";
     case 0x44:
-      return "rexX";
     case 0x45:
-      return "rexXZ";
     case 0x46:
-      return "rexXY";
     case 0x47:
-      return "rexXYZ";
     case 0x48:
-      return "rex64";
     case 0x49:
-      return "rex64Z";
     case 0x4a:
-      return "rex64Y";
     case 0x4b:
-      return "rex64YZ";
     case 0x4c:
-      return "rex64X";
     case 0x4d:
-      return "rex64XZ";
     case 0x4e:
-      return "rex64XY";
     case 0x4f:
-      return "rex64XYZ";
+      return rexes [pref - 0x40];
     case 0xf3:
       return "repz";
     case 0xf2:
index 373b1dd..be12dce 100644 (file)
@@ -846,6 +846,21 @@ const template i386_optab[] =
 {"rex64xz",0,  0x4d, X, Cpu64,  NoSuf|IsPrefix,        { 0, 0, 0} },
 {"rex64xy",0,  0x4e, X, Cpu64,  NoSuf|IsPrefix,        { 0, 0, 0} },
 {"rex64xyz",0, 0x4f, X, Cpu64,  NoSuf|IsPrefix,        { 0, 0, 0} },
+{"rex.b",  0,  0x41, X, Cpu64,  NoSuf|IsPrefix,        { 0, 0, 0} },
+{"rex.x",  0,  0x42, X, Cpu64,  NoSuf|IsPrefix,        { 0, 0, 0} },
+{"rex.xb", 0,  0x43, X, Cpu64,  NoSuf|IsPrefix,        { 0, 0, 0} },
+{"rex.r",  0,  0x44, X, Cpu64,  NoSuf|IsPrefix,        { 0, 0, 0} },
+{"rex.rb", 0,  0x45, X, Cpu64,  NoSuf|IsPrefix,        { 0, 0, 0} },
+{"rex.rx", 0,  0x46, X, Cpu64,  NoSuf|IsPrefix,        { 0, 0, 0} },
+{"rex.rxb",0,  0x47, X, Cpu64,  NoSuf|IsPrefix,        { 0, 0, 0} },
+{"rex.w",  0,  0x48, X, Cpu64,  NoSuf|IsPrefix,        { 0, 0, 0} },
+{"rex.wb", 0,  0x49, X, Cpu64,  NoSuf|IsPrefix,        { 0, 0, 0} },
+{"rex.wx", 0,  0x4a, X, Cpu64,  NoSuf|IsPrefix,        { 0, 0, 0} },
+{"rex.wxb",0,  0x4b, X, Cpu64,  NoSuf|IsPrefix,        { 0, 0, 0} },
+{"rex.wr", 0,  0x4c, X, Cpu64,  NoSuf|IsPrefix,        { 0, 0, 0} },
+{"rex.wrb",0,  0x4d, X, Cpu64,  NoSuf|IsPrefix,        { 0, 0, 0} },
+{"rex.wrx",0,  0x4e, X, Cpu64,  NoSuf|IsPrefix,        { 0, 0, 0} },
+{"rex.wrxb",0, 0x4f, X, Cpu64,  NoSuf|IsPrefix,        { 0, 0, 0} },
 
 /* 486 extensions.  */