gas/
authorH.J. Lu <hjl.tools@gmail.com>
Fri, 23 Jun 2006 21:47:36 +0000 (21:47 +0000)
committerH.J. Lu <hjl.tools@gmail.com>
Fri, 23 Jun 2006 21:47:36 +0000 (21:47 +0000)
2006-06-23  H.J. Lu  <hongjiu.lu@intel.com>

* config/tc-i386.c (cpu_arch_tune_set): New.
(cpu_arch_isa): Likewise.
(i386_align_code): Use xchg %ax,%ax for 2 byte nop. Optimize
nops with short or long nop sequences based on -march=/.arch
and -mtune=.
(set_cpu_arch): Set cpu_arch_isa.  If cpu_arch_tune_set is 0,
set cpu_arch_tune and cpu_arch_tune_flags.
(md_parse_option): For -march=, set cpu_arch_isa and set
cpu_arch_tune and cpu_arch_tune_flags if cpu_arch_tune_set is
0.  Set cpu_arch_tune_set to 1 for -mtune=.
(i386_target_format): Don't set cpu_arch_tune.

gas/testsuite/

2006-06-23  H.J. Lu  <hongjiu.lu@intel.com>

* gas/i386/i386.exp: Run nops-1, nops-1-i386, nops-1-i686,
nops-1-merom, nops-2, nops-2-i386, nops-2-merom, x86-64-nops-1,
x86-64-nops-1-k8, x86-64-nops-1-nocona and x86-64-nops-1-merom.

* gas/i386/nops-1.s: New file.
* gas/i386/nops-2.s: Likewise.
* gas/i386/nops-1-i386.d: Likewise.
* gas/i386/nops-1-i686.d: Likewise.
* gas/i386/nops-1-merom.d: Likewise.
* gas/i386/nops-1.d: Likewise.
* gas/i386/nops-2-i386.d: Likewise.
* gas/i386/nops-2-merom.d: Likewise.
* gas/i386/nops-2.d: Likewise.
* gas/i386/x86-64-nops-1.s: Likewise.
* gas/i386/x86-64-nops-1-k8.d: Likewise.
* gas/i386/x86-64-nops-1-merom.d: Likewise.
* gas/i386/x86-64-nops-1-nocona.d: Likewise.
* gas/i386/x86-64-nops-1.d: Likewise.

* gas/i386/sse2.d: Updated to expect xchg %ax,%ax as 2 byte
nop.

19 files changed:
gas/ChangeLog
gas/config/tc-i386.c
gas/testsuite/ChangeLog
gas/testsuite/gas/i386/i386.exp
gas/testsuite/gas/i386/nops-1-i386.d [new file with mode: 0644]
gas/testsuite/gas/i386/nops-1-i686.d [new file with mode: 0644]
gas/testsuite/gas/i386/nops-1-merom.d [new file with mode: 0644]
gas/testsuite/gas/i386/nops-1.d [new file with mode: 0644]
gas/testsuite/gas/i386/nops-1.s [new file with mode: 0644]
gas/testsuite/gas/i386/nops-2-i386.d [new file with mode: 0644]
gas/testsuite/gas/i386/nops-2-merom.d [new file with mode: 0644]
gas/testsuite/gas/i386/nops-2.d [new file with mode: 0644]
gas/testsuite/gas/i386/nops-2.s [new file with mode: 0644]
gas/testsuite/gas/i386/sse2.d
gas/testsuite/gas/i386/x86-64-nops-1-k8.d [new file with mode: 0644]
gas/testsuite/gas/i386/x86-64-nops-1-merom.d [new file with mode: 0644]
gas/testsuite/gas/i386/x86-64-nops-1-nocona.d [new file with mode: 0644]
gas/testsuite/gas/i386/x86-64-nops-1.d [new file with mode: 0644]
gas/testsuite/gas/i386/x86-64-nops-1.s [new file with mode: 0644]

index 14c128b1d3293ec5416a2241c217a99be332de74..94c7962f0ace993d4d4ea696730c2a658fe40486 100644 (file)
@@ -1,3 +1,17 @@
+2006-06-23  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * config/tc-i386.c (cpu_arch_tune_set): New.
+       (cpu_arch_isa): Likewise.
+       (i386_align_code): Use xchg %ax,%ax for 2 byte nop. Optimize
+       nops with short or long nop sequences based on -march=/.arch
+       and -mtune=.
+       (set_cpu_arch): Set cpu_arch_isa.  If cpu_arch_tune_set is 0,
+       set cpu_arch_tune and cpu_arch_tune_flags.
+       (md_parse_option): For -march=, set cpu_arch_isa and set
+       cpu_arch_tune and cpu_arch_tune_flags if cpu_arch_tune_set is
+       0.  Set cpu_arch_tune_set to 1 for -mtune=.
+       (i386_target_format): Don't set cpu_arch_tune.
+
 2006-06-23  Nigel Stephens  <nigel@mips.com>
 
        * config/tc-mips.c (nopic_need_relax): Handle -fdata-sections
index 9c99a85b6fcd4b7e0cc7853d1ec06fe6fdea4617..aaca79cd7373356536c5080381ef5db0992fc007 100644 (file)
@@ -323,12 +323,18 @@ static const char *cpu_sub_arch_name = NULL;
 /* CPU feature flags.  */
 static unsigned int cpu_arch_flags = CpuUnknownFlags | CpuNo64;
 
+/* If we have selected a cpu we are generating instructions for.  */
+static int cpu_arch_tune_set = 0;
+
 /* Cpu we are generating instructions for.  */
 static enum processor_type cpu_arch_tune = PROCESSOR_UNKNOWN;
 
 /* CPU feature flags of cpu we are generating instructions for.  */
 static unsigned int cpu_arch_tune_flags = 0;
 
+/* CPU instruction set architecture used.  */
+static enum processor_type cpu_arch_isa = PROCESSOR_UNKNOWN;
+
 /* CPU feature flags of instruction set architecture used.  */
 static unsigned int cpu_arch_isa_flags = 0;
 
@@ -562,7 +568,7 @@ i386_align_code (fragP, count)
   static const char f32_1[] =
     {0x90};                                    /* nop                  */
   static const char f32_2[] =
-    {0x89,0xf6};                               /* movl %esi,%esi       */
+    {0x66,0x90};                               /* xchg %ax,%ax */
   static const char f32_3[] =
     {0x8d,0x76,0x00};                          /* leal 0(%esi),%esi    */
   static const char f32_4[] =
@@ -622,13 +628,140 @@ i386_align_code (fragP, count)
     f32_1, f32_2, f16_3, f16_4, f16_5, f16_6, f16_7, f16_8,
     f32_15, f32_15, f32_15, f32_15, f32_15, f32_15, f32_15
   };
+  /* nopl (%[re]ax) */
+  static const char alt_3[] =
+    {0x0f,0x1f,0x00};
+  /* nopl 0(%[re]ax) */
+  static const char alt_4[] =
+    {0x0f,0x1f,0x40,0x00};
+  /* nopl 0(%[re]ax,%[re]ax,1) */
+  static const char alt_5[] =
+    {0x0f,0x1f,0x44,0x00,0x00};
+  /* nopw 0(%[re]ax,%[re]ax,1) */
+  static const char alt_6[] =
+    {0x66,0x0f,0x1f,0x44,0x00,0x00};
+  /* nopl 0L(%[re]ax) */
+  static const char alt_7[] =
+    {0x0f,0x1f,0x80,0x00,0x00,0x00,0x00};
+  /* nopl 0L(%[re]ax,%[re]ax,1) */
+  static const char alt_8[] =
+    {0x0f,0x1f,0x84,0x00,0x00,0x00,0x00,0x00};
+  /* nopw 0L(%[re]ax,%[re]ax,1) */
+  static const char alt_9[] =
+    {0x66,0x0f,0x1f,0x84,0x00,0x00,0x00,0x00,0x00};
+  /* nopw %cs:0L(%[re]ax,%[re]ax,1) */
+  static const char alt_10[] =
+    {0x66,0x2e,0x0f,0x1f,0x84,0x00,0x00,0x00,0x00,0x00};
+  /* data16
+     nopw %cs:0L(%[re]ax,%[re]ax,1) */
+  static const char alt_long_11[] =
+    {0x66,
+     0x66,0x2e,0x0f,0x1f,0x84,0x00,0x00,0x00,0x00,0x00};
+  /* data16
+     data16
+     nopw %cs:0L(%[re]ax,%[re]ax,1) */
+  static const char alt_long_12[] =
+    {0x66,
+     0x66,
+     0x66,0x2e,0x0f,0x1f,0x84,0x00,0x00,0x00,0x00,0x00};
+  /* data16
+     data16
+     data16
+     nopw %cs:0L(%[re]ax,%[re]ax,1) */
+  static const char alt_long_13[] =
+    {0x66,
+     0x66,
+     0x66,
+     0x66,0x2e,0x0f,0x1f,0x84,0x00,0x00,0x00,0x00,0x00};
+  /* data16
+     data16
+     data16
+     data16
+     nopw %cs:0L(%[re]ax,%[re]ax,1) */
+  static const char alt_long_14[] =
+    {0x66,
+     0x66,
+     0x66,
+     0x66,
+     0x66,0x2e,0x0f,0x1f,0x84,0x00,0x00,0x00,0x00,0x00};
+  /* data16
+     data16
+     data16
+     data16
+     data16
+     nopw %cs:0L(%[re]ax,%[re]ax,1) */
+  static const char alt_long_15[] =
+    {0x66,
+     0x66,
+     0x66,
+     0x66,
+     0x66,
+     0x66,0x2e,0x0f,0x1f,0x84,0x00,0x00,0x00,0x00,0x00};
+  /* nopl 0(%[re]ax,%[re]ax,1)
+     nopw 0(%[re]ax,%[re]ax,1) */
+  static const char alt_short_11[] =
+    {0x0f,0x1f,0x44,0x00,0x00,
+     0x66,0x0f,0x1f,0x44,0x00,0x00};
+  /* nopw 0(%[re]ax,%[re]ax,1)
+     nopw 0(%[re]ax,%[re]ax,1) */
+  static const char alt_short_12[] =
+    {0x66,0x0f,0x1f,0x44,0x00,0x00,
+     0x66,0x0f,0x1f,0x44,0x00,0x00};
+  /* nopw 0(%[re]ax,%[re]ax,1)
+     nopl 0L(%[re]ax) */
+  static const char alt_short_13[] =
+    {0x66,0x0f,0x1f,0x44,0x00,0x00,
+     0x0f,0x1f,0x80,0x00,0x00,0x00,0x00};
+  /* nopl 0L(%[re]ax)
+     nopl 0L(%[re]ax) */
+  static const char alt_short_14[] =
+    {0x0f,0x1f,0x80,0x00,0x00,0x00,0x00,
+     0x0f,0x1f,0x80,0x00,0x00,0x00,0x00};
+  /* nopl 0L(%[re]ax)
+     nopl 0L(%[re]ax,%[re]ax,1) */
+  static const char alt_short_15[] =
+    {0x0f,0x1f,0x80,0x00,0x00,0x00,0x00,
+     0x0f,0x1f,0x84,0x00,0x00,0x00,0x00,0x00};
+  static const char *const alt_short_patt[] = {
+    f32_1, f32_2, alt_3, alt_4, alt_5, alt_6, alt_7, alt_8,
+    alt_9, alt_10, alt_short_11, alt_short_12, alt_short_13,
+    alt_short_14, alt_short_15
+  };
+  static const char *const alt_long_patt[] = {
+    f32_1, f32_2, alt_3, alt_4, alt_5, alt_6, alt_7, alt_8,
+    alt_9, alt_10, alt_long_11, alt_long_12, alt_long_13,
+    alt_long_14, alt_long_15
+  };
 
   if (count <= 0 || count > 15)
     return;
 
-  /* The recommended way to pad 64bit code is to use NOPs preceded by
-     maximally four 0x66 prefixes.  Balance the size of nops.  */
-  if (flag_code == CODE_64BIT)
+  /* We need to decide which NOP sequence to use for 32bit and
+     64bit. When -mtune= is used:
+  
+     1. For PROCESSOR_I486, PROCESSOR_PENTIUM and PROCESSOR_GENERIC32,
+     f32_patt will be used.
+     2. For PROCESSOR_K8 in 64bit, NOPs with 0x66 prefixe will be used.
+     3. For PROCESSOR_MEROM, alt_long_patt will be used.
+     4. For PROCESSOR_PENTIUMPRO, PROCESSOR_PENTIUM4, PROCESSOR_NOCONA,
+     PROCESSOR_YONAH, PROCESSOR_MEROM, PROCESSOR_K6, PROCESSOR_ATHLON
+     and PROCESSOR_GENERIC64, alt_short_patt will be used.
+
+     When -mtune= isn't used, alt_short_patt will be used if
+     cpu_arch_isa_flags has Cpu686. Otherwise, f32_patt will be used.
+
+     When -march= or .arch is used, we can't use anything beyond
+     cpu_arch_isa_flags.   */
+
+  if (flag_code == CODE_16BIT)
+    {
+      memcpy (fragP->fr_literal + fragP->fr_fix,
+             f16_patt[count - 1], count);
+      if (count > 8)
+       /* Adjust jump offset.  */
+       fragP->fr_literal[fragP->fr_fix + 1] = count - 2;
+    }
+  else if (flag_code == CODE_64BIT && cpu_arch_tune == PROCESSOR_K8)
     {
       int i;
       int nnops = (count + 3) / 4;
@@ -636,6 +769,8 @@ i386_align_code (fragP, count)
       int remains = count - nnops * len;
       int pos = 0;
 
+      /* The recommended way to pad 64bit code is to use NOPs preceded
+         by maximally four 0x66 prefixes.  Balance the size of nops.  */
       for (i = 0; i < remains; i++)
        {
          memset (fragP->fr_literal + fragP->fr_fix + pos, 0x66, len);
@@ -650,17 +785,84 @@ i386_align_code (fragP, count)
        }
     }
   else
-    if (flag_code == CODE_16BIT)
-      {
-       memcpy (fragP->fr_literal + fragP->fr_fix,
-               f16_patt[count - 1], count);
-       if (count > 8)
-         /* Adjust jump offset.  */
-         fragP->fr_literal[fragP->fr_fix + 1] = count - 2;
-      }
-    else
+    {
+      const char *const *patt = NULL;
+
+      if (cpu_arch_isa == PROCESSOR_UNKNOWN)
+       {
+         /* PROCESSOR_UNKNOWN means that all ISAs may be used.  */
+         switch (cpu_arch_tune)
+           {
+           case PROCESSOR_UNKNOWN:
+             /* We use cpu_arch_isa_flags to check if we SHOULD
+                optimize for Cpu686.  */
+             if ((cpu_arch_isa_flags & Cpu686) != 0)
+               patt = alt_short_patt;
+             else
+               patt = f32_patt;
+             break;
+           case PROCESSOR_MEROM:
+             patt = alt_long_patt;
+             break;
+           case PROCESSOR_PENTIUMPRO:
+           case PROCESSOR_PENTIUM4:
+           case PROCESSOR_NOCONA:
+           case PROCESSOR_YONAH:
+           case PROCESSOR_K6:
+           case PROCESSOR_ATHLON:
+           case PROCESSOR_K8:
+           case PROCESSOR_GENERIC64:
+             patt = alt_short_patt;
+             break;
+           case PROCESSOR_I486:
+           case PROCESSOR_PENTIUM:
+           case PROCESSOR_GENERIC32:
+             patt = f32_patt;
+             break;
+           } 
+       }
+      else
+       {
+         switch (cpu_arch_tune)
+           {
+           case PROCESSOR_UNKNOWN:
+             /* When cpu_arch_isa is net, cpu_arch_tune shouldn't be
+                PROCESSOR_UNKNOWN.  */
+             abort ();
+             break;
+
+           case PROCESSOR_I486:
+           case PROCESSOR_PENTIUM:
+           case PROCESSOR_PENTIUMPRO:
+           case PROCESSOR_PENTIUM4:
+           case PROCESSOR_NOCONA:
+           case PROCESSOR_YONAH:
+           case PROCESSOR_K6:
+           case PROCESSOR_ATHLON:
+           case PROCESSOR_K8:
+           case PROCESSOR_GENERIC32:
+             /* We use cpu_arch_isa_flags to check if we CAN optimize
+                for Cpu686.  */
+             if ((cpu_arch_isa_flags & Cpu686) != 0)
+               patt = alt_short_patt;
+             else
+               patt = f32_patt;
+             break;
+           case PROCESSOR_MEROM:
+             if ((cpu_arch_isa_flags & Cpu686) != 0)
+               patt = alt_long_patt;
+             else
+               patt = f32_patt;
+             break;
+           case PROCESSOR_GENERIC64:
+             patt = alt_short_patt;
+             break;
+           } 
+       }
+
       memcpy (fragP->fr_literal + fragP->fr_fix,
-             f32_patt[count - 1], count);
+             patt[count - 1], count);
+    }
   fragP->fr_var = count;
 }
 
@@ -937,7 +1139,13 @@ set_cpu_arch (dummy)
                  cpu_sub_arch_name = NULL;
                  cpu_arch_flags = (cpu_arch[i].flags
                                    | (flag_code == CODE_64BIT ? Cpu64 : CpuNo64));
+                 cpu_arch_isa = cpu_arch[i].type;
                  cpu_arch_isa_flags = cpu_arch[i].flags;
+                 if (!cpu_arch_tune_set)
+                   {
+                     cpu_arch_tune = cpu_arch_isa;
+                     cpu_arch_tune_flags = cpu_arch_isa_flags;
+                   }
                  break;
                }
              if ((cpu_arch_flags | cpu_arch[i].flags) != cpu_arch_flags)
@@ -5587,7 +5795,13 @@ md_parse_option (int c, char *arg)
        {
          if (strcmp (arg, cpu_arch [i].name) == 0)
            {
+             cpu_arch_isa = cpu_arch[i].type;
              cpu_arch_isa_flags = cpu_arch[i].flags;
+             if (!cpu_arch_tune_set)
+               {
+                 cpu_arch_tune = cpu_arch_isa;
+                 cpu_arch_tune_flags = cpu_arch_isa_flags;
+               }
              break;
            }
        }
@@ -5602,6 +5816,7 @@ md_parse_option (int c, char *arg)
        {
          if (strcmp (arg, cpu_arch [i].name) == 0)
            {
+             cpu_arch_tune_set = 1;
              cpu_arch_tune = cpu_arch [i].type;
              cpu_arch_tune_flags = cpu_arch[i].flags;
              break;
@@ -5663,24 +5878,18 @@ i386_target_format ()
        cpu_arch_isa_flags = Cpu086|Cpu186|Cpu286|Cpu386|Cpu486
                             |Cpu586|Cpu686|CpuP4|CpuMMX|CpuMMX2
                             |CpuSSE|CpuSSE2;
-      if (cpu_arch_tune == PROCESSOR_UNKNOWN)
-       {
-         cpu_arch_tune = PROCESSOR_GENERIC64;
-         cpu_arch_tune_flags = Cpu086|Cpu186|Cpu286|Cpu386|Cpu486
-                               |Cpu586|Cpu686|CpuP4|CpuMMX|CpuMMX2
-                               |CpuSSE|CpuSSE2;
-       }
+      if (cpu_arch_tune_flags == 0)
+       cpu_arch_tune_flags = Cpu086|Cpu186|Cpu286|Cpu386|Cpu486
+                             |Cpu586|Cpu686|CpuP4|CpuMMX|CpuMMX2
+                             |CpuSSE|CpuSSE2;
     }
   else if (!strcmp (default_arch, "i386"))
     {
       set_code_flag (CODE_32BIT);
       if (cpu_arch_isa_flags == 0)
        cpu_arch_isa_flags = Cpu086|Cpu186|Cpu286|Cpu386;
-      if (cpu_arch_tune == PROCESSOR_UNKNOWN)
-       {
-         cpu_arch_tune = PROCESSOR_GENERIC32;
-         cpu_arch_tune_flags = Cpu086|Cpu186|Cpu286|Cpu386;
-       }
+      if (cpu_arch_tune_flags == 0)
+       cpu_arch_tune_flags = Cpu086|Cpu186|Cpu286|Cpu386;
     }
   else
     as_fatal (_("Unknown architecture"));
index c0a2fc015b7f71911693596029d7822c79415aa1..6408a041da237ba45edf5f5b3c64783f29e1942b 100644 (file)
@@ -1,3 +1,27 @@
+2006-06-23  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * gas/i386/i386.exp: Run nops-1, nops-1-i386, nops-1-i686,
+       nops-1-merom, nops-2, nops-2-i386, nops-2-merom, x86-64-nops-1,
+       x86-64-nops-1-k8, x86-64-nops-1-nocona and x86-64-nops-1-merom.
+
+       * gas/i386/nops-1.s: New file.
+       * gas/i386/nops-2.s: Likewise.
+       * gas/i386/nops-1-i386.d: Likewise.
+       * gas/i386/nops-1-i686.d: Likewise.
+       * gas/i386/nops-1-merom.d: Likewise.
+       * gas/i386/nops-1.d: Likewise.
+       * gas/i386/nops-2-i386.d: Likewise.
+       * gas/i386/nops-2-merom.d: Likewise.
+       * gas/i386/nops-2.d: Likewise.
+       * gas/i386/x86-64-nops-1.s: Likewise.
+       * gas/i386/x86-64-nops-1-k8.d: Likewise.
+       * gas/i386/x86-64-nops-1-merom.d: Likewise.
+       * gas/i386/x86-64-nops-1-nocona.d: Likewise.
+       * gas/i386/x86-64-nops-1.d: Likewise.
+
+       * gas/i386/sse2.d: Updated to expect xchg %ax,%ax as 2 byte
+       nop.
+
 2006-06-20  Thiemo Seufer  <ths@networkno.de>
 
        * gas/mips/mips.exp: Explicitly specify o32 ABI.
index 3f353bc8b99022c7788c30df64abff4b21800791..71e2ee961a1146c5bde5cb3b7a09c1040074ba68 100644 (file)
@@ -73,6 +73,13 @@ if [expr ([istarget "i*86-*-*"] ||  [istarget "x86_64-*-*"]) && [gas_32_check]]
     run_dump_test "rep-suffix"
     run_dump_test "fp"
     run_dump_test "nops"
+    run_dump_test "nops-1"
+    run_dump_test "nops-1-i386"
+    run_dump_test "nops-1-i686"
+    run_dump_test "nops-1-merom"
+    run_dump_test "nops-2"
+    run_dump_test "nops-2-i386"
+    run_dump_test "nops-2-merom"
 
     # These tests require support for 8 and 16 bit relocs,
     # so we only run them for ELF and COFF targets.
@@ -146,6 +153,10 @@ if [expr ([istarget "i*86-*-*"] || [istarget "x86_64-*-*"]) && [gas_64_check]] t
     run_dump_test "x86-64-rep-suffix"
     run_dump_test "x86-64-gidt"
     run_dump_test "x86-64-nops"
+    run_dump_test "x86-64-nops-1"
+    run_dump_test "x86-64-nops-1-k8"
+    run_dump_test "x86-64-nops-1-nocona"
+    run_dump_test "x86-64-nops-1-merom"
 
     if { ![istarget "*-*-aix*"]
       && ![istarget "*-*-beos*"]
diff --git a/gas/testsuite/gas/i386/nops-1-i386.d b/gas/testsuite/gas/i386/nops-1-i386.d
new file mode 100644 (file)
index 0000000..6d1582a
--- /dev/null
@@ -0,0 +1,177 @@
+#as: -mtune=i686 -march=i386
+#source: nops-1.s
+#objdump: -drw
+#name: i386 -mtune=i686 -march=i386 nops 1
+
+.*: +file format .*
+
+Disassembly of section .text:
+
+0+ <nop15>:
+[       ]*0:[   ]+90[   ]+nop[         ]*
+[       ]*1:[   ]+eb 0d[        ]+jmp[         ]+10[   ]+<nop14>
+[       ]*3:[   ]+90[   ]+nop[         ]*
+[       ]*4:[   ]+90[   ]+nop[         ]*
+[       ]*5:[   ]+90[   ]+nop[         ]*
+[       ]*6:[   ]+90[   ]+nop[         ]*
+[       ]*7:[   ]+90[   ]+nop[         ]*
+[       ]*8:[   ]+90[   ]+nop[         ]*
+[       ]*9:[   ]+90[   ]+nop[         ]*
+[       ]*a:[   ]+90[   ]+nop[         ]*
+[       ]*b:[   ]+90[   ]+nop[         ]*
+[       ]*c:[   ]+90[   ]+nop[         ]*
+[       ]*d:[   ]+90[   ]+nop[         ]*
+[       ]*e:[   ]+90[   ]+nop[         ]*
+[       ]*f:[   ]+90[   ]+nop[         ]*
+
+0+10 <nop14>:
+[       ]*10:[  ]+90[   ]+nop[         ]*
+[       ]*11:[  ]+90[   ]+nop[         ]*
+[       ]*12:[  ]+8d b4 26 00 00 00 00[         ]+lea[         ]+0x0\(%esi\),%esi
+[       ]*19:[  ]+8d bc 27 00 00 00 00[         ]+lea[         ]+0x0\(%edi\),%edi
+
+0+20 <nop13>:
+[       ]*20:[  ]+90[   ]+nop[         ]*
+[       ]*21:[  ]+90[   ]+nop[         ]*
+[       ]*22:[  ]+90[   ]+nop[         ]*
+[       ]*23:[  ]+8d b6 00 00 00 00[    ]+lea[         ]+0x0\(%esi\),%esi
+[       ]*29:[  ]+8d bc 27 00 00 00 00[         ]+lea[         ]+0x0\(%edi\),%edi
+
+0+30 <nop12>:
+[       ]*30:[  ]+90[   ]+nop[         ]*
+[       ]*31:[  ]+90[   ]+nop[         ]*
+[       ]*32:[  ]+90[   ]+nop[         ]*
+[       ]*33:[  ]+90[   ]+nop[         ]*
+[       ]*34:[  ]+8d b6 00 00 00 00[    ]+lea[         ]+0x0\(%esi\),%esi
+[       ]*3a:[  ]+8d bf 00 00 00 00[    ]+lea[         ]+0x0\(%edi\),%edi
+
+0+40 <nop11>:
+[       ]*40:[  ]+90[   ]+nop[         ]*
+[       ]*41:[  ]+90[   ]+nop[         ]*
+[       ]*42:[  ]+90[   ]+nop[         ]*
+[       ]*43:[  ]+90[   ]+nop[         ]*
+[       ]*44:[  ]+90[   ]+nop[         ]*
+[       ]*45:[  ]+8d 74 26 00[  ]+lea[         ]+0x0\(%esi\),%esi
+[       ]*49:[  ]+8d bc 27 00 00 00 00[         ]+lea[         ]+0x0\(%edi\),%edi
+
+0+50 <nop10>:
+[       ]*50:[  ]+90[   ]+nop[         ]*
+[       ]*51:[  ]+90[   ]+nop[         ]*
+[       ]*52:[  ]+90[   ]+nop[         ]*
+[       ]*53:[  ]+90[   ]+nop[         ]*
+[       ]*54:[  ]+90[   ]+nop[         ]*
+[       ]*55:[  ]+90[   ]+nop[         ]*
+[       ]*56:[  ]+8d 76 00[     ]+lea[         ]+0x0\(%esi\),%esi
+[       ]*59:[  ]+8d bc 27 00 00 00 00[         ]+lea[         ]+0x0\(%edi\),%edi
+
+0+60 <nop9>:
+[       ]*60:[  ]+90[   ]+nop[         ]*
+[       ]*61:[  ]+90[   ]+nop[         ]*
+[       ]*62:[  ]+90[   ]+nop[         ]*
+[       ]*63:[  ]+90[   ]+nop[         ]*
+[       ]*64:[  ]+90[   ]+nop[         ]*
+[       ]*65:[  ]+90[   ]+nop[         ]*
+[       ]*66:[  ]+90[   ]+nop[         ]*
+[       ]*67:[  ]+89 f6[        ]+mov[         ]+%esi,%esi
+[       ]*69:[  ]+8d bc 27 00 00 00 00[         ]+lea[         ]+0x0\(%edi\),%edi
+
+0+70 <nop8>:
+[       ]*70:[  ]+90[   ]+nop[         ]*
+[       ]*71:[  ]+90[   ]+nop[         ]*
+[       ]*72:[  ]+90[   ]+nop[         ]*
+[       ]*73:[  ]+90[   ]+nop[         ]*
+[       ]*74:[  ]+90[   ]+nop[         ]*
+[       ]*75:[  ]+90[   ]+nop[         ]*
+[       ]*76:[  ]+90[   ]+nop[         ]*
+[       ]*77:[  ]+90[   ]+nop[         ]*
+[       ]*78:[  ]+90[   ]+nop[         ]*
+[       ]*79:[  ]+8d b4 26 00 00 00 00[         ]+lea[         ]+0x0\(%esi\),%esi
+
+0+80 <nop7>:
+[       ]*80:[  ]+90[   ]+nop[         ]*
+[       ]*81:[  ]+90[   ]+nop[         ]*
+[       ]*82:[  ]+90[   ]+nop[         ]*
+[       ]*83:[  ]+90[   ]+nop[         ]*
+[       ]*84:[  ]+90[   ]+nop[         ]*
+[       ]*85:[  ]+90[   ]+nop[         ]*
+[       ]*86:[  ]+90[   ]+nop[         ]*
+[       ]*87:[  ]+90[   ]+nop[         ]*
+[       ]*88:[  ]+90[   ]+nop[         ]*
+[       ]*89:[  ]+8d b4 26 00 00 00 00[         ]+lea[         ]+0x0\(%esi\),%esi
+
+0+90 <nop6>:
+[       ]*90:[  ]+90[   ]+nop[         ]*
+[       ]*91:[  ]+90[   ]+nop[         ]*
+[       ]*92:[  ]+90[   ]+nop[         ]*
+[       ]*93:[  ]+90[   ]+nop[         ]*
+[       ]*94:[  ]+90[   ]+nop[         ]*
+[       ]*95:[  ]+90[   ]+nop[         ]*
+[       ]*96:[  ]+90[   ]+nop[         ]*
+[       ]*97:[  ]+90[   ]+nop[         ]*
+[       ]*98:[  ]+90[   ]+nop[         ]*
+[       ]*99:[  ]+90[   ]+nop[         ]*
+[       ]*9a:[  ]+8d b6 00 00 00 00[    ]+lea[         ]+0x0\(%esi\),%esi
+
+0+a0 <nop5>:
+[       ]*a0:[  ]+90[   ]+nop[         ]*
+[       ]*a1:[  ]+90[   ]+nop[         ]*
+[       ]*a2:[  ]+90[   ]+nop[         ]*
+[       ]*a3:[  ]+90[   ]+nop[         ]*
+[       ]*a4:[  ]+90[   ]+nop[         ]*
+[       ]*a5:[  ]+90[   ]+nop[         ]*
+[       ]*a6:[  ]+90[   ]+nop[         ]*
+[       ]*a7:[  ]+90[   ]+nop[         ]*
+[       ]*a8:[  ]+90[   ]+nop[         ]*
+[       ]*a9:[  ]+90[   ]+nop[         ]*
+[       ]*aa:[  ]+90[   ]+nop[         ]*
+[       ]*ab:[  ]+90[   ]+nop[         ]*
+[       ]*ac:[  ]+8d 74 26 00[  ]+lea[         ]+0x0\(%esi\),%esi
+
+0+b0 <nop4>:
+[       ]*b0:[  ]+90[   ]+nop[         ]*
+[       ]*b1:[  ]+90[   ]+nop[         ]*
+[       ]*b2:[  ]+90[   ]+nop[         ]*
+[       ]*b3:[  ]+90[   ]+nop[         ]*
+[       ]*b4:[  ]+90[   ]+nop[         ]*
+[       ]*b5:[  ]+90[   ]+nop[         ]*
+[       ]*b6:[  ]+90[   ]+nop[         ]*
+[       ]*b7:[  ]+90[   ]+nop[         ]*
+[       ]*b8:[  ]+90[   ]+nop[         ]*
+[       ]*b9:[  ]+90[   ]+nop[         ]*
+[       ]*ba:[  ]+90[   ]+nop[         ]*
+[       ]*bb:[  ]+90[   ]+nop[         ]*
+[       ]*bc:[  ]+8d 74 26 00[  ]+lea[         ]+0x0\(%esi\),%esi
+
+0+c0 <nop3>:
+[       ]*c0:[  ]+90[   ]+nop[         ]*
+[       ]*c1:[  ]+90[   ]+nop[         ]*
+[       ]*c2:[  ]+90[   ]+nop[         ]*
+[       ]*c3:[  ]+90[   ]+nop[         ]*
+[       ]*c4:[  ]+90[   ]+nop[         ]*
+[       ]*c5:[  ]+90[   ]+nop[         ]*
+[       ]*c6:[  ]+90[   ]+nop[         ]*
+[       ]*c7:[  ]+90[   ]+nop[         ]*
+[       ]*c8:[  ]+90[   ]+nop[         ]*
+[       ]*c9:[  ]+90[   ]+nop[         ]*
+[       ]*ca:[  ]+90[   ]+nop[         ]*
+[       ]*cb:[  ]+90[   ]+nop[         ]*
+[       ]*cc:[  ]+90[   ]+nop[         ]*
+[       ]*cd:[  ]+8d 76 00[     ]+lea[         ]+0x0\(%esi\),%esi
+
+0+d0 <nop2>:
+[       ]*d0:[  ]+90[   ]+nop[         ]*
+[       ]*d1:[  ]+90[   ]+nop[         ]*
+[       ]*d2:[  ]+90[   ]+nop[         ]*
+[       ]*d3:[  ]+90[   ]+nop[         ]*
+[       ]*d4:[  ]+90[   ]+nop[         ]*
+[       ]*d5:[  ]+90[   ]+nop[         ]*
+[       ]*d6:[  ]+90[   ]+nop[         ]*
+[       ]*d7:[  ]+90[   ]+nop[         ]*
+[       ]*d8:[  ]+90[   ]+nop[         ]*
+[       ]*d9:[  ]+90[   ]+nop[         ]*
+[       ]*da:[  ]+90[   ]+nop[         ]*
+[       ]*db:[  ]+90[   ]+nop[         ]*
+[       ]*dc:[  ]+90[   ]+nop[         ]*
+[       ]*dd:[  ]+90[   ]+nop[         ]*
+[       ]*de:[  ]+66 90[       ]+xchg[         ]+%ax,%ax
+#pass
diff --git a/gas/testsuite/gas/i386/nops-1-i686.d b/gas/testsuite/gas/i386/nops-1-i686.d
new file mode 100644 (file)
index 0000000..b3ee23b
--- /dev/null
@@ -0,0 +1,161 @@
+#as: -mtune=i686
+#source: nops-1.s
+#objdump: -drw
+#name: i386 -mtune=i686 nops 1
+
+.*: +file format .*
+
+Disassembly of section .text:
+
+0+ <nop15>:
+[       ]*0:[   ]+90[   ]+nop[         ]*
+[       ]*1:[   ]+0f 1f 80 00 00 00 00[         ]+nopl[        ]+0x0\(%eax\)
+[       ]*8:[   ]+0f 1f 84 00 00 00 00 00[      ]+nopl[        ]+0x0\(%eax,%eax,1\)
+
+0+10 <nop14>:
+[       ]*10:[  ]+90[   ]+nop[         ]*
+[       ]*11:[  ]+90[   ]+nop[         ]*
+[       ]*12:[  ]+0f 1f 80 00 00 00 00[         ]+nopl[        ]+0x0\(%eax\)
+[       ]*19:[  ]+0f 1f 80 00 00 00 00[         ]+nopl[        ]+0x0\(%eax\)
+
+0+20 <nop13>:
+[       ]*20:[  ]+90[   ]+nop[         ]*
+[       ]*21:[  ]+90[   ]+nop[         ]*
+[       ]*22:[  ]+90[   ]+nop[         ]*
+[       ]*23:[  ]+66 0f 1f 44 00 00[    ]+nopw[        ]+0x0\(%eax,%eax,1\)
+[       ]*29:[  ]+0f 1f 80 00 00 00 00[         ]+nopl[        ]+0x0\(%eax\)
+
+0+30 <nop12>:
+[       ]*30:[  ]+90[   ]+nop[         ]*
+[       ]*31:[  ]+90[   ]+nop[         ]*
+[       ]*32:[  ]+90[   ]+nop[         ]*
+[       ]*33:[  ]+90[   ]+nop[         ]*
+[       ]*34:[  ]+66 0f 1f 44 00 00[    ]+nopw[        ]+0x0\(%eax,%eax,1\)
+[       ]*3a:[  ]+66 0f 1f 44 00 00[    ]+nopw[        ]+0x0\(%eax,%eax,1\)
+
+0+40 <nop11>:
+[       ]*40:[  ]+90[   ]+nop[         ]*
+[       ]*41:[  ]+90[   ]+nop[         ]*
+[       ]*42:[  ]+90[   ]+nop[         ]*
+[       ]*43:[  ]+90[   ]+nop[         ]*
+[       ]*44:[  ]+90[   ]+nop[         ]*
+[       ]*45:[  ]+0f 1f 44 00 00[       ]+nopl[        ]+0x0\(%eax,%eax,1\)
+[       ]*4a:[  ]+66 0f 1f 44 00 00[    ]+nopw[        ]+0x0\(%eax,%eax,1\)
+
+0+50 <nop10>:
+[       ]*50:[  ]+90[   ]+nop[         ]*
+[       ]*51:[  ]+90[   ]+nop[         ]*
+[       ]*52:[  ]+90[   ]+nop[         ]*
+[       ]*53:[  ]+90[   ]+nop[         ]*
+[       ]*54:[  ]+90[   ]+nop[         ]*
+[       ]*55:[  ]+90[   ]+nop[         ]*
+[       ]*56:[  ]+66 2e 0f 1f 84 00 00 00 00 00[        ]+nopw[        ]+%cs:0x0\(%eax,%eax,1\)
+
+0+60 <nop9>:
+[       ]*60:[  ]+90[   ]+nop[         ]*
+[       ]*61:[  ]+90[   ]+nop[         ]*
+[       ]*62:[  ]+90[   ]+nop[         ]*
+[       ]*63:[  ]+90[   ]+nop[         ]*
+[       ]*64:[  ]+90[   ]+nop[         ]*
+[       ]*65:[  ]+90[   ]+nop[         ]*
+[       ]*66:[  ]+90[   ]+nop[         ]*
+[       ]*67:[  ]+66 0f 1f 84 00 00 00 00 00[   ]+nopw[        ]+0x0\(%eax,%eax,1\)
+
+0+70 <nop8>:
+[       ]*70:[  ]+90[   ]+nop[         ]*
+[       ]*71:[  ]+90[   ]+nop[         ]*
+[       ]*72:[  ]+90[   ]+nop[         ]*
+[       ]*73:[  ]+90[   ]+nop[         ]*
+[       ]*74:[  ]+90[   ]+nop[         ]*
+[       ]*75:[  ]+90[   ]+nop[         ]*
+[       ]*76:[  ]+90[   ]+nop[         ]*
+[       ]*77:[  ]+90[   ]+nop[         ]*
+[       ]*78:[  ]+0f 1f 84 00 00 00 00 00[      ]+nopl[        ]+0x0\(%eax,%eax,1\)
+
+0+80 <nop7>:
+[       ]*80:[  ]+90[   ]+nop[         ]*
+[       ]*81:[  ]+90[   ]+nop[         ]*
+[       ]*82:[  ]+90[   ]+nop[         ]*
+[       ]*83:[  ]+90[   ]+nop[         ]*
+[       ]*84:[  ]+90[   ]+nop[         ]*
+[       ]*85:[  ]+90[   ]+nop[         ]*
+[       ]*86:[  ]+90[   ]+nop[         ]*
+[       ]*87:[  ]+90[   ]+nop[         ]*
+[       ]*88:[  ]+90[   ]+nop[         ]*
+[       ]*89:[  ]+0f 1f 80 00 00 00 00[         ]+nopl[        ]+0x0\(%eax\)
+
+0+90 <nop6>:
+[       ]*90:[  ]+90[   ]+nop[         ]*
+[       ]*91:[  ]+90[   ]+nop[         ]*
+[       ]*92:[  ]+90[   ]+nop[         ]*
+[       ]*93:[  ]+90[   ]+nop[         ]*
+[       ]*94:[  ]+90[   ]+nop[         ]*
+[       ]*95:[  ]+90[   ]+nop[         ]*
+[       ]*96:[  ]+90[   ]+nop[         ]*
+[       ]*97:[  ]+90[   ]+nop[         ]*
+[       ]*98:[  ]+90[   ]+nop[         ]*
+[       ]*99:[  ]+90[   ]+nop[         ]*
+[       ]*9a:[  ]+66 0f 1f 44 00 00[    ]+nopw[        ]+0x0\(%eax,%eax,1\)
+
+0+a0 <nop5>:
+[       ]*a0:[  ]+90[   ]+nop[         ]*
+[       ]*a1:[  ]+90[   ]+nop[         ]*
+[       ]*a2:[  ]+90[   ]+nop[         ]*
+[       ]*a3:[  ]+90[   ]+nop[         ]*
+[       ]*a4:[  ]+90[   ]+nop[         ]*
+[       ]*a5:[  ]+90[   ]+nop[         ]*
+[       ]*a6:[  ]+90[   ]+nop[         ]*
+[       ]*a7:[  ]+90[   ]+nop[         ]*
+[       ]*a8:[  ]+90[   ]+nop[         ]*
+[       ]*a9:[  ]+90[   ]+nop[         ]*
+[       ]*aa:[  ]+90[   ]+nop[         ]*
+[       ]*ab:[  ]+0f 1f 44 00 00[       ]+nopl[        ]+0x0\(%eax,%eax,1\)
+
+0+b0 <nop4>:
+[       ]*b0:[  ]+90[   ]+nop[         ]*
+[       ]*b1:[  ]+90[   ]+nop[         ]*
+[       ]*b2:[  ]+90[   ]+nop[         ]*
+[       ]*b3:[  ]+90[   ]+nop[         ]*
+[       ]*b4:[  ]+90[   ]+nop[         ]*
+[       ]*b5:[  ]+90[   ]+nop[         ]*
+[       ]*b6:[  ]+90[   ]+nop[         ]*
+[       ]*b7:[  ]+90[   ]+nop[         ]*
+[       ]*b8:[  ]+90[   ]+nop[         ]*
+[       ]*b9:[  ]+90[   ]+nop[         ]*
+[       ]*ba:[  ]+90[   ]+nop[         ]*
+[       ]*bb:[  ]+90[   ]+nop[         ]*
+[       ]*bc:[  ]+0f 1f 40 00[  ]+nopl[        ]+0x0\(%eax\)
+
+0+c0 <nop3>:
+[       ]*c0:[  ]+90[   ]+nop[         ]*
+[       ]*c1:[  ]+90[   ]+nop[         ]*
+[       ]*c2:[  ]+90[   ]+nop[         ]*
+[       ]*c3:[  ]+90[   ]+nop[         ]*
+[       ]*c4:[  ]+90[   ]+nop[         ]*
+[       ]*c5:[  ]+90[   ]+nop[         ]*
+[       ]*c6:[  ]+90[   ]+nop[         ]*
+[       ]*c7:[  ]+90[   ]+nop[         ]*
+[       ]*c8:[  ]+90[   ]+nop[         ]*
+[       ]*c9:[  ]+90[   ]+nop[         ]*
+[       ]*ca:[  ]+90[   ]+nop[         ]*
+[       ]*cb:[  ]+90[   ]+nop[         ]*
+[       ]*cc:[  ]+90[   ]+nop[         ]*
+[       ]*cd:[  ]+0f 1f 00[     ]+nopl[        ]+\(%eax\)
+
+0+d0 <nop2>:
+[       ]*d0:[  ]+90[   ]+nop[         ]*
+[       ]*d1:[  ]+90[   ]+nop[         ]*
+[       ]*d2:[  ]+90[   ]+nop[         ]*
+[       ]*d3:[  ]+90[   ]+nop[         ]*
+[       ]*d4:[  ]+90[   ]+nop[         ]*
+[       ]*d5:[  ]+90[   ]+nop[         ]*
+[       ]*d6:[  ]+90[   ]+nop[         ]*
+[       ]*d7:[  ]+90[   ]+nop[         ]*
+[       ]*d8:[  ]+90[   ]+nop[         ]*
+[       ]*d9:[  ]+90[   ]+nop[         ]*
+[       ]*da:[  ]+90[   ]+nop[         ]*
+[       ]*db:[  ]+90[   ]+nop[         ]*
+[       ]*dc:[  ]+90[   ]+nop[         ]*
+[       ]*dd:[  ]+90[   ]+nop[         ]*
+[       ]*de:[  ]+66 90[        ]+xchg[        ]+%ax,%ax
+#pass
diff --git a/gas/testsuite/gas/i386/nops-1-merom.d b/gas/testsuite/gas/i386/nops-1-merom.d
new file mode 100644 (file)
index 0000000..90668e5
--- /dev/null
@@ -0,0 +1,156 @@
+#as: -mtune=merom
+#source: nops-1.s
+#objdump: -drw
+#name: i386 -mtune=merom nops 1
+
+.*: +file format .*
+
+Disassembly of section .text:
+
+0+ <nop15>:
+[       ]*0:[   ]+90[   ]+nop[         ]*
+[       ]*1:[   ]+66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00[         ]+nopw[        ]+%cs:0x0\(%eax,%eax,1\)
+
+0+10 <nop14>:
+[       ]*10:[  ]+90[   ]+nop[         ]*
+[       ]*11:[  ]+90[   ]+nop[         ]*
+[       ]*12:[  ]+66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00[    ]+nopw[        ]+%cs:0x0\(%eax,%eax,1\)
+
+0+20 <nop13>:
+[       ]*20:[  ]+90[   ]+nop[         ]*
+[       ]*21:[  ]+90[   ]+nop[         ]*
+[       ]*22:[  ]+90[   ]+nop[         ]*
+[       ]*23:[  ]+66 66 66 66 2e 0f 1f 84 00 00 00 00 00[       ]+nopw[        ]+%cs:0x0\(%eax,%eax,1\)
+
+0+30 <nop12>:
+[       ]*30:[  ]+90[   ]+nop[         ]*
+[       ]*31:[  ]+90[   ]+nop[         ]*
+[       ]*32:[  ]+90[   ]+nop[         ]*
+[       ]*33:[  ]+90[   ]+nop[         ]*
+[       ]*34:[  ]+66 66 66 2e 0f 1f 84 00 00 00 00 00[  ]+nopw[        ]+%cs:0x0\(%eax,%eax,1\)
+
+0+40 <nop11>:
+[       ]*40:[  ]+90[   ]+nop[         ]*
+[       ]*41:[  ]+90[   ]+nop[         ]*
+[       ]*42:[  ]+90[   ]+nop[         ]*
+[       ]*43:[  ]+90[   ]+nop[         ]*
+[       ]*44:[  ]+90[   ]+nop[         ]*
+[       ]*45:[  ]+66 66 2e 0f 1f 84 00 00 00 00 00[     ]+nopw[        ]+%cs:0x0\(%eax,%eax,1\)
+
+0+50 <nop10>:
+[       ]*50:[  ]+90[   ]+nop[         ]*
+[       ]*51:[  ]+90[   ]+nop[         ]*
+[       ]*52:[  ]+90[   ]+nop[         ]*
+[       ]*53:[  ]+90[   ]+nop[         ]*
+[       ]*54:[  ]+90[   ]+nop[         ]*
+[       ]*55:[  ]+90[   ]+nop[         ]*
+[       ]*56:[  ]+66 2e 0f 1f 84 00 00 00 00 00[        ]+nopw[        ]+%cs:0x0\(%eax,%eax,1\)
+
+0+60 <nop9>:
+[       ]*60:[  ]+90[   ]+nop[         ]*
+[       ]*61:[  ]+90[   ]+nop[         ]*
+[       ]*62:[  ]+90[   ]+nop[         ]*
+[       ]*63:[  ]+90[   ]+nop[         ]*
+[       ]*64:[  ]+90[   ]+nop[         ]*
+[       ]*65:[  ]+90[   ]+nop[         ]*
+[       ]*66:[  ]+90[   ]+nop[         ]*
+[       ]*67:[  ]+66 0f 1f 84 00 00 00 00 00[   ]+nopw[        ]+0x0\(%eax,%eax,1\)
+
+0+70 <nop8>:
+[       ]*70:[  ]+90[   ]+nop[         ]*
+[       ]*71:[  ]+90[   ]+nop[         ]*
+[       ]*72:[  ]+90[   ]+nop[         ]*
+[       ]*73:[  ]+90[   ]+nop[         ]*
+[       ]*74:[  ]+90[   ]+nop[         ]*
+[       ]*75:[  ]+90[   ]+nop[         ]*
+[       ]*76:[  ]+90[   ]+nop[         ]*
+[       ]*77:[  ]+90[   ]+nop[         ]*
+[       ]*78:[  ]+0f 1f 84 00 00 00 00 00[      ]+nopl[        ]+0x0\(%eax,%eax,1\)
+
+0+80 <nop7>:
+[       ]*80:[  ]+90[   ]+nop[         ]*
+[       ]*81:[  ]+90[   ]+nop[         ]*
+[       ]*82:[  ]+90[   ]+nop[         ]*
+[       ]*83:[  ]+90[   ]+nop[         ]*
+[       ]*84:[  ]+90[   ]+nop[         ]*
+[       ]*85:[  ]+90[   ]+nop[         ]*
+[       ]*86:[  ]+90[   ]+nop[         ]*
+[       ]*87:[  ]+90[   ]+nop[         ]*
+[       ]*88:[  ]+90[   ]+nop[         ]*
+[       ]*89:[  ]+0f 1f 80 00 00 00 00[         ]+nopl[        ]+0x0\(%eax\)
+
+0+90 <nop6>:
+[       ]*90:[  ]+90[   ]+nop[         ]*
+[       ]*91:[  ]+90[   ]+nop[         ]*
+[       ]*92:[  ]+90[   ]+nop[         ]*
+[       ]*93:[  ]+90[   ]+nop[         ]*
+[       ]*94:[  ]+90[   ]+nop[         ]*
+[       ]*95:[  ]+90[   ]+nop[         ]*
+[       ]*96:[  ]+90[   ]+nop[         ]*
+[       ]*97:[  ]+90[   ]+nop[         ]*
+[       ]*98:[  ]+90[   ]+nop[         ]*
+[       ]*99:[  ]+90[   ]+nop[         ]*
+[       ]*9a:[  ]+66 0f 1f 44 00 00[    ]+nopw[        ]+0x0\(%eax,%eax,1\)
+
+0+a0 <nop5>:
+[       ]*a0:[  ]+90[   ]+nop[         ]*
+[       ]*a1:[  ]+90[   ]+nop[         ]*
+[       ]*a2:[  ]+90[   ]+nop[         ]*
+[       ]*a3:[  ]+90[   ]+nop[         ]*
+[       ]*a4:[  ]+90[   ]+nop[         ]*
+[       ]*a5:[  ]+90[   ]+nop[         ]*
+[       ]*a6:[  ]+90[   ]+nop[         ]*
+[       ]*a7:[  ]+90[   ]+nop[         ]*
+[       ]*a8:[  ]+90[   ]+nop[         ]*
+[       ]*a9:[  ]+90[   ]+nop[         ]*
+[       ]*aa:[  ]+90[   ]+nop[         ]*
+[       ]*ab:[  ]+0f 1f 44 00 00[       ]+nopl[        ]+0x0\(%eax,%eax,1\)
+
+0+b0 <nop4>:
+[       ]*b0:[  ]+90[   ]+nop[         ]*
+[       ]*b1:[  ]+90[   ]+nop[         ]*
+[       ]*b2:[  ]+90[   ]+nop[         ]*
+[       ]*b3:[  ]+90[   ]+nop[         ]*
+[       ]*b4:[  ]+90[   ]+nop[         ]*
+[       ]*b5:[  ]+90[   ]+nop[         ]*
+[       ]*b6:[  ]+90[   ]+nop[         ]*
+[       ]*b7:[  ]+90[   ]+nop[         ]*
+[       ]*b8:[  ]+90[   ]+nop[         ]*
+[       ]*b9:[  ]+90[   ]+nop[         ]*
+[       ]*ba:[  ]+90[   ]+nop[         ]*
+[       ]*bb:[  ]+90[   ]+nop[         ]*
+[       ]*bc:[  ]+0f 1f 40 00[  ]+nopl[        ]+0x0\(%eax\)
+
+0+c0 <nop3>:
+[       ]*c0:[  ]+90[   ]+nop[         ]*
+[       ]*c1:[  ]+90[   ]+nop[         ]*
+[       ]*c2:[  ]+90[   ]+nop[         ]*
+[       ]*c3:[  ]+90[   ]+nop[         ]*
+[       ]*c4:[  ]+90[   ]+nop[         ]*
+[       ]*c5:[  ]+90[   ]+nop[         ]*
+[       ]*c6:[  ]+90[   ]+nop[         ]*
+[       ]*c7:[  ]+90[   ]+nop[         ]*
+[       ]*c8:[  ]+90[   ]+nop[         ]*
+[       ]*c9:[  ]+90[   ]+nop[         ]*
+[       ]*ca:[  ]+90[   ]+nop[         ]*
+[       ]*cb:[  ]+90[   ]+nop[         ]*
+[       ]*cc:[  ]+90[   ]+nop[         ]*
+[       ]*cd:[  ]+0f 1f 00[     ]+nopl[        ]+\(%eax\)
+
+0+d0 <nop2>:
+[       ]*d0:[  ]+90[   ]+nop[         ]*
+[       ]*d1:[  ]+90[   ]+nop[         ]*
+[       ]*d2:[  ]+90[   ]+nop[         ]*
+[       ]*d3:[  ]+90[   ]+nop[         ]*
+[       ]*d4:[  ]+90[   ]+nop[         ]*
+[       ]*d5:[  ]+90[   ]+nop[         ]*
+[       ]*d6:[  ]+90[   ]+nop[         ]*
+[       ]*d7:[  ]+90[   ]+nop[         ]*
+[       ]*d8:[  ]+90[   ]+nop[         ]*
+[       ]*d9:[  ]+90[   ]+nop[         ]*
+[       ]*da:[  ]+90[   ]+nop[         ]*
+[       ]*db:[  ]+90[   ]+nop[         ]*
+[       ]*dc:[  ]+90[   ]+nop[         ]*
+[       ]*dd:[  ]+90[   ]+nop[         ]*
+[       ]*de:[  ]+66 90[        ]+xchg[        ]+%ax,%ax
+#pass
diff --git a/gas/testsuite/gas/i386/nops-1.d b/gas/testsuite/gas/i386/nops-1.d
new file mode 100644 (file)
index 0000000..4e81e95
--- /dev/null
@@ -0,0 +1,176 @@
+#source: nops-1.s
+#objdump: -drw
+#name: i386 nops 1
+
+.*: +file format .*
+
+Disassembly of section .text:
+
+0+ <nop15>:
+[       ]*0:[   ]+90[   ]+nop[         ]*
+[       ]*1:[   ]+eb 0d[        ]+jmp[         ]+10[   ]+<nop14>
+[       ]*3:[   ]+90[   ]+nop[         ]*
+[       ]*4:[   ]+90[   ]+nop[         ]*
+[       ]*5:[   ]+90[   ]+nop[         ]*
+[       ]*6:[   ]+90[   ]+nop[         ]*
+[       ]*7:[   ]+90[   ]+nop[         ]*
+[       ]*8:[   ]+90[   ]+nop[         ]*
+[       ]*9:[   ]+90[   ]+nop[         ]*
+[       ]*a:[   ]+90[   ]+nop[         ]*
+[       ]*b:[   ]+90[   ]+nop[         ]*
+[       ]*c:[   ]+90[   ]+nop[         ]*
+[       ]*d:[   ]+90[   ]+nop[         ]*
+[       ]*e:[   ]+90[   ]+nop[         ]*
+[       ]*f:[   ]+90[   ]+nop[         ]*
+
+0+10 <nop14>:
+[       ]*10:[  ]+90[   ]+nop[         ]*
+[       ]*11:[  ]+90[   ]+nop[         ]*
+[       ]*12:[  ]+8d b4 26 00 00 00 00[         ]+lea[         ]+0x0\(%esi\),%esi
+[       ]*19:[  ]+8d bc 27 00 00 00 00[         ]+lea[         ]+0x0\(%edi\),%edi
+
+0+20 <nop13>:
+[       ]*20:[  ]+90[   ]+nop[         ]*
+[       ]*21:[  ]+90[   ]+nop[         ]*
+[       ]*22:[  ]+90[   ]+nop[         ]*
+[       ]*23:[  ]+8d b6 00 00 00 00[    ]+lea[         ]+0x0\(%esi\),%esi
+[       ]*29:[  ]+8d bc 27 00 00 00 00[         ]+lea[         ]+0x0\(%edi\),%edi
+
+0+30 <nop12>:
+[       ]*30:[  ]+90[   ]+nop[         ]*
+[       ]*31:[  ]+90[   ]+nop[         ]*
+[       ]*32:[  ]+90[   ]+nop[         ]*
+[       ]*33:[  ]+90[   ]+nop[         ]*
+[       ]*34:[  ]+8d b6 00 00 00 00[    ]+lea[         ]+0x0\(%esi\),%esi
+[       ]*3a:[  ]+8d bf 00 00 00 00[    ]+lea[         ]+0x0\(%edi\),%edi
+
+0+40 <nop11>:
+[       ]*40:[  ]+90[   ]+nop[         ]*
+[       ]*41:[  ]+90[   ]+nop[         ]*
+[       ]*42:[  ]+90[   ]+nop[         ]*
+[       ]*43:[  ]+90[   ]+nop[         ]*
+[       ]*44:[  ]+90[   ]+nop[         ]*
+[       ]*45:[  ]+8d 74 26 00[  ]+lea[         ]+0x0\(%esi\),%esi
+[       ]*49:[  ]+8d bc 27 00 00 00 00[         ]+lea[         ]+0x0\(%edi\),%edi
+
+0+50 <nop10>:
+[       ]*50:[  ]+90[   ]+nop[         ]*
+[       ]*51:[  ]+90[   ]+nop[         ]*
+[       ]*52:[  ]+90[   ]+nop[         ]*
+[       ]*53:[  ]+90[   ]+nop[         ]*
+[       ]*54:[  ]+90[   ]+nop[         ]*
+[       ]*55:[  ]+90[   ]+nop[         ]*
+[       ]*56:[  ]+8d 76 00[     ]+lea[         ]+0x0\(%esi\),%esi
+[       ]*59:[  ]+8d bc 27 00 00 00 00[         ]+lea[         ]+0x0\(%edi\),%edi
+
+0+60 <nop9>:
+[       ]*60:[  ]+90[   ]+nop[         ]*
+[       ]*61:[  ]+90[   ]+nop[         ]*
+[       ]*62:[  ]+90[   ]+nop[         ]*
+[       ]*63:[  ]+90[   ]+nop[         ]*
+[       ]*64:[  ]+90[   ]+nop[         ]*
+[       ]*65:[  ]+90[   ]+nop[         ]*
+[       ]*66:[  ]+90[   ]+nop[         ]*
+[       ]*67:[  ]+89 f6[        ]+mov[         ]+%esi,%esi
+[       ]*69:[  ]+8d bc 27 00 00 00 00[         ]+lea[         ]+0x0\(%edi\),%edi
+
+0+70 <nop8>:
+[       ]*70:[  ]+90[   ]+nop[         ]*
+[       ]*71:[  ]+90[   ]+nop[         ]*
+[       ]*72:[  ]+90[   ]+nop[         ]*
+[       ]*73:[  ]+90[   ]+nop[         ]*
+[       ]*74:[  ]+90[   ]+nop[         ]*
+[       ]*75:[  ]+90[   ]+nop[         ]*
+[       ]*76:[  ]+90[   ]+nop[         ]*
+[       ]*77:[  ]+90[   ]+nop[         ]*
+[       ]*78:[  ]+90[   ]+nop[         ]*
+[       ]*79:[  ]+8d b4 26 00 00 00 00[         ]+lea[         ]+0x0\(%esi\),%esi
+
+0+80 <nop7>:
+[       ]*80:[  ]+90[   ]+nop[         ]*
+[       ]*81:[  ]+90[   ]+nop[         ]*
+[       ]*82:[  ]+90[   ]+nop[         ]*
+[       ]*83:[  ]+90[   ]+nop[         ]*
+[       ]*84:[  ]+90[   ]+nop[         ]*
+[       ]*85:[  ]+90[   ]+nop[         ]*
+[       ]*86:[  ]+90[   ]+nop[         ]*
+[       ]*87:[  ]+90[   ]+nop[         ]*
+[       ]*88:[  ]+90[   ]+nop[         ]*
+[       ]*89:[  ]+8d b4 26 00 00 00 00[         ]+lea[         ]+0x0\(%esi\),%esi
+
+0+90 <nop6>:
+[       ]*90:[  ]+90[   ]+nop[         ]*
+[       ]*91:[  ]+90[   ]+nop[         ]*
+[       ]*92:[  ]+90[   ]+nop[         ]*
+[       ]*93:[  ]+90[   ]+nop[         ]*
+[       ]*94:[  ]+90[   ]+nop[         ]*
+[       ]*95:[  ]+90[   ]+nop[         ]*
+[       ]*96:[  ]+90[   ]+nop[         ]*
+[       ]*97:[  ]+90[   ]+nop[         ]*
+[       ]*98:[  ]+90[   ]+nop[         ]*
+[       ]*99:[  ]+90[   ]+nop[         ]*
+[       ]*9a:[  ]+8d b6 00 00 00 00[    ]+lea[         ]+0x0\(%esi\),%esi
+
+0+a0 <nop5>:
+[       ]*a0:[  ]+90[   ]+nop[         ]*
+[       ]*a1:[  ]+90[   ]+nop[         ]*
+[       ]*a2:[  ]+90[   ]+nop[         ]*
+[       ]*a3:[  ]+90[   ]+nop[         ]*
+[       ]*a4:[  ]+90[   ]+nop[         ]*
+[       ]*a5:[  ]+90[   ]+nop[         ]*
+[       ]*a6:[  ]+90[   ]+nop[         ]*
+[       ]*a7:[  ]+90[   ]+nop[         ]*
+[       ]*a8:[  ]+90[   ]+nop[         ]*
+[       ]*a9:[  ]+90[   ]+nop[         ]*
+[       ]*aa:[  ]+90[   ]+nop[         ]*
+[       ]*ab:[  ]+90[   ]+nop[         ]*
+[       ]*ac:[  ]+8d 74 26 00[  ]+lea[         ]+0x0\(%esi\),%esi
+
+0+b0 <nop4>:
+[       ]*b0:[  ]+90[   ]+nop[         ]*
+[       ]*b1:[  ]+90[   ]+nop[         ]*
+[       ]*b2:[  ]+90[   ]+nop[         ]*
+[       ]*b3:[  ]+90[   ]+nop[         ]*
+[       ]*b4:[  ]+90[   ]+nop[         ]*
+[       ]*b5:[  ]+90[   ]+nop[         ]*
+[       ]*b6:[  ]+90[   ]+nop[         ]*
+[       ]*b7:[  ]+90[   ]+nop[         ]*
+[       ]*b8:[  ]+90[   ]+nop[         ]*
+[       ]*b9:[  ]+90[   ]+nop[         ]*
+[       ]*ba:[  ]+90[   ]+nop[         ]*
+[       ]*bb:[  ]+90[   ]+nop[         ]*
+[       ]*bc:[  ]+8d 74 26 00[  ]+lea[         ]+0x0\(%esi\),%esi
+
+0+c0 <nop3>:
+[       ]*c0:[  ]+90[   ]+nop[         ]*
+[       ]*c1:[  ]+90[   ]+nop[         ]*
+[       ]*c2:[  ]+90[   ]+nop[         ]*
+[       ]*c3:[  ]+90[   ]+nop[         ]*
+[       ]*c4:[  ]+90[   ]+nop[         ]*
+[       ]*c5:[  ]+90[   ]+nop[         ]*
+[       ]*c6:[  ]+90[   ]+nop[         ]*
+[       ]*c7:[  ]+90[   ]+nop[         ]*
+[       ]*c8:[  ]+90[   ]+nop[         ]*
+[       ]*c9:[  ]+90[   ]+nop[         ]*
+[       ]*ca:[  ]+90[   ]+nop[         ]*
+[       ]*cb:[  ]+90[   ]+nop[         ]*
+[       ]*cc:[  ]+90[   ]+nop[         ]*
+[       ]*cd:[  ]+8d 76 00[     ]+lea[         ]+0x0\(%esi\),%esi
+
+0+d0 <nop2>:
+[       ]*d0:[  ]+90[   ]+nop[         ]*
+[       ]*d1:[  ]+90[   ]+nop[         ]*
+[       ]*d2:[  ]+90[   ]+nop[         ]*
+[       ]*d3:[  ]+90[   ]+nop[         ]*
+[       ]*d4:[  ]+90[   ]+nop[         ]*
+[       ]*d5:[  ]+90[   ]+nop[         ]*
+[       ]*d6:[  ]+90[   ]+nop[         ]*
+[       ]*d7:[  ]+90[   ]+nop[         ]*
+[       ]*d8:[  ]+90[   ]+nop[         ]*
+[       ]*d9:[  ]+90[   ]+nop[         ]*
+[       ]*da:[  ]+90[   ]+nop[         ]*
+[       ]*db:[  ]+90[   ]+nop[         ]*
+[       ]*dc:[  ]+90[   ]+nop[         ]*
+[       ]*dd:[  ]+90[   ]+nop[         ]*
+[       ]*de:[  ]+66 90[       ]+xchg[         ]+%ax,%ax
+#pass
diff --git a/gas/testsuite/gas/i386/nops-1.s b/gas/testsuite/gas/i386/nops-1.s
new file mode 100644 (file)
index 0000000..a4fd769
--- /dev/null
@@ -0,0 +1,147 @@
+       .text
+nop15:
+       nop
+       .p2align 4
+
+nop14:
+       nop
+       nop
+       .p2align 4
+
+nop13:
+       nop
+       nop
+       nop
+       .p2align 4
+
+nop12:
+       nop
+       nop
+       nop
+       nop
+       .p2align 4
+
+nop11:
+       nop
+       nop
+       nop
+       nop
+       nop
+       .p2align 4
+
+nop10:
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       .p2align 4
+
+nop9:
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       .p2align 4
+
+nop8:
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       .p2align 4
+
+nop7:
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       .p2align 4
+
+nop6:
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       .p2align 4
+
+nop5:
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       .p2align 4
+
+nop4:
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       .p2align 4
+
+nop3:
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       .p2align 4
+
+nop2:
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       .p2align 4
diff --git a/gas/testsuite/gas/i386/nops-2-i386.d b/gas/testsuite/gas/i386/nops-2-i386.d
new file mode 100644 (file)
index 0000000..2b24507
--- /dev/null
@@ -0,0 +1,166 @@
+#as: -march=i386
+#source: nops-2.s
+#objdump: -drw
+#name: i386 -march=i386 nops 2
+
+.*: +file format .*
+
+Disassembly of section .text:
+
+0+ <nop>:
+[       ]*0:[   ]+0f 44 c0[     ]+cmove[       ]+%eax,%eax
+[       ]*3:[   ]+66 0f 1f 44 00 00[    ]+nopw[        ]+0x0\(%eax,%eax,1\)
+[       ]*9:[   ]+0f 1f 80 00 00 00 00[         ]+nopl[        ]+0x0\(%eax\)
+
+0+10 <nop15>:
+[       ]*10:[  ]+90[   ]+nop[         ]*
+[       ]*11:[  ]+0f 1f 80 00 00 00 00[         ]+nopl[        ]+0x0\(%eax\)
+[       ]*18:[  ]+0f 1f 84 00 00 00 00 00[      ]+nopl[        ]+0x0\(%eax,%eax,1\)
+
+0+20 <nop14>:
+[       ]*20:[  ]+90[   ]+nop[         ]*
+[       ]*21:[  ]+90[   ]+nop[         ]*
+[       ]*22:[  ]+0f 1f 80 00 00 00 00[         ]+nopl[        ]+0x0\(%eax\)
+[       ]*29:[  ]+0f 1f 80 00 00 00 00[         ]+nopl[        ]+0x0\(%eax\)
+
+0+30 <nop13>:
+[       ]*30:[  ]+90[   ]+nop[         ]*
+[       ]*31:[  ]+90[   ]+nop[         ]*
+[       ]*32:[  ]+90[   ]+nop[         ]*
+[       ]*33:[  ]+66 0f 1f 44 00 00[    ]+nopw[        ]+0x0\(%eax,%eax,1\)
+[       ]*39:[  ]+0f 1f 80 00 00 00 00[         ]+nopl[        ]+0x0\(%eax\)
+
+0+40 <nop12>:
+[       ]*40:[  ]+90[   ]+nop[         ]*
+[       ]*41:[  ]+90[   ]+nop[         ]*
+[       ]*42:[  ]+90[   ]+nop[         ]*
+[       ]*43:[  ]+90[   ]+nop[         ]*
+[       ]*44:[  ]+66 0f 1f 44 00 00[    ]+nopw[        ]+0x0\(%eax,%eax,1\)
+[       ]*4a:[  ]+66 0f 1f 44 00 00[    ]+nopw[        ]+0x0\(%eax,%eax,1\)
+
+0+50 <nop11>:
+[       ]*50:[  ]+90[   ]+nop[         ]*
+[       ]*51:[  ]+90[   ]+nop[         ]*
+[       ]*52:[  ]+90[   ]+nop[         ]*
+[       ]*53:[  ]+90[   ]+nop[         ]*
+[       ]*54:[  ]+90[   ]+nop[         ]*
+[       ]*55:[  ]+0f 1f 44 00 00[       ]+nopl[        ]+0x0\(%eax,%eax,1\)
+[       ]*5a:[  ]+66 0f 1f 44 00 00[    ]+nopw[        ]+0x0\(%eax,%eax,1\)
+
+0+60 <nop10>:
+[       ]*60:[  ]+90[   ]+nop[         ]*
+[       ]*61:[  ]+90[   ]+nop[         ]*
+[       ]*62:[  ]+90[   ]+nop[         ]*
+[       ]*63:[  ]+90[   ]+nop[         ]*
+[       ]*64:[  ]+90[   ]+nop[         ]*
+[       ]*65:[  ]+90[   ]+nop[         ]*
+[       ]*66:[  ]+66 2e 0f 1f 84 00 00 00 00 00[        ]+nopw[        ]+%cs:0x0\(%eax,%eax,1\)
+
+0+70 <nop9>:
+[       ]*70:[  ]+90[   ]+nop[         ]*
+[       ]*71:[  ]+90[   ]+nop[         ]*
+[       ]*72:[  ]+90[   ]+nop[         ]*
+[       ]*73:[  ]+90[   ]+nop[         ]*
+[       ]*74:[  ]+90[   ]+nop[         ]*
+[       ]*75:[  ]+90[   ]+nop[         ]*
+[       ]*76:[  ]+90[   ]+nop[         ]*
+[       ]*77:[  ]+66 0f 1f 84 00 00 00 00 00[   ]+nopw[        ]+0x0\(%eax,%eax,1\)
+
+0+80 <nop8>:
+[       ]*80:[  ]+90[   ]+nop[         ]*
+[       ]*81:[  ]+90[   ]+nop[         ]*
+[       ]*82:[  ]+90[   ]+nop[         ]*
+[       ]*83:[  ]+90[   ]+nop[         ]*
+[       ]*84:[  ]+90[   ]+nop[         ]*
+[       ]*85:[  ]+90[   ]+nop[         ]*
+[       ]*86:[  ]+90[   ]+nop[         ]*
+[       ]*87:[  ]+90[   ]+nop[         ]*
+[       ]*88:[  ]+0f 1f 84 00 00 00 00 00[      ]+nopl[        ]+0x0\(%eax,%eax,1\)
+
+0+90 <nop7>:
+[       ]*90:[  ]+90[   ]+nop[         ]*
+[       ]*91:[  ]+90[   ]+nop[         ]*
+[       ]*92:[  ]+90[   ]+nop[         ]*
+[       ]*93:[  ]+90[   ]+nop[         ]*
+[       ]*94:[  ]+90[   ]+nop[         ]*
+[       ]*95:[  ]+90[   ]+nop[         ]*
+[       ]*96:[  ]+90[   ]+nop[         ]*
+[       ]*97:[  ]+90[   ]+nop[         ]*
+[       ]*98:[  ]+90[   ]+nop[         ]*
+[       ]*99:[  ]+0f 1f 80 00 00 00 00[         ]+nopl[        ]+0x0\(%eax\)
+
+0+a0 <nop6>:
+[       ]*a0:[  ]+90[   ]+nop[         ]*
+[       ]*a1:[  ]+90[   ]+nop[         ]*
+[       ]*a2:[  ]+90[   ]+nop[         ]*
+[       ]*a3:[  ]+90[   ]+nop[         ]*
+[       ]*a4:[  ]+90[   ]+nop[         ]*
+[       ]*a5:[  ]+90[   ]+nop[         ]*
+[       ]*a6:[  ]+90[   ]+nop[         ]*
+[       ]*a7:[  ]+90[   ]+nop[         ]*
+[       ]*a8:[  ]+90[   ]+nop[         ]*
+[       ]*a9:[  ]+90[   ]+nop[         ]*
+[       ]*aa:[  ]+66 0f 1f 44 00 00[    ]+nopw[        ]+0x0\(%eax,%eax,1\)
+
+0+b0 <nop5>:
+[       ]*b0:[  ]+90[   ]+nop[         ]*
+[       ]*b1:[  ]+90[   ]+nop[         ]*
+[       ]*b2:[  ]+90[   ]+nop[         ]*
+[       ]*b3:[  ]+90[   ]+nop[         ]*
+[       ]*b4:[  ]+90[   ]+nop[         ]*
+[       ]*b5:[  ]+90[   ]+nop[         ]*
+[       ]*b6:[  ]+90[   ]+nop[         ]*
+[       ]*b7:[  ]+90[   ]+nop[         ]*
+[       ]*b8:[  ]+90[   ]+nop[         ]*
+[       ]*b9:[  ]+90[   ]+nop[         ]*
+[       ]*ba:[  ]+90[   ]+nop[         ]*
+[       ]*bb:[  ]+0f 1f 44 00 00[       ]+nopl[        ]+0x0\(%eax,%eax,1\)
+
+0+c0 <nop4>:
+[       ]*c0:[  ]+90[   ]+nop[         ]*
+[       ]*c1:[  ]+90[   ]+nop[         ]*
+[       ]*c2:[  ]+90[   ]+nop[         ]*
+[       ]*c3:[  ]+90[   ]+nop[         ]*
+[       ]*c4:[  ]+90[   ]+nop[         ]*
+[       ]*c5:[  ]+90[   ]+nop[         ]*
+[       ]*c6:[  ]+90[   ]+nop[         ]*
+[       ]*c7:[  ]+90[   ]+nop[         ]*
+[       ]*c8:[  ]+90[   ]+nop[         ]*
+[       ]*c9:[  ]+90[   ]+nop[         ]*
+[       ]*ca:[  ]+90[   ]+nop[         ]*
+[       ]*cb:[  ]+90[   ]+nop[         ]*
+[       ]*cc:[  ]+0f 1f 40 00[  ]+nopl[        ]+0x0\(%eax\)
+
+0+d0 <nop3>:
+[       ]*d0:[  ]+90[   ]+nop[         ]*
+[       ]*d1:[  ]+90[   ]+nop[         ]*
+[       ]*d2:[  ]+90[   ]+nop[         ]*
+[       ]*d3:[  ]+90[   ]+nop[         ]*
+[       ]*d4:[  ]+90[   ]+nop[         ]*
+[       ]*d5:[  ]+90[   ]+nop[         ]*
+[       ]*d6:[  ]+90[   ]+nop[         ]*
+[       ]*d7:[  ]+90[   ]+nop[         ]*
+[       ]*d8:[  ]+90[   ]+nop[         ]*
+[       ]*d9:[  ]+90[   ]+nop[         ]*
+[       ]*da:[  ]+90[   ]+nop[         ]*
+[       ]*db:[  ]+90[   ]+nop[         ]*
+[       ]*dc:[  ]+90[   ]+nop[         ]*
+[       ]*dd:[  ]+0f 1f 00[     ]+nopl[        ]+\(%eax\)
+
+0+e0 <nop2>:
+[       ]*e0:[  ]+90[   ]+nop[         ]*
+[       ]*e1:[  ]+90[   ]+nop[         ]*
+[       ]*e2:[  ]+90[   ]+nop[         ]*
+[       ]*e3:[  ]+90[   ]+nop[         ]*
+[       ]*e4:[  ]+90[   ]+nop[         ]*
+[       ]*e5:[  ]+90[   ]+nop[         ]*
+[       ]*e6:[  ]+90[   ]+nop[         ]*
+[       ]*e7:[  ]+90[   ]+nop[         ]*
+[       ]*e8:[  ]+90[   ]+nop[         ]*
+[       ]*e9:[  ]+90[   ]+nop[         ]*
+[       ]*ea:[  ]+90[   ]+nop[         ]*
+[       ]*eb:[  ]+90[   ]+nop[         ]*
+[       ]*ec:[  ]+90[   ]+nop[         ]*
+[       ]*ed:[  ]+90[   ]+nop[         ]*
+[       ]*ee:[  ]+66 90[        ]+xchg[        ]+%ax,%ax
+#pass
diff --git a/gas/testsuite/gas/i386/nops-2-merom.d b/gas/testsuite/gas/i386/nops-2-merom.d
new file mode 100644 (file)
index 0000000..b84aeff
--- /dev/null
@@ -0,0 +1,160 @@
+#as: -march=i386 -mtune=merom
+#source: nops-2.s
+#objdump: -drw
+#name: i386 -march=i386 -mtune=merom nops 2
+
+.*: +file format .*
+
+Disassembly of section .text:
+
+0+ <nop>:
+[       ]*0:[   ]+0f 44 c0[     ]+cmove[       ]+%eax,%eax
+[       ]*3:[   ]+66 66 66 66 2e 0f 1f 84 00 00 00 00 00[       ]+nopw[        ]+%cs:0x0\(%eax,%eax,1\)
+
+0+10 <nop15>:
+[       ]*10:[  ]+90[   ]+nop[         ]*
+[       ]*11:[  ]+66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00[         ]+nopw[        ]+%cs:0x0\(%eax,%eax,1\)
+
+0+20 <nop14>:
+[       ]*20:[  ]+90[   ]+nop[         ]*
+[       ]*21:[  ]+90[   ]+nop[         ]*
+[       ]*22:[  ]+66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00[    ]+nopw[        ]+%cs:0x0\(%eax,%eax,1\)
+
+0+30 <nop13>:
+[       ]*30:[  ]+90[   ]+nop[         ]*
+[       ]*31:[  ]+90[   ]+nop[         ]*
+[       ]*32:[  ]+90[   ]+nop[         ]*
+[       ]*33:[  ]+66 66 66 66 2e 0f 1f 84 00 00 00 00 00[       ]+nopw[        ]+%cs:0x0\(%eax,%eax,1\)
+
+0+40 <nop12>:
+[       ]*40:[  ]+90[   ]+nop[         ]*
+[       ]*41:[  ]+90[   ]+nop[         ]*
+[       ]*42:[  ]+90[   ]+nop[         ]*
+[       ]*43:[  ]+90[   ]+nop[         ]*
+[       ]*44:[  ]+66 66 66 2e 0f 1f 84 00 00 00 00 00[  ]+nopw[        ]+%cs:0x0\(%eax,%eax,1\)
+
+0+50 <nop11>:
+[       ]*50:[  ]+90[   ]+nop[         ]*
+[       ]*51:[  ]+90[   ]+nop[         ]*
+[       ]*52:[  ]+90[   ]+nop[         ]*
+[       ]*53:[  ]+90[   ]+nop[         ]*
+[       ]*54:[  ]+90[   ]+nop[         ]*
+[       ]*55:[  ]+66 66 2e 0f 1f 84 00 00 00 00 00[     ]+nopw[        ]+%cs:0x0\(%eax,%eax,1\)
+
+0+60 <nop10>:
+[       ]*60:[  ]+90[   ]+nop[         ]*
+[       ]*61:[  ]+90[   ]+nop[         ]*
+[       ]*62:[  ]+90[   ]+nop[         ]*
+[       ]*63:[  ]+90[   ]+nop[         ]*
+[       ]*64:[  ]+90[   ]+nop[         ]*
+[       ]*65:[  ]+90[   ]+nop[         ]*
+[       ]*66:[  ]+66 2e 0f 1f 84 00 00 00 00 00[        ]+nopw[        ]+%cs:0x0\(%eax,%eax,1\)
+
+0+70 <nop9>:
+[       ]*70:[  ]+90[   ]+nop[         ]*
+[       ]*71:[  ]+90[   ]+nop[         ]*
+[       ]*72:[  ]+90[   ]+nop[         ]*
+[       ]*73:[  ]+90[   ]+nop[         ]*
+[       ]*74:[  ]+90[   ]+nop[         ]*
+[       ]*75:[  ]+90[   ]+nop[         ]*
+[       ]*76:[  ]+90[   ]+nop[         ]*
+[       ]*77:[  ]+66 0f 1f 84 00 00 00 00 00[   ]+nopw[        ]+0x0\(%eax,%eax,1\)
+
+0+80 <nop8>:
+[       ]*80:[  ]+90[   ]+nop[         ]*
+[       ]*81:[  ]+90[   ]+nop[         ]*
+[       ]*82:[  ]+90[   ]+nop[         ]*
+[       ]*83:[  ]+90[   ]+nop[         ]*
+[       ]*84:[  ]+90[   ]+nop[         ]*
+[       ]*85:[  ]+90[   ]+nop[         ]*
+[       ]*86:[  ]+90[   ]+nop[         ]*
+[       ]*87:[  ]+90[   ]+nop[         ]*
+[       ]*88:[  ]+0f 1f 84 00 00 00 00 00[      ]+nopl[        ]+0x0\(%eax,%eax,1\)
+
+0+90 <nop7>:
+[       ]*90:[  ]+90[   ]+nop[         ]*
+[       ]*91:[  ]+90[   ]+nop[         ]*
+[       ]*92:[  ]+90[   ]+nop[         ]*
+[       ]*93:[  ]+90[   ]+nop[         ]*
+[       ]*94:[  ]+90[   ]+nop[         ]*
+[       ]*95:[  ]+90[   ]+nop[         ]*
+[       ]*96:[  ]+90[   ]+nop[         ]*
+[       ]*97:[  ]+90[   ]+nop[         ]*
+[       ]*98:[  ]+90[   ]+nop[         ]*
+[       ]*99:[  ]+0f 1f 80 00 00 00 00[         ]+nopl[        ]+0x0\(%eax\)
+
+0+a0 <nop6>:
+[       ]*a0:[  ]+90[   ]+nop[         ]*
+[       ]*a1:[  ]+90[   ]+nop[         ]*
+[       ]*a2:[  ]+90[   ]+nop[         ]*
+[       ]*a3:[  ]+90[   ]+nop[         ]*
+[       ]*a4:[  ]+90[   ]+nop[         ]*
+[       ]*a5:[  ]+90[   ]+nop[         ]*
+[       ]*a6:[  ]+90[   ]+nop[         ]*
+[       ]*a7:[  ]+90[   ]+nop[         ]*
+[       ]*a8:[  ]+90[   ]+nop[         ]*
+[       ]*a9:[  ]+90[   ]+nop[         ]*
+[       ]*aa:[  ]+66 0f 1f 44 00 00[    ]+nopw[        ]+0x0\(%eax,%eax,1\)
+
+0+b0 <nop5>:
+[       ]*b0:[  ]+90[   ]+nop[         ]*
+[       ]*b1:[  ]+90[   ]+nop[         ]*
+[       ]*b2:[  ]+90[   ]+nop[         ]*
+[       ]*b3:[  ]+90[   ]+nop[         ]*
+[       ]*b4:[  ]+90[   ]+nop[         ]*
+[       ]*b5:[  ]+90[   ]+nop[         ]*
+[       ]*b6:[  ]+90[   ]+nop[         ]*
+[       ]*b7:[  ]+90[   ]+nop[         ]*
+[       ]*b8:[  ]+90[   ]+nop[         ]*
+[       ]*b9:[  ]+90[   ]+nop[         ]*
+[       ]*ba:[  ]+90[   ]+nop[         ]*
+[       ]*bb:[  ]+0f 1f 44 00 00[       ]+nopl[        ]+0x0\(%eax,%eax,1\)
+
+0+c0 <nop4>:
+[       ]*c0:[  ]+90[   ]+nop[         ]*
+[       ]*c1:[  ]+90[   ]+nop[         ]*
+[       ]*c2:[  ]+90[   ]+nop[         ]*
+[       ]*c3:[  ]+90[   ]+nop[         ]*
+[       ]*c4:[  ]+90[   ]+nop[         ]*
+[       ]*c5:[  ]+90[   ]+nop[         ]*
+[       ]*c6:[  ]+90[   ]+nop[         ]*
+[       ]*c7:[  ]+90[   ]+nop[         ]*
+[       ]*c8:[  ]+90[   ]+nop[         ]*
+[       ]*c9:[  ]+90[   ]+nop[         ]*
+[       ]*ca:[  ]+90[   ]+nop[         ]*
+[       ]*cb:[  ]+90[   ]+nop[         ]*
+[       ]*cc:[  ]+0f 1f 40 00[  ]+nopl[        ]+0x0\(%eax\)
+
+0+d0 <nop3>:
+[       ]*d0:[  ]+90[   ]+nop[         ]*
+[       ]*d1:[  ]+90[   ]+nop[         ]*
+[       ]*d2:[  ]+90[   ]+nop[         ]*
+[       ]*d3:[  ]+90[   ]+nop[         ]*
+[       ]*d4:[  ]+90[   ]+nop[         ]*
+[       ]*d5:[  ]+90[   ]+nop[         ]*
+[       ]*d6:[  ]+90[   ]+nop[         ]*
+[       ]*d7:[  ]+90[   ]+nop[         ]*
+[       ]*d8:[  ]+90[   ]+nop[         ]*
+[       ]*d9:[  ]+90[   ]+nop[         ]*
+[       ]*da:[  ]+90[   ]+nop[         ]*
+[       ]*db:[  ]+90[   ]+nop[         ]*
+[       ]*dc:[  ]+90[   ]+nop[         ]*
+[       ]*dd:[  ]+0f 1f 00[     ]+nopl[        ]+\(%eax\)
+
+0+e0 <nop2>:
+[       ]*e0:[  ]+90[   ]+nop[         ]*
+[       ]*e1:[  ]+90[   ]+nop[         ]*
+[       ]*e2:[  ]+90[   ]+nop[         ]*
+[       ]*e3:[  ]+90[   ]+nop[         ]*
+[       ]*e4:[  ]+90[   ]+nop[         ]*
+[       ]*e5:[  ]+90[   ]+nop[         ]*
+[       ]*e6:[  ]+90[   ]+nop[         ]*
+[       ]*e7:[  ]+90[   ]+nop[         ]*
+[       ]*e8:[  ]+90[   ]+nop[         ]*
+[       ]*e9:[  ]+90[   ]+nop[         ]*
+[       ]*ea:[  ]+90[   ]+nop[         ]*
+[       ]*eb:[  ]+90[   ]+nop[         ]*
+[       ]*ec:[  ]+90[   ]+nop[         ]*
+[       ]*ed:[  ]+90[   ]+nop[         ]*
+[       ]*ee:[  ]+66 90[        ]+xchg[        ]+%ax,%ax
+#pass
diff --git a/gas/testsuite/gas/i386/nops-2.d b/gas/testsuite/gas/i386/nops-2.d
new file mode 100644 (file)
index 0000000..cface9c
--- /dev/null
@@ -0,0 +1,165 @@
+#source: nops-2.s
+#objdump: -drw
+#name: i386 nops 2
+
+.*: +file format .*
+
+Disassembly of section .text:
+
+0+ <nop>:
+[       ]*0:[   ]+0f 44 c0[     ]+cmove[       ]+%eax,%eax
+[       ]*3:[   ]+66 0f 1f 44 00 00[    ]+nopw[        ]+0x0\(%eax,%eax,1\)
+[       ]*9:[   ]+0f 1f 80 00 00 00 00[         ]+nopl[        ]+0x0\(%eax\)
+
+0+10 <nop15>:
+[       ]*10:[  ]+90[   ]+nop[         ]*
+[       ]*11:[  ]+0f 1f 80 00 00 00 00[         ]+nopl[        ]+0x0\(%eax\)
+[       ]*18:[  ]+0f 1f 84 00 00 00 00 00[      ]+nopl[        ]+0x0\(%eax,%eax,1\)
+
+0+20 <nop14>:
+[       ]*20:[  ]+90[   ]+nop[         ]*
+[       ]*21:[  ]+90[   ]+nop[         ]*
+[       ]*22:[  ]+0f 1f 80 00 00 00 00[         ]+nopl[        ]+0x0\(%eax\)
+[       ]*29:[  ]+0f 1f 80 00 00 00 00[         ]+nopl[        ]+0x0\(%eax\)
+
+0+30 <nop13>:
+[       ]*30:[  ]+90[   ]+nop[         ]*
+[       ]*31:[  ]+90[   ]+nop[         ]*
+[       ]*32:[  ]+90[   ]+nop[         ]*
+[       ]*33:[  ]+66 0f 1f 44 00 00[    ]+nopw[        ]+0x0\(%eax,%eax,1\)
+[       ]*39:[  ]+0f 1f 80 00 00 00 00[         ]+nopl[        ]+0x0\(%eax\)
+
+0+40 <nop12>:
+[       ]*40:[  ]+90[   ]+nop[         ]*
+[       ]*41:[  ]+90[   ]+nop[         ]*
+[       ]*42:[  ]+90[   ]+nop[         ]*
+[       ]*43:[  ]+90[   ]+nop[         ]*
+[       ]*44:[  ]+66 0f 1f 44 00 00[    ]+nopw[        ]+0x0\(%eax,%eax,1\)
+[       ]*4a:[  ]+66 0f 1f 44 00 00[    ]+nopw[        ]+0x0\(%eax,%eax,1\)
+
+0+50 <nop11>:
+[       ]*50:[  ]+90[   ]+nop[         ]*
+[       ]*51:[  ]+90[   ]+nop[         ]*
+[       ]*52:[  ]+90[   ]+nop[         ]*
+[       ]*53:[  ]+90[   ]+nop[         ]*
+[       ]*54:[  ]+90[   ]+nop[         ]*
+[       ]*55:[  ]+0f 1f 44 00 00[       ]+nopl[        ]+0x0\(%eax,%eax,1\)
+[       ]*5a:[  ]+66 0f 1f 44 00 00[    ]+nopw[        ]+0x0\(%eax,%eax,1\)
+
+0+60 <nop10>:
+[       ]*60:[  ]+90[   ]+nop[         ]*
+[       ]*61:[  ]+90[   ]+nop[         ]*
+[       ]*62:[  ]+90[   ]+nop[         ]*
+[       ]*63:[  ]+90[   ]+nop[         ]*
+[       ]*64:[  ]+90[   ]+nop[         ]*
+[       ]*65:[  ]+90[   ]+nop[         ]*
+[       ]*66:[  ]+66 2e 0f 1f 84 00 00 00 00 00[        ]+nopw[        ]+%cs:0x0\(%eax,%eax,1\)
+
+0+70 <nop9>:
+[       ]*70:[  ]+90[   ]+nop[         ]*
+[       ]*71:[  ]+90[   ]+nop[         ]*
+[       ]*72:[  ]+90[   ]+nop[         ]*
+[       ]*73:[  ]+90[   ]+nop[         ]*
+[       ]*74:[  ]+90[   ]+nop[         ]*
+[       ]*75:[  ]+90[   ]+nop[         ]*
+[       ]*76:[  ]+90[   ]+nop[         ]*
+[       ]*77:[  ]+66 0f 1f 84 00 00 00 00 00[   ]+nopw[        ]+0x0\(%eax,%eax,1\)
+
+0+80 <nop8>:
+[       ]*80:[  ]+90[   ]+nop[         ]*
+[       ]*81:[  ]+90[   ]+nop[         ]*
+[       ]*82:[  ]+90[   ]+nop[         ]*
+[       ]*83:[  ]+90[   ]+nop[         ]*
+[       ]*84:[  ]+90[   ]+nop[         ]*
+[       ]*85:[  ]+90[   ]+nop[         ]*
+[       ]*86:[  ]+90[   ]+nop[         ]*
+[       ]*87:[  ]+90[   ]+nop[         ]*
+[       ]*88:[  ]+0f 1f 84 00 00 00 00 00[      ]+nopl[        ]+0x0\(%eax,%eax,1\)
+
+0+90 <nop7>:
+[       ]*90:[  ]+90[   ]+nop[         ]*
+[       ]*91:[  ]+90[   ]+nop[         ]*
+[       ]*92:[  ]+90[   ]+nop[         ]*
+[       ]*93:[  ]+90[   ]+nop[         ]*
+[       ]*94:[  ]+90[   ]+nop[         ]*
+[       ]*95:[  ]+90[   ]+nop[         ]*
+[       ]*96:[  ]+90[   ]+nop[         ]*
+[       ]*97:[  ]+90[   ]+nop[         ]*
+[       ]*98:[  ]+90[   ]+nop[         ]*
+[       ]*99:[  ]+0f 1f 80 00 00 00 00[         ]+nopl[        ]+0x0\(%eax\)
+
+0+a0 <nop6>:
+[       ]*a0:[  ]+90[   ]+nop[         ]*
+[       ]*a1:[  ]+90[   ]+nop[         ]*
+[       ]*a2:[  ]+90[   ]+nop[         ]*
+[       ]*a3:[  ]+90[   ]+nop[         ]*
+[       ]*a4:[  ]+90[   ]+nop[         ]*
+[       ]*a5:[  ]+90[   ]+nop[         ]*
+[       ]*a6:[  ]+90[   ]+nop[         ]*
+[       ]*a7:[  ]+90[   ]+nop[         ]*
+[       ]*a8:[  ]+90[   ]+nop[         ]*
+[       ]*a9:[  ]+90[   ]+nop[         ]*
+[       ]*aa:[  ]+66 0f 1f 44 00 00[    ]+nopw[        ]+0x0\(%eax,%eax,1\)
+
+0+b0 <nop5>:
+[       ]*b0:[  ]+90[   ]+nop[         ]*
+[       ]*b1:[  ]+90[   ]+nop[         ]*
+[       ]*b2:[  ]+90[   ]+nop[         ]*
+[       ]*b3:[  ]+90[   ]+nop[         ]*
+[       ]*b4:[  ]+90[   ]+nop[         ]*
+[       ]*b5:[  ]+90[   ]+nop[         ]*
+[       ]*b6:[  ]+90[   ]+nop[         ]*
+[       ]*b7:[  ]+90[   ]+nop[         ]*
+[       ]*b8:[  ]+90[   ]+nop[         ]*
+[       ]*b9:[  ]+90[   ]+nop[         ]*
+[       ]*ba:[  ]+90[   ]+nop[         ]*
+[       ]*bb:[  ]+0f 1f 44 00 00[       ]+nopl[        ]+0x0\(%eax,%eax,1\)
+
+0+c0 <nop4>:
+[       ]*c0:[  ]+90[   ]+nop[         ]*
+[       ]*c1:[  ]+90[   ]+nop[         ]*
+[       ]*c2:[  ]+90[   ]+nop[         ]*
+[       ]*c3:[  ]+90[   ]+nop[         ]*
+[       ]*c4:[  ]+90[   ]+nop[         ]*
+[       ]*c5:[  ]+90[   ]+nop[         ]*
+[       ]*c6:[  ]+90[   ]+nop[         ]*
+[       ]*c7:[  ]+90[   ]+nop[         ]*
+[       ]*c8:[  ]+90[   ]+nop[         ]*
+[       ]*c9:[  ]+90[   ]+nop[         ]*
+[       ]*ca:[  ]+90[   ]+nop[         ]*
+[       ]*cb:[  ]+90[   ]+nop[         ]*
+[       ]*cc:[  ]+0f 1f 40 00[  ]+nopl[        ]+0x0\(%eax\)
+
+0+d0 <nop3>:
+[       ]*d0:[  ]+90[   ]+nop[         ]*
+[       ]*d1:[  ]+90[   ]+nop[         ]*
+[       ]*d2:[  ]+90[   ]+nop[         ]*
+[       ]*d3:[  ]+90[   ]+nop[         ]*
+[       ]*d4:[  ]+90[   ]+nop[         ]*
+[       ]*d5:[  ]+90[   ]+nop[         ]*
+[       ]*d6:[  ]+90[   ]+nop[         ]*
+[       ]*d7:[  ]+90[   ]+nop[         ]*
+[       ]*d8:[  ]+90[   ]+nop[         ]*
+[       ]*d9:[  ]+90[   ]+nop[         ]*
+[       ]*da:[  ]+90[   ]+nop[         ]*
+[       ]*db:[  ]+90[   ]+nop[         ]*
+[       ]*dc:[  ]+90[   ]+nop[         ]*
+[       ]*dd:[  ]+0f 1f 00[     ]+nopl[        ]+\(%eax\)
+
+0+e0 <nop2>:
+[       ]*e0:[  ]+90[   ]+nop[         ]*
+[       ]*e1:[  ]+90[   ]+nop[         ]*
+[       ]*e2:[  ]+90[   ]+nop[         ]*
+[       ]*e3:[  ]+90[   ]+nop[         ]*
+[       ]*e4:[  ]+90[   ]+nop[         ]*
+[       ]*e5:[  ]+90[   ]+nop[         ]*
+[       ]*e6:[  ]+90[   ]+nop[         ]*
+[       ]*e7:[  ]+90[   ]+nop[         ]*
+[       ]*e8:[  ]+90[   ]+nop[         ]*
+[       ]*e9:[  ]+90[   ]+nop[         ]*
+[       ]*ea:[  ]+90[   ]+nop[         ]*
+[       ]*eb:[  ]+90[   ]+nop[         ]*
+[       ]*ec:[  ]+90[   ]+nop[         ]*
+[       ]*ed:[  ]+90[   ]+nop[         ]*
+[       ]*ee:[  ]+66 90[        ]+xchg[        ]+%ax,%ax
+#pass
diff --git a/gas/testsuite/gas/i386/nops-2.s b/gas/testsuite/gas/i386/nops-2.s
new file mode 100644 (file)
index 0000000..afbb87e
--- /dev/null
@@ -0,0 +1,151 @@
+       .text
+nop:
+       cmove   %eax,%eax
+       .p2align 4
+
+nop15:
+       nop
+       .p2align 4
+
+nop14:
+       nop
+       nop
+       .p2align 4
+
+nop13:
+       nop
+       nop
+       nop
+       .p2align 4
+
+nop12:
+       nop
+       nop
+       nop
+       nop
+       .p2align 4
+
+nop11:
+       nop
+       nop
+       nop
+       nop
+       nop
+       .p2align 4
+
+nop10:
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       .p2align 4
+
+nop9:
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       .p2align 4
+
+nop8:
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       .p2align 4
+
+nop7:
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       .p2align 4
+
+nop6:
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       .p2align 4
+
+nop5:
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       .p2align 4
+
+nop4:
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       .p2align 4
+
+nop3:
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       .p2align 4
+
+nop2:
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       .p2align 4
index eb6a161cbf980a7c91c23c76dea26850ba841eb6..545def3bb699d58a0e5ac6f0385925527d15b0ab 100644 (file)
@@ -153,4 +153,4 @@ Disassembly of section .text:
  270:  66 0f 73 f8 01[         ]+pslldq \$0x1,%xmm0
  275:  66 0f 73 d8 01[         ]+psrldq \$0x1,%xmm0
  27a:  66 0f 6d c8[    ]+punpckhqdq %xmm0,%xmm1
- 27e:  89 f6[  ]+mov[  ]+%esi,%esi
+ 27e:  66 90[  ]+xchg[         ]+%ax,%ax
diff --git a/gas/testsuite/gas/i386/x86-64-nops-1-k8.d b/gas/testsuite/gas/i386/x86-64-nops-1-k8.d
new file mode 100644 (file)
index 0000000..6785fbb
--- /dev/null
@@ -0,0 +1,177 @@
+#as: -mtune=k8
+#source: x86-64-nops-1.s
+#objdump: -drw
+#name: x86-64 -mtune=k8 nops 1
+
+.*: +file format .*
+
+Disassembly of section .text:
+
+0+ <nop15>:
+[       ]*0:[   ]+90[   ]+nop[         ]*
+[       ]*1:[   ]+66 66 66 90[  ]+xchg[        ]+%ax,%ax
+[       ]*5:[   ]+66 66 66 90[  ]+xchg[        ]+%ax,%ax
+[       ]*9:[   ]+66 66 66 90[  ]+xchg[        ]+%ax,%ax
+[       ]*d:[   ]+66 66 90[     ]+xchg[        ]+%ax,%ax
+
+0+10 <nop14>:
+[       ]*10:[  ]+90[   ]+nop[         ]*
+[       ]*11:[  ]+90[   ]+nop[         ]*
+[       ]*12:[  ]+66 66 66 90[  ]+xchg[        ]+%ax,%ax
+[       ]*16:[  ]+66 66 66 90[  ]+xchg[        ]+%ax,%ax
+[       ]*1a:[  ]+66 66 90[     ]+xchg[        ]+%ax,%ax
+[       ]*1d:[  ]+66 66 90[     ]+xchg[        ]+%ax,%ax
+
+0+20 <nop13>:
+[       ]*20:[  ]+90[   ]+nop[         ]*
+[       ]*21:[  ]+90[   ]+nop[         ]*
+[       ]*22:[  ]+90[   ]+nop[         ]*
+[       ]*23:[  ]+66 66 66 90[  ]+xchg[        ]+%ax,%ax
+[       ]*27:[  ]+66 66 90[     ]+xchg[        ]+%ax,%ax
+[       ]*2a:[  ]+66 66 90[     ]+xchg[        ]+%ax,%ax
+[       ]*2d:[  ]+66 66 90[     ]+xchg[        ]+%ax,%ax
+
+0+30 <nop12>:
+[       ]*30:[  ]+90[   ]+nop[         ]*
+[       ]*31:[  ]+90[   ]+nop[         ]*
+[       ]*32:[  ]+90[   ]+nop[         ]*
+[       ]*33:[  ]+90[   ]+nop[         ]*
+[       ]*34:[  ]+66 66 66 90[  ]+xchg[        ]+%ax,%ax
+[       ]*38:[  ]+66 66 66 90[  ]+xchg[        ]+%ax,%ax
+[       ]*3c:[  ]+66 66 66 90[  ]+xchg[        ]+%ax,%ax
+
+0+40 <nop11>:
+[       ]*40:[  ]+90[   ]+nop[         ]*
+[       ]*41:[  ]+90[   ]+nop[         ]*
+[       ]*42:[  ]+90[   ]+nop[         ]*
+[       ]*43:[  ]+90[   ]+nop[         ]*
+[       ]*44:[  ]+90[   ]+nop[         ]*
+[       ]*45:[  ]+66 66 66 90[  ]+xchg[        ]+%ax,%ax
+[       ]*49:[  ]+66 66 66 90[  ]+xchg[        ]+%ax,%ax
+[       ]*4d:[  ]+66 66 90[     ]+xchg[        ]+%ax,%ax
+
+0+50 <nop10>:
+[       ]*50:[  ]+90[   ]+nop[         ]*
+[       ]*51:[  ]+90[   ]+nop[         ]*
+[       ]*52:[  ]+90[   ]+nop[         ]*
+[       ]*53:[  ]+90[   ]+nop[         ]*
+[       ]*54:[  ]+90[   ]+nop[         ]*
+[       ]*55:[  ]+90[   ]+nop[         ]*
+[       ]*56:[  ]+66 66 66 90[  ]+xchg[        ]+%ax,%ax
+[       ]*5a:[  ]+66 66 90[     ]+xchg[        ]+%ax,%ax
+[       ]*5d:[  ]+66 66 90[     ]+xchg[        ]+%ax,%ax
+
+0+60 <nop9>:
+[       ]*60:[  ]+90[   ]+nop[         ]*
+[       ]*61:[  ]+90[   ]+nop[         ]*
+[       ]*62:[  ]+90[   ]+nop[         ]*
+[       ]*63:[  ]+90[   ]+nop[         ]*
+[       ]*64:[  ]+90[   ]+nop[         ]*
+[       ]*65:[  ]+90[   ]+nop[         ]*
+[       ]*66:[  ]+90[   ]+nop[         ]*
+[       ]*67:[  ]+66 66 90[     ]+xchg[        ]+%ax,%ax
+[       ]*6a:[  ]+66 66 90[     ]+xchg[        ]+%ax,%ax
+[       ]*6d:[  ]+66 66 90[     ]+xchg[        ]+%ax,%ax
+
+0+70 <nop8>:
+[       ]*70:[  ]+90[   ]+nop[         ]*
+[       ]*71:[  ]+90[   ]+nop[         ]*
+[       ]*72:[  ]+90[   ]+nop[         ]*
+[       ]*73:[  ]+90[   ]+nop[         ]*
+[       ]*74:[  ]+90[   ]+nop[         ]*
+[       ]*75:[  ]+90[   ]+nop[         ]*
+[       ]*76:[  ]+90[   ]+nop[         ]*
+[       ]*77:[  ]+90[   ]+nop[         ]*
+[       ]*78:[  ]+66 66 66 90[  ]+xchg[        ]+%ax,%ax
+[       ]*7c:[  ]+66 66 66 90[  ]+xchg[        ]+%ax,%ax
+
+0+80 <nop7>:
+[       ]*80:[  ]+90[   ]+nop[         ]*
+[       ]*81:[  ]+90[   ]+nop[         ]*
+[       ]*82:[  ]+90[   ]+nop[         ]*
+[       ]*83:[  ]+90[   ]+nop[         ]*
+[       ]*84:[  ]+90[   ]+nop[         ]*
+[       ]*85:[  ]+90[   ]+nop[         ]*
+[       ]*86:[  ]+90[   ]+nop[         ]*
+[       ]*87:[  ]+90[   ]+nop[         ]*
+[       ]*88:[  ]+90[   ]+nop[         ]*
+[       ]*89:[  ]+66 66 66 90[  ]+xchg[        ]+%ax,%ax
+[       ]*8d:[  ]+66 66 90[     ]+xchg[        ]+%ax,%ax
+
+0+90 <nop6>:
+[       ]*90:[  ]+90[   ]+nop[         ]*
+[       ]*91:[  ]+90[   ]+nop[         ]*
+[       ]*92:[  ]+90[   ]+nop[         ]*
+[       ]*93:[  ]+90[   ]+nop[         ]*
+[       ]*94:[  ]+90[   ]+nop[         ]*
+[       ]*95:[  ]+90[   ]+nop[         ]*
+[       ]*96:[  ]+90[   ]+nop[         ]*
+[       ]*97:[  ]+90[   ]+nop[         ]*
+[       ]*98:[  ]+90[   ]+nop[         ]*
+[       ]*99:[  ]+90[   ]+nop[         ]*
+[       ]*9a:[  ]+66 66 90[     ]+xchg[        ]+%ax,%ax
+[       ]*9d:[  ]+66 66 90[     ]+xchg[        ]+%ax,%ax
+
+0+a0 <nop5>:
+[       ]*a0:[  ]+90[   ]+nop[         ]*
+[       ]*a1:[  ]+90[   ]+nop[         ]*
+[       ]*a2:[  ]+90[   ]+nop[         ]*
+[       ]*a3:[  ]+90[   ]+nop[         ]*
+[       ]*a4:[  ]+90[   ]+nop[         ]*
+[       ]*a5:[  ]+90[   ]+nop[         ]*
+[       ]*a6:[  ]+90[   ]+nop[         ]*
+[       ]*a7:[  ]+90[   ]+nop[         ]*
+[       ]*a8:[  ]+90[   ]+nop[         ]*
+[       ]*a9:[  ]+90[   ]+nop[         ]*
+[       ]*aa:[  ]+90[   ]+nop[         ]*
+[       ]*ab:[  ]+66 66 90[     ]+xchg[        ]+%ax,%ax
+[       ]*ae:[  ]+66 90[        ]+xchg[        ]+%ax,%ax
+
+0+b0 <nop4>:
+[       ]*b0:[  ]+90[   ]+nop[         ]*
+[       ]*b1:[  ]+90[   ]+nop[         ]*
+[       ]*b2:[  ]+90[   ]+nop[         ]*
+[       ]*b3:[  ]+90[   ]+nop[         ]*
+[       ]*b4:[  ]+90[   ]+nop[         ]*
+[       ]*b5:[  ]+90[   ]+nop[         ]*
+[       ]*b6:[  ]+90[   ]+nop[         ]*
+[       ]*b7:[  ]+90[   ]+nop[         ]*
+[       ]*b8:[  ]+90[   ]+nop[         ]*
+[       ]*b9:[  ]+90[   ]+nop[         ]*
+[       ]*ba:[  ]+90[   ]+nop[         ]*
+[       ]*bb:[  ]+90[   ]+nop[         ]*
+[       ]*bc:[  ]+66 66 66 90[  ]+xchg[        ]+%ax,%ax
+
+0+c0 <nop3>:
+[       ]*c0:[  ]+90[   ]+nop[         ]*
+[       ]*c1:[  ]+90[   ]+nop[         ]*
+[       ]*c2:[  ]+90[   ]+nop[         ]*
+[       ]*c3:[  ]+90[   ]+nop[         ]*
+[       ]*c4:[  ]+90[   ]+nop[         ]*
+[       ]*c5:[  ]+90[   ]+nop[         ]*
+[       ]*c6:[  ]+90[   ]+nop[         ]*
+[       ]*c7:[  ]+90[   ]+nop[         ]*
+[       ]*c8:[  ]+90[   ]+nop[         ]*
+[       ]*c9:[  ]+90[   ]+nop[         ]*
+[       ]*ca:[  ]+90[   ]+nop[         ]*
+[       ]*cb:[  ]+90[   ]+nop[         ]*
+[       ]*cc:[  ]+90[   ]+nop[         ]*
+[       ]*cd:[  ]+66 66 90[     ]+xchg[        ]+%ax,%ax
+
+0+d0 <nop2>:
+[       ]*d0:[  ]+90[   ]+nop[         ]*
+[       ]*d1:[  ]+90[   ]+nop[         ]*
+[       ]*d2:[  ]+90[   ]+nop[         ]*
+[       ]*d3:[  ]+90[   ]+nop[         ]*
+[       ]*d4:[  ]+90[   ]+nop[         ]*
+[       ]*d5:[  ]+90[   ]+nop[         ]*
+[       ]*d6:[  ]+90[   ]+nop[         ]*
+[       ]*d7:[  ]+90[   ]+nop[         ]*
+[       ]*d8:[  ]+90[   ]+nop[         ]*
+[       ]*d9:[  ]+90[   ]+nop[         ]*
+[       ]*da:[  ]+90[   ]+nop[         ]*
+[       ]*db:[  ]+90[   ]+nop[         ]*
+[       ]*dc:[  ]+90[   ]+nop[         ]*
+[       ]*dd:[  ]+90[   ]+nop[         ]*
+[       ]*de:[  ]+66 90[        ]+xchg[        ]+%ax,%ax
+#pass
diff --git a/gas/testsuite/gas/i386/x86-64-nops-1-merom.d b/gas/testsuite/gas/i386/x86-64-nops-1-merom.d
new file mode 100644 (file)
index 0000000..2aa49ae
--- /dev/null
@@ -0,0 +1,156 @@
+#as: -mtune=merom
+#source: x86-64-nops-1.s
+#objdump: -drw
+#name: x86-64 -mtune=merom nops 1
+
+.*: +file format .*
+
+Disassembly of section .text:
+
+0+ <nop15>:
+[       ]*0:[   ]+90[   ]+nop[         ]*
+[       ]*1:[   ]+66 66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00[         ]+nopw[        ]+%cs:0x0\(%rax,%rax,1\)
+
+0+10 <nop14>:
+[       ]*10:[  ]+90[   ]+nop[         ]*
+[       ]*11:[  ]+90[   ]+nop[         ]*
+[       ]*12:[  ]+66 66 66 66 66 2e 0f 1f 84 00 00 00 00 00[    ]+nopw[        ]+%cs:0x0\(%rax,%rax,1\)
+
+0+20 <nop13>:
+[       ]*20:[  ]+90[   ]+nop[         ]*
+[       ]*21:[  ]+90[   ]+nop[         ]*
+[       ]*22:[  ]+90[   ]+nop[         ]*
+[       ]*23:[  ]+66 66 66 66 2e 0f 1f 84 00 00 00 00 00[       ]+nopw[        ]+%cs:0x0\(%rax,%rax,1\)
+
+0+30 <nop12>:
+[       ]*30:[  ]+90[   ]+nop[         ]*
+[       ]*31:[  ]+90[   ]+nop[         ]*
+[       ]*32:[  ]+90[   ]+nop[         ]*
+[       ]*33:[  ]+90[   ]+nop[         ]*
+[       ]*34:[  ]+66 66 66 2e 0f 1f 84 00 00 00 00 00[  ]+nopw[        ]+%cs:0x0\(%rax,%rax,1\)
+
+0+40 <nop11>:
+[       ]*40:[  ]+90[   ]+nop[         ]*
+[       ]*41:[  ]+90[   ]+nop[         ]*
+[       ]*42:[  ]+90[   ]+nop[         ]*
+[       ]*43:[  ]+90[   ]+nop[         ]*
+[       ]*44:[  ]+90[   ]+nop[         ]*
+[       ]*45:[  ]+66 66 2e 0f 1f 84 00 00 00 00 00[     ]+nopw[        ]+%cs:0x0\(%rax,%rax,1\)
+
+0+50 <nop10>:
+[       ]*50:[  ]+90[   ]+nop[         ]*
+[       ]*51:[  ]+90[   ]+nop[         ]*
+[       ]*52:[  ]+90[   ]+nop[         ]*
+[       ]*53:[  ]+90[   ]+nop[         ]*
+[       ]*54:[  ]+90[   ]+nop[         ]*
+[       ]*55:[  ]+90[   ]+nop[         ]*
+[       ]*56:[  ]+66 2e 0f 1f 84 00 00 00 00 00[        ]+nopw[        ]+%cs:0x0\(%rax,%rax,1\)
+
+0+60 <nop9>:
+[       ]*60:[  ]+90[   ]+nop[         ]*
+[       ]*61:[  ]+90[   ]+nop[         ]*
+[       ]*62:[  ]+90[   ]+nop[         ]*
+[       ]*63:[  ]+90[   ]+nop[         ]*
+[       ]*64:[  ]+90[   ]+nop[         ]*
+[       ]*65:[  ]+90[   ]+nop[         ]*
+[       ]*66:[  ]+90[   ]+nop[         ]*
+[       ]*67:[  ]+66 0f 1f 84 00 00 00 00 00[   ]+nopw[        ]+0x0\(%rax,%rax,1\)
+
+0+70 <nop8>:
+[       ]*70:[  ]+90[   ]+nop[         ]*
+[       ]*71:[  ]+90[   ]+nop[         ]*
+[       ]*72:[  ]+90[   ]+nop[         ]*
+[       ]*73:[  ]+90[   ]+nop[         ]*
+[       ]*74:[  ]+90[   ]+nop[         ]*
+[       ]*75:[  ]+90[   ]+nop[         ]*
+[       ]*76:[  ]+90[   ]+nop[         ]*
+[       ]*77:[  ]+90[   ]+nop[         ]*
+[       ]*78:[  ]+0f 1f 84 00 00 00 00 00[      ]+nopl[        ]+0x0\(%rax,%rax,1\)
+
+0+80 <nop7>:
+[       ]*80:[  ]+90[   ]+nop[         ]*
+[       ]*81:[  ]+90[   ]+nop[         ]*
+[       ]*82:[  ]+90[   ]+nop[         ]*
+[       ]*83:[  ]+90[   ]+nop[         ]*
+[       ]*84:[  ]+90[   ]+nop[         ]*
+[       ]*85:[  ]+90[   ]+nop[         ]*
+[       ]*86:[  ]+90[   ]+nop[         ]*
+[       ]*87:[  ]+90[   ]+nop[         ]*
+[       ]*88:[  ]+90[   ]+nop[         ]*
+[       ]*89:[  ]+0f 1f 80 00 00 00 00[         ]+nopl[        ]+0x0\(%rax\)
+
+0+90 <nop6>:
+[       ]*90:[  ]+90[   ]+nop[         ]*
+[       ]*91:[  ]+90[   ]+nop[         ]*
+[       ]*92:[  ]+90[   ]+nop[         ]*
+[       ]*93:[  ]+90[   ]+nop[         ]*
+[       ]*94:[  ]+90[   ]+nop[         ]*
+[       ]*95:[  ]+90[   ]+nop[         ]*
+[       ]*96:[  ]+90[   ]+nop[         ]*
+[       ]*97:[  ]+90[   ]+nop[         ]*
+[       ]*98:[  ]+90[   ]+nop[         ]*
+[       ]*99:[  ]+90[   ]+nop[         ]*
+[       ]*9a:[  ]+66 0f 1f 44 00 00[    ]+nopw[        ]+0x0\(%rax,%rax,1\)
+
+0+a0 <nop5>:
+[       ]*a0:[  ]+90[   ]+nop[         ]*
+[       ]*a1:[  ]+90[   ]+nop[         ]*
+[       ]*a2:[  ]+90[   ]+nop[         ]*
+[       ]*a3:[  ]+90[   ]+nop[         ]*
+[       ]*a4:[  ]+90[   ]+nop[         ]*
+[       ]*a5:[  ]+90[   ]+nop[         ]*
+[       ]*a6:[  ]+90[   ]+nop[         ]*
+[       ]*a7:[  ]+90[   ]+nop[         ]*
+[       ]*a8:[  ]+90[   ]+nop[         ]*
+[       ]*a9:[  ]+90[   ]+nop[         ]*
+[       ]*aa:[  ]+90[   ]+nop[         ]*
+[       ]*ab:[  ]+0f 1f 44 00 00[       ]+nopl[        ]+0x0\(%rax,%rax,1\)
+
+0+b0 <nop4>:
+[       ]*b0:[  ]+90[   ]+nop[         ]*
+[       ]*b1:[  ]+90[   ]+nop[         ]*
+[       ]*b2:[  ]+90[   ]+nop[         ]*
+[       ]*b3:[  ]+90[   ]+nop[         ]*
+[       ]*b4:[  ]+90[   ]+nop[         ]*
+[       ]*b5:[  ]+90[   ]+nop[         ]*
+[       ]*b6:[  ]+90[   ]+nop[         ]*
+[       ]*b7:[  ]+90[   ]+nop[         ]*
+[       ]*b8:[  ]+90[   ]+nop[         ]*
+[       ]*b9:[  ]+90[   ]+nop[         ]*
+[       ]*ba:[  ]+90[   ]+nop[         ]*
+[       ]*bb:[  ]+90[   ]+nop[         ]*
+[       ]*bc:[  ]+0f 1f 40 00[  ]+nopl[        ]+0x0\(%rax\)
+
+0+c0 <nop3>:
+[       ]*c0:[  ]+90[   ]+nop[         ]*
+[       ]*c1:[  ]+90[   ]+nop[         ]*
+[       ]*c2:[  ]+90[   ]+nop[         ]*
+[       ]*c3:[  ]+90[   ]+nop[         ]*
+[       ]*c4:[  ]+90[   ]+nop[         ]*
+[       ]*c5:[  ]+90[   ]+nop[         ]*
+[       ]*c6:[  ]+90[   ]+nop[         ]*
+[       ]*c7:[  ]+90[   ]+nop[         ]*
+[       ]*c8:[  ]+90[   ]+nop[         ]*
+[       ]*c9:[  ]+90[   ]+nop[         ]*
+[       ]*ca:[  ]+90[   ]+nop[         ]*
+[       ]*cb:[  ]+90[   ]+nop[         ]*
+[       ]*cc:[  ]+90[   ]+nop[         ]*
+[       ]*cd:[  ]+0f 1f 00[     ]+nopl[        ]+\(%rax\)
+
+0+d0 <nop2>:
+[       ]*d0:[  ]+90[   ]+nop[         ]*
+[       ]*d1:[  ]+90[   ]+nop[         ]*
+[       ]*d2:[  ]+90[   ]+nop[         ]*
+[       ]*d3:[  ]+90[   ]+nop[         ]*
+[       ]*d4:[  ]+90[   ]+nop[         ]*
+[       ]*d5:[  ]+90[   ]+nop[         ]*
+[       ]*d6:[  ]+90[   ]+nop[         ]*
+[       ]*d7:[  ]+90[   ]+nop[         ]*
+[       ]*d8:[  ]+90[   ]+nop[         ]*
+[       ]*d9:[  ]+90[   ]+nop[         ]*
+[       ]*da:[  ]+90[   ]+nop[         ]*
+[       ]*db:[  ]+90[   ]+nop[         ]*
+[       ]*dc:[  ]+90[   ]+nop[         ]*
+[       ]*dd:[  ]+90[   ]+nop[         ]*
+[       ]*de:[  ]+66 90[        ]+xchg[        ]+%ax,%ax
+#pass
diff --git a/gas/testsuite/gas/i386/x86-64-nops-1-nocona.d b/gas/testsuite/gas/i386/x86-64-nops-1-nocona.d
new file mode 100644 (file)
index 0000000..c1886b6
--- /dev/null
@@ -0,0 +1,161 @@
+#as: -mtune=nocona
+#source: x86-64-nops-1.s
+#objdump: -drw
+#name: x86-64 -mtune=nocona nops 1
+
+.*: +file format .*
+
+Disassembly of section .text:
+
+0+ <nop15>:
+[       ]*0:[   ]+90[   ]+nop[         ]*
+[       ]*1:[   ]+0f 1f 80 00 00 00 00[         ]+nopl[        ]+0x0\(%rax\)
+[       ]*8:[   ]+0f 1f 84 00 00 00 00 00[      ]+nopl[        ]+0x0\(%rax,%rax,1\)
+
+0+10 <nop14>:
+[       ]*10:[  ]+90[   ]+nop[         ]*
+[       ]*11:[  ]+90[   ]+nop[         ]*
+[       ]*12:[  ]+0f 1f 80 00 00 00 00[         ]+nopl[        ]+0x0\(%rax\)
+[       ]*19:[  ]+0f 1f 80 00 00 00 00[         ]+nopl[        ]+0x0\(%rax\)
+
+0+20 <nop13>:
+[       ]*20:[  ]+90[   ]+nop[         ]*
+[       ]*21:[  ]+90[   ]+nop[         ]*
+[       ]*22:[  ]+90[   ]+nop[         ]*
+[       ]*23:[  ]+66 0f 1f 44 00 00[    ]+nopw[        ]+0x0\(%rax,%rax,1\)
+[       ]*29:[  ]+0f 1f 80 00 00 00 00[         ]+nopl[        ]+0x0\(%rax\)
+
+0+30 <nop12>:
+[       ]*30:[  ]+90[   ]+nop[         ]*
+[       ]*31:[  ]+90[   ]+nop[         ]*
+[       ]*32:[  ]+90[   ]+nop[         ]*
+[       ]*33:[  ]+90[   ]+nop[         ]*
+[       ]*34:[  ]+66 0f 1f 44 00 00[    ]+nopw[        ]+0x0\(%rax,%rax,1\)
+[       ]*3a:[  ]+66 0f 1f 44 00 00[    ]+nopw[        ]+0x0\(%rax,%rax,1\)
+
+0+40 <nop11>:
+[       ]*40:[  ]+90[   ]+nop[         ]*
+[       ]*41:[  ]+90[   ]+nop[         ]*
+[       ]*42:[  ]+90[   ]+nop[         ]*
+[       ]*43:[  ]+90[   ]+nop[         ]*
+[       ]*44:[  ]+90[   ]+nop[         ]*
+[       ]*45:[  ]+0f 1f 44 00 00[       ]+nopl[        ]+0x0\(%rax,%rax,1\)
+[       ]*4a:[  ]+66 0f 1f 44 00 00[    ]+nopw[        ]+0x0\(%rax,%rax,1\)
+
+0+50 <nop10>:
+[       ]*50:[  ]+90[   ]+nop[         ]*
+[       ]*51:[  ]+90[   ]+nop[         ]*
+[       ]*52:[  ]+90[   ]+nop[         ]*
+[       ]*53:[  ]+90[   ]+nop[         ]*
+[       ]*54:[  ]+90[   ]+nop[         ]*
+[       ]*55:[  ]+90[   ]+nop[         ]*
+[       ]*56:[  ]+66 2e 0f 1f 84 00 00 00 00 00[        ]+nopw[        ]+%cs:0x0\(%rax,%rax,1\)
+
+0+60 <nop9>:
+[       ]*60:[  ]+90[   ]+nop[         ]*
+[       ]*61:[  ]+90[   ]+nop[         ]*
+[       ]*62:[  ]+90[   ]+nop[         ]*
+[       ]*63:[  ]+90[   ]+nop[         ]*
+[       ]*64:[  ]+90[   ]+nop[         ]*
+[       ]*65:[  ]+90[   ]+nop[         ]*
+[       ]*66:[  ]+90[   ]+nop[         ]*
+[       ]*67:[  ]+66 0f 1f 84 00 00 00 00 00[   ]+nopw[        ]+0x0\(%rax,%rax,1\)
+
+0+70 <nop8>:
+[       ]*70:[  ]+90[   ]+nop[         ]*
+[       ]*71:[  ]+90[   ]+nop[         ]*
+[       ]*72:[  ]+90[   ]+nop[         ]*
+[       ]*73:[  ]+90[   ]+nop[         ]*
+[       ]*74:[  ]+90[   ]+nop[         ]*
+[       ]*75:[  ]+90[   ]+nop[         ]*
+[       ]*76:[  ]+90[   ]+nop[         ]*
+[       ]*77:[  ]+90[   ]+nop[         ]*
+[       ]*78:[  ]+0f 1f 84 00 00 00 00 00[      ]+nopl[        ]+0x0\(%rax,%rax,1\)
+
+0+80 <nop7>:
+[       ]*80:[  ]+90[   ]+nop[         ]*
+[       ]*81:[  ]+90[   ]+nop[         ]*
+[       ]*82:[  ]+90[   ]+nop[         ]*
+[       ]*83:[  ]+90[   ]+nop[         ]*
+[       ]*84:[  ]+90[   ]+nop[         ]*
+[       ]*85:[  ]+90[   ]+nop[         ]*
+[       ]*86:[  ]+90[   ]+nop[         ]*
+[       ]*87:[  ]+90[   ]+nop[         ]*
+[       ]*88:[  ]+90[   ]+nop[         ]*
+[       ]*89:[  ]+0f 1f 80 00 00 00 00[         ]+nopl[        ]+0x0\(%rax\)
+
+0+90 <nop6>:
+[       ]*90:[  ]+90[   ]+nop[         ]*
+[       ]*91:[  ]+90[   ]+nop[         ]*
+[       ]*92:[  ]+90[   ]+nop[         ]*
+[       ]*93:[  ]+90[   ]+nop[         ]*
+[       ]*94:[  ]+90[   ]+nop[         ]*
+[       ]*95:[  ]+90[   ]+nop[         ]*
+[       ]*96:[  ]+90[   ]+nop[         ]*
+[       ]*97:[  ]+90[   ]+nop[         ]*
+[       ]*98:[  ]+90[   ]+nop[         ]*
+[       ]*99:[  ]+90[   ]+nop[         ]*
+[       ]*9a:[  ]+66 0f 1f 44 00 00[    ]+nopw[        ]+0x0\(%rax,%rax,1\)
+
+0+a0 <nop5>:
+[       ]*a0:[  ]+90[   ]+nop[         ]*
+[       ]*a1:[  ]+90[   ]+nop[         ]*
+[       ]*a2:[  ]+90[   ]+nop[         ]*
+[       ]*a3:[  ]+90[   ]+nop[         ]*
+[       ]*a4:[  ]+90[   ]+nop[         ]*
+[       ]*a5:[  ]+90[   ]+nop[         ]*
+[       ]*a6:[  ]+90[   ]+nop[         ]*
+[       ]*a7:[  ]+90[   ]+nop[         ]*
+[       ]*a8:[  ]+90[   ]+nop[         ]*
+[       ]*a9:[  ]+90[   ]+nop[         ]*
+[       ]*aa:[  ]+90[   ]+nop[         ]*
+[       ]*ab:[  ]+0f 1f 44 00 00[       ]+nopl[        ]+0x0\(%rax,%rax,1\)
+
+0+b0 <nop4>:
+[       ]*b0:[  ]+90[   ]+nop[         ]*
+[       ]*b1:[  ]+90[   ]+nop[         ]*
+[       ]*b2:[  ]+90[   ]+nop[         ]*
+[       ]*b3:[  ]+90[   ]+nop[         ]*
+[       ]*b4:[  ]+90[   ]+nop[         ]*
+[       ]*b5:[  ]+90[   ]+nop[         ]*
+[       ]*b6:[  ]+90[   ]+nop[         ]*
+[       ]*b7:[  ]+90[   ]+nop[         ]*
+[       ]*b8:[  ]+90[   ]+nop[         ]*
+[       ]*b9:[  ]+90[   ]+nop[         ]*
+[       ]*ba:[  ]+90[   ]+nop[         ]*
+[       ]*bb:[  ]+90[   ]+nop[         ]*
+[       ]*bc:[  ]+0f 1f 40 00[  ]+nopl[        ]+0x0\(%rax\)
+
+0+c0 <nop3>:
+[       ]*c0:[  ]+90[   ]+nop[         ]*
+[       ]*c1:[  ]+90[   ]+nop[         ]*
+[       ]*c2:[  ]+90[   ]+nop[         ]*
+[       ]*c3:[  ]+90[   ]+nop[         ]*
+[       ]*c4:[  ]+90[   ]+nop[         ]*
+[       ]*c5:[  ]+90[   ]+nop[         ]*
+[       ]*c6:[  ]+90[   ]+nop[         ]*
+[       ]*c7:[  ]+90[   ]+nop[         ]*
+[       ]*c8:[  ]+90[   ]+nop[         ]*
+[       ]*c9:[  ]+90[   ]+nop[         ]*
+[       ]*ca:[  ]+90[   ]+nop[         ]*
+[       ]*cb:[  ]+90[   ]+nop[         ]*
+[       ]*cc:[  ]+90[   ]+nop[         ]*
+[       ]*cd:[  ]+0f 1f 00[     ]+nopl[        ]+\(%rax\)
+
+0+d0 <nop2>:
+[       ]*d0:[  ]+90[   ]+nop[         ]*
+[       ]*d1:[  ]+90[   ]+nop[         ]*
+[       ]*d2:[  ]+90[   ]+nop[         ]*
+[       ]*d3:[  ]+90[   ]+nop[         ]*
+[       ]*d4:[  ]+90[   ]+nop[         ]*
+[       ]*d5:[  ]+90[   ]+nop[         ]*
+[       ]*d6:[  ]+90[   ]+nop[         ]*
+[       ]*d7:[  ]+90[   ]+nop[         ]*
+[       ]*d8:[  ]+90[   ]+nop[         ]*
+[       ]*d9:[  ]+90[   ]+nop[         ]*
+[       ]*da:[  ]+90[   ]+nop[         ]*
+[       ]*db:[  ]+90[   ]+nop[         ]*
+[       ]*dc:[  ]+90[   ]+nop[         ]*
+[       ]*dd:[  ]+90[   ]+nop[         ]*
+[       ]*de:[  ]+66 90[        ]+xchg[        ]+%ax,%ax
+#pass
diff --git a/gas/testsuite/gas/i386/x86-64-nops-1.d b/gas/testsuite/gas/i386/x86-64-nops-1.d
new file mode 100644 (file)
index 0000000..a6d8188
--- /dev/null
@@ -0,0 +1,160 @@
+#source: x86-64-nops-1.s
+#objdump: -drw
+#name: x86-64 nops 1
+
+.*: +file format .*
+
+Disassembly of section .text:
+
+0+ <nop15>:
+[       ]*0:[   ]+90[   ]+nop[         ]*
+[       ]*1:[   ]+0f 1f 80 00 00 00 00[         ]+nopl[        ]+0x0\(%rax\)
+[       ]*8:[   ]+0f 1f 84 00 00 00 00 00[      ]+nopl[        ]+0x0\(%rax,%rax,1\)
+
+0+10 <nop14>:
+[       ]*10:[  ]+90[   ]+nop[         ]*
+[       ]*11:[  ]+90[   ]+nop[         ]*
+[       ]*12:[  ]+0f 1f 80 00 00 00 00[         ]+nopl[        ]+0x0\(%rax\)
+[       ]*19:[  ]+0f 1f 80 00 00 00 00[         ]+nopl[        ]+0x0\(%rax\)
+
+0+20 <nop13>:
+[       ]*20:[  ]+90[   ]+nop[         ]*
+[       ]*21:[  ]+90[   ]+nop[         ]*
+[       ]*22:[  ]+90[   ]+nop[         ]*
+[       ]*23:[  ]+66 0f 1f 44 00 00[    ]+nopw[        ]+0x0\(%rax,%rax,1\)
+[       ]*29:[  ]+0f 1f 80 00 00 00 00[         ]+nopl[        ]+0x0\(%rax\)
+
+0+30 <nop12>:
+[       ]*30:[  ]+90[   ]+nop[         ]*
+[       ]*31:[  ]+90[   ]+nop[         ]*
+[       ]*32:[  ]+90[   ]+nop[         ]*
+[       ]*33:[  ]+90[   ]+nop[         ]*
+[       ]*34:[  ]+66 0f 1f 44 00 00[    ]+nopw[        ]+0x0\(%rax,%rax,1\)
+[       ]*3a:[  ]+66 0f 1f 44 00 00[    ]+nopw[        ]+0x0\(%rax,%rax,1\)
+
+0+40 <nop11>:
+[       ]*40:[  ]+90[   ]+nop[         ]*
+[       ]*41:[  ]+90[   ]+nop[         ]*
+[       ]*42:[  ]+90[   ]+nop[         ]*
+[       ]*43:[  ]+90[   ]+nop[         ]*
+[       ]*44:[  ]+90[   ]+nop[         ]*
+[       ]*45:[  ]+0f 1f 44 00 00[       ]+nopl[        ]+0x0\(%rax,%rax,1\)
+[       ]*4a:[  ]+66 0f 1f 44 00 00[    ]+nopw[        ]+0x0\(%rax,%rax,1\)
+
+0+50 <nop10>:
+[       ]*50:[  ]+90[   ]+nop[         ]*
+[       ]*51:[  ]+90[   ]+nop[         ]*
+[       ]*52:[  ]+90[   ]+nop[         ]*
+[       ]*53:[  ]+90[   ]+nop[         ]*
+[       ]*54:[  ]+90[   ]+nop[         ]*
+[       ]*55:[  ]+90[   ]+nop[         ]*
+[       ]*56:[  ]+66 2e 0f 1f 84 00 00 00 00 00[        ]+nopw[        ]+%cs:0x0\(%rax,%rax,1\)
+
+0+60 <nop9>:
+[       ]*60:[  ]+90[   ]+nop[         ]*
+[       ]*61:[  ]+90[   ]+nop[         ]*
+[       ]*62:[  ]+90[   ]+nop[         ]*
+[       ]*63:[  ]+90[   ]+nop[         ]*
+[       ]*64:[  ]+90[   ]+nop[         ]*
+[       ]*65:[  ]+90[   ]+nop[         ]*
+[       ]*66:[  ]+90[   ]+nop[         ]*
+[       ]*67:[  ]+66 0f 1f 84 00 00 00 00 00[   ]+nopw[        ]+0x0\(%rax,%rax,1\)
+
+0+70 <nop8>:
+[       ]*70:[  ]+90[   ]+nop[         ]*
+[       ]*71:[  ]+90[   ]+nop[         ]*
+[       ]*72:[  ]+90[   ]+nop[         ]*
+[       ]*73:[  ]+90[   ]+nop[         ]*
+[       ]*74:[  ]+90[   ]+nop[         ]*
+[       ]*75:[  ]+90[   ]+nop[         ]*
+[       ]*76:[  ]+90[   ]+nop[         ]*
+[       ]*77:[  ]+90[   ]+nop[         ]*
+[       ]*78:[  ]+0f 1f 84 00 00 00 00 00[      ]+nopl[        ]+0x0\(%rax,%rax,1\)
+
+0+80 <nop7>:
+[       ]*80:[  ]+90[   ]+nop[         ]*
+[       ]*81:[  ]+90[   ]+nop[         ]*
+[       ]*82:[  ]+90[   ]+nop[         ]*
+[       ]*83:[  ]+90[   ]+nop[         ]*
+[       ]*84:[  ]+90[   ]+nop[         ]*
+[       ]*85:[  ]+90[   ]+nop[         ]*
+[       ]*86:[  ]+90[   ]+nop[         ]*
+[       ]*87:[  ]+90[   ]+nop[         ]*
+[       ]*88:[  ]+90[   ]+nop[         ]*
+[       ]*89:[  ]+0f 1f 80 00 00 00 00[         ]+nopl[        ]+0x0\(%rax\)
+
+0+90 <nop6>:
+[       ]*90:[  ]+90[   ]+nop[         ]*
+[       ]*91:[  ]+90[   ]+nop[         ]*
+[       ]*92:[  ]+90[   ]+nop[         ]*
+[       ]*93:[  ]+90[   ]+nop[         ]*
+[       ]*94:[  ]+90[   ]+nop[         ]*
+[       ]*95:[  ]+90[   ]+nop[         ]*
+[       ]*96:[  ]+90[   ]+nop[         ]*
+[       ]*97:[  ]+90[   ]+nop[         ]*
+[       ]*98:[  ]+90[   ]+nop[         ]*
+[       ]*99:[  ]+90[   ]+nop[         ]*
+[       ]*9a:[  ]+66 0f 1f 44 00 00[    ]+nopw[        ]+0x0\(%rax,%rax,1\)
+
+0+a0 <nop5>:
+[       ]*a0:[  ]+90[   ]+nop[         ]*
+[       ]*a1:[  ]+90[   ]+nop[         ]*
+[       ]*a2:[  ]+90[   ]+nop[         ]*
+[       ]*a3:[  ]+90[   ]+nop[         ]*
+[       ]*a4:[  ]+90[   ]+nop[         ]*
+[       ]*a5:[  ]+90[   ]+nop[         ]*
+[       ]*a6:[  ]+90[   ]+nop[         ]*
+[       ]*a7:[  ]+90[   ]+nop[         ]*
+[       ]*a8:[  ]+90[   ]+nop[         ]*
+[       ]*a9:[  ]+90[   ]+nop[         ]*
+[       ]*aa:[  ]+90[   ]+nop[         ]*
+[       ]*ab:[  ]+0f 1f 44 00 00[       ]+nopl[        ]+0x0\(%rax,%rax,1\)
+
+0+b0 <nop4>:
+[       ]*b0:[  ]+90[   ]+nop[         ]*
+[       ]*b1:[  ]+90[   ]+nop[         ]*
+[       ]*b2:[  ]+90[   ]+nop[         ]*
+[       ]*b3:[  ]+90[   ]+nop[         ]*
+[       ]*b4:[  ]+90[   ]+nop[         ]*
+[       ]*b5:[  ]+90[   ]+nop[         ]*
+[       ]*b6:[  ]+90[   ]+nop[         ]*
+[       ]*b7:[  ]+90[   ]+nop[         ]*
+[       ]*b8:[  ]+90[   ]+nop[         ]*
+[       ]*b9:[  ]+90[   ]+nop[         ]*
+[       ]*ba:[  ]+90[   ]+nop[         ]*
+[       ]*bb:[  ]+90[   ]+nop[         ]*
+[       ]*bc:[  ]+0f 1f 40 00[  ]+nopl[        ]+0x0\(%rax\)
+
+0+c0 <nop3>:
+[       ]*c0:[  ]+90[   ]+nop[         ]*
+[       ]*c1:[  ]+90[   ]+nop[         ]*
+[       ]*c2:[  ]+90[   ]+nop[         ]*
+[       ]*c3:[  ]+90[   ]+nop[         ]*
+[       ]*c4:[  ]+90[   ]+nop[         ]*
+[       ]*c5:[  ]+90[   ]+nop[         ]*
+[       ]*c6:[  ]+90[   ]+nop[         ]*
+[       ]*c7:[  ]+90[   ]+nop[         ]*
+[       ]*c8:[  ]+90[   ]+nop[         ]*
+[       ]*c9:[  ]+90[   ]+nop[         ]*
+[       ]*ca:[  ]+90[   ]+nop[         ]*
+[       ]*cb:[  ]+90[   ]+nop[         ]*
+[       ]*cc:[  ]+90[   ]+nop[         ]*
+[       ]*cd:[  ]+0f 1f 00[     ]+nopl[        ]+\(%rax\)
+
+0+d0 <nop2>:
+[       ]*d0:[  ]+90[   ]+nop[         ]*
+[       ]*d1:[  ]+90[   ]+nop[         ]*
+[       ]*d2:[  ]+90[   ]+nop[         ]*
+[       ]*d3:[  ]+90[   ]+nop[         ]*
+[       ]*d4:[  ]+90[   ]+nop[         ]*
+[       ]*d5:[  ]+90[   ]+nop[         ]*
+[       ]*d6:[  ]+90[   ]+nop[         ]*
+[       ]*d7:[  ]+90[   ]+nop[         ]*
+[       ]*d8:[  ]+90[   ]+nop[         ]*
+[       ]*d9:[  ]+90[   ]+nop[         ]*
+[       ]*da:[  ]+90[   ]+nop[         ]*
+[       ]*db:[  ]+90[   ]+nop[         ]*
+[       ]*dc:[  ]+90[   ]+nop[         ]*
+[       ]*dd:[  ]+90[   ]+nop[         ]*
+[       ]*de:[  ]+66 90[        ]+xchg[        ]+%ax,%ax
+#pass
diff --git a/gas/testsuite/gas/i386/x86-64-nops-1.s b/gas/testsuite/gas/i386/x86-64-nops-1.s
new file mode 100644 (file)
index 0000000..a4fd769
--- /dev/null
@@ -0,0 +1,147 @@
+       .text
+nop15:
+       nop
+       .p2align 4
+
+nop14:
+       nop
+       nop
+       .p2align 4
+
+nop13:
+       nop
+       nop
+       nop
+       .p2align 4
+
+nop12:
+       nop
+       nop
+       nop
+       nop
+       .p2align 4
+
+nop11:
+       nop
+       nop
+       nop
+       nop
+       nop
+       .p2align 4
+
+nop10:
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       .p2align 4
+
+nop9:
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       .p2align 4
+
+nop8:
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       .p2align 4
+
+nop7:
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       .p2align 4
+
+nop6:
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       .p2align 4
+
+nop5:
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       .p2align 4
+
+nop4:
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       .p2align 4
+
+nop3:
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       .p2align 4
+
+nop2:
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       nop
+       .p2align 4