This is the mail archive of the binutils-cvs@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[binutils-gdb] x86: Rewrite NOP generation for fill and alignment


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=3ae729d5a4f63740ed9a778960b17c2912b0bbdd

commit 3ae729d5a4f63740ed9a778960b17c2912b0bbdd
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Wed Mar 7 04:18:45 2018 -0800

    x86: Rewrite NOP generation for fill and alignment
    
    Rewrite NOP generation for fill and code alignment by:
    
    1. Add a 11-byte NOP with another 0x66 prefix.
    2. Remove the multi-byte NOP entries which consist of 2 instructions.
    3. Select proper NOPs based on ISA and processor tuning.
    4. Generate multiple NOPs with the longer NOPs first followed by the
    shorter NOP.
    5. Use jump for larger NOP padding:
       a. > 8 bytes (2 NOPs) in 16-bit mode.
       b. > 14 bytes (2 NOPs) for older processors.
       c. > 77 bytes (7 NOPs) for newer processors.
    6. Update MAX_MEM_FOR_RS_ALIGN_CODE to 4095.
    
    	PR gas/22874
    	* config/tc-i386.c (f32_5): Removed.
    	(f32_8): Likewise.
    	(f32_9): Likewise.
    	(f32_10): Likewise.
    	(f32_11): Likewise.
    	(f32_12): Likewise.
    	(f32_13): Likewise.
    	(f32_14): Likewise.
    	(f16_5): Likewise.
    	(f16_6): Likewise.
    	(f16_7): Likewise.
    	(f16_8): Likewise.
    	(jump_31): Likewise.
    	(alt64_11): Likewise.
    	(alt64_patt): Likewise.
    	(jump_disp8): New.
    	(jump32_disp32): Likewise.
    	(jump16_disp32): Likewise.
    	(alt_11): Likewise.
    	(f32_patt): Updated.
    	(f16_patt): Likewise.
    	(alt_patt): Add alt_11.
    	(i386_align_code): Merged with ...
    	(i386_generate_nops): This.  Rewritten.
    	(fits_in_imm7): Moved before i386_generate_nops.
    	(fits_in_imm31): Likewise.
    	* config/tc-i386.h (MAX_MEM_FOR_RS_ALIGN_CODE): Updated to
    	4095.
    	(i386_align_code): Removed.
    	(HANDLE_ALIGN): Rewritten with i386_generate_nops.
    	* doc/as.texinfo: Update limits of control byte for x86 .nops
    	directive.
    	* testsuite/gas/i386/i386.exp: Run nops-7 and x86-64-nops-7.
    	* gas/testsuite/gas/i386/noavx-3.l: Updated.
    	* gas/testsuite/gas/i386/nop-1.d: Likewise.
    	* gas/testsuite/gas/i386/nop-1.s: Likewise.
    	* gas/testsuite/gas/i386/nop-2.d: Likewise.
    	* gas/testsuite/gas/i386/nop-2.s: Likewise.
    	* gas/testsuite/gas/i386/nop-3.d: Likewise.
    	* gas/testsuite/gas/i386/nop-4.d: Likewise.
    	* gas/testsuite/gas/i386/nop-5.d: Likewise.
    	* gas/testsuite/gas/i386/nop-5.s: Likewise.
    	* gas/testsuite/gas/i386/nop-6.d: Likewise.
    	* gas/testsuite/gas/i386/nop-bad-1.l: Likewise.
    	* gas/testsuite/gas/i386/nops-1-core2.d: Likewise.
    	* gas/testsuite/gas/i386/nops-1-i386-i686.d: Likewise.
    	* gas/testsuite/gas/i386/nops-1-i386.d: Likewise.
    	* gas/testsuite/gas/i386/nops-1-i686.d: Likewise.
    	* gas/testsuite/gas/i386/nops-1-k8.d: Likewise.
    	* gas/testsuite/gas/i386/nops-1.d: Likewise.
    	* gas/testsuite/gas/i386/nops-2-core2.d: Likewise.
    	* gas/testsuite/gas/i386/nops-2-i386.d: Likewise.
    	* gas/testsuite/gas/i386/nops-2.d: Likewise.
    	* gas/testsuite/gas/i386/nops-3-i386.d: Likewise.
    	* gas/testsuite/gas/i386/nops-3-i686.d: Likewise.
    	* gas/testsuite/gas/i386/nops-3.d: Likewise.
    	* gas/testsuite/gas/i386/nops-4-i386.d: Likewise.
    	* gas/testsuite/gas/i386/nops-4-i686.d: Likewise.
    	* gas/testsuite/gas/i386/nops-4.d: Likewise.
    	* gas/testsuite/gas/i386/nops-4a-i686.d: Likewise.
    	* gas/testsuite/gas/i386/nops-5-i686.d: Likewise.
    	* gas/testsuite/gas/i386/nops-5.d: Likewise.
    	* gas/testsuite/gas/i386/nops-6.d: Likewise.
    	* gas/testsuite/gas/i386/nops16-1.d: Likewise.
    	* gas/testsuite/gas/i386/x86-64-nop-1.d: Likewise.
    	* gas/testsuite/gas/i386/x86-64-nop-2.d: Likewise.
    	* gas/testsuite/gas/i386/x86-64-nop-5.d: Likewise.
    	* gas/testsuite/gas/i386/x86-64-nops-1-core2.d: Likewise.
    	* gas/testsuite/gas/i386/x86-64-nops-1-g64.d: Likewise.
    	* gas/testsuite/gas/i386/x86-64-nops-1-k8.d: Likewise.
    	* gas/testsuite/gas/i386/x86-64-nops-1-pentium.d: Likewise.
    	* gas/testsuite/gas/i386/x86-64-nops-1.d: Likewise.
    	* gas/testsuite/gas/i386/x86-64-nops-2.d: Likewise.
    	* gas/testsuite/gas/i386/x86-64-nops-3.d: Likewise.
    	* gas/testsuite/gas/i386/x86-64-nops-4-core2.d: Likewise.
    	* gas/testsuite/gas/i386/x86-64-nops-4-k8.d: Likewise.
    	* gas/testsuite/gas/i386/x86-64-nops-4.d: Likewise.
    	* gas/testsuite/gas/i386/x86-64-nops-5-k8.d: Likewise.
    	* gas/testsuite/gas/i386/x86-64-nops-5.d: Likewise.
    	* gas/testsuite/gas/i386/ilp32/x86-64-nops-1-core2.d: Likewise.
    	* gas/testsuite/gas/i386/ilp32/x86-64-nops-1-k8.d: Likewise.
    	* gas/testsuite/gas/i386/ilp32/x86-64-nops-1-pentium.d: Likewise.
    	* gas/testsuite/gas/i386/ilp32/x86-64-nops-1.d: Likewise.
    	* gas/testsuite/gas/i386/ilp32/x86-64-nops-2.d: Likewise.
    	* gas/testsuite/gas/i386/ilp32/x86-64-nops-3.d: Likewise.
    	* gas/testsuite/gas/i386/ilp32/x86-64-nops-4-core2.d: Likewise.
    	* gas/testsuite/gas/i386/ilp32/x86-64-nops-4-k8.d: Likewise.
    	* gas/testsuite/gas/i386/ilp32/x86-64-nops-4.d: Likewise.
    	* gas/testsuite/gas/i386/ilp32/x86-64-nops-5-k8.d: Likewise.
    	* gas/testsuite/gas/i386/ilp32/x86-64-nops-5.d: Likewise.
    	* gas/testsuite/gas/i386/nops-7.d: New file.
    	* gas/testsuite/gas/i386/nops-7.s: Likewise.
    	* gas/testsuite/gas/i386/x86-64-nops-7.d: Likewise.

Diff:
---
 gas/ChangeLog                                      |  97 ++++
 gas/config/tc-i386.c                               | 280 +++++-----
 gas/config/tc-i386.h                               |  21 +-
 gas/doc/as.texinfo                                 |   7 +-
 gas/testsuite/gas/i386/i386.exp                    |   2 +
 gas/testsuite/gas/i386/ilp32/x86-64-nops-1-core2.d |  19 +-
 gas/testsuite/gas/i386/ilp32/x86-64-nops-1-k8.d    |  19 +-
 .../gas/i386/ilp32/x86-64-nops-1-pentium.d         | 120 +---
 gas/testsuite/gas/i386/ilp32/x86-64-nops-1.d       |  19 +-
 gas/testsuite/gas/i386/ilp32/x86-64-nops-2.d       |  23 +-
 gas/testsuite/gas/i386/ilp32/x86-64-nops-3.d       |  11 +-
 gas/testsuite/gas/i386/ilp32/x86-64-nops-4-core2.d |  83 ++-
 gas/testsuite/gas/i386/ilp32/x86-64-nops-4-k8.d    |  83 ++-
 gas/testsuite/gas/i386/ilp32/x86-64-nops-4.d       |  83 ++-
 gas/testsuite/gas/i386/ilp32/x86-64-nops-5-k8.d    |  44 +-
 gas/testsuite/gas/i386/ilp32/x86-64-nops-5.d       |  44 +-
 gas/testsuite/gas/i386/noavx-3.l                   |   6 +-
 gas/testsuite/gas/i386/nop-1.d                     |  44 +-
 gas/testsuite/gas/i386/nop-1.s                     |   4 +
 gas/testsuite/gas/i386/nop-2.d                     |  54 +-
 gas/testsuite/gas/i386/nop-2.s                     |   4 +
 gas/testsuite/gas/i386/nop-3.d                     |   2 +-
 gas/testsuite/gas/i386/nop-4.d                     |   3 +-
 gas/testsuite/gas/i386/nop-5.d                     |   5 +-
 gas/testsuite/gas/i386/nop-5.s                     |   2 +-
 gas/testsuite/gas/i386/nop-6.d                     |   1 +
 gas/testsuite/gas/i386/nop-bad-1.l                 |   2 +-
 gas/testsuite/gas/i386/nops-1-core2.d              |  19 +-
 gas/testsuite/gas/i386/nops-1-i386-i686.d          | 270 +++++----
 gas/testsuite/gas/i386/nops-1-i386.d               | 270 +++++----
 gas/testsuite/gas/i386/nops-1-i686.d               |  36 +-
 gas/testsuite/gas/i386/nops-1-k8.d                 |  19 +-
 gas/testsuite/gas/i386/nops-1.d                    | 270 +++++----
 gas/testsuite/gas/i386/nops-2-core2.d              | 276 +++++-----
 gas/testsuite/gas/i386/nops-2-i386.d               | 276 +++++-----
 gas/testsuite/gas/i386/nops-2.d                    | 276 +++++-----
 gas/testsuite/gas/i386/nops-3-i386.d               |  34 +-
 gas/testsuite/gas/i386/nops-3-i686.d               |  34 +-
 gas/testsuite/gas/i386/nops-3.d                    |  34 +-
 gas/testsuite/gas/i386/nops-4-i386.d               | 399 ++------------
 gas/testsuite/gas/i386/nops-4-i686.d               | 399 ++------------
 gas/testsuite/gas/i386/nops-4.d                    | 399 ++------------
 gas/testsuite/gas/i386/nops-4a-i686.d              |  83 ++-
 gas/testsuite/gas/i386/nops-5-i686.d               |  44 +-
 gas/testsuite/gas/i386/nops-5.d                    |  44 +-
 gas/testsuite/gas/i386/nops-6.d                    |   6 +-
 gas/testsuite/gas/i386/nops-7.d                    | 171 ++++++
 gas/testsuite/gas/i386/nops-7.s                    |  18 +
 gas/testsuite/gas/i386/nops16-1.d                  | 603 +++++----------------
 gas/testsuite/gas/i386/x86-64-nop-1.d              |  23 +-
 gas/testsuite/gas/i386/x86-64-nop-2.d              |  54 +-
 gas/testsuite/gas/i386/x86-64-nop-5.d              |   3 +-
 gas/testsuite/gas/i386/x86-64-nops-1-core2.d       |  19 +-
 gas/testsuite/gas/i386/x86-64-nops-1-g64.d         |  19 +-
 gas/testsuite/gas/i386/x86-64-nops-1-k8.d          |  19 +-
 gas/testsuite/gas/i386/x86-64-nops-1-pentium.d     | 120 +---
 gas/testsuite/gas/i386/x86-64-nops-1.d             |  19 +-
 gas/testsuite/gas/i386/x86-64-nops-2.d             |  23 +-
 gas/testsuite/gas/i386/x86-64-nops-3.d             |  11 +-
 gas/testsuite/gas/i386/x86-64-nops-4-core2.d       |  83 ++-
 gas/testsuite/gas/i386/x86-64-nops-4-k8.d          |  83 ++-
 gas/testsuite/gas/i386/x86-64-nops-4.d             |  83 ++-
 gas/testsuite/gas/i386/x86-64-nops-5-k8.d          |  44 +-
 gas/testsuite/gas/i386/x86-64-nops-5.d             |  44 +-
 gas/testsuite/gas/i386/x86-64-nops-7.d             | 120 ++++
 65 files changed, 2429 insertions(+), 3400 deletions(-)

diff --git a/gas/ChangeLog b/gas/ChangeLog
index ed7c5cd..765270d 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,3 +1,100 @@
+2018-03-07  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR gas/22874
+	* config/tc-i386.c (f32_5): Removed.
+	(f32_8): Likewise.
+	(f32_9): Likewise.
+	(f32_10): Likewise.
+	(f32_11): Likewise.
+	(f32_12): Likewise.
+	(f32_13): Likewise.
+	(f32_14): Likewise.
+	(f16_5): Likewise.
+	(f16_6): Likewise.
+	(f16_7): Likewise.
+	(f16_8): Likewise.
+	(jump_31): Likewise.
+	(alt64_11): Likewise.
+	(alt64_patt): Likewise.
+	(jump_disp8): New.
+	(jump32_disp32): Likewise.
+	(jump16_disp32): Likewise.
+	(alt_11): Likewise.
+	(f32_patt): Updated.
+	(f16_patt): Likewise.
+	(alt_patt): Add alt_11.
+	(i386_align_code): Merged with ...
+	(i386_generate_nops): This.  Rewritten.
+	(fits_in_imm7): Moved before i386_generate_nops.
+	(fits_in_imm31): Likewise.
+	* config/tc-i386.h (MAX_MEM_FOR_RS_ALIGN_CODE): Updated to
+	4095.
+	(i386_align_code): Removed.
+	(HANDLE_ALIGN): Rewritten with i386_generate_nops.
+	* doc/as.texinfo: Update limits of control byte for x86 .nops
+	directive.
+	* testsuite/gas/i386/i386.exp: Run nops-7 and x86-64-nops-7.
+	* gas/testsuite/gas/i386/noavx-3.l: Updated.
+	* gas/testsuite/gas/i386/nop-1.d: Likewise.
+	* gas/testsuite/gas/i386/nop-1.s: Likewise.
+	* gas/testsuite/gas/i386/nop-2.d: Likewise.
+	* gas/testsuite/gas/i386/nop-2.s: Likewise.
+	* gas/testsuite/gas/i386/nop-3.d: Likewise.
+	* gas/testsuite/gas/i386/nop-4.d: Likewise.
+	* gas/testsuite/gas/i386/nop-5.d: Likewise.
+	* gas/testsuite/gas/i386/nop-5.s: Likewise.
+	* gas/testsuite/gas/i386/nop-6.d: Likewise.
+	* gas/testsuite/gas/i386/nop-bad-1.l: Likewise.
+	* gas/testsuite/gas/i386/nops-1-core2.d: Likewise.
+	* gas/testsuite/gas/i386/nops-1-i386-i686.d: Likewise.
+	* gas/testsuite/gas/i386/nops-1-i386.d: Likewise.
+	* gas/testsuite/gas/i386/nops-1-i686.d: Likewise.
+	* gas/testsuite/gas/i386/nops-1-k8.d: Likewise.
+	* gas/testsuite/gas/i386/nops-1.d: Likewise.
+	* gas/testsuite/gas/i386/nops-2-core2.d: Likewise.
+	* gas/testsuite/gas/i386/nops-2-i386.d: Likewise.
+	* gas/testsuite/gas/i386/nops-2.d: Likewise.
+	* gas/testsuite/gas/i386/nops-3-i386.d: Likewise.
+	* gas/testsuite/gas/i386/nops-3-i686.d: Likewise.
+	* gas/testsuite/gas/i386/nops-3.d: Likewise.
+	* gas/testsuite/gas/i386/nops-4-i386.d: Likewise.
+	* gas/testsuite/gas/i386/nops-4-i686.d: Likewise.
+	* gas/testsuite/gas/i386/nops-4.d: Likewise.
+	* gas/testsuite/gas/i386/nops-4a-i686.d: Likewise.
+	* gas/testsuite/gas/i386/nops-5-i686.d: Likewise.
+	* gas/testsuite/gas/i386/nops-5.d: Likewise.
+	* gas/testsuite/gas/i386/nops-6.d: Likewise.
+	* gas/testsuite/gas/i386/nops16-1.d: Likewise.
+	* gas/testsuite/gas/i386/x86-64-nop-1.d: Likewise.
+	* gas/testsuite/gas/i386/x86-64-nop-2.d: Likewise.
+	* gas/testsuite/gas/i386/x86-64-nop-5.d: Likewise.
+	* gas/testsuite/gas/i386/x86-64-nops-1-core2.d: Likewise.
+	* gas/testsuite/gas/i386/x86-64-nops-1-g64.d: Likewise.
+	* gas/testsuite/gas/i386/x86-64-nops-1-k8.d: Likewise.
+	* gas/testsuite/gas/i386/x86-64-nops-1-pentium.d: Likewise.
+	* gas/testsuite/gas/i386/x86-64-nops-1.d: Likewise.
+	* gas/testsuite/gas/i386/x86-64-nops-2.d: Likewise.
+	* gas/testsuite/gas/i386/x86-64-nops-3.d: Likewise.
+	* gas/testsuite/gas/i386/x86-64-nops-4-core2.d: Likewise.
+	* gas/testsuite/gas/i386/x86-64-nops-4-k8.d: Likewise.
+	* gas/testsuite/gas/i386/x86-64-nops-4.d: Likewise.
+	* gas/testsuite/gas/i386/x86-64-nops-5-k8.d: Likewise.
+	* gas/testsuite/gas/i386/x86-64-nops-5.d: Likewise.
+	* gas/testsuite/gas/i386/ilp32/x86-64-nops-1-core2.d: Likewise.
+	* gas/testsuite/gas/i386/ilp32/x86-64-nops-1-k8.d: Likewise.
+	* gas/testsuite/gas/i386/ilp32/x86-64-nops-1-pentium.d: Likewise.
+	* gas/testsuite/gas/i386/ilp32/x86-64-nops-1.d: Likewise.
+	* gas/testsuite/gas/i386/ilp32/x86-64-nops-2.d: Likewise.
+	* gas/testsuite/gas/i386/ilp32/x86-64-nops-3.d: Likewise.
+	* gas/testsuite/gas/i386/ilp32/x86-64-nops-4-core2.d: Likewise.
+	* gas/testsuite/gas/i386/ilp32/x86-64-nops-4-k8.d: Likewise.
+	* gas/testsuite/gas/i386/ilp32/x86-64-nops-4.d: Likewise.
+	* gas/testsuite/gas/i386/ilp32/x86-64-nops-5-k8.d: Likewise.
+	* gas/testsuite/gas/i386/ilp32/x86-64-nops-5.d: Likewise.
+	* gas/testsuite/gas/i386/nops-7.d: New file.
+	* gas/testsuite/gas/i386/nops-7.s: Likewise.
+	* gas/testsuite/gas/i386/x86-64-nops-7.d: Likewise.
+
 2018-03-07  Alan Modra  <amodra@gmail.com>
 
 	* testsuite/gas/ppc/aix.exp: Run for rs6000 too.
diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c
index 4174d19..a10a36c 100644
--- a/gas/config/tc-i386.c
+++ b/gas/config/tc-i386.c
@@ -1179,63 +1179,27 @@ static const unsigned char f32_3[] =
   {0x8d,0x76,0x00};			/* leal 0(%esi),%esi	*/
 static const unsigned char f32_4[] =
   {0x8d,0x74,0x26,0x00};		/* leal 0(%esi,1),%esi	*/
-static const unsigned char f32_5[] =
-  {0x90,				/* nop			*/
-   0x8d,0x74,0x26,0x00};		/* leal 0(%esi,1),%esi	*/
 static const unsigned char f32_6[] =
   {0x8d,0xb6,0x00,0x00,0x00,0x00};	/* leal 0L(%esi),%esi	*/
 static const unsigned char f32_7[] =
   {0x8d,0xb4,0x26,0x00,0x00,0x00,0x00};	/* leal 0L(%esi,1),%esi */
-static const unsigned char f32_8[] =
-  {0x90,				/* nop			*/
-   0x8d,0xb4,0x26,0x00,0x00,0x00,0x00};	/* leal 0L(%esi,1),%esi */
-static const unsigned char f32_9[] =
-  {0x89,0xf6,				/* movl %esi,%esi	*/
-   0x8d,0xbc,0x27,0x00,0x00,0x00,0x00};	/* leal 0L(%edi,1),%edi */
-static const unsigned char f32_10[] =
-  {0x8d,0x76,0x00,			/* leal 0(%esi),%esi	*/
-   0x8d,0xbc,0x27,0x00,0x00,0x00,0x00};	/* leal 0L(%edi,1),%edi */
-static const unsigned char f32_11[] =
-  {0x8d,0x74,0x26,0x00,			/* leal 0(%esi,1),%esi	*/
-   0x8d,0xbc,0x27,0x00,0x00,0x00,0x00};	/* leal 0L(%edi,1),%edi */
-static const unsigned char f32_12[] =
-  {0x8d,0xb6,0x00,0x00,0x00,0x00,	/* leal 0L(%esi),%esi	*/
-   0x8d,0xbf,0x00,0x00,0x00,0x00};	/* leal 0L(%edi),%edi	*/
-static const unsigned char f32_13[] =
-  {0x8d,0xb6,0x00,0x00,0x00,0x00,	/* leal 0L(%esi),%esi	*/
-   0x8d,0xbc,0x27,0x00,0x00,0x00,0x00};	/* leal 0L(%edi,1),%edi */
-static const unsigned char f32_14[] =
-  {0x8d,0xb4,0x26,0x00,0x00,0x00,0x00,	/* leal 0L(%esi,1),%esi */
-   0x8d,0xbc,0x27,0x00,0x00,0x00,0x00};	/* leal 0L(%edi,1),%edi */
 static const unsigned char f16_3[] =
-  {0x8d,0x74,0x00};			/* lea 0(%esi),%esi	*/
+  {0x8d,0x74,0x00};			/* lea 0(%si),%si	*/
 static const unsigned char f16_4[] =
-  {0x8d,0xb4,0x00,0x00};		/* lea 0w(%si),%si	*/
-static const unsigned char f16_5[] =
-  {0x90,				/* nop			*/
-   0x8d,0xb4,0x00,0x00};		/* lea 0w(%si),%si	*/
-static const unsigned char f16_6[] =
-  {0x89,0xf6,				/* mov %si,%si		*/
-   0x8d,0xbd,0x00,0x00};		/* lea 0w(%di),%di	*/
-static const unsigned char f16_7[] =
-  {0x8d,0x74,0x00,			/* lea 0(%si),%si	*/
-   0x8d,0xbd,0x00,0x00};		/* lea 0w(%di),%di	*/
-static const unsigned char f16_8[] =
-  {0x8d,0xb4,0x00,0x00,			/* lea 0w(%si),%si	*/
-   0x8d,0xbd,0x00,0x00};		/* lea 0w(%di),%di	*/
-static const unsigned char jump_31[] =
-  {0xeb,0x1d,0x90,0x90,0x90,0x90,0x90,	/* jmp .+31; lotsa nops	*/
-   0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,
-   0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90,
-   0x90,0x90,0x90,0x90,0x90,0x90,0x90,0x90};
+  {0x8d,0xb4,0x00,0x00};		/* lea 0W(%si),%si	*/
+static const unsigned char jump_disp8[] =
+  {0xeb};				/* jmp disp8	       */
+static const unsigned char jump32_disp32[] =
+  {0xe9};				/* jmp disp32	       */
+static const unsigned char jump16_disp32[] =
+  {0x66,0xe9};				/* jmp disp32	       */
 /* 32-bit NOPs patterns.  */
 static const unsigned char *const f32_patt[] = {
-  f32_1, f32_2, f32_3, f32_4, f32_5, f32_6, f32_7, f32_8,
-  f32_9, f32_10, f32_11, f32_12, f32_13, f32_14
+  f32_1, f32_2, f32_3, f32_4, NULL, f32_6, f32_7
 };
 /* 16-bit NOPs patterns.  */
 static const unsigned char *const f16_patt[] = {
-  f32_1, f32_2, f16_3, f16_4, f16_5, f16_6, f16_7, f16_8
+  f32_1, f32_2, f16_3, f16_4
 };
 /* nopl (%[re]ax) */
 static const unsigned char alt_3[] =
@@ -1261,18 +1225,13 @@ static const unsigned char alt_9[] =
 /* nopw %cs:0L(%[re]ax,%[re]ax,1) */
 static const unsigned char alt_10[] =
   {0x66,0x2e,0x0f,0x1f,0x84,0x00,0x00,0x00,0x00,0x00};
+/* data16 nopw %cs:0L(%eax,%eax,1) */
+static const unsigned char alt_11[] =
+  {0x66,0x66,0x2e,0x0f,0x1f,0x84,0x00,0x00,0x00,0x00,0x00};
 /* 32-bit and 64-bit NOPs patterns.  */
 static const unsigned char *const alt_patt[] = {
   f32_1, f32_2, alt_3, alt_4, alt_5, alt_6, alt_7, alt_8,
-  alt_9, alt_10
-};
-/* 64-bit only: nopw %cs:0L(%eax,%eax,1) */
-static const unsigned char alt64_11[] =
-  {0x67,0x66,0x2e,0x0f,0x1f,0x84,0x00,0x00,0x00,0x00,0x00};
-/* 64-bit NOPs patterns.  */
-static const unsigned char *const alt64_patt[] = {
-  f32_1, f32_2, alt_3, alt_4, alt_5, alt_6, alt_7, alt_8,
-  alt_9, alt_10, alt64_11
+  alt_9, alt_10, alt_11
 };
 
 /* Genenerate COUNT bytes of NOPs to WHERE from PATT with the maximum
@@ -1283,63 +1242,73 @@ i386_output_nops (char *where, const unsigned char *const *patt,
 		  int count, int max_single_nop_size)
 
 {
-  while (count > max_single_nop_size)
+  /* Place the longer NOP first.  */
+  int last;
+  int offset;
+  const unsigned char *nops =  patt[max_single_nop_size - 1];
+
+  /* Use the smaller one if the requsted one isn't available.  */
+  if (nops == NULL)
+    {
+      max_single_nop_size--;
+      nops = patt[max_single_nop_size - 1];
+    }
+
+  last = count % max_single_nop_size;
+
+  count -= last;
+  for (offset = 0; offset < count; offset += max_single_nop_size)
+    memcpy (where + offset, nops, max_single_nop_size);
+
+  if (last)
     {
-      count -= max_single_nop_size;
-      memcpy (where + count, patt[max_single_nop_size - 1],
-	      max_single_nop_size);
+      nops = patt[last - 1];
+      if (nops == NULL)
+	{
+	  /* Use the smaller one plus one-byte NOP if the needed one
+	     isn't available.  */
+	  last--;
+	  nops = patt[last - 1];
+	  memcpy (where + offset, nops, last);
+	  where[offset + last] = *patt[0];
+	}
+      else
+	memcpy (where + offset, nops, last);
     }
+}
 
-  if (count)
-    memcpy (where, patt[count - 1], count);
+static INLINE int
+fits_in_imm7 (offsetT num)
+{
+  return (num & 0x7f) == num;
 }
 
+static INLINE int
+fits_in_imm31 (offsetT num)
+{
+  return (num & 0x7fffffff) == num;
+}
 
 /* Genenerate COUNT bytes of NOPs to WHERE with the maximum size of a
    single NOP instruction LIMIT.  */
 
 void
-i386_generate_nops (fragS *f, char *where, offsetT count, int limit)
+i386_generate_nops (fragS *fragP, char *where, offsetT count, int limit)
 {
-  /* Output NOPs for .nop directive.  */
+  const unsigned char *const *patt = NULL;
   int max_single_nop_size;
-  const unsigned char *const *patt;
+  /* Maximum number of NOPs before switching to jump over NOPs.  */
+  int max_number_of_nops;
 
-  if (flag_code == CODE_16BIT)
-    {
-      patt = f16_patt;
-      max_single_nop_size = sizeof (f16_patt) / sizeof (f16_patt[0]);
-    }
-  else if (flag_code == CODE_64BIT)
-    {
-      patt = alt64_patt;
-      max_single_nop_size = sizeof (alt64_patt) / sizeof (alt64_patt[0]);
-    }
-  else
-    {
-      patt = alt_patt;
-      max_single_nop_size = sizeof (alt_patt) / sizeof (alt_patt[0]);
-    }
-  if (limit == 0)
-    limit = max_single_nop_size;
-  else if (limit > max_single_nop_size)
+  switch (fragP->fr_type)
     {
-      as_bad_where (f->fr_file, f->fr_line,
-		    _("invalide single nop size: %d (expect within [0, %d])"),
-		    limit, max_single_nop_size);
+    case rs_fill_nop:
+    case rs_align_code:
+      break;
+    default:
       return;
     }
 
-  i386_output_nops (where, patt, count, limit);
-}
-
-void
-i386_align_code (fragS *fragP, int count)
-{
-  /* Only align for at least a positive non-zero boundary. */
-  if (count <= 0 || count > MAX_MEM_FOR_RS_ALIGN_CODE)
-    return;
-
   /* We need to decide which NOP sequence to use for 32bit and
      64bit. When -mtune= is used:
 
@@ -1356,21 +1325,13 @@ i386_align_code (fragS *fragP, int count)
 
   if (flag_code == CODE_16BIT)
     {
-      if (count > 8)
-	{
-	  memcpy (fragP->fr_literal + fragP->fr_fix,
-		  jump_31, count);
-	  /* Adjust jump offset.  */
-	  fragP->fr_literal[fragP->fr_fix + 1] = count - 2;
-	}
-      else
-	memcpy (fragP->fr_literal + fragP->fr_fix,
-		f16_patt[count - 1], count);
+      patt = f16_patt;
+      max_single_nop_size = sizeof (f16_patt) / sizeof (f16_patt[0]);
+      /* Limit number of NOPs to 2 in 16-bit mode.  */
+      max_number_of_nops = 2;
     }
   else
     {
-      const unsigned char *const *patt = NULL;
-
       if (fragP->tc_frag_data.isa == PROCESSOR_UNKNOWN)
 	{
 	  /* PROCESSOR_UNKNOWN means that all ISAs may be used.  */
@@ -1461,38 +1422,79 @@ i386_align_code (fragS *fragP, int count)
 
       if (patt == f32_patt)
 	{
-	  /* If the padding is less than 15 bytes, we use the normal
-	     ones.  Otherwise, we use a jump instruction and adjust
-	     its offset.   */
-	  int limit;
+	  max_single_nop_size = sizeof (f32_patt) / sizeof (f32_patt[0]);
+	  /* Limit number of NOPs to 2 for older processors.  */
+	  max_number_of_nops = 2;
+	}
+      else
+	{
+	  max_single_nop_size = sizeof (alt_patt) / sizeof (alt_patt[0]);
+	  /* Limit number of NOPs to 7 for newer processors.  */
+	  max_number_of_nops = 7;
+	}
+    }
 
-	  /* For 64bit, the limit is 3 bytes.  */
-	  if (flag_code == CODE_64BIT
-	      && fragP->tc_frag_data.isa_flags.bitfield.cpulm)
-	    limit = 3;
-	  else
-	    limit = 15;
-	  if (count < limit)
-	    memcpy (fragP->fr_literal + fragP->fr_fix,
-		    patt[count - 1], count);
-	  else
-	    {
-	      memcpy (fragP->fr_literal + fragP->fr_fix,
-		      jump_31, count);
-	      /* Adjust jump offset.  */
-	      fragP->fr_literal[fragP->fr_fix + 1] = count - 2;
-	    }
+  if (limit == 0)
+    limit = max_single_nop_size;
+
+  if (fragP->fr_type == rs_fill_nop)
+    {
+      /* Output NOPs for .nop directive.  */
+      if (limit > max_single_nop_size)
+	{
+	  as_bad_where (fragP->fr_file, fragP->fr_line,
+			_("invalid single nop size: %d "
+			  "(expect within [0, %d])"),
+			limit, max_single_nop_size);
+	  return;
+	}
+    }
+  else
+    fragP->fr_var = count;
+
+  if ((count / max_single_nop_size) > max_number_of_nops)
+    {
+      /* Generate jump over NOPs.  */
+      offsetT disp = count - 2;
+      if (fits_in_imm7 (disp))
+	{
+	  /* Use "jmp disp8" if possible.  */
+	  count = disp;
+	  where[0] = jump_disp8[0];
+	  where[1] = count;
+	  where += 2;
 	}
       else
 	{
-	  /* Maximum length of an instruction is 10 byte.  If the
-	     padding is greater than 10 bytes and we don't use jump,
-	     we have to break it into smaller pieces.  */
-	  i386_output_nops (fragP->fr_literal + fragP->fr_fix,
-			    patt, count, 10);
+	  unsigned int size_of_jump;
+
+	  if (flag_code == CODE_16BIT)
+	    {
+	      where[0] = jump16_disp32[0];
+	      where[1] = jump16_disp32[1];
+	      size_of_jump = 2;
+	    }
+	  else
+	    {
+	      where[0] = jump32_disp32[0];
+	      size_of_jump = 1;
+	    }
+
+	  count -= size_of_jump + 4;
+	  if (!fits_in_imm31 (count))
+	    {
+	      as_bad_where (fragP->fr_file, fragP->fr_line,
+			    _("jump over nop padding out of range"));
+	      return;
+	    }
+
+	  md_number_to_chars (where + size_of_jump, count, 4);
+	  where += size_of_jump + 4;
 	}
     }
-  fragP->fr_var = count;
+
+  /* Generate multiple NOPs.  */
+  i386_output_nops (where, patt, count, limit);
 }
 
 static INLINE int
@@ -2204,18 +2206,6 @@ fits_in_imm4 (offsetT num)
   return (num & 0xf) == num;
 }
 
-static INLINE int
-fits_in_imm7 (offsetT num)
-{
-  return (num & 0x7f) == num;
-}
-
-static INLINE int
-fits_in_imm31 (offsetT num)
-{
-  return (num & 0x7fffffff) == num;
-}
-
 static i386_operand_type
 smallest_imm_type (offsetT num)
 {
diff --git a/gas/config/tc-i386.h b/gas/config/tc-i386.h
index 1250bc2..c7c53be 100644
--- a/gas/config/tc-i386.h
+++ b/gas/config/tc-i386.h
@@ -205,15 +205,7 @@ if ((n)									\
     goto around;							\
   }
 
-#define MAX_MEM_FOR_RS_ALIGN_CODE  31
-
-extern void i386_align_code (fragS *, int);
-
-#define HANDLE_ALIGN(fragP)						\
-if (fragP->fr_type == rs_align_code) 					\
-  i386_align_code (fragP, (fragP->fr_next->fr_address			\
-			   - fragP->fr_address				\
-			   - fragP->fr_fix));
+#define MAX_MEM_FOR_RS_ALIGN_CODE 4095
 
 void i386_print_statistics (FILE *);
 #define tc_print_statistics i386_print_statistics
@@ -286,6 +278,17 @@ extern void i386_generate_nops (fragS *, char *, offsetT, int);
 #define md_generate_nops(frag, where, amount, control) \
   i386_generate_nops ((frag), (where), (amount), (control))
 
+#define HANDLE_ALIGN(fragP)						\
+if (fragP->fr_type == rs_align_code) 					\
+  {									\
+    offsetT __count = (fragP->fr_next->fr_address			\
+		       - fragP->fr_address				\
+		       - fragP->fr_fix);				\
+    if (__count > 0 && __count <= MAX_MEM_FOR_RS_ALIGN_CODE)		\
+      md_generate_nops (fragP, fragP->fr_literal + fragP->fr_fix,	\
+			__count, 0);					\
+  }
+
 /* We want .cfi_* pseudo-ops for generating unwind info.  */
 #define TARGET_USE_CFIPOP 1
 
diff --git a/gas/doc/as.texinfo b/gas/doc/as.texinfo
index f56515e..43286e9 100644
--- a/gas/doc/as.texinfo
+++ b/gas/doc/as.texinfo
@@ -6212,9 +6212,10 @@ zero.
 
 Note: For Intel 80386 and AMD x86-64 targets, @var{control} specifies
 the size limit of a no-op instruction.  The valid values of @var{control}
-are between 0 and 8 for 16-bit mode, between 0 and 10 for 32-bit mode,
-between 0 and 11 for 64-bit mode.  When 0 is used, the no-op instruction
-size limit is set to the maximum supported size.
+are between 0 and 4 in 16-bit mode, between 0 and 7 when tuning for
+older processors in 32-bit mode, between 0 and 11 in 64-bit mode or when
+tuning for newer processors in 32-bit mode.  When 0 is used, the no-op
+instruction size limit is set to the maximum supported size.
 
 @node Octa
 @section @code{.octa @var{bignums}}
diff --git a/gas/testsuite/gas/i386/i386.exp b/gas/testsuite/gas/i386/i386.exp
index fc3c243..8ee3586 100644
--- a/gas/testsuite/gas/i386/i386.exp
+++ b/gas/testsuite/gas/i386/i386.exp
@@ -117,6 +117,7 @@ if [expr ([istarget "i*86-*-*"] ||  [istarget "x86_64-*-*"]) && [gas_32_check]]
     run_dump_test "nops-5"
     run_dump_test "nops-5-i686"
     run_dump_test "nops-6"
+    run_dump_test "nops-7"
     run_dump_test "addr16"
     run_dump_test "addr32"
     run_dump_test "sse4_1"
@@ -630,6 +631,7 @@ if [expr ([istarget "i*86-*-*"] || [istarget "x86_64-*-*"]) && [gas_64_check]] t
     run_dump_test "x86-64-nops-4-k8"
     run_dump_test "x86-64-nops-5"
     run_dump_test "x86-64-nops-5-k8"
+    run_dump_test "x86-64-nops-7"
     run_dump_test "x86-64-sse4_1"
     run_dump_test "x86-64-sse4_1-intel"
     run_dump_test "x86-64-sse4_2"
diff --git a/gas/testsuite/gas/i386/ilp32/x86-64-nops-1-core2.d b/gas/testsuite/gas/i386/ilp32/x86-64-nops-1-core2.d
index 6921926..2495cf8 100644
--- a/gas/testsuite/gas/i386/ilp32/x86-64-nops-1-core2.d
+++ b/gas/testsuite/gas/i386/ilp32/x86-64-nops-1-core2.d
@@ -9,29 +9,29 @@ Disassembly of section .text:
 
 0+ <nop15>:
 [ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	0f 1f 44 00 00       	nopl   0x0\(%rax,%rax,1\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	0f 1f 40 00          	nopl   0x0\(%rax\)
 
 0+10 <nop14>:
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	0f 1f 40 00          	nopl   0x0\(%rax\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	0f 1f 00             	nopl   \(%rax\)
 
 0+20 <nop13>:
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	0f 1f 00             	nopl   \(%rax\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 90                	xchg   %ax,%ax
 
 0+30 <nop12>:
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	66 90                	xchg   %ax,%ax
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	90                   	nop
 
 0+40 <nop11>:
 [ 	]*[a-f0-9]+:	90                   	nop
@@ -39,8 +39,7 @@ Disassembly of section .text:
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
 
 0+50 <nop10>:
 [ 	]*[a-f0-9]+:	90                   	nop
diff --git a/gas/testsuite/gas/i386/ilp32/x86-64-nops-1-k8.d b/gas/testsuite/gas/i386/ilp32/x86-64-nops-1-k8.d
index 308cc6f..857fb0a 100644
--- a/gas/testsuite/gas/i386/ilp32/x86-64-nops-1-k8.d
+++ b/gas/testsuite/gas/i386/ilp32/x86-64-nops-1-k8.d
@@ -9,29 +9,29 @@ Disassembly of section .text:
 
 0+ <nop15>:
 [ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	0f 1f 44 00 00       	nopl   0x0\(%rax,%rax,1\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	0f 1f 40 00          	nopl   0x0\(%rax\)
 
 0+10 <nop14>:
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	0f 1f 40 00          	nopl   0x0\(%rax\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	0f 1f 00             	nopl   \(%rax\)
 
 0+20 <nop13>:
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	0f 1f 00             	nopl   \(%rax\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 90                	xchg   %ax,%ax
 
 0+30 <nop12>:
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	66 90                	xchg   %ax,%ax
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	90                   	nop
 
 0+40 <nop11>:
 [ 	]*[a-f0-9]+:	90                   	nop
@@ -39,8 +39,7 @@ Disassembly of section .text:
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
 
 0+50 <nop10>:
 [ 	]*[a-f0-9]+:	90                   	nop
diff --git a/gas/testsuite/gas/i386/ilp32/x86-64-nops-1-pentium.d b/gas/testsuite/gas/i386/ilp32/x86-64-nops-1-pentium.d
index 41d6dc3..c669988 100644
--- a/gas/testsuite/gas/i386/ilp32/x86-64-nops-1-pentium.d
+++ b/gas/testsuite/gas/i386/ilp32/x86-64-nops-1-pentium.d
@@ -9,70 +9,30 @@ Disassembly of section .text:
 
 0+ <nop15>:
 [ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	eb 0d                	jmp    10 <nop14>
-[ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	90                   	nop
+[ 	]*[a-f0-9]+:	8d b4 26 00 00 00 00 	lea    0x0\(%rsi,%riz,1\),%esi
+[ 	]*[a-f0-9]+:	8d b4 26 00 00 00 00 	lea    0x0\(%rsi,%riz,1\),%esi
 [ 	]*[a-f0-9]+:	90                   	nop
 
 0+10 <nop14>:
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	eb 0c                	jmp    20 <nop13>
-[ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	90                   	nop
+[ 	]*[a-f0-9]+:	8d b4 26 00 00 00 00 	lea    0x0\(%rsi,%riz,1\),%esi
+[ 	]*[a-f0-9]+:	8d b4 26 00 00 00 00 	lea    0x0\(%rsi,%riz,1\),%esi
 
 0+20 <nop13>:
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	eb 0b                	jmp    30 <nop12>
-[ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	90                   	nop
+[ 	]*[a-f0-9]+:	8d b4 26 00 00 00 00 	lea    0x0\(%rsi,%riz,1\),%esi
+[ 	]*[a-f0-9]+:	8d b6 00 00 00 00    	lea    0x0\(%rsi\),%esi
 
 0+30 <nop12>:
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	eb 0a                	jmp    40 <nop11>
-[ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	90                   	nop
+[ 	]*[a-f0-9]+:	8d b4 26 00 00 00 00 	lea    0x0\(%rsi,%riz,1\),%esi
+[ 	]*[a-f0-9]+:	8d 74 26 00          	lea    0x0\(%rsi,%riz,1\),%esi
 [ 	]*[a-f0-9]+:	90                   	nop
 
 0+40 <nop11>:
@@ -81,16 +41,8 @@ Disassembly of section .text:
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	eb 09                	jmp    50 <nop10>
-[ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	90                   	nop
+[ 	]*[a-f0-9]+:	8d b4 26 00 00 00 00 	lea    0x0\(%rsi,%riz,1\),%esi
+[ 	]*[a-f0-9]+:	8d 74 26 00          	lea    0x0\(%rsi,%riz,1\),%esi
 
 0+50 <nop10>:
 [ 	]*[a-f0-9]+:	90                   	nop
@@ -99,15 +51,8 @@ Disassembly of section .text:
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	eb 08                	jmp    60 <nop9>
-[ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	90                   	nop
+[ 	]*[a-f0-9]+:	8d b4 26 00 00 00 00 	lea    0x0\(%rsi,%riz,1\),%esi
+[ 	]*[a-f0-9]+:	8d 76 00             	lea    0x0\(%rsi\),%esi
 
 0+60 <nop9>:
 [ 	]*[a-f0-9]+:	90                   	nop
@@ -117,14 +62,8 @@ Disassembly of section .text:
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	eb 07                	jmp    70 <nop8>
-[ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	90                   	nop
+[ 	]*[a-f0-9]+:	8d b4 26 00 00 00 00 	lea    0x0\(%rsi,%riz,1\),%esi
+[ 	]*[a-f0-9]+:	66 90                	xchg   %ax,%ax
 
 0+70 <nop8>:
 [ 	]*[a-f0-9]+:	90                   	nop
@@ -135,12 +74,7 @@ Disassembly of section .text:
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	eb 06                	jmp    80 <nop7>
-[ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	90                   	nop
+[ 	]*[a-f0-9]+:	8d b4 26 00 00 00 00 	lea    0x0\(%rsi,%riz,1\),%esi
 [ 	]*[a-f0-9]+:	90                   	nop
 
 0+80 <nop7>:
@@ -153,12 +87,7 @@ Disassembly of section .text:
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	eb 05                	jmp    90 <nop6>
-[ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	90                   	nop
+[ 	]*[a-f0-9]+:	8d b4 26 00 00 00 00 	lea    0x0\(%rsi,%riz,1\),%esi
 
 0+90 <nop6>:
 [ 	]*[a-f0-9]+:	90                   	nop
@@ -171,11 +100,7 @@ Disassembly of section .text:
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	eb 04                	jmp    a0 <nop5>
-[ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	90                   	nop
+[ 	]*[a-f0-9]+:	8d b6 00 00 00 00    	lea    0x0\(%rsi\),%esi
 
 0+a0 <nop5>:
 [ 	]*[a-f0-9]+:	90                   	nop
@@ -189,9 +114,7 @@ Disassembly of section .text:
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	eb 03                	jmp    b0 <nop4>
-[ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	90                   	nop
+[ 	]*[a-f0-9]+:	8d 74 26 00          	lea    0x0\(%rsi,%riz,1\),%esi
 [ 	]*[a-f0-9]+:	90                   	nop
 
 0+b0 <nop4>:
@@ -207,9 +130,7 @@ Disassembly of section .text:
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	eb 02                	jmp    c0 <nop3>
-[ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	90                   	nop
+[ 	]*[a-f0-9]+:	8d 74 26 00          	lea    0x0\(%rsi,%riz,1\),%esi
 
 0+c0 <nop3>:
 [ 	]*[a-f0-9]+:	90                   	nop
@@ -225,8 +146,7 @@ Disassembly of section .text:
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	eb 01                	jmp    d0 <nop2>
-[ 	]*[a-f0-9]+:	90                   	nop
+[ 	]*[a-f0-9]+:	8d 76 00             	lea    0x0\(%rsi\),%esi
 
 0+d0 <nop2>:
 [ 	]*[a-f0-9]+:	90                   	nop
diff --git a/gas/testsuite/gas/i386/ilp32/x86-64-nops-1.d b/gas/testsuite/gas/i386/ilp32/x86-64-nops-1.d
index 9ccce52..2363abc 100644
--- a/gas/testsuite/gas/i386/ilp32/x86-64-nops-1.d
+++ b/gas/testsuite/gas/i386/ilp32/x86-64-nops-1.d
@@ -9,29 +9,29 @@ Disassembly of section .text:
 
 0+ <nop15>:
 [ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	0f 1f 44 00 00       	nopl   0x0\(%rax,%rax,1\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	0f 1f 40 00          	nopl   0x0\(%rax\)
 
 0+10 <nop14>:
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	0f 1f 40 00          	nopl   0x0\(%rax\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	0f 1f 00             	nopl   \(%rax\)
 
 0+20 <nop13>:
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	0f 1f 00             	nopl   \(%rax\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 90                	xchg   %ax,%ax
 
 0+30 <nop12>:
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	66 90                	xchg   %ax,%ax
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	90                   	nop
 
 0+40 <nop11>:
 [ 	]*[a-f0-9]+:	90                   	nop
@@ -39,8 +39,7 @@ Disassembly of section .text:
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
 
 0+50 <nop10>:
 [ 	]*[a-f0-9]+:	90                   	nop
diff --git a/gas/testsuite/gas/i386/ilp32/x86-64-nops-2.d b/gas/testsuite/gas/i386/ilp32/x86-64-nops-2.d
index 4f97c6c..89017a2 100644
--- a/gas/testsuite/gas/i386/ilp32/x86-64-nops-2.d
+++ b/gas/testsuite/gas/i386/ilp32/x86-64-nops-2.d
@@ -9,34 +9,34 @@ Disassembly of section .text:
 
 0+ <nop>:
 [ 	]*[a-f0-9]+:	0f be f0             	movsbl %al,%esi
-[ 	]*[a-f0-9]+:	0f 1f 00             	nopl   \(%rax\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 90                	xchg   %ax,%ax
 
 0+10 <nop15>:
 [ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	0f 1f 44 00 00       	nopl   0x0\(%rax,%rax,1\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	0f 1f 40 00          	nopl   0x0\(%rax\)
 
 0+20 <nop14>:
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	0f 1f 40 00          	nopl   0x0\(%rax\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	0f 1f 00             	nopl   \(%rax\)
 
 0+30 <nop13>:
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	0f 1f 00             	nopl   \(%rax\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 90                	xchg   %ax,%ax
 
 0+40 <nop12>:
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	66 90                	xchg   %ax,%ax
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	90                   	nop
 
 0+50 <nop11>:
 [ 	]*[a-f0-9]+:	90                   	nop
@@ -44,8 +44,7 @@ Disassembly of section .text:
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
 
 0+60 <nop10>:
 [ 	]*[a-f0-9]+:	90                   	nop
diff --git a/gas/testsuite/gas/i386/ilp32/x86-64-nops-3.d b/gas/testsuite/gas/i386/ilp32/x86-64-nops-3.d
index 11a4a21..c03b9ba 100644
--- a/gas/testsuite/gas/i386/ilp32/x86-64-nops-3.d
+++ b/gas/testsuite/gas/i386/ilp32/x86-64-nops-3.d
@@ -9,11 +9,10 @@ Disassembly of section .text:
 
 0+ <nop>:
 [ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 0f 1f 84 00 00 00 00 00 	nopw   0x0\(%rax,%rax,1\)
 [ 	]*[a-f0-9]+:	89 c3                	mov    %eax,%ebx
-[ 	]*[a-f0-9]+:	0f 1f 40 00          	nopl   0x0\(%rax\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	0f 1f 00             	nopl   \(%rax\)
 #pass
diff --git a/gas/testsuite/gas/i386/ilp32/x86-64-nops-4-core2.d b/gas/testsuite/gas/i386/ilp32/x86-64-nops-4-core2.d
index ab67ba8..92bd5a3 100644
--- a/gas/testsuite/gas/i386/ilp32/x86-64-nops-4-core2.d
+++ b/gas/testsuite/gas/i386/ilp32/x86-64-nops-4-core2.d
@@ -9,34 +9,33 @@ Disassembly of section .text:
 
 0+ <nop31>:
 [ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 0f 1f 84 00 00 00 00 00 	nopw   0x0\(%rax,%rax,1\)
 
 0+20 <nop30>:
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	0f 1f 84 00 00 00 00 00 	nopl   0x0\(%rax,%rax,1\)
 
 0+40 <nop29>:
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	66 0f 1f 84 00 00 00 00 00 	nopw   0x0\(%rax,%rax,1\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	0f 1f 80 00 00 00 00 	nopl   0x0\(%rax\)
 
 0+60 <nop28>:
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	0f 1f 84 00 00 00 00 00 	nopl   0x0\(%rax,%rax,1\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 0f 1f 44 00 00    	nopw   0x0\(%rax,%rax,1\)
 
 0+80 <nop27>:
 [ 	]*[a-f0-9]+:	90                   	nop
@@ -44,9 +43,9 @@ Disassembly of section .text:
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	0f 1f 80 00 00 00 00 	nopl   0x0\(%rax\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	0f 1f 44 00 00       	nopl   0x0\(%rax,%rax,1\)
 
 0+a0 <nop26>:
 [ 	]*[a-f0-9]+:	90                   	nop
@@ -55,9 +54,9 @@ Disassembly of section .text:
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	66 0f 1f 44 00 00    	nopw   0x0\(%rax,%rax,1\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	0f 1f 40 00          	nopl   0x0\(%rax\)
 
 0+c0 <nop25>:
 [ 	]*[a-f0-9]+:	90                   	nop
@@ -67,9 +66,9 @@ Disassembly of section .text:
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	0f 1f 44 00 00       	nopl   0x0\(%rax,%rax,1\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	0f 1f 00             	nopl   \(%rax\)
 
 0+e0 <nop24>:
 [ 	]*[a-f0-9]+:	90                   	nop
@@ -80,9 +79,9 @@ Disassembly of section .text:
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	0f 1f 40 00          	nopl   0x0\(%rax\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 90                	xchg   %ax,%ax
 
 0+100 <nop23>:
 [ 	]*[a-f0-9]+:	90                   	nop
@@ -94,9 +93,9 @@ Disassembly of section .text:
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	0f 1f 00             	nopl   \(%rax\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	90                   	nop
 
 0+120 <nop22>:
 [ 	]*[a-f0-9]+:	90                   	nop
@@ -109,9 +108,8 @@ Disassembly of section .text:
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	66 90                	xchg   %ax,%ax
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
 
 0+140 <nop21>:
 [ 	]*[a-f0-9]+:	90                   	nop
@@ -125,8 +123,7 @@ Disassembly of section .text:
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
 [ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
 
 0+160 <nop20>:
@@ -142,8 +139,8 @@ Disassembly of section .text:
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 0f 1f 84 00 00 00 00 00 	nopw   0x0\(%rax,%rax,1\)
 
 0+180 <nop19>:
 [ 	]*[a-f0-9]+:	90                   	nop
@@ -159,8 +156,8 @@ Disassembly of section .text:
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	66 0f 1f 84 00 00 00 00 00 	nopw   0x0\(%rax,%rax,1\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	0f 1f 84 00 00 00 00 00 	nopl   0x0\(%rax,%rax,1\)
 
 0+1a0 <nop18>:
 [ 	]*[a-f0-9]+:	90                   	nop
@@ -177,8 +174,8 @@ Disassembly of section .text:
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	0f 1f 84 00 00 00 00 00 	nopl   0x0\(%rax,%rax,1\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	0f 1f 80 00 00 00 00 	nopl   0x0\(%rax\)
 
 0+1c0 <nop17>:
 [ 	]*[a-f0-9]+:	90                   	nop
@@ -196,8 +193,8 @@ Disassembly of section .text:
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	0f 1f 80 00 00 00 00 	nopl   0x0\(%rax\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 0f 1f 44 00 00    	nopw   0x0\(%rax,%rax,1\)
 
 0+1e0 <nop16>:
 [ 	]*[a-f0-9]+:	90                   	nop
@@ -216,6 +213,6 @@ Disassembly of section .text:
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	66 0f 1f 44 00 00    	nopw   0x0\(%rax,%rax,1\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	0f 1f 44 00 00       	nopl   0x0\(%rax,%rax,1\)
 #pass
diff --git a/gas/testsuite/gas/i386/ilp32/x86-64-nops-4-k8.d b/gas/testsuite/gas/i386/ilp32/x86-64-nops-4-k8.d
index aaddd5f..49de058 100644
--- a/gas/testsuite/gas/i386/ilp32/x86-64-nops-4-k8.d
+++ b/gas/testsuite/gas/i386/ilp32/x86-64-nops-4-k8.d
@@ -9,34 +9,33 @@ Disassembly of section .text:
 
 0+ <nop31>:
 [ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 0f 1f 84 00 00 00 00 00 	nopw   0x0\(%rax,%rax,1\)
 
 0+20 <nop30>:
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	0f 1f 84 00 00 00 00 00 	nopl   0x0\(%rax,%rax,1\)
 
 0+40 <nop29>:
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	66 0f 1f 84 00 00 00 00 00 	nopw   0x0\(%rax,%rax,1\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	0f 1f 80 00 00 00 00 	nopl   0x0\(%rax\)
 
 0+60 <nop28>:
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	0f 1f 84 00 00 00 00 00 	nopl   0x0\(%rax,%rax,1\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 0f 1f 44 00 00    	nopw   0x0\(%rax,%rax,1\)
 
 0+80 <nop27>:
 [ 	]*[a-f0-9]+:	90                   	nop
@@ -44,9 +43,9 @@ Disassembly of section .text:
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	0f 1f 80 00 00 00 00 	nopl   0x0\(%rax\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	0f 1f 44 00 00       	nopl   0x0\(%rax,%rax,1\)
 
 0+a0 <nop26>:
 [ 	]*[a-f0-9]+:	90                   	nop
@@ -55,9 +54,9 @@ Disassembly of section .text:
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	66 0f 1f 44 00 00    	nopw   0x0\(%rax,%rax,1\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	0f 1f 40 00          	nopl   0x0\(%rax\)
 
 0+c0 <nop25>:
 [ 	]*[a-f0-9]+:	90                   	nop
@@ -67,9 +66,9 @@ Disassembly of section .text:
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	0f 1f 44 00 00       	nopl   0x0\(%rax,%rax,1\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	0f 1f 00             	nopl   \(%rax\)
 
 0+e0 <nop24>:
 [ 	]*[a-f0-9]+:	90                   	nop
@@ -80,9 +79,9 @@ Disassembly of section .text:
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	0f 1f 40 00          	nopl   0x0\(%rax\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 90                	xchg   %ax,%ax
 
 0+100 <nop23>:
 [ 	]*[a-f0-9]+:	90                   	nop
@@ -94,9 +93,9 @@ Disassembly of section .text:
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	0f 1f 00             	nopl   \(%rax\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	90                   	nop
 
 0+120 <nop22>:
 [ 	]*[a-f0-9]+:	90                   	nop
@@ -109,9 +108,8 @@ Disassembly of section .text:
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	66 90                	xchg   %ax,%ax
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
 
 0+140 <nop21>:
 [ 	]*[a-f0-9]+:	90                   	nop
@@ -125,8 +123,7 @@ Disassembly of section .text:
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
 [ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
 
 0+160 <nop20>:
@@ -142,8 +139,8 @@ Disassembly of section .text:
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 0f 1f 84 00 00 00 00 00 	nopw   0x0\(%rax,%rax,1\)
 
 0+180 <nop19>:
 [ 	]*[a-f0-9]+:	90                   	nop
@@ -159,8 +156,8 @@ Disassembly of section .text:
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	66 0f 1f 84 00 00 00 00 00 	nopw   0x0\(%rax,%rax,1\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	0f 1f 84 00 00 00 00 00 	nopl   0x0\(%rax,%rax,1\)
 
 0+1a0 <nop18>:
 [ 	]*[a-f0-9]+:	90                   	nop
@@ -177,8 +174,8 @@ Disassembly of section .text:
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	0f 1f 84 00 00 00 00 00 	nopl   0x0\(%rax,%rax,1\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	0f 1f 80 00 00 00 00 	nopl   0x0\(%rax\)
 
 0+1c0 <nop17>:
 [ 	]*[a-f0-9]+:	90                   	nop
@@ -196,8 +193,8 @@ Disassembly of section .text:
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	0f 1f 80 00 00 00 00 	nopl   0x0\(%rax\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 0f 1f 44 00 00    	nopw   0x0\(%rax,%rax,1\)
 
 0+1e0 <nop16>:
 [ 	]*[a-f0-9]+:	90                   	nop
@@ -216,6 +213,6 @@ Disassembly of section .text:
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	66 0f 1f 44 00 00    	nopw   0x0\(%rax,%rax,1\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	0f 1f 44 00 00       	nopl   0x0\(%rax,%rax,1\)
 #pass
diff --git a/gas/testsuite/gas/i386/ilp32/x86-64-nops-4.d b/gas/testsuite/gas/i386/ilp32/x86-64-nops-4.d
index 07054a7..f47499c 100644
--- a/gas/testsuite/gas/i386/ilp32/x86-64-nops-4.d
+++ b/gas/testsuite/gas/i386/ilp32/x86-64-nops-4.d
@@ -9,34 +9,33 @@ Disassembly of section .text:
 
 0+ <nop31>:
 [ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 0f 1f 84 00 00 00 00 00 	nopw   0x0\(%rax,%rax,1\)
 
 0+20 <nop30>:
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	0f 1f 84 00 00 00 00 00 	nopl   0x0\(%rax,%rax,1\)
 
 0+40 <nop29>:
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	66 0f 1f 84 00 00 00 00 00 	nopw   0x0\(%rax,%rax,1\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	0f 1f 80 00 00 00 00 	nopl   0x0\(%rax\)
 
 0+60 <nop28>:
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	0f 1f 84 00 00 00 00 00 	nopl   0x0\(%rax,%rax,1\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 0f 1f 44 00 00    	nopw   0x0\(%rax,%rax,1\)
 
 0+80 <nop27>:
 [ 	]*[a-f0-9]+:	90                   	nop
@@ -44,9 +43,9 @@ Disassembly of section .text:
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	0f 1f 80 00 00 00 00 	nopl   0x0\(%rax\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	0f 1f 44 00 00       	nopl   0x0\(%rax,%rax,1\)
 
 0+a0 <nop26>:
 [ 	]*[a-f0-9]+:	90                   	nop
@@ -55,9 +54,9 @@ Disassembly of section .text:
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	66 0f 1f 44 00 00    	nopw   0x0\(%rax,%rax,1\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	0f 1f 40 00          	nopl   0x0\(%rax\)
 
 0+c0 <nop25>:
 [ 	]*[a-f0-9]+:	90                   	nop
@@ -67,9 +66,9 @@ Disassembly of section .text:
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	0f 1f 44 00 00       	nopl   0x0\(%rax,%rax,1\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	0f 1f 00             	nopl   \(%rax\)
 
 0+e0 <nop24>:
 [ 	]*[a-f0-9]+:	90                   	nop
@@ -80,9 +79,9 @@ Disassembly of section .text:
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	0f 1f 40 00          	nopl   0x0\(%rax\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 90                	xchg   %ax,%ax
 
 0+100 <nop23>:
 [ 	]*[a-f0-9]+:	90                   	nop
@@ -94,9 +93,9 @@ Disassembly of section .text:
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	0f 1f 00             	nopl   \(%rax\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	90                   	nop
 
 0+120 <nop22>:
 [ 	]*[a-f0-9]+:	90                   	nop
@@ -109,9 +108,8 @@ Disassembly of section .text:
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	66 90                	xchg   %ax,%ax
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
 
 0+140 <nop21>:
 [ 	]*[a-f0-9]+:	90                   	nop
@@ -125,8 +123,7 @@ Disassembly of section .text:
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
 [ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
 
 0+160 <nop20>:
@@ -142,8 +139,8 @@ Disassembly of section .text:
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 0f 1f 84 00 00 00 00 00 	nopw   0x0\(%rax,%rax,1\)
 
 0+180 <nop19>:
 [ 	]*[a-f0-9]+:	90                   	nop
@@ -159,8 +156,8 @@ Disassembly of section .text:
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	66 0f 1f 84 00 00 00 00 00 	nopw   0x0\(%rax,%rax,1\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	0f 1f 84 00 00 00 00 00 	nopl   0x0\(%rax,%rax,1\)
 
 0+1a0 <nop18>:
 [ 	]*[a-f0-9]+:	90                   	nop
@@ -177,8 +174,8 @@ Disassembly of section .text:
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	0f 1f 84 00 00 00 00 00 	nopl   0x0\(%rax,%rax,1\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	0f 1f 80 00 00 00 00 	nopl   0x0\(%rax\)
 
 0+1c0 <nop17>:
 [ 	]*[a-f0-9]+:	90                   	nop
@@ -196,8 +193,8 @@ Disassembly of section .text:
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	0f 1f 80 00 00 00 00 	nopl   0x0\(%rax\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 0f 1f 44 00 00    	nopw   0x0\(%rax,%rax,1\)
 
 0+1e0 <nop16>:
 [ 	]*[a-f0-9]+:	90                   	nop
@@ -216,6 +213,6 @@ Disassembly of section .text:
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	66 0f 1f 44 00 00    	nopw   0x0\(%rax,%rax,1\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	0f 1f 44 00 00       	nopl   0x0\(%rax,%rax,1\)
 #pass
diff --git a/gas/testsuite/gas/i386/ilp32/x86-64-nops-5-k8.d b/gas/testsuite/gas/i386/ilp32/x86-64-nops-5-k8.d
index f77bdcc..a884406 100644
--- a/gas/testsuite/gas/i386/ilp32/x86-64-nops-5-k8.d
+++ b/gas/testsuite/gas/i386/ilp32/x86-64-nops-5-k8.d
@@ -9,71 +9,71 @@ Disassembly of section .text:
 
 0+ <i386>:
 [ 	]*[a-f0-9]+:	0f be f0             	movsbl %al,%esi
+[ 	]*[a-f0-9]+:	8d b4 26 00 00 00 00 	lea    0x0\(%rsi,%riz,1\),%esi
 [ 	]*[a-f0-9]+:	8d b6 00 00 00 00    	lea    0x0\(%rsi\),%esi
-[ 	]*[a-f0-9]+:	8d bc 27 00 00 00 00 	lea    0x0\(%rdi,%riz,1\),%edi
 
 0+10 <i486>:
 [ 	]*[a-f0-9]+:	0f be f0             	movsbl %al,%esi
+[ 	]*[a-f0-9]+:	8d b4 26 00 00 00 00 	lea    0x0\(%rsi,%riz,1\),%esi
 [ 	]*[a-f0-9]+:	8d b6 00 00 00 00    	lea    0x0\(%rsi\),%esi
-[ 	]*[a-f0-9]+:	8d bc 27 00 00 00 00 	lea    0x0\(%rdi,%riz,1\),%edi
 
 0+20 <i586>:
 [ 	]*[a-f0-9]+:	0f be f0             	movsbl %al,%esi
+[ 	]*[a-f0-9]+:	8d b4 26 00 00 00 00 	lea    0x0\(%rsi,%riz,1\),%esi
 [ 	]*[a-f0-9]+:	8d b6 00 00 00 00    	lea    0x0\(%rsi\),%esi
-[ 	]*[a-f0-9]+:	8d bc 27 00 00 00 00 	lea    0x0\(%rdi,%riz,1\),%edi
 
 0+30 <i686>:
 [ 	]*[a-f0-9]+:	0f be f0             	movsbl %al,%esi
+[ 	]*[a-f0-9]+:	8d b4 26 00 00 00 00 	lea    0x0\(%rsi,%riz,1\),%esi
 [ 	]*[a-f0-9]+:	8d b6 00 00 00 00    	lea    0x0\(%rsi\),%esi
-[ 	]*[a-f0-9]+:	8d bc 27 00 00 00 00 	lea    0x0\(%rdi,%riz,1\),%edi
 
 0+40 <pentium4>:
 [ 	]*[a-f0-9]+:	0f be f0             	movsbl %al,%esi
-[ 	]*[a-f0-9]+:	0f 1f 00             	nopl   \(%rax\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 90                	xchg   %ax,%ax
 
 0+50 <nocona>:
 [ 	]*[a-f0-9]+:	0f be f0             	movsbl %al,%esi
-[ 	]*[a-f0-9]+:	0f 1f 00             	nopl   \(%rax\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 90                	xchg   %ax,%ax
 
 0+60 <core>:
 [ 	]*[a-f0-9]+:	0f be f0             	movsbl %al,%esi
-[ 	]*[a-f0-9]+:	0f 1f 00             	nopl   \(%rax\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 90                	xchg   %ax,%ax
 
 0+70 <core2>:
 [ 	]*[a-f0-9]+:	0f be f0             	movsbl %al,%esi
-[ 	]*[a-f0-9]+:	0f 1f 00             	nopl   \(%rax\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 90                	xchg   %ax,%ax
 
 0+80 <k6>:
 [ 	]*[a-f0-9]+:	0f be f0             	movsbl %al,%esi
+[ 	]*[a-f0-9]+:	8d b4 26 00 00 00 00 	lea    0x0\(%rsi,%riz,1\),%esi
 [ 	]*[a-f0-9]+:	8d b6 00 00 00 00    	lea    0x0\(%rsi\),%esi
-[ 	]*[a-f0-9]+:	8d bc 27 00 00 00 00 	lea    0x0\(%rdi,%riz,1\),%edi
 
 0+90 <athlon>:
 [ 	]*[a-f0-9]+:	0f be f0             	movsbl %al,%esi
-[ 	]*[a-f0-9]+:	0f 1f 00             	nopl   \(%rax\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 90                	xchg   %ax,%ax
 
 0+a0 <k8>:
 [ 	]*[a-f0-9]+:	0f be f0             	movsbl %al,%esi
-[ 	]*[a-f0-9]+:	0f 1f 00             	nopl   \(%rax\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 90                	xchg   %ax,%ax
 
 0+b0 <generic32>:
 [ 	]*[a-f0-9]+:	0f be f0             	movsbl %al,%esi
+[ 	]*[a-f0-9]+:	8d b4 26 00 00 00 00 	lea    0x0\(%rsi,%riz,1\),%esi
 [ 	]*[a-f0-9]+:	8d b6 00 00 00 00    	lea    0x0\(%rsi\),%esi
-[ 	]*[a-f0-9]+:	8d bc 27 00 00 00 00 	lea    0x0\(%rdi,%riz,1\),%edi
 
 0+c0 <generic64>:
 [ 	]*[a-f0-9]+:	0f be f0             	movsbl %al,%esi
-[ 	]*[a-f0-9]+:	0f 1f 00             	nopl   \(%rax\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 90                	xchg   %ax,%ax
 
 0+d0 <amdfam10>:
 [ 	]*[a-f0-9]+:	0f be f0             	movsbl %al,%esi
-[ 	]*[a-f0-9]+:	0f 1f 00             	nopl   \(%rax\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 90                	xchg   %ax,%ax
 #pass
diff --git a/gas/testsuite/gas/i386/ilp32/x86-64-nops-5.d b/gas/testsuite/gas/i386/ilp32/x86-64-nops-5.d
index 65537b4..b6438c4 100644
--- a/gas/testsuite/gas/i386/ilp32/x86-64-nops-5.d
+++ b/gas/testsuite/gas/i386/ilp32/x86-64-nops-5.d
@@ -8,71 +8,71 @@ Disassembly of section .text:
 
 0+ <i386>:
 [ 	]*[a-f0-9]+:	0f be f0             	movsbl %al,%esi
+[ 	]*[a-f0-9]+:	8d b4 26 00 00 00 00 	lea    0x0\(%rsi,%riz,1\),%esi
 [ 	]*[a-f0-9]+:	8d b6 00 00 00 00    	lea    0x0\(%rsi\),%esi
-[ 	]*[a-f0-9]+:	8d bc 27 00 00 00 00 	lea    0x0\(%rdi,%riz,1\),%edi
 
 0+10 <i486>:
 [ 	]*[a-f0-9]+:	0f be f0             	movsbl %al,%esi
+[ 	]*[a-f0-9]+:	8d b4 26 00 00 00 00 	lea    0x0\(%rsi,%riz,1\),%esi
 [ 	]*[a-f0-9]+:	8d b6 00 00 00 00    	lea    0x0\(%rsi\),%esi
-[ 	]*[a-f0-9]+:	8d bc 27 00 00 00 00 	lea    0x0\(%rdi,%riz,1\),%edi
 
 0+20 <i586>:
 [ 	]*[a-f0-9]+:	0f be f0             	movsbl %al,%esi
+[ 	]*[a-f0-9]+:	8d b4 26 00 00 00 00 	lea    0x0\(%rsi,%riz,1\),%esi
 [ 	]*[a-f0-9]+:	8d b6 00 00 00 00    	lea    0x0\(%rsi\),%esi
-[ 	]*[a-f0-9]+:	8d bc 27 00 00 00 00 	lea    0x0\(%rdi,%riz,1\),%edi
 
 0+30 <i686>:
 [ 	]*[a-f0-9]+:	0f be f0             	movsbl %al,%esi
+[ 	]*[a-f0-9]+:	8d b4 26 00 00 00 00 	lea    0x0\(%rsi,%riz,1\),%esi
 [ 	]*[a-f0-9]+:	8d b6 00 00 00 00    	lea    0x0\(%rsi\),%esi
-[ 	]*[a-f0-9]+:	8d bc 27 00 00 00 00 	lea    0x0\(%rdi,%riz,1\),%edi
 
 0+40 <pentium4>:
 [ 	]*[a-f0-9]+:	0f be f0             	movsbl %al,%esi
-[ 	]*[a-f0-9]+:	0f 1f 00             	nopl   \(%rax\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 90                	xchg   %ax,%ax
 
 0+50 <nocona>:
 [ 	]*[a-f0-9]+:	0f be f0             	movsbl %al,%esi
-[ 	]*[a-f0-9]+:	0f 1f 00             	nopl   \(%rax\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 90                	xchg   %ax,%ax
 
 0+60 <core>:
 [ 	]*[a-f0-9]+:	0f be f0             	movsbl %al,%esi
-[ 	]*[a-f0-9]+:	0f 1f 00             	nopl   \(%rax\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 90                	xchg   %ax,%ax
 
 0+70 <core2>:
 [ 	]*[a-f0-9]+:	0f be f0             	movsbl %al,%esi
-[ 	]*[a-f0-9]+:	0f 1f 00             	nopl   \(%rax\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 90                	xchg   %ax,%ax
 
 0+80 <k6>:
 [ 	]*[a-f0-9]+:	0f be f0             	movsbl %al,%esi
+[ 	]*[a-f0-9]+:	8d b4 26 00 00 00 00 	lea    0x0\(%rsi,%riz,1\),%esi
 [ 	]*[a-f0-9]+:	8d b6 00 00 00 00    	lea    0x0\(%rsi\),%esi
-[ 	]*[a-f0-9]+:	8d bc 27 00 00 00 00 	lea    0x0\(%rdi,%riz,1\),%edi
 
 0+90 <athlon>:
 [ 	]*[a-f0-9]+:	0f be f0             	movsbl %al,%esi
-[ 	]*[a-f0-9]+:	0f 1f 00             	nopl   \(%rax\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 90                	xchg   %ax,%ax
 
 0+a0 <k8>:
 [ 	]*[a-f0-9]+:	0f be f0             	movsbl %al,%esi
-[ 	]*[a-f0-9]+:	0f 1f 00             	nopl   \(%rax\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 90                	xchg   %ax,%ax
 
 0+b0 <generic32>:
 [ 	]*[a-f0-9]+:	0f be f0             	movsbl %al,%esi
+[ 	]*[a-f0-9]+:	8d b4 26 00 00 00 00 	lea    0x0\(%rsi,%riz,1\),%esi
 [ 	]*[a-f0-9]+:	8d b6 00 00 00 00    	lea    0x0\(%rsi\),%esi
-[ 	]*[a-f0-9]+:	8d bc 27 00 00 00 00 	lea    0x0\(%rdi,%riz,1\),%edi
 
 0+c0 <generic64>:
 [ 	]*[a-f0-9]+:	0f be f0             	movsbl %al,%esi
-[ 	]*[a-f0-9]+:	0f 1f 00             	nopl   \(%rax\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 90                	xchg   %ax,%ax
 
 0+d0 <amdfam10>:
 [ 	]*[a-f0-9]+:	0f be f0             	movsbl %al,%esi
-[ 	]*[a-f0-9]+:	0f 1f 00             	nopl   \(%rax\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	66 90                	xchg   %ax,%ax
 #pass
diff --git a/gas/testsuite/gas/i386/noavx-3.l b/gas/testsuite/gas/i386/noavx-3.l
index 7215d7c..036a2c7 100644
--- a/gas/testsuite/gas/i386/noavx-3.l
+++ b/gas/testsuite/gas/i386/noavx-3.l
@@ -63,8 +63,8 @@ GAS LISTING .*
 [ 	]*39[ 	]+vfrczpd %xmm7,%xmm7
 [ 	]*40[ 	]+\?\?\?\? 0F77     		emms
 [ 	]*41[ 	]+\?\?\?\? 0FAEE8   		lfence
-[ 	]*42[ 	]+\?\?\?\? 8DB60000 		\.p2align 4
-[ 	]*42[ 	]+00008DBC 
-[ 	]*42[ 	]+27000000 
+[ 	]*42[ 	]+\?\?\?\? 8DB42600 		\.p2align 4
+[ 	]*42[ 	]+0000008D 
+[ 	]*42[ 	]+B6000000 
 [ 	]*42[ 	]+00
 #pass
diff --git a/gas/testsuite/gas/i386/nop-1.d b/gas/testsuite/gas/i386/nop-1.d
index 5a9e03e..f205ad4 100644
--- a/gas/testsuite/gas/i386/nop-1.d
+++ b/gas/testsuite/gas/i386/nop-1.d
@@ -13,19 +13,47 @@ Disassembly of section .text:
  +[a-f0-9]+:	90                   	nop
 
 0+2 <pseudo_8>:
- +[a-f0-9]+:	0f 1f 84 00 00 00 00 00 	nopl   0x0\(%eax,%eax,1\)
+ +[a-f0-9]+:	8d b4 26 00 00 00 00 	lea    0x0\(%esi,%eiz,1\),%esi
+ +[a-f0-9]+:	90                   	nop
 
 0+a <pseudo_8_4>:
- +[a-f0-9]+:	0f 1f 40 00          	nopl   0x0\(%eax\)
- +[a-f0-9]+:	0f 1f 40 00          	nopl   0x0\(%eax\)
+ +[a-f0-9]+:	8d 74 26 00          	lea    0x0\(%esi,%eiz,1\),%esi
+ +[a-f0-9]+:	8d 74 26 00          	lea    0x0\(%esi,%eiz,1\),%esi
 
 0+12 <pseudo_20>:
- +[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%eax,%eax,1\)
- +[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%eax,%eax,1\)
+ +[a-f0-9]+:	8d b4 26 00 00 00 00 	lea    0x0\(%esi,%eiz,1\),%esi
+ +[a-f0-9]+:	8d b4 26 00 00 00 00 	lea    0x0\(%esi,%eiz,1\),%esi
+ +[a-f0-9]+:	8d b6 00 00 00 00    	lea    0x0\(%esi\),%esi
 
 0+26 <pseudo_30>:
- +[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%eax,%eax,1\)
- +[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%eax,%eax,1\)
- +[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%eax,%eax,1\)
+ +[a-f0-9]+:	eb 1c                	jmp    44 <pseudo_129>
+ +[a-f0-9]+:	8d b4 26 00 00 00 00 	lea    0x0\(%esi,%eiz,1\),%esi
+ +[a-f0-9]+:	8d b4 26 00 00 00 00 	lea    0x0\(%esi,%eiz,1\),%esi
+ +[a-f0-9]+:	8d b4 26 00 00 00 00 	lea    0x0\(%esi,%eiz,1\),%esi
+ +[a-f0-9]+:	8d b4 26 00 00 00 00 	lea    0x0\(%esi,%eiz,1\),%esi
+
+0+44 <pseudo_129>:
+ +[a-f0-9]+:	eb 7f                	jmp    c5 <end>
+ +[a-f0-9]+:	8d b4 26 00 00 00 00 	lea    0x0\(%esi,%eiz,1\),%esi
+ +[a-f0-9]+:	8d b4 26 00 00 00 00 	lea    0x0\(%esi,%eiz,1\),%esi
+ +[a-f0-9]+:	8d b4 26 00 00 00 00 	lea    0x0\(%esi,%eiz,1\),%esi
+ +[a-f0-9]+:	8d b4 26 00 00 00 00 	lea    0x0\(%esi,%eiz,1\),%esi
+ +[a-f0-9]+:	8d b4 26 00 00 00 00 	lea    0x0\(%esi,%eiz,1\),%esi
+ +[a-f0-9]+:	8d b4 26 00 00 00 00 	lea    0x0\(%esi,%eiz,1\),%esi
+ +[a-f0-9]+:	8d b4 26 00 00 00 00 	lea    0x0\(%esi,%eiz,1\),%esi
+ +[a-f0-9]+:	8d b4 26 00 00 00 00 	lea    0x0\(%esi,%eiz,1\),%esi
+ +[a-f0-9]+:	8d b4 26 00 00 00 00 	lea    0x0\(%esi,%eiz,1\),%esi
+ +[a-f0-9]+:	8d b4 26 00 00 00 00 	lea    0x0\(%esi,%eiz,1\),%esi
+ +[a-f0-9]+:	8d b4 26 00 00 00 00 	lea    0x0\(%esi,%eiz,1\),%esi
+ +[a-f0-9]+:	8d b4 26 00 00 00 00 	lea    0x0\(%esi,%eiz,1\),%esi
+ +[a-f0-9]+:	8d b4 26 00 00 00 00 	lea    0x0\(%esi,%eiz,1\),%esi
+ +[a-f0-9]+:	8d b4 26 00 00 00 00 	lea    0x0\(%esi,%eiz,1\),%esi
+ +[a-f0-9]+:	8d b4 26 00 00 00 00 	lea    0x0\(%esi,%eiz,1\),%esi
+ +[a-f0-9]+:	8d b4 26 00 00 00 00 	lea    0x0\(%esi,%eiz,1\),%esi
+ +[a-f0-9]+:	8d b4 26 00 00 00 00 	lea    0x0\(%esi,%eiz,1\),%esi
+ +[a-f0-9]+:	8d b4 26 00 00 00 00 	lea    0x0\(%esi,%eiz,1\),%esi
+ +[a-f0-9]+:	90                   	nop
+
+0+c5 <end>:
  +[a-f0-9]+:	31 c0                	xor    %eax,%eax
 #pass
diff --git a/gas/testsuite/gas/i386/nop-1.s b/gas/testsuite/gas/i386/nop-1.s
index 94ec28e..6f75c97 100644
--- a/gas/testsuite/gas/i386/nop-1.s
+++ b/gas/testsuite/gas/i386/nop-1.s
@@ -18,4 +18,8 @@ pseudo_20:
 pseudo_30:
 	.nops 30
 
+pseudo_129:
+	.nops 129
+
+end:
 	xor %eax, %eax
diff --git a/gas/testsuite/gas/i386/nop-2.d b/gas/testsuite/gas/i386/nop-2.d
index d248fd1..e8df5ed 100644
--- a/gas/testsuite/gas/i386/nop-2.d
+++ b/gas/testsuite/gas/i386/nop-2.d
@@ -14,27 +14,65 @@ Disassembly of section .text:
 
 0+2 <pseudo_8>:
  +[a-f0-9]+:	8d b4 00 00          	lea    0x0\(%si\),%si
- +[a-f0-9]+:	8d bd 00 00          	lea    0x0\(%di\),%di
+ +[a-f0-9]+:	8d b4 00 00          	lea    0x0\(%si\),%si
 
 0+a <pseudo_8_4>:
  +[a-f0-9]+:	8d b4 00 00          	lea    0x0\(%si\),%si
  +[a-f0-9]+:	8d b4 00 00          	lea    0x0\(%si\),%si
 
 0+12 <pseudo_20>:
+ +[a-f0-9]+:	eb 12                	jmp    26 <pseudo_30>
+ +[a-f0-9]+:	8d b4 00 00          	lea    0x0\(%si\),%si
  +[a-f0-9]+:	8d b4 00 00          	lea    0x0\(%si\),%si
  +[a-f0-9]+:	8d b4 00 00          	lea    0x0\(%si\),%si
- +[a-f0-9]+:	8d bd 00 00          	lea    0x0\(%di\),%di
  +[a-f0-9]+:	8d b4 00 00          	lea    0x0\(%si\),%si
- +[a-f0-9]+:	8d bd 00 00          	lea    0x0\(%di\),%di
+ +[a-f0-9]+:	66 90                	xchg   %eax,%eax
 
 0+26 <pseudo_30>:
- +[a-f0-9]+:	89 f6                	mov    %si,%si
- +[a-f0-9]+:	8d bd 00 00          	lea    0x0\(%di\),%di
+ +[a-f0-9]+:	eb 1c                	jmp    44 <pseudo_129>
+ +[a-f0-9]+:	8d b4 00 00          	lea    0x0\(%si\),%si
+ +[a-f0-9]+:	8d b4 00 00          	lea    0x0\(%si\),%si
+ +[a-f0-9]+:	8d b4 00 00          	lea    0x0\(%si\),%si
+ +[a-f0-9]+:	8d b4 00 00          	lea    0x0\(%si\),%si
+ +[a-f0-9]+:	8d b4 00 00          	lea    0x0\(%si\),%si
+ +[a-f0-9]+:	8d b4 00 00          	lea    0x0\(%si\),%si
+ +[a-f0-9]+:	8d b4 00 00          	lea    0x0\(%si\),%si
+
+0+44 <pseudo_129>:
+ +[a-f0-9]+:	eb 7f                	jmp    c5 <end>
+ +[a-f0-9]+:	8d b4 00 00          	lea    0x0\(%si\),%si
+ +[a-f0-9]+:	8d b4 00 00          	lea    0x0\(%si\),%si
+ +[a-f0-9]+:	8d b4 00 00          	lea    0x0\(%si\),%si
+ +[a-f0-9]+:	8d b4 00 00          	lea    0x0\(%si\),%si
+ +[a-f0-9]+:	8d b4 00 00          	lea    0x0\(%si\),%si
+ +[a-f0-9]+:	8d b4 00 00          	lea    0x0\(%si\),%si
+ +[a-f0-9]+:	8d b4 00 00          	lea    0x0\(%si\),%si
+ +[a-f0-9]+:	8d b4 00 00          	lea    0x0\(%si\),%si
+ +[a-f0-9]+:	8d b4 00 00          	lea    0x0\(%si\),%si
+ +[a-f0-9]+:	8d b4 00 00          	lea    0x0\(%si\),%si
  +[a-f0-9]+:	8d b4 00 00          	lea    0x0\(%si\),%si
- +[a-f0-9]+:	8d bd 00 00          	lea    0x0\(%di\),%di
  +[a-f0-9]+:	8d b4 00 00          	lea    0x0\(%si\),%si
- +[a-f0-9]+:	8d bd 00 00          	lea    0x0\(%di\),%di
  +[a-f0-9]+:	8d b4 00 00          	lea    0x0\(%si\),%si
- +[a-f0-9]+:	8d bd 00 00          	lea    0x0\(%di\),%di
+ +[a-f0-9]+:	8d b4 00 00          	lea    0x0\(%si\),%si
+ +[a-f0-9]+:	8d b4 00 00          	lea    0x0\(%si\),%si
+ +[a-f0-9]+:	8d b4 00 00          	lea    0x0\(%si\),%si
+ +[a-f0-9]+:	8d b4 00 00          	lea    0x0\(%si\),%si
+ +[a-f0-9]+:	8d b4 00 00          	lea    0x0\(%si\),%si
+ +[a-f0-9]+:	8d b4 00 00          	lea    0x0\(%si\),%si
+ +[a-f0-9]+:	8d b4 00 00          	lea    0x0\(%si\),%si
+ +[a-f0-9]+:	8d b4 00 00          	lea    0x0\(%si\),%si
+ +[a-f0-9]+:	8d b4 00 00          	lea    0x0\(%si\),%si
+ +[a-f0-9]+:	8d b4 00 00          	lea    0x0\(%si\),%si
+ +[a-f0-9]+:	8d b4 00 00          	lea    0x0\(%si\),%si
+ +[a-f0-9]+:	8d b4 00 00          	lea    0x0\(%si\),%si
+ +[a-f0-9]+:	8d b4 00 00          	lea    0x0\(%si\),%si
+ +[a-f0-9]+:	8d b4 00 00          	lea    0x0\(%si\),%si
+ +[a-f0-9]+:	8d b4 00 00          	lea    0x0\(%si\),%si
+ +[a-f0-9]+:	8d b4 00 00          	lea    0x0\(%si\),%si
+ +[a-f0-9]+:	8d b4 00 00          	lea    0x0\(%si\),%si
+ +[a-f0-9]+:	8d b4 00 00          	lea    0x0\(%si\),%si
+ +[a-f0-9]+:	8d 74 00             	lea    0x0\(%si\),%si
+
+0+c5 <end>:
  +[a-f0-9]+:	66 31 c0             	xor    %eax,%eax
 #pass
diff --git a/gas/testsuite/gas/i386/nop-2.s b/gas/testsuite/gas/i386/nop-2.s
index 9f7a372..be9bb53 100644
--- a/gas/testsuite/gas/i386/nop-2.s
+++ b/gas/testsuite/gas/i386/nop-2.s
@@ -19,4 +19,8 @@ pseudo_20:
 pseudo_30:
 	.nops 30
 
+pseudo_129:
+	.nops 129
+
+end:
 	xor %eax, %eax
diff --git a/gas/testsuite/gas/i386/nop-3.d b/gas/testsuite/gas/i386/nop-3.d
index b2b4577..0cd92f1 100644
--- a/gas/testsuite/gas/i386/nop-3.d
+++ b/gas/testsuite/gas/i386/nop-3.d
@@ -9,7 +9,7 @@ Disassembly of section .text:
 0+ <_start>:
  +[a-f0-9]+:	31 c0                	xor    %eax,%eax
  +[a-f0-9]+:	85 c0                	test   %eax,%eax
- +[a-f0-9]+:	0f 1f 00             	nopl   \(%eax\)
+ +[a-f0-9]+:	8d 76 00             	lea    0x0\(%esi\),%esi
  +[a-f0-9]+:	31 c0                	xor    %eax,%eax
  +[a-f0-9]+:	31 c0                	xor    %eax,%eax
 
diff --git a/gas/testsuite/gas/i386/nop-4.d b/gas/testsuite/gas/i386/nop-4.d
index b548d07..caaf1fa 100644
--- a/gas/testsuite/gas/i386/nop-4.d
+++ b/gas/testsuite/gas/i386/nop-4.d
@@ -9,7 +9,8 @@ Disassembly of section .text:
 0+ <_start>:
  +[a-f0-9]+:	31 c0                	xor    %eax,%eax
  +[a-f0-9]+:	85 c0                	test   %eax,%eax
- +[a-f0-9]+:	66 0f 1f 84 00 00 00 00 00 	nopw   0x0\(%eax,%eax,1\)
+ +[a-f0-9]+:	8d b4 26 00 00 00 00 	lea    0x0\(%esi,%eiz,1\),%esi
+ +[a-f0-9]+:	66 90                	xchg   %ax,%ax
  +[a-f0-9]+:	31 c0                	xor    %eax,%eax
  +[a-f0-9]+:	31 c0                	xor    %eax,%eax
 
diff --git a/gas/testsuite/gas/i386/nop-5.d b/gas/testsuite/gas/i386/nop-5.d
index 6a47913..7175902 100644
--- a/gas/testsuite/gas/i386/nop-5.d
+++ b/gas/testsuite/gas/i386/nop-5.d
@@ -9,8 +9,9 @@ Disassembly of section .text:
 0+ <_start>:
  +[a-f0-9]+:	31 c0                	xor    %eax,%eax
  +[a-f0-9]+:	85 c0                	test   %eax,%eax
- +[a-f0-9]+:	0f 1f 44 00 00       	nopl   0x0\(%eax,%eax,1\)
- +[a-f0-9]+:	66 0f 1f 44 00 00    	nopw   0x0\(%eax,%eax,1\)
+ +[a-f0-9]+:	8d 74 26 00          	lea    0x0\(%esi,%eiz,1\),%esi
+ +[a-f0-9]+:	8d 74 26 00          	lea    0x0\(%esi,%eiz,1\),%esi
+ +[a-f0-9]+:	8d 76 00             	lea    0x0\(%esi\),%esi
  +[a-f0-9]+:	31 c0                	xor    %eax,%eax
  +[a-f0-9]+:	31 c0                	xor    %eax,%eax
 
diff --git a/gas/testsuite/gas/i386/nop-5.s b/gas/testsuite/gas/i386/nop-5.s
index d91f81f..fc548f6 100644
--- a/gas/testsuite/gas/i386/nop-5.s
+++ b/gas/testsuite/gas/i386/nop-5.s
@@ -4,7 +4,7 @@ _start:
 140:
 	testl %eax, %eax
 141:
-	.nops -(((144f-143f)-(141b-140b)) > 0)*((144f-143f)-(141b-140b)),6
+	.nops -(((144f-143f)-(141b-140b)) > 0)*((144f-143f)-(141b-140b)),5
 142:
 	xor %eax, %eax
 	.pushsection .altinstr_replacement,"ax"
diff --git a/gas/testsuite/gas/i386/nop-6.d b/gas/testsuite/gas/i386/nop-6.d
index 851c129..6d44f3e 100644
--- a/gas/testsuite/gas/i386/nop-6.d
+++ b/gas/testsuite/gas/i386/nop-6.d
@@ -1,3 +1,4 @@
+#as: -march=i686+nop
 #objdump: -drw
 #name: i386 .nops 6
 
diff --git a/gas/testsuite/gas/i386/nop-bad-1.l b/gas/testsuite/gas/i386/nop-bad-1.l
index 2ae5b48..11f49a9 100644
--- a/gas/testsuite/gas/i386/nop-bad-1.l
+++ b/gas/testsuite/gas/i386/nop-bad-1.l
@@ -1,4 +1,4 @@
 .*: Assembler messages:
 .*:2: Warning: negative nop control byte, ignored
 .*:4: Warning: \.space, \.nops or \.fill with negative value, ignored
-.*:3: Error: invalide single nop size: 20 \(expect within \[0, [0-9]+\]\)
+.*:3: Error: invalid single nop size: 20 \(expect within \[0, [0-9]+\]\)
diff --git a/gas/testsuite/gas/i386/nops-1-core2.d b/gas/testsuite/gas/i386/nops-1-core2.d
index a5f0ba0..bd5ad37 100644
--- a/gas/testsuite/gas/i386/nops-1-core2.d
+++ b/gas/testsuite/gas/i386/nops-1-core2.d
@@ -10,29 +10,29 @@ Disassembly of section .text:
 
 0+ <nop15>:
 [ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	0f 1f 44 00 00       	nopl   0x0\(%eax,%eax,1\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%eax,%eax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%eax,%eax,1\)
+[ 	]*[a-f0-9]+:	0f 1f 40 00          	nopl   0x0\(%eax\)
 
 0+10 <nop14>:
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	0f 1f 40 00          	nopl   0x0\(%eax\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%eax,%eax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%eax,%eax,1\)
+[ 	]*[a-f0-9]+:	0f 1f 00             	nopl   \(%eax\)
 
 0+20 <nop13>:
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	0f 1f 00             	nopl   \(%eax\)
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%eax,%eax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%eax,%eax,1\)
+[ 	]*[a-f0-9]+:	66 90                	xchg   %ax,%ax
 
 0+30 <nop12>:
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	66 90                	xchg   %ax,%ax
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%eax,%eax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%eax,%eax,1\)
+[ 	]*[a-f0-9]+:	90                   	nop
 
 0+40 <nop11>:
 [ 	]*[a-f0-9]+:	90                   	nop
@@ -40,8 +40,7 @@ Disassembly of section .text:
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
 [ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	90                   	nop
-[ 	]*[a-f0-9]+:	66 2e 0f 1f 84 00 00 00 00 00 	nopw   %cs:0x0\(%eax,%eax,1\)
+[ 	]*[a-f0-9]+:	66 66 2e 0f 1f 84 00 00 00 00 00 	data16 nopw %cs:0x0\(%eax,%eax,1\)
 
 0+50 <nop10>:
 [ 	]*[a-f0-9]+:	90                   	nop
diff --git a/gas/testsuite/gas/i386/nops-1-i386-i686.d b/gas/testsuite/gas/i386/nops-1-i386-i686.d
index 7b0cd47..155603b 100644
--- a/gas/testsuite/gas/i386/nops-1-i386-i686.d
+++ b/gas/testsuite/gas/i386/nops-1-i386-i686.d
@@ -8,170 +8,160 @@
 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[ 	]*
+[ 	]*[a-f0-9]+:	90                   	nop
+[ 	]*[a-f0-9]+:	8d b4 26 00 00 00 00 	lea    0x0\(%esi,%eiz,1\),%esi
+[ 	]*[a-f0-9]+:	8d b4 26 00 00 00 00 	lea    0x0\(%esi,%eiz,1\),%esi
+[ 	]*[a-f0-9]+:	90                   	nop
 
 0+10 <nop14>:
-[	 ]*10:[	 ]+90[	 ]+nop[ 	]*
-[	 ]*11:[	 ]+90[	 ]+nop[ 	]*
-[	 ]*12:[	 ]+8d b4 26 00 00 00 00[	 ]+lea[ 	]+0x0\(%esi,%eiz,1\),%esi
-[	 ]*19:[	 ]+8d bc 27 00 00 00 00[	 ]+lea[ 	]+0x0\(%edi,%eiz,1\),%edi
+[ 	]*[a-f0-9]+:	90                   	nop
+[ 	]*[a-f0-9]+:	90                   	nop
+[ 	]*[a-f0-9]+:	8d b4 26 00 00 00 00 	lea    0x0\(%esi,%eiz,1\),%esi
+[ 	]*[a-f0-9]+:	8d b4 26 00 00 00 00 	lea    0x0\(%esi,%eiz,1\),%esi
 
 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,%eiz,1\),%edi
+[ 	]*[a-f0-9]+:	90                   	nop
+[ 	]*[a-f0-9]+:	90                   	nop
+[ 	]*[a-f0-9]+:	90                   	nop
+[ 	]*[a-f0-9]+:	8d b4 26 00 00 00 00 	lea    0x0\(%esi,%eiz,1\),%esi
+[ 	]*[a-f0-9]+:	8d b6 00 00 00 00    	lea    0x0\(%esi\),%esi
 
 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
+[ 	]*[a-f0-9]+:	90                   	nop
+[ 	]*[a-f0-9]+:	90                   	nop
+[ 	]*[a-f0-9]+:	90                   	nop
+[ 	]*[a-f0-9]+:	90                   	nop
+[ 	]*[a-f0-9]+:	8d b4 26 00 00 00 00 	lea    0x0\(%esi,%eiz,1\),%esi
+[ 	]*[a-f0-9]+:	8d 74 26 00          	lea    0x0\(%esi,%eiz,1\),%esi
+[ 	]*[a-f0-9]+:	90                   	nop
 
 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,%eiz,1\),%esi
-[	 ]*49:[	 ]+8d bc 27 00 00 00 00[	 ]+lea[ 	]+0x0\(%edi,%eiz,1\),%edi
+[ 	]*[a-f0-9]+:	90                   	nop
+[ 	]*[a-f0-9]+:	90                   	nop
+[ 	]*[a-f0-9]+:	90                   	nop
+[ 	]*[a-f0-9]+:	90                   	nop
+[ 	]*[a-f0-9]+:	90                   	nop
+[ 	]*[a-f0-9]+:	8d b4 26 00 00 00 00 	lea    0x0\(%esi,%eiz,1\),%esi
+[ 	]*[a-f0-9]+:	8d 74 26 00          	lea    0x0\(%esi,%eiz,1\),%esi
 
 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,%eiz,1\),%edi
+[ 	]*[a-f0-9]+:	90                   	nop
+[ 	]*[a-f0-9]+:	90                   	nop
+[ 	]*[a-f0-9]+:	90                   	nop
+[ 	]*[a-f0-9]+:	90                   	nop
+[ 	]*[a-f0-9]+:	90                   	nop
+[ 	]*[a-f0-9]+:	90                   	nop
+[ 	]*[a-f0-9]+:	8d b4 26 00 00 00 00 	lea    0x0\(%esi,%eiz,1\),%esi
+[ 	]*[a-f0-9]+:	8d 76 00             	lea    0x0\(%esi\),%esi
 
 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,%eiz,1\),%edi
+[ 	]*[a-f0-9]+:	90                   	nop
+[ 	]*[a-f0-9]+:	90                   	nop
+[ 	]*[a-f0-9]+:	90                   	nop
+[ 	]*[a-f0-9]+:	90                   	nop
+[ 	]*[a-f0-9]+:	90             [...]

[diff truncated at 100000 bytes]


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]