This is the mail archive of the binutils@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]

PATCH: Use multi-byte nops in x86/x86-64 linkers


This patch uses multi-byte nops in x86/x86-64 linkers.


H.J.
----
bfd/

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

	* elf32-i386.c (elf_i386_relocate_section): Use xchg %ax,%ax
	instead of 2 nops.
	* elf64-x86-64.c (elf64_x86_64_relocate_section): Likewise.
	(elf64_x86_64_plt0_entry): Use nopl 0(%rax) instead of 4 nops.

ld/testsuite/

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

	* ld-i386/tlsbindesc.dd: Updated to expect xchg %ax,%ax instead
	of 2 nops.
	* ld-i386/tlsdesc.dd: Likewise.
	* ld-i386/tlsgdesc.dd: Likewise.
	* ld-x86-64/tlsbindesc.dd: Likewise.
	* ld-x86-64/tlsdesc.dd: Likewise.
	* ld-x86-64/tlsdesc.pd: Likewise.
	* ld-x86-64/tlsgdesc.dd: Likewise.

--- binutils/bfd/elf32-i386.c.fill	2006-06-23 10:42:50.000000000 -0700
+++ binutils/bfd/elf32-i386.c	2006-06-23 11:45:51.000000000 -0700
@@ -2854,8 +2854,9 @@ elf_i386_relocate_section (bfd *output_b
 		  val = bfd_get_8 (input_bfd, contents + roff + 1);
 		  BFD_ASSERT (val == 0x10);
 
-		  /* Now modify the instruction as appropriate.  */
-		  bfd_put_8 (output_bfd, 0x90, contents + roff);
+		  /* Now modify the instruction as appropriate.  Use
+		     xchg %ax,%ax instead of 2 nops.  */
+		  bfd_put_8 (output_bfd, 0x66, contents + roff);
 		  bfd_put_8 (output_bfd, 0x90, contents + roff + 1);
 		  continue;
 		}
@@ -3264,8 +3265,8 @@ elf_i386_relocate_section (bfd *output_b
 	      /* Now modify the instruction as appropriate.  */
 	      if (tls_type != GOT_TLS_IE_NEG)
 		{
-		  /* nop; nop */
-		  bfd_put_8 (output_bfd, 0x90, contents + roff);
+		  /* xchg %ax,%ax */
+		  bfd_put_8 (output_bfd, 0x66, contents + roff);
 		  bfd_put_8 (output_bfd, 0x90, contents + roff + 1);
 		}
 	      else
--- binutils/bfd/elf64-x86-64.c.fill	2006-06-23 09:18:41.000000000 -0700
+++ binutils/bfd/elf64-x86-64.c	2006-06-23 12:48:52.000000000 -0700
@@ -350,7 +350,7 @@ static const bfd_byte elf64_x86_64_plt0_
 {
   0xff, 0x35, 8, 0, 0, 0,	/* pushq GOT+8(%rip)  */
   0xff, 0x25, 16, 0, 0, 0,	/* jmpq *GOT+16(%rip) */
-  0x90, 0x90, 0x90, 0x90	/* pad out to 16 bytes with nops.  */
+  0x0f, 0x1f, 0x40, 0x00	/* nopl 0(%rax)       */
 };
 
 /* Subsequent entries in a procedure linkage table look like this.  */
@@ -2617,8 +2617,9 @@ elf64_x86_64_relocate_section (bfd *outp
 		  val = bfd_get_8 (input_bfd, contents + roff + 1);
 		  BFD_ASSERT (val == 0x10);
 
-		  /* Now modify the instruction as appropriate.  */
-		  bfd_put_8 (output_bfd, 0x90, contents + roff);
+		  /* Now modify the instruction as appropriate.  Use
+		     xchg %ax,%ax instead of 2 nops.  */
+		  bfd_put_8 (output_bfd, 0x66, contents + roff);
 		  bfd_put_8 (output_bfd, 0x90, contents + roff + 1);
 		  continue;
 		}
@@ -2910,8 +2911,9 @@ elf64_x86_64_relocate_section (bfd *outp
 	      val = bfd_get_8 (input_bfd, contents + roff + 1);
 	      BFD_ASSERT (val == 0x10);
 
-	      /* Now modify the instruction as appropriate.  */
-	      bfd_put_8 (output_bfd, 0x90, contents + roff);
+	      /* Now modify the instruction as appropriate.  Use
+		 xchg %ax,%ax instead of 2 nops.  */
+	      bfd_put_8 (output_bfd, 0x66, contents + roff);
 	      bfd_put_8 (output_bfd, 0x90, contents + roff + 1);
 
 	      continue;
--- binutils/ld/testsuite/ld-i386/tlsbindesc.dd.fill	2006-01-18 13:07:49.000000000 -0800
+++ binutils/ld/testsuite/ld-i386/tlsbindesc.dd	2006-06-23 12:26:46.000000000 -0700
@@ -51,8 +51,7 @@ Disassembly of section .text:
 #  the variable is referenced through @gotntpoff too
  [0-9a-f]+:	8b 83 dc ff ff ff[ 	]+mov    0xffffffdc\(%ebx\),%eax
 #				->R_386_TLS_TPOFF	sG3
- [0-9a-f]+:	90[ 	]+nop *
- [0-9a-f]+:	90[ 	]+nop *
+ [0-9a-f]+:	66 90[ 	]+xchg   %ax,%ax
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
@@ -61,8 +60,7 @@ Disassembly of section .text:
 #  the variable is referenced through @gottpoff and @gotntpoff too
  [0-9a-f]+:	8b 83 f0 ff ff ff[ 	]+mov    0xfffffff0\(%ebx\),%eax
 #				->R_386_TLS_TPOFF32	sG4
- [0-9a-f]+:	90[ 	]+nop *
- [0-9a-f]+:	90[ 	]+nop *
+ [0-9a-f]+:	66 90[ 	]+xchg   %ax,%ax
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
@@ -70,8 +68,7 @@ Disassembly of section .text:
 #  GD -> LE with global variable defined in executable
  [0-9a-f]+:	8d 05 00 f0 ff ff[ 	]+lea    0xfffff000,%eax
 #							sg1
- [0-9a-f]+:	90[ 	]+nop *
- [0-9a-f]+:	90[ 	]+nop *
+ [0-9a-f]+:	66 90[ 	]+xchg   %ax,%ax
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
@@ -79,8 +76,7 @@ Disassembly of section .text:
 #  GD -> LE with local variable defined in executable
  [0-9a-f]+:	8d 05 20 f0 ff ff[ 	]+lea    0xfffff020,%eax
 #							sl1
- [0-9a-f]+:	90[ 	]+nop *
- [0-9a-f]+:	90[ 	]+nop *
+ [0-9a-f]+:	66 90[ 	]+xchg   %ax,%ax
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
@@ -88,16 +84,14 @@ Disassembly of section .text:
 #  GD -> LE with hidden variable defined in executable
  [0-9a-f]+:	8d 05 40 f0 ff ff[ 	]+lea    0xfffff040,%eax
 #							sh1
- [0-9a-f]+:	90[ 	]+nop *
- [0-9a-f]+:	90[ 	]+nop *
+ [0-9a-f]+:	66 90[ 	]+xchg   %ax,%ax
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
 #  LD -> LE
  [0-9a-f]+:	8d 05 00 f0 ff ff[ 	]+lea    0xfffff000,%eax
- [0-9a-f]+:	90[ 	]+nop *
- [0-9a-f]+:	90[ 	]+nop *
+ [0-9a-f]+:	66 90[ 	]+xchg   %ax,%ax
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	8d 90 20 f0 ff ff[ 	]+lea    0xfffff020\(%eax\),%edx
@@ -112,8 +106,7 @@ Disassembly of section .text:
  [0-9a-f]+:	90[ 	]+nop *
 #  LD -> LE against hidden variables
  [0-9a-f]+:	8d 05 00 f0 ff ff[ 	]+lea    0xfffff000,%eax
- [0-9a-f]+:	90[ 	]+nop *
- [0-9a-f]+:	90[ 	]+nop *
+ [0-9a-f]+:	66 90[ 	]+xchg   %ax,%ax
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	8d 90 40 f0 ff ff[ 	]+lea    0xfffff040\(%eax\),%edx
--- binutils/ld/testsuite/ld-i386/tlsdesc.dd.fill	2006-01-18 13:07:49.000000000 -0800
+++ binutils/ld/testsuite/ld-i386/tlsdesc.dd	2006-06-23 12:24:25.000000000 -0700
@@ -40,8 +40,7 @@ Disassembly of section .text:
 #  GD -> IE because variable is referenced through @gotntpoff too
  [0-9a-f]+:	8b 83 c4 ff ff ff[ 	]+mov    0xffffffc4\(%ebx\),%eax
 #				->R_386_TLS_TPOFF32	sg3
- [0-9a-f]+:	90[ 	]+nop *
- [0-9a-f]+:	90[ 	]+nop *
+ [0-9a-f]+:	66 90[ 	]+xchg   %ax,%ax
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
@@ -49,8 +48,7 @@ Disassembly of section .text:
 #  GD -> IE because variable is referenced through @gottpoff and
  [0-9a-f]+:	8b 83 d4 ff ff ff[ 	]+mov    0xffffffd4\(%ebx\),%eax
 #				->R_386_TLS_TPOFF32	sg4
- [0-9a-f]+:	90[ 	]+nop *
- [0-9a-f]+:	90[ 	]+nop *
+ [0-9a-f]+:	66 90[ 	]+xchg   %ax,%ax
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
@@ -74,8 +72,7 @@ Disassembly of section .text:
 #  GD -> IE against local variable referenced through @gotntpoff
  [0-9a-f]+:	8b 83 b4 ff ff ff[ 	]+mov    0xffffffb4\(%ebx\),%eax
 #				->R_386_TLS_TPOFF32	sl3
- [0-9a-f]+:	90[ 	]+nop *
- [0-9a-f]+:	90[ 	]+nop *
+ [0-9a-f]+:	66 90[ 	]+xchg   %ax,%ax
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
@@ -83,8 +80,7 @@ Disassembly of section .text:
 #  GD -> IE against local variable referenced through @gottpoff and
  [0-9a-f]+:	8b 83 bc ff ff ff[ 	]+mov    0xffffffbc\(%ebx\),%eax
 #				->R_386_TLS_TPOFF32	sl4
- [0-9a-f]+:	90[ 	]+nop *
- [0-9a-f]+:	90[ 	]+nop *
+ [0-9a-f]+:	66 90[ 	]+xchg   %ax,%ax
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
@@ -108,8 +104,7 @@ Disassembly of section .text:
 #  GD -> IE against hidden and local variable referenced through @gotntpoff too
  [0-9a-f]+:	8b 83 c8 ff ff ff[ 	]+mov    0xffffffc8\(%ebx\),%eax
 #				->R_386_TLS_TPOFF32	sh3
- [0-9a-f]+:	90[ 	]+nop *
- [0-9a-f]+:	90[ 	]+nop *
+ [0-9a-f]+:	66 90[ 	]+xchg   %ax,%ax
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
@@ -117,8 +112,7 @@ Disassembly of section .text:
 #  GD -> IE against hidden and local variable referenced through @gottpoff and @gotntpoff too
  [0-9a-f]+:	8b 83 e8 ff ff ff[ 	]+mov    0xffffffe8\(%ebx\),%eax
 #				->R_386_TLS_TPOFF32	sh4
- [0-9a-f]+:	90[ 	]+nop *
- [0-9a-f]+:	90[ 	]+nop *
+ [0-9a-f]+:	66 90[ 	]+xchg   %ax,%ax
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
@@ -142,8 +136,7 @@ Disassembly of section .text:
 #  GD -> IE against hidden but not local variable referenced through
  [0-9a-f]+:	8b 83 ec ff ff ff[ 	]+mov    0xffffffec\(%ebx\),%eax
 #				->R_386_TLS_TPOFF32	sH3
- [0-9a-f]+:	90[ 	]+nop *
- [0-9a-f]+:	90[ 	]+nop *
+ [0-9a-f]+:	66 90[ 	]+xchg   %ax,%ax
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
@@ -151,8 +144,7 @@ Disassembly of section .text:
 #  GD -> IE against hidden but not local variable referenced through
  [0-9a-f]+:	8b 83 e0 ff ff ff[ 	]+mov    0xffffffe0\(%ebx\),%eax
 #				->R_386_TLS_TPOFF32	sH4
- [0-9a-f]+:	90[ 	]+nop *
- [0-9a-f]+:	90[ 	]+nop *
+ [0-9a-f]+:	66 90[ 	]+xchg   %ax,%ax
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
--- binutils/ld/testsuite/ld-i386/tlsgdesc.dd.fill	2006-01-18 13:07:49.000000000 -0800
+++ binutils/ld/testsuite/ld-i386/tlsgdesc.dd	2006-06-23 12:29:22.000000000 -0700
@@ -89,8 +89,7 @@ Disassembly of section .text:
 #  GD -> IE because variable is referenced through @gotntpoff too
  [0-9a-f]+:	8b 83 f0 ff ff ff[ 	]+mov    0xfffffff0\(%ebx\),%eax
 #				->R_386_TLS_TPOFF	sG4
- [0-9a-f]+:	90[ 	]+nop *
- [0-9a-f]+:	90[ 	]+nop *
+ [0-9a-f]+:	66 90[ 	]+xchg   %ax,%ax
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
@@ -112,8 +111,7 @@ Disassembly of section .text:
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	8b 83 e4 ff ff ff[ 	]+mov    0xffffffe4\(%ebx\),%eax
 #				->R_386_TLS_TPOFF	sG5
- [0-9a-f]+:	90[ 	]+nop *
- [0-9a-f]+:	90[ 	]+nop *
+ [0-9a-f]+:	66 90[ 	]+xchg   %ax,%ax
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
  [0-9a-f]+:	90[ 	]+nop *
--- binutils/ld/testsuite/ld-x86-64/tlsbindesc.dd.fill	2006-05-25 21:08:20.000000000 -0700
+++ binutils/ld/testsuite/ld-x86-64/tlsbindesc.dd	2006-06-23 12:36:46.000000000 -0700
@@ -24,8 +24,7 @@ Disassembly of section .text:
 #  GD -> IE because variable is not defined in executable
   [0-9a-f]+:	48 8b 05 65 03 20 00[ 	]+mov    2098021\(%rip\),%rax +# 601370 <.*>
 #				-> R_X86_64_TPOFF64	sG1
-  [0-9a-f]+:	90[ 	]+nop *
-  [0-9a-f]+:	90[ 	]+nop *
+  [0-9a-f]+:	66 90[ 	]+xchg   %ax,%ax
   [0-9a-f]+:	90[ 	]+nop *
   [0-9a-f]+:	90[ 	]+nop *
   [0-9a-f]+:	90[ 	]+nop *
@@ -34,8 +33,7 @@ Disassembly of section .text:
 #  the variable is referenced through IE too
   [0-9a-f]+:	48 8b 05 48 03 20 00[ 	]+mov    2097992\(%rip\),%rax +# 601360 <.*>
 #				-> R_X86_64_TPOFF64	sG2
-  [0-9a-f]+:	90[ 	]+nop *
-  [0-9a-f]+:	90[ 	]+nop *
+  [0-9a-f]+:	66 90[ 	]+xchg   %ax,%ax
   [0-9a-f]+:	90[ 	]+nop *
   [0-9a-f]+:	90[ 	]+nop *
   [0-9a-f]+:	90[ 	]+nop *
@@ -43,8 +41,7 @@ Disassembly of section .text:
 #  GD -> LE with global variable defined in executable
   [0-9a-f]+:	48 c7 c0 60 ff ff ff[ 	]+mov    \$0xf+60,%rax
 #							sg1
-  [0-9a-f]+:	90[ 	]+nop *
-  [0-9a-f]+:	90[ 	]+nop *
+  [0-9a-f]+:	66 90[ 	]+xchg   %ax,%ax
   [0-9a-f]+:	90[ 	]+nop *
   [0-9a-f]+:	90[ 	]+nop *
   [0-9a-f]+:	90[ 	]+nop *
@@ -52,8 +49,7 @@ Disassembly of section .text:
 #  GD -> LE with local variable defined in executable
   [0-9a-f]+:	48 c7 c0 80 ff ff ff[ 	]+mov    \$0xf+80,%rax
 #							sl1
-  [0-9a-f]+:	90[ 	]+nop *
-  [0-9a-f]+:	90[ 	]+nop *
+  [0-9a-f]+:	66 90[ 	]+xchg   %ax,%ax
   [0-9a-f]+:	90[ 	]+nop *
   [0-9a-f]+:	90[ 	]+nop *
   [0-9a-f]+:	90[ 	]+nop *
@@ -61,16 +57,14 @@ Disassembly of section .text:
 #  GD -> LE with hidden variable defined in executable
   [0-9a-f]+:	48 c7 c0 a0 ff ff ff[ 	]+mov    \$0xf+a0,%rax
 #							sh1
-  [0-9a-f]+:	90[ 	]+nop *
-  [0-9a-f]+:	90[ 	]+nop *
+  [0-9a-f]+:	66 90[ 	]+xchg   %ax,%ax
   [0-9a-f]+:	90[ 	]+nop *
   [0-9a-f]+:	90[ 	]+nop *
   [0-9a-f]+:	90[ 	]+nop *
   [0-9a-f]+:	90[ 	]+nop *
 #  LD -> LE
   [0-9a-f]+:	48 c7 c0 60 ff ff ff[ 	]+mov    \$0xf+60,%rax
-  [0-9a-f]+:	90[ 	]+nop *
-  [0-9a-f]+:	90[ 	]+nop *
+  [0-9a-f]+:	66 90[ 	]+xchg   %ax,%ax
   [0-9a-f]+:	90[ 	]+nop *
   [0-9a-f]+:	90[ 	]+nop *
   [0-9a-f]+:	48 8d 90 81 ff ff ff[ 	]+lea    0xf+81\(%rax\),%rdx
--- binutils/ld/testsuite/ld-x86-64/tlsdesc.dd.fill	2006-05-25 21:08:20.000000000 -0700
+++ binutils/ld/testsuite/ld-x86-64/tlsdesc.dd	2006-06-23 12:32:10.000000000 -0700
@@ -27,8 +27,7 @@ Disassembly of section .text:
 #  GD -> IE because variable is referenced through IE too
  +[0-9a-f]+:	48 8b 05 1c 03 20 00[ 	]+mov    2097948\(%rip\),%rax +# 201338 <.*>
 #				-> R_X86_64_TPOFF64	sg2
- +[0-9a-f]+:	90[ 	]+nop *
- +[0-9a-f]+:	90[ 	]+nop *
+ +[0-9a-f]+:	66 90[ 	]+xchg   %ax,%ax
  +[0-9a-f]+:	90[ 	]+nop *
  +[0-9a-f]+:	90[ 	]+nop *
  +[0-9a-f]+:	90[ 	]+nop *
@@ -44,8 +43,7 @@ Disassembly of section .text:
 #  GD -> IE against local variable referenced through IE too
  +[0-9a-f]+:	48 8b 05 d2 02 20 00[ 	]+mov    2097874\(%rip\),%rax +# 201308 <.*>
 #				-> R_X86_64_TPOFF64	*ABS*+0x24
- +[0-9a-f]+:	90[ 	]+nop *
- +[0-9a-f]+:	90[ 	]+nop *
+ +[0-9a-f]+:	66 90[ 	]+xchg   %ax,%ax
  +[0-9a-f]+:	90[ 	]+nop *
  +[0-9a-f]+:	90[ 	]+nop *
  +[0-9a-f]+:	90[ 	]+nop *
@@ -61,8 +59,7 @@ Disassembly of section .text:
 #  GD -> IE against hidden and local variable referenced through IE too
  +[0-9a-f]+:	48 8b 05 f0 02 20 00[ 	]+mov    2097904\(%rip\),%rax +# 201340 <.*>
 #				-> R_X86_64_TPOFF64	*ABS*+0x44
- +[0-9a-f]+:	90[ 	]+nop *
- +[0-9a-f]+:	90[ 	]+nop *
+ +[0-9a-f]+:	66 90[ 	]+xchg   %ax,%ax
  +[0-9a-f]+:	90[ 	]+nop *
  +[0-9a-f]+:	90[ 	]+nop *
  +[0-9a-f]+:	90[ 	]+nop *
@@ -78,8 +75,7 @@ Disassembly of section .text:
 #  GD -> IE against hidden but not local variable referenced through IE too
  +[0-9a-f]+:	48 8b 05 ae 02 20 00[ 	]+mov    2097838\(%rip\),%rax +# 201318 <.*>
 #				-> R_X86_64_TPOFF64	*ABS*+0x64
- +[0-9a-f]+:	90[ 	]+nop *
- +[0-9a-f]+:	90[ 	]+nop *
+ +[0-9a-f]+:	66 90[ 	]+xchg   %ax,%ax
  +[0-9a-f]+:	90[ 	]+nop *
  +[0-9a-f]+:	90[ 	]+nop *
  +[0-9a-f]+:	90[ 	]+nop *
--- binutils/ld/testsuite/ld-x86-64/tlsdesc.pd.fill	2006-05-25 21:08:20.000000000 -0700
+++ binutils/ld/testsuite/ld-x86-64/tlsdesc.pd	2006-06-23 12:34:43.000000000 -0700
@@ -12,15 +12,9 @@ Disassembly of section .plt:
 0000000000000470 <.*@plt-0x10>:
  470:	ff 35 e2 0e 20 00    	pushq  2100962\(%rip\)        # 201358 <_GLOBAL_OFFSET_TABLE_\+0x8>
  476:	ff 25 e4 0e 20 00    	jmpq   \*2100964\(%rip\)        # 201360 <_GLOBAL_OFFSET_TABLE_\+0x10>
- 47c:	90                   	nop *
- 47d:	90                   	nop *
- 47e:	90                   	nop *
- 47f:	90                   	nop *
+ 47c:	0f 1f 40 00          	nopl   0x0\(%rax\)
 0000000000000480 <.*@plt>:
  480:	ff 35 d2 0e 20 00    	pushq  2100946\(%rip\)        # 201358 <_GLOBAL_OFFSET_TABLE_\+0x8>
  486:	ff 25 bc 0e 20 00    	jmpq   \*2100924\(%rip\)        # 201348 <_DYNAMIC\+0x190>
- 48c:	90                   	nop *
- 48d:	90                   	nop *
- 48e:	90                   	nop *
- 48f:	90                   	nop *
+ 48c:	0f 1f 40 00          	nopl   0x0\(%rax\)
 
--- binutils/ld/testsuite/ld-x86-64/tlsgdesc.dd.fill	2006-05-25 21:08:20.000000000 -0700
+++ binutils/ld/testsuite/ld-x86-64/tlsgdesc.dd	2006-06-23 12:39:25.000000000 -0700
@@ -84,8 +84,7 @@ Disassembly of section .text:
  +[0-9a-f]+:	90[ 	]+nop *
  +[0-9a-f]+:	48 8b 05 e7 01 20 00[ 	]+mov    2097639\(%rip\),%rax +# 200660 <.*>
 #				-> R_X86_64_TPOFF64	sG3
- +[0-9a-f]+:	90[ 	]+nop *
- +[0-9a-f]+:	90[ 	]+nop *
+ +[0-9a-f]+:	66 90[ 	]+xchg   %ax,%ax
  +[0-9a-f]+:	90[ 	]+nop *
  +[0-9a-f]+:	90[ 	]+nop *
  +[0-9a-f]+:	90[ 	]+nop *
@@ -93,8 +92,7 @@ Disassembly of section .text:
 # GD -> IE, desc first, after IE use
  +[0-9a-f]+:	48 8b 05 fa 01 20 00[ 	]+mov    2097658\(%rip\),%rax +# 200680 <.*>
 #				-> R_X86_64_TPOFF64	sG4
- +[0-9a-f]+:	90[ 	]+nop *
- +[0-9a-f]+:	90[ 	]+nop *
+ +[0-9a-f]+:	66 90[ 	]+xchg   %ax,%ax
  +[0-9a-f]+:	90[ 	]+nop *
  +[0-9a-f]+:	90[ 	]+nop *
  +[0-9a-f]+:	90[ 	]+nop *
@@ -118,8 +116,7 @@ Disassembly of section .text:
  +[0-9a-f]+:	90[ 	]+nop *
  +[0-9a-f]+:	48 8b 05 ad 01 20 00[ 	]+mov    2097581\(%rip\),%rax +# 200668 <.*>
 #				-> R_X86_64_TPOFF64	sG5
- +[0-9a-f]+:	90[ 	]+nop *
- +[0-9a-f]+:	90[ 	]+nop *
+ +[0-9a-f]+:	66 90[ 	]+xchg   %ax,%ax
  +[0-9a-f]+:	90[ 	]+nop *
  +[0-9a-f]+:	90[ 	]+nop *
  +[0-9a-f]+:	90[ 	]+nop *
@@ -127,8 +124,7 @@ Disassembly of section .text:
 # GD -> IE, desc first, before IE use
  +[0-9a-f]+:	48 8b 05 c0 01 20 00[ 	]+mov    2097600\(%rip\),%rax +# 200688 <.*>
 #				-> R_X86_64_TPOFF64	sG6
- +[0-9a-f]+:	90[ 	]+nop *
- +[0-9a-f]+:	90[ 	]+nop *
+ +[0-9a-f]+:	66 90[ 	]+xchg   %ax,%ax
  +[0-9a-f]+:	90[ 	]+nop *
  +[0-9a-f]+:	90[ 	]+nop *
  +[0-9a-f]+:	90[ 	]+nop *


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