From 10efb593b775f1426395c4521a11c4ec2fe6bc19 Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Fri, 30 Jun 2006 14:16:13 +0000 Subject: bfd/ 2006-06-30 H.J. Lu * 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-30 H.J. Lu * 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. --- ld/testsuite/ChangeLog | 11 +++++++++++ ld/testsuite/ld-i386/tlsbindesc.dd | 21 +++++++-------------- ld/testsuite/ld-i386/tlsdesc.dd | 24 ++++++++---------------- ld/testsuite/ld-i386/tlsgdesc.dd | 6 ++---- ld/testsuite/ld-x86-64/tlsbindesc.dd | 18 ++++++------------ ld/testsuite/ld-x86-64/tlsdesc.dd | 12 ++++-------- ld/testsuite/ld-x86-64/tlsdesc.pd | 10 ++-------- ld/testsuite/ld-x86-64/tlsgdesc.dd | 12 ++++-------- 8 files changed, 44 insertions(+), 70 deletions(-) (limited to 'ld') diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog index 3d17ec6..c47a93b 100644 --- a/ld/testsuite/ChangeLog +++ b/ld/testsuite/ChangeLog @@ -1,3 +1,14 @@ +2006-06-30 H.J. Lu + + * 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. + 2006-06-29 Jakub Jelinek PR ld/2513 diff --git a/ld/testsuite/ld-i386/tlsbindesc.dd b/ld/testsuite/ld-i386/tlsbindesc.dd index 071a5b3..4b4c507 100644 --- a/ld/testsuite/ld-i386/tlsbindesc.dd +++ b/ld/testsuite/ld-i386/tlsbindesc.dd @@ -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 diff --git a/ld/testsuite/ld-i386/tlsdesc.dd b/ld/testsuite/ld-i386/tlsdesc.dd index 666f790..3179fc4 100644 --- a/ld/testsuite/ld-i386/tlsdesc.dd +++ b/ld/testsuite/ld-i386/tlsdesc.dd @@ -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 * diff --git a/ld/testsuite/ld-i386/tlsgdesc.dd b/ld/testsuite/ld-i386/tlsgdesc.dd index ca4092e..a56b305 100644 --- a/ld/testsuite/ld-i386/tlsgdesc.dd +++ b/ld/testsuite/ld-i386/tlsgdesc.dd @@ -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 * diff --git a/ld/testsuite/ld-x86-64/tlsbindesc.dd b/ld/testsuite/ld-x86-64/tlsbindesc.dd index a2e8066..1714388 100644 --- a/ld/testsuite/ld-x86-64/tlsbindesc.dd +++ b/ld/testsuite/ld-x86-64/tlsbindesc.dd @@ -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 diff --git a/ld/testsuite/ld-x86-64/tlsdesc.dd b/ld/testsuite/ld-x86-64/tlsdesc.dd index ed7cf48..78c0942 100644 --- a/ld/testsuite/ld-x86-64/tlsdesc.dd +++ b/ld/testsuite/ld-x86-64/tlsdesc.dd @@ -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 * diff --git a/ld/testsuite/ld-x86-64/tlsdesc.pd b/ld/testsuite/ld-x86-64/tlsdesc.pd index c906944..cd22fd5 100644 --- a/ld/testsuite/ld-x86-64/tlsdesc.pd +++ b/ld/testsuite/ld-x86-64/tlsdesc.pd @@ -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\) diff --git a/ld/testsuite/ld-x86-64/tlsgdesc.dd b/ld/testsuite/ld-x86-64/tlsgdesc.dd index 1120dda..1f017ca 100644 --- a/ld/testsuite/ld-x86-64/tlsgdesc.dd +++ b/ld/testsuite/ld-x86-64/tlsgdesc.dd @@ -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 * -- cgit v1.1