gas/
authorH.J. Lu <hjl.tools@gmail.com>
Fri, 23 Mar 2007 16:17:21 +0000 (16:17 +0000)
committerH.J. Lu <hjl.tools@gmail.com>
Fri, 23 Mar 2007 16:17:21 +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.

12 files changed:
gas/ChangeLog
gas/config/tc-i386.c
gas/testsuite/ChangeLog
gas/testsuite/gas/i386/rex.d
gas/testsuite/gas/i386/rex.s
gas/testsuite/gas/i386/x86-64-io-intel.d
gas/testsuite/gas/i386/x86-64-io-suffix.d
gas/testsuite/gas/i386/x86-64-io.d
gas/testsuite/gas/i386/x86-64-opcode.d
opcodes/ChangeLog
opcodes/i386-dis.c
opcodes/i386-opc.c

index 3d1f3371c564d091a38b2f935c7b81dcda36a150..030c1456bdac36813438e602da6506307c065d04 100644 (file)
@@ -1,3 +1,7 @@
+2003-03-23  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * config/tc-i386.c (md_begin): Allow '.' in mnemonic.
+
 2007-03-23  Mark Shinwell  <shinwell@codesourcery.com>
 
        * config/tc-arm.c (md_apply_fix): Turn CBZ instructions that
index eba64002adfeac1fa96edccd0b51ee1d975f3ad5..f0b65b22544a8ad25a146acbe60c9330f1778590 100644 (file)
@@ -1294,6 +1294,7 @@ md_begin ()
 #endif
     digit_chars['-'] = '-';
     mnemonic_chars['-'] = '-';
+    mnemonic_chars['.'] = '.';
     identifier_chars['_'] = '_';
     identifier_chars['.'] = '.';
 
index 48425b146872147bf1840a4b2cf4c6aea5019e3c..b4108713befe6763b4e9f51ae44e744ab4fb768a 100644 (file)
@@ -1,3 +1,14 @@
+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.
+
 2003-03-21  H.J. Lu  <hongjiu.lu@intel.com>
 
        PR binutils/4218
index 285e1dc6c7ab0ef68a4aaefdd7582b7e2bf86fef..9023b49ace4bd9938c7155165358d2d8358f5dc8 100644 (file)
@@ -7,11 +7,27 @@ Disassembly of section .text:
 
 0+ <_start>:
 [       ]*[0-9a-f]+:[   ]+40 0f ae 00[  ]+rex fxsavel?[         ]+\(%rax\)
-[       ]*[0-9a-f]+:[   ]+48 0f ae 00[  ]+(rex64 )?fxsaveq?[    ]+\(%rax\)
+[       ]*[0-9a-f]+:[   ]+48 0f ae 00[  ]+(rex.W )?fxsaveq?[    ]+\(%rax\)
 [       ]*[0-9a-f]+:[   ]+41 0f ae 00[  ]+fxsavel?[     ]+\(%r8\)
-[       ]*[0-9a-f]+:[   ]+49 0f ae 00[  ]+(rex64Z? )?fxsaveq?[  ]+\(%r8\)
+[       ]*[0-9a-f]+:[   ]+49 0f ae 00[  ]+(rex.WB? )?fxsaveq?[  ]+\(%r8\)
 [       ]*[0-9a-f]+:[   ]+42 0f ae 04 05 00 00 00 00[   ]+fxsavel?[     ]+(0x0)?\(,%r8(,1)?\)
-[       ]*[0-9a-f]+:[   ]+4a 0f ae 04 05 00 00 00 00[   ]+(rex64Y? )?fxsaveq?[  ]+(0x0)?\(,%r8(,1)?\)
+[       ]*[0-9a-f]+:[   ]+4a 0f ae 04 05 00 00 00 00[   ]+(rex.WX? )?fxsaveq?[  ]+(0x0)?\(,%r8(,1)?\)
 [       ]*[0-9a-f]+:[   ]+43 0f ae 04 00[       ]+fxsavel?[     ]+\(%r8,%r8(,1)?\)
-[       ]*[0-9a-f]+:[   ]+4b 0f ae 04 00[       ]+(rex64(YZ)? )?fxsaveq?[       ]+\(%r8,%r8(,1)?\)
+[       ]*[0-9a-f]+:[   ]+4b 0f ae 04 00[       ]+(rex.W(XB)? )?fxsaveq?[       ]+\(%r8,%r8(,1)?\)
+[       ]*[0-9a-f]+:[   ]+40[   ]+rex
+[       ]*[0-9a-f]+:[   ]+41[   ]+rex.B
+[       ]*[0-9a-f]+:[   ]+42[   ]+rex.X
+[       ]*[0-9a-f]+:[   ]+43[   ]+rex.XB
+[       ]*[0-9a-f]+:[   ]+44[   ]+rex.R
+[       ]*[0-9a-f]+:[   ]+45[   ]+rex.RB
+[       ]*[0-9a-f]+:[   ]+46[   ]+rex.RX
+[       ]*[0-9a-f]+:[   ]+47[   ]+rex.RXB
+[       ]*[0-9a-f]+:[   ]+48[   ]+rex.W
+[       ]*[0-9a-f]+:[   ]+49[   ]+rex.WB
+[       ]*[0-9a-f]+:[   ]+4a[   ]+rex.WX
+[       ]*[0-9a-f]+:[   ]+4b[   ]+rex.WXB
+[       ]*[0-9a-f]+:[   ]+4c[   ]+rex.WR
+[       ]*[0-9a-f]+:[   ]+4d[   ]+rex.WRB
+[       ]*[0-9a-f]+:[   ]+4e[   ]+rex.WRX
+[       ]*[0-9a-f]+:[   ]+4f[   ]+rex.WRXB
 #pass
index a142312a2c6bea4b5242bf233253ac60540b32ef..6f1e38a47038cd13ff50147b09bbf8bf647090db 100644 (file)
@@ -9,3 +9,21 @@ _start:
        rex64/fxsave (,%r8)
        rex/fxsave (%r8,%r8)
        rex64/fxsave (%r8,%r8)
+
+# Test prefixes family.
+       rex
+       rex.B
+       rex.X
+       rex.XB
+       rex.R
+       rex.RB
+       rex.RX
+       rex.RXB
+       rex.W
+       rex.WB
+       rex.WX
+       rex.WXB
+       rex.WR
+       rex.WRB
+       rex.WRX
+       rex.WRXB
index a8787a00b5c27eaeb07a41d56156f6e46cdb989c..c6df6e68c3f01c2c1fda59df3aabde66b129d0de 100644 (file)
@@ -1,28 +1,28 @@
 #source: x86-64-io.s
 #objdump: -dwMintel
-#name: x86-64 rex64 in/out (Intel disassembly)
+#name: x86-64 rex.W in/out (Intel disassembly)
 
 .*: +file format .*
 
 Disassembly of section .text:
 
 0+000 <_in>:
-   0:  48 ed                   rex64 in     eax,dx
+   0:  48 ed                   rex.W in     eax,dx
    2:  66                      data16
-   3:  48 ed                   rex64 in     eax,dx
+   3:  48 ed                   rex.W in     eax,dx
 
 0+005 <_out>:
-   5:  48 ef                   rex64 out    dx,eax
+   5:  48 ef                   rex.W out    dx,eax
    7:  66                      data16
-   8:  48 ef                   rex64 out    dx,eax
+   8:  48 ef                   rex.W out    dx,eax
 
 0+00a <_ins>:
-   a:  48 6d                   rex64 ins    DWORD PTR es:\[rdi\],dx
+   a:  48 6d                   rex.W ins    DWORD PTR es:\[rdi\],dx
    c:  66                      data16
-   d:  48 6d                   rex64 ins    DWORD PTR es:\[rdi\],dx
+   d:  48 6d                   rex.W ins    DWORD PTR es:\[rdi\],dx
 
 0+00f <_outs>:
-   f:  48 6f                   rex64 outs   dx,DWORD PTR ds:\[rsi\]
+   f:  48 6f                   rex.W outs   dx,DWORD PTR ds:\[rsi\]
   11:  66                      data16
-  12:  48 6f                   rex64 outs   dx,DWORD PTR ds:\[rsi\]
+  12:  48 6f                   rex.W outs   dx,DWORD PTR ds:\[rsi\]
 #pass
index f83b1622305be0d07ab660c7c8655b0354eefdb0..a0ee9d0289c708c66bb69654ff1e31ced0d03cff 100644 (file)
@@ -1,28 +1,28 @@
 #source: x86-64-io.s
 #objdump: -dwMsuffix
-#name: x86-64 rex64 in/out w/ suffix
+#name: x86-64 rex.W in/out w/ suffix
 
 .*: +file format .*
 
 Disassembly of section .text:
 
 0+000 <_in>:
-   0:  48 ed                   rex64 inl    \(%dx\),%eax
+   0:  48 ed                   rex.W inl    \(%dx\),%eax
    2:  66                      data16
-   3:  48 ed                   rex64 inl    \(%dx\),%eax
+   3:  48 ed                   rex.W inl    \(%dx\),%eax
 
 0+005 <_out>:
-   5:  48 ef                   rex64 outl   %eax,\(%dx\)
+   5:  48 ef                   rex.W outl   %eax,\(%dx\)
    7:  66                      data16
-   8:  48 ef                   rex64 outl   %eax,\(%dx\)
+   8:  48 ef                   rex.W outl   %eax,\(%dx\)
 
 0+00a <_ins>:
-   a:  48 6d                   rex64 insl   \(%dx\),%es:\(%rdi\)
+   a:  48 6d                   rex.W insl   \(%dx\),%es:\(%rdi\)
    c:  66                      data16
-   d:  48 6d                   rex64 insl   \(%dx\),%es:\(%rdi\)
+   d:  48 6d                   rex.W insl   \(%dx\),%es:\(%rdi\)
 
 0+00f <_outs>:
-   f:  48 6f                   rex64 outsl  %ds:\(%rsi\),\(%dx\)
+   f:  48 6f                   rex.W outsl  %ds:\(%rsi\),\(%dx\)
   11:  66                      data16
-  12:  48 6f                   rex64 outsl  %ds:\(%rsi\),\(%dx\)
+  12:  48 6f                   rex.W outsl  %ds:\(%rsi\),\(%dx\)
 #pass
index 7158b75388e9b96c44edd1c267444ce8a7d2cedb..3e3b7e7bad24119718c7c0ce998835e1c447acd0 100644 (file)
@@ -1,27 +1,27 @@
 #objdump: -dw
-#name: x86-64 rex64 in/out
+#name: x86-64 rex.W in/out
 
 .*: +file format .*
 
 Disassembly of section .text:
 
 0+000 <_in>:
-   0:  48 ed                   rex64 in     \(%dx\),%eax
+   0:  48 ed                   rex.W in     \(%dx\),%eax
    2:  66                      data16
-   3:  48 ed                   rex64 in     \(%dx\),%eax
+   3:  48 ed                   rex.W in     \(%dx\),%eax
 
 0+005 <_out>:
-   5:  48 ef                   rex64 out    %eax,\(%dx\)
+   5:  48 ef                   rex.W out    %eax,\(%dx\)
    7:  66                      data16
-   8:  48 ef                   rex64 out    %eax,\(%dx\)
+   8:  48 ef                   rex.W out    %eax,\(%dx\)
 
 0+00a <_ins>:
-   a:  48 6d                   rex64 insl   \(%dx\),%es:\(%rdi\)
+   a:  48 6d                   rex.W insl   \(%dx\),%es:\(%rdi\)
    c:  66                      data16
-   d:  48 6d                   rex64 insl   \(%dx\),%es:\(%rdi\)
+   d:  48 6d                   rex.W insl   \(%dx\),%es:\(%rdi\)
 
 0+00f <_outs>:
-   f:  48 6f                   rex64 outsl  %ds:\(%rsi\),\(%dx\)
+   f:  48 6f                   rex.W outsl  %ds:\(%rsi\),\(%dx\)
   11:  66                      data16
-  12:  48 6f                   rex64 outsl  %ds:\(%rsi\),\(%dx\)
-#pass
\ No newline at end of file
+  12:  48 6f                   rex.W outsl  %ds:\(%rsi\),\(%dx\)
+#pass
index 126b3638230c4b7f88911f0f474b41a98f559495..912075e3bee9eaf0f4836ccd7016269fcdd8dab5 100644 (file)
@@ -272,7 +272,7 @@ Disassembly of section .text:
 [       ]*[0-9a-f]+:[   ]+66 90[        ]+xchg[         ]+%ax,%ax[      ]*(#.*)*
 [       ]*[0-9a-f]+:[   ]+87 c0[        ]+xchg[         ]+%eax,%eax[    ]*(#.*)*
 [       ]*[0-9a-f]+:[   ]+90[   ]+nop[  ]*(#.*)*
-[       ]*[0-9a-f]+:[   ]+48 90[        ]+rex64 nop[    ]*(#.*)*
+[       ]*[0-9a-f]+:[   ]+48 90[        ]+rex.W nop[    ]*(#.*)*
 [       ]*[0-9a-f]+:[   ]+49 90[        ]+xchg[         ]+%rax,%r8[     ]*(#.*)*
 [       ]*[0-9a-f]+:[   ]+41 90[        ]+xchg[         ]+%eax,%r8d[    ]*(#.*)*
 [       ]*[0-9a-f]+:[   ]+41 90[        ]+xchg[         ]+%eax,%r8d[    ]*(#.*)*
index 914743b1979cbe9670b81a3c03f8ee117b77969f..9b386ca09408f9f7d552efcbda2e96d7b898bd47 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 8ae51d8e8690d92acb99ebb0f6aae2b54a20135f..55ecb237b5c01716b092c2f605d8b4071e523122 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 373b1dd8ca1fd9f4047526932e0cfb7c3b27e604..be12dcea0b154d2303074c162419ca1cc72f1742 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.  */
 
This page took 0.036567 seconds and 4 git commands to generate.