gas/testsuite/
authorJan Beulich <jbeulich@novell.com>
Mon, 8 Apr 2013 15:48:38 +0000 (15:48 +0000)
committerJan Beulich <jbeulich@novell.com>
Mon, 8 Apr 2013 15:48:38 +0000 (15:48 +0000)
2013-04-08  Jan Beulich <jbeulich@suse.com>

* gas/i386/x86-64-opcode.s: Flesh out LOOP and J*CXZ sections.
Correct comments in Jcc section.
* gas/i386/x86-64-opcode.d: Refresh.
* gas/i386/ilp32/x86-64-opcode.d: Refresh.

opcodes/
2013-04-08  Jan Beulich <jbeulich@suse.com>

* i386-opc.tbl: Fold 64-bit and non-64-bit jecxz entries.
* i386-tbl.h: Re-generate.

gas/testsuite/ChangeLog
gas/testsuite/gas/i386/ilp32/x86-64-opcode.d
gas/testsuite/gas/i386/x86-64-opcode.d
gas/testsuite/gas/i386/x86-64-opcode.s
opcodes/ChangeLog
opcodes/i386-opc.tbl
opcodes/i386-tbl.h

index a4d193dd140c079359a71879b9e6b42e94c2c2f5..41c5c06b87d700f6dc373ab9bd7763fe90d913e7 100644 (file)
@@ -1,3 +1,10 @@
+2013-04-08  Jan Beulich <jbeulich@suse.com>
+
+       * gas/i386/x86-64-opcode.s: Flesh out LOOP and J*CXZ sections.
+       Correct comments in Jcc section.
+       * gas/i386/x86-64-opcode.d: Refresh.
+       * gas/i386/ilp32/x86-64-opcode.d: Refresh.
+
 2013-04-06  David S. Miller  <davem@davemloft.net>
 
        * gas/sparc/cbcond.s: Add tests for new opcode aliases.
index 06a1cbaeb1965c14ccd9b3acd78d0d24ee2dcf68..5515f9f619dfa07e8d891073564d0559ee58339d 100644 (file)
@@ -52,6 +52,11 @@ Disassembly of section .text:
 [      ]*[a-f0-9]+:    48 0f c3 00             movnti %rax,\(%rax\)
 [      ]*[a-f0-9]+:    4d 0f c3 00             movnti %r8,\(%r8\)
 [      ]*[a-f0-9]+:    4c 0f c3 00             movnti %r8,\(%rax\)
+[      ]*[a-f0-9]+:    e2 fe                   loop   0x[0-9a-f]+
+[      ]*[a-f0-9]+:    e2 fe                   loop   0x[0-9a-f]+
+[      ]*[a-f0-9]+:    67 e2 fd                loopl  0x[0-9a-f]+
+[      ]*[a-f0-9]+:    e3 fe                   jrcxz  0x[0-9a-f]+
+[      ]*[a-f0-9]+:    67 e3 fd                jecxz  0x[0-9a-f]+
 [      ]*[a-f0-9]+:    41 f6 38                idivb  \(%r8\)
 [      ]*[a-f0-9]+:    f6 38                   idivb  \(%rax\)
 [      ]*[a-f0-9]+:    66 41 f7 38             idivw  \(%r8\)
index 4b3003a46eb5fa611448bf75245c60316fa56cf5..127791f38a5edcc925c92b96c1b8b702ff5852f8 100644 (file)
@@ -51,6 +51,11 @@ Disassembly of section .text:
 [      ]*[a-f0-9]+:    48 0f c3 00             movnti %rax,\(%rax\)
 [      ]*[a-f0-9]+:    4d 0f c3 00             movnti %r8,\(%r8\)
 [      ]*[a-f0-9]+:    4c 0f c3 00             movnti %r8,\(%rax\)
+[      ]*[a-f0-9]+:    e2 fe                   loop   0x[0-9a-f]+
+[      ]*[a-f0-9]+:    e2 fe                   loop   0x[0-9a-f]+
+[      ]*[a-f0-9]+:    67 e2 fd                loopl  0x[0-9a-f]+
+[      ]*[a-f0-9]+:    e3 fe                   jrcxz  0x[0-9a-f]+
+[      ]*[a-f0-9]+:    67 e3 fd                jecxz  0x[0-9a-f]+
 [      ]*[a-f0-9]+:    41 f6 38                idivb  \(%r8\)
 [      ]*[a-f0-9]+:    f6 38                   idivb  \(%rax\)
 [      ]*[a-f0-9]+:    66 41 f7 38             idivw  \(%r8\)
@@ -296,5 +301,4 @@ Disassembly of section .text:
 [      ]*[a-f0-9]+:    0f 07                   sysret 
 [      ]*[a-f0-9]+:    0f 01 f8                swapgs 
 [      ]*[a-f0-9]+:    66 68 22 22             pushw  \$0x2222
-[      ]*[a-f0-9]+:    67 e3 ff                jecxz  0x49d
 #pass
index 96f624db87463a00fd616249523292db7788b90b..f271da5e1f21585de5203517efee84b625337be4 100644 (file)
        # Conditionals
 
        # LOOP
+       LOOP .                        #  --  --  -- --   E2 FE                           ; RCX used as counter.
+       LOOPq .                       #  --  --  -- --   E2 FE                           ; RCX used as counter.
+       LOOPl .                       #  --  67  -- --   E2 FD                           ; ECX used as counter.
 
 
        # Jcc
-                                     #  66  --  -- --   77 FD                           ; A16 override: (Addr64) = ZEXT(Addr16)
-                                     #  66  --  -- --   0F 87 F9 FF FF FF               ; A16 override: (Addr64) = ZEXT(Addr16)
+                                     #  66  --  -- --   77 FD                           ; O16 override: (Addr64) = ZEXT(Addr16)
+                                     #  66  --  -- --   0F 87 F9 FF FF FF               ; O16 override: (Addr64) = ZEXT(Addr16)
 
        # J*CXZ
-                                     #  66  67  -- --   E3 FC                           ; ECX used as counter. A16 override: (Addr64) = ZEXT(Addr16)
-                                     #  66  --  -- --   E3 FD                           ; A16 override: (Addr64) = ZEXT(Addr16)
+       JRCXZ .                       #  --  --  -- --   E3 FE                           ; RCX used as counter.
+       JECXZ .                       #  --  67  -- --   E3 FD                           ; ECX used as counter.
 
 
 
         swapgs                       #  --  --  -- --   0F 01 f8
 
        pushw $0x2222
-
-        jecxz .+2
index c3eb918220685ae97ce321b7fa6f3b69cfd31921..5509f8d0b57efa7ceb0d0e3f197f9baec415b7fc 100644 (file)
@@ -1,3 +1,8 @@
+2013-04-08  Jan Beulich <jbeulich@suse.com>
+
+       * i386-opc.tbl: Fold 64-bit and non-64-bit jecxz entries.
+       * i386-tbl.h: Re-generate.
+
 2013-04-06  David S. Miller  <davem@davemloft.net>
 
        * sparc-dis.c (compare_opcodes): When encountering multiple aliases
index 11e2615825849737fa4ec4c096afffbd2e27fa99..63962939dcd48cf9c690b53c6d9381b9a7626757 100644 (file)
@@ -389,8 +389,7 @@ jg, 1, 0x7f, None, 1, 0, Jump|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf,
 
 // jcxz vs. jecxz is chosen on the basis of the address size prefix.
 jcxz, 1, 0xe3, None, 1, CpuNo64, JumpByte|Size16|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Disp8|Disp16|Disp32 }
-jecxz, 1, 0xe3, None, 1, CpuNo64, JumpByte|Size32|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Disp8|Disp16|Disp32 }
-jecxz, 1, 0xe3, None, 1, Cpu64, JumpByte|Size32|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Disp8|Disp32|Disp32S }
+jecxz, 1, 0xe3, None, 1, 0, JumpByte|Size32|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf, { Disp8|Disp16|Disp32|Disp32S }
 jrcxz, 1, 0xe3, None, 1, Cpu64, JumpByte|Size64|No_bSuf|No_wSuf|No_lSuf|No_sSuf|No_qSuf|No_ldSuf|NoRex64, { Disp8|Disp32|Disp32S }
 
 // The loop instructions also use the address size prefix to select
index f9a38829047e76901dcc0417e1fe3a4d6fe39fc6..114d101f1db76b48a5b907fbf675d5e6e150b5b6 100644 (file)
@@ -3410,23 +3410,12 @@ const insn_template i386_optab[] =
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
         0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
-        0, 0, 1, 0 } },
-    { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 
-      1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
-      0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
-    { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
-         1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
-         0, 0, 0, 0, 0, 0 } } } },
-  { "jecxz", 1, 0xe3, None, 1,
-    { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
-        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
-        0, 1, 0, 0 } },
+        0, 0, 0, 0 } },
     { 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 
       1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
       0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
     { { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
-         1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+         1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
          0, 0, 0, 0, 0, 0 } } } },
   { "jrcxz", 1, 0xe3, None, 1,
     { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,