[lld] r291523 - ELF: Place relro sections after non-relro sections in r/w segment.

Peter Collingbourne via llvm-commits llvm-commits at lists.llvm.org
Mon Jan 9 17:21:32 PST 2017


Author: pcc
Date: Mon Jan  9 19:21:30 2017
New Revision: 291523

URL: http://llvm.org/viewvc/llvm-project?rev=291523&view=rev
Log:
ELF: Place relro sections after non-relro sections in r/w segment.

This is in preparation for my next change, which will introduce a relro
nobits section. That requires that relro sections appear at the end of the
progbits part of the r/w segment so that the relro nobits section can appear
contiguously.

Because of the amount of churn required in the test suite, I'm making this
change separately.

Modified:
    lld/trunk/ELF/Writer.cpp
    lld/trunk/test/ELF/aarch64-condb-reloc.s
    lld/trunk/test/ELF/aarch64-gnu-ifunc-plt.s
    lld/trunk/test/ELF/aarch64-tstbr14-reloc.s
    lld/trunk/test/ELF/amdgpu-relocs.s
    lld/trunk/test/ELF/arm-abs32-dyn.s
    lld/trunk/test/ELF/arm-exidx-shared.s
    lld/trunk/test/ELF/arm-fpic-got.s
    lld/trunk/test/ELF/arm-gnu-ifunc-plt.s
    lld/trunk/test/ELF/arm-pie-relative.s
    lld/trunk/test/ELF/arm-plt-reloc.s
    lld/trunk/test/ELF/arm-thumb-interwork-shared.s
    lld/trunk/test/ELF/arm-thumb-plt-reloc.s
    lld/trunk/test/ELF/arm-tls-norelax-gd-ie.s
    lld/trunk/test/ELF/arm-tls-norelax-gd-le.s
    lld/trunk/test/ELF/arm-tls-norelax-ie-le.s
    lld/trunk/test/ELF/arm-tls-norelax-ld-le.s
    lld/trunk/test/ELF/basic-mips.s
    lld/trunk/test/ELF/basic64be.s
    lld/trunk/test/ELF/combrelocs.s
    lld/trunk/test/ELF/copy-rel-pie.s
    lld/trunk/test/ELF/dynamic-reloc-index.s
    lld/trunk/test/ELF/dynamic-reloc.s
    lld/trunk/test/ELF/gnu-ifunc-plt-i386.s
    lld/trunk/test/ELF/gnu-ifunc-plt.s
    lld/trunk/test/ELF/gnu-ifunc-shared.s
    lld/trunk/test/ELF/got-aarch64.s
    lld/trunk/test/ELF/got-plt-header.s
    lld/trunk/test/ELF/gotpc-relax-nopic.s
    lld/trunk/test/ELF/i386-merge.s
    lld/trunk/test/ELF/linkerscript/orphan.s
    lld/trunk/test/ELF/linkerscript/repsection-symbol.s
    lld/trunk/test/ELF/linkerscript/sort-non-script.s
    lld/trunk/test/ELF/lto/undefined-puts.ll
    lld/trunk/test/ELF/lto/visibility.ll
    lld/trunk/test/ELF/mips-26.s
    lld/trunk/test/ELF/mips-32.s
    lld/trunk/test/ELF/mips-64-disp.s
    lld/trunk/test/ELF/mips-64-got.s
    lld/trunk/test/ELF/mips-64.s
    lld/trunk/test/ELF/mips-dynamic.s
    lld/trunk/test/ELF/mips-got-and-copy.s
    lld/trunk/test/ELF/mips-got-extsym.s
    lld/trunk/test/ELF/mips-got-hilo.s
    lld/trunk/test/ELF/mips-got-redundant.s
    lld/trunk/test/ELF/mips-got-relocs.s
    lld/trunk/test/ELF/mips-got-weak.s
    lld/trunk/test/ELF/mips-got16.s
    lld/trunk/test/ELF/mips-gp-ext.s
    lld/trunk/test/ELF/mips-gp-lowest.s
    lld/trunk/test/ELF/mips-hilo-gp-disp.s
    lld/trunk/test/ELF/mips-hilo.s
    lld/trunk/test/ELF/mips-options.s
    lld/trunk/test/ELF/mips-pc-relocs.s
    lld/trunk/test/ELF/mips-plt-r6.s
    lld/trunk/test/ELF/mips-tls-64.s
    lld/trunk/test/ELF/mips-tls-static-64.s
    lld/trunk/test/ELF/mips-tls-static.s
    lld/trunk/test/ELF/mips-tls.s
    lld/trunk/test/ELF/mips-xgot-order.s
    lld/trunk/test/ELF/plt-aarch64.s
    lld/trunk/test/ELF/plt-i686.s
    lld/trunk/test/ELF/plt.s
    lld/trunk/test/ELF/ppc64-relocs.s
    lld/trunk/test/ELF/ppc64-shared-rel-toc.s
    lld/trunk/test/ELF/ppc64-toc-restore.s
    lld/trunk/test/ELF/rel-offset.s
    lld/trunk/test/ELF/relative-dynamic-reloc-pie.s
    lld/trunk/test/ELF/relative-dynamic-reloc-ppc64.s
    lld/trunk/test/ELF/relative-dynamic-reloc.s
    lld/trunk/test/ELF/relocation-copy-flags.s
    lld/trunk/test/ELF/relocation-i686.s
    lld/trunk/test/ELF/relocation-non-alloc.s
    lld/trunk/test/ELF/relocation.s
    lld/trunk/test/ELF/section-layout.s
    lld/trunk/test/ELF/section-name.s
    lld/trunk/test/ELF/sort-norosegment.s
    lld/trunk/test/ELF/startstop.s
    lld/trunk/test/ELF/synthetic-got.s
    lld/trunk/test/ELF/tls-dynamic-i686.s
    lld/trunk/test/ELF/tls-dynamic.s
    lld/trunk/test/ELF/tls-offset.s
    lld/trunk/test/ELF/undef-with-plt-addr.s
    lld/trunk/test/ELF/undefined-versioned-symbol.s
    lld/trunk/test/ELF/x86-64-tls-gd-local.s

Modified: lld/trunk/ELF/Writer.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/ELF/Writer.cpp?rev=291523&r1=291522&r2=291523&view=diff
==============================================================================
--- lld/trunk/ELF/Writer.cpp (original)
+++ lld/trunk/ELF/Writer.cpp Mon Jan  9 19:21:30 2017
@@ -557,30 +557,38 @@ static bool compareSectionsNonScript(con
 
   // If we got here we know that both A and B are in the same PT_LOAD.
 
-  // The TLS initialization block needs to be a single contiguous block in a R/W
-  // PT_LOAD, so stick TLS sections directly before R/W sections. The TLS NOBITS
-  // sections are placed here as they don't take up virtual address space in the
-  // PT_LOAD.
   bool AIsTls = A->Flags & SHF_TLS;
   bool BIsTls = B->Flags & SHF_TLS;
-  if (AIsTls != BIsTls)
-    return AIsTls;
-
-  // The next requirement we have is to put nobits sections last. The
-  // reason is that the only thing the dynamic linker will see about
-  // them is a p_memsz that is larger than p_filesz. Seeing that it
-  // zeros the end of the PT_LOAD, so that has to correspond to the
-  // nobits sections.
   bool AIsNoBits = A->Type == SHT_NOBITS;
   bool BIsNoBits = B->Type == SHT_NOBITS;
-  if (AIsNoBits != BIsNoBits)
-    return BIsNoBits;
 
-  // We place RelRo section before plain r/w ones.
+  // The first requirement we have is to put (non-TLS) nobits sections last. The
+  // reason is that the only thing the dynamic linker will see about them is a
+  // p_memsz that is larger than p_filesz. Seeing that it zeros the end of the
+  // PT_LOAD, so that has to correspond to the nobits sections.
+  bool AIsNonTlsNoBits = AIsNoBits && !AIsTls;
+  bool BIsNonTlsNoBits = BIsNoBits && !BIsTls;
+  if (AIsNonTlsNoBits != BIsNonTlsNoBits)
+    return BIsNonTlsNoBits;
+
+  // We place nobits RelRo sections before plain r/w ones, and non-nobits RelRo
+  // sections after r/w ones, so that the RelRo sections are contiguous.
   bool AIsRelRo = isRelroSection<ELFT>(A);
   bool BIsRelRo = isRelroSection<ELFT>(B);
   if (AIsRelRo != BIsRelRo)
-    return AIsRelRo;
+    return AIsNonTlsNoBits ? AIsRelRo : BIsRelRo;
+
+  // The TLS initialization block needs to be a single contiguous block in a R/W
+  // PT_LOAD, so stick TLS sections directly before the other RelRo R/W
+  // sections. The TLS NOBITS sections are placed here as they don't take up
+  // virtual address space in the PT_LOAD.
+  if (AIsTls != BIsTls)
+    return AIsTls;
+
+  // Within the TLS initialization block, the non-nobits sections need to appear
+  // first.
+  if (AIsNoBits != BIsNoBits)
+    return BIsNoBits;
 
   // Some architectures have additional ordering restrictions for sections
   // within the same PT_LOAD.
@@ -1272,8 +1280,9 @@ void Writer<ELFT>::addPtArmExid(std::vec
   Phdrs.push_back(ARMExidx);
 }
 
-// The first section of each PT_LOAD and the first section after PT_GNU_RELRO
-// have to be page aligned so that the dynamic linker can set the permissions.
+// The first section of each PT_LOAD, the first section in PT_GNU_RELRO and the
+// first section after PT_GNU_RELRO have to be page aligned so that the dynamic
+// linker can set the permissions.
 template <class ELFT> void Writer<ELFT>::fixSectionAlignments() {
   for (const PhdrEntry &P : Phdrs)
     if (P.p_type == PT_LOAD && P.First)
@@ -1282,6 +1291,8 @@ template <class ELFT> void Writer<ELFT>:
   for (const PhdrEntry &P : Phdrs) {
     if (P.p_type != PT_GNU_RELRO)
       continue;
+    if (P.First)
+      P.First->PageAlign = true;
     // Find the first section after PT_GNU_RELRO. If it is in a PT_LOAD we
     // have to align it to a page.
     auto End = OutputSections.end();

Modified: lld/trunk/test/ELF/aarch64-condb-reloc.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/aarch64-condb-reloc.s?rev=291523&r1=291522&r2=291523&view=diff
==============================================================================
--- lld/trunk/test/ELF/aarch64-condb-reloc.s (original)
+++ lld/trunk/test/ELF/aarch64-condb-reloc.s Mon Jan  9 19:21:30 2017
@@ -36,8 +36,8 @@
 #DSOREL-NEXT:     SHF_ALLOC
 #DSOREL-NEXT:     SHF_WRITE
 #DSOREL-NEXT:   ]
-#DSOREL-NEXT:   Address: 0x30000
-#DSOREL-NEXT:   Offset: 0x30000
+#DSOREL-NEXT:   Address: 0x20000
+#DSOREL-NEXT:   Offset: 0x20000
 #DSOREL-NEXT:   Size: 48
 #DSOREL-NEXT:   Link: 0
 #DSOREL-NEXT:   Info: 0
@@ -46,9 +46,9 @@
 #DSOREL-NEXT:  }
 #DSOREL:      Relocations [
 #DSOREL-NEXT:  Section ({{.*}}) .rela.plt {
-#DSOREL-NEXT:    0x30018 R_AARCH64_JUMP_SLOT _foo
-#DSOREL-NEXT:    0x30020 R_AARCH64_JUMP_SLOT _bar
-#DSOREL-NEXT:    0x30028 R_AARCH64_JUMP_SLOT _dah
+#DSOREL-NEXT:    0x20018 R_AARCH64_JUMP_SLOT _foo
+#DSOREL-NEXT:    0x20020 R_AARCH64_JUMP_SLOT _bar
+#DSOREL-NEXT:    0x20028 R_AARCH64_JUMP_SLOT _dah
 #DSOREL-NEXT:  }
 #DSOREL-NEXT:]
 
@@ -72,22 +72,22 @@
 #DSO-NEXT: Disassembly of section .plt:
 #DSO-NEXT: .plt:
 #DSO-NEXT:     10030: {{.*}} stp x16, x30, [sp, #-16]!
-#DSO-NEXT:     10034: {{.*}} adrp x16, #131072
+#DSO-NEXT:     10034: {{.*}} adrp x16, #65536
 #DSO-NEXT:     10038: {{.*}} ldr x17, [x16, #16]
 #DSO-NEXT:     1003c: {{.*}} add x16, x16, #16
 #DSO-NEXT:     10040: {{.*}} br x17
 #DSO-NEXT:     10044: {{.*}} nop
 #DSO-NEXT:     10048: {{.*}} nop
 #DSO-NEXT:     1004c: {{.*}} nop
-#DSO-NEXT:     10050: {{.*}} adrp x16, #131072
+#DSO-NEXT:     10050: {{.*}} adrp x16, #65536
 #DSO-NEXT:     10054: {{.*}} ldr x17, [x16, #24]
 #DSO-NEXT:     10058: {{.*}} add x16, x16, #24
 #DSO-NEXT:     1005c: {{.*}} br x17
-#DSO-NEXT:     10060: {{.*}} adrp x16, #131072
+#DSO-NEXT:     10060: {{.*}} adrp x16, #65536
 #DSO-NEXT:     10064: {{.*}} ldr x17, [x16, #32]
 #DSO-NEXT:     10068: {{.*}} add x16, x16, #32
 #DSO-NEXT:     1006c: {{.*}} br x17
-#DSO-NEXT:     10070: {{.*}} adrp x16, #131072
+#DSO-NEXT:     10070: {{.*}} adrp x16, #65536
 #DSO-NEXT:     10074: {{.*}} ldr x17, [x16, #40]
 #DSO-NEXT:     10078: {{.*}} add x16, x16, #40
 #DSO-NEXT:     1007c: {{.*}} br x17

Modified: lld/trunk/test/ELF/aarch64-gnu-ifunc-plt.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/aarch64-gnu-ifunc-plt.s?rev=291523&r1=291522&r2=291523&view=diff
==============================================================================
--- lld/trunk/test/ELF/aarch64-gnu-ifunc-plt.s (original)
+++ lld/trunk/test/ELF/aarch64-gnu-ifunc-plt.s Mon Jan  9 19:21:30 2017
@@ -10,19 +10,19 @@
 // Check that the IRELATIVE relocations are after the JUMP_SLOT in the plt
 // CHECK: Relocations [
 // CHECK-NEXT:   Section (4) .rela.plt {
-// CHECK:     0x40018 R_AARCH64_JUMP_SLOT bar2 0x0
-// CHECK-NEXT:     0x40020 R_AARCH64_JUMP_SLOT zed2 0x0
-// CHECK-NEXT:     0x40028 R_AARCH64_IRELATIVE - 0x20000
-// CHECK-NEXT:     0x40030 R_AARCH64_IRELATIVE - 0x20004
+// CHECK:     0x30018 R_AARCH64_JUMP_SLOT bar2 0x0
+// CHECK-NEXT:     0x30020 R_AARCH64_JUMP_SLOT zed2 0x0
+// CHECK-NEXT:     0x30028 R_AARCH64_IRELATIVE - 0x20000
+// CHECK-NEXT:     0x30030 R_AARCH64_IRELATIVE - 0x20004
 // CHECK-NEXT:   }
 // CHECK-NEXT: ]
 
 // Check that .got.plt entries point back to PLT header
 // GOTPLT: Contents of section .got.plt:
-// GOTPLT-NEXT:  40000 00000000 00000000 00000000 00000000
-// GOTPLT-NEXT:  40010 00000000 00000000 20000200 00000000
-// GOTPLT-NEXT:  40020 20000200 00000000 20000200 00000000
-// GOTPLT-NEXT:  40030 20000200 00000000
+// GOTPLT-NEXT:  30000 00000000 00000000 00000000 00000000
+// GOTPLT-NEXT:  30010 00000000 00000000 20000200 00000000
+// GOTPLT-NEXT:  30020 20000200 00000000 20000200 00000000
+// GOTPLT-NEXT:  30030 20000200 00000000
 
 // Check that the PLTRELSZ tag includes the IRELATIVE relocations
 // CHECK: DynamicSection [
@@ -31,40 +31,40 @@
 // Check that a PLT header is written and the ifunc entries appear last
 // DISASM: Disassembly of section .text:
 // DISASM-NEXT: foo:
-// DISASM-NEXT:    20000:       c0 03 5f d6     ret
+// DISASM-NEXT:    20000: {{.*}} ret
 // DISASM:      bar:
-// DISASM-NEXT:    20004:       c0 03 5f d6     ret
+// DISASM-NEXT:    20004: {{.*}} ret
 // DISASM:      _start:
-// DISASM-NEXT:    20008:       16 00 00 94     bl      #88
-// DISASM-NEXT:    2000c:       19 00 00 94     bl      #100
-// DISASM-NEXT:    20010:       0c 00 00 94     bl      #48
-// DISASM-NEXT:    20014:       0f 00 00 94     bl      #60
+// DISASM-NEXT:    20008: {{.*}} bl      #88
+// DISASM-NEXT:    2000c: {{.*}} bl      #100
+// DISASM-NEXT:    20010: {{.*}} bl      #48
+// DISASM-NEXT:    20014: {{.*}} bl      #60
 // DISASM-NEXT: Disassembly of section .plt:
 // DISASM-NEXT: .plt:
-// DISASM-NEXT:    20020:       f0 7b bf a9     stp     x16, x30, [sp, #-16]!
-// DISASM-NEXT:    20024:       10 01 00 90     adrp    x16, #131072
-// DISASM-NEXT:    20028:       11 0a 40 f9     ldr     x17, [x16, #16]
-// DISASM-NEXT:    2002c:       10 42 00 91     add     x16, x16, #16
-// DISASM-NEXT:    20030:       20 02 1f d6     br      x17
-// DISASM-NEXT:    20034:       1f 20 03 d5     nop
-// DISASM-NEXT:    20038:       1f 20 03 d5     nop
-// DISASM-NEXT:    2003c:       1f 20 03 d5     nop
-// DISASM-NEXT:    20040:       10 01 00 90     adrp    x16, #131072
-// DISASM-NEXT:    20044:       11 0e 40 f9     ldr     x17, [x16, #24]
-// DISASM-NEXT:    20048:       10 62 00 91     add     x16, x16, #24
-// DISASM-NEXT:    2004c:       20 02 1f d6     br      x17
-// DISASM-NEXT:    20050:       10 01 00 90     adrp    x16, #131072
-// DISASM-NEXT:    20054:       11 12 40 f9     ldr     x17, [x16, #32]
-// DISASM-NEXT:    20058:       10 82 00 91     add     x16, x16, #32
-// DISASM-NEXT:    2005c:       20 02 1f d6     br      x17
-// DISASM-NEXT:    20060:       10 01 00 90     adrp    x16, #131072
-// DISASM-NEXT:    20064:       11 16 40 f9     ldr     x17, [x16, #40]
-// DISASM-NEXT:    20068:       10 a2 00 91     add     x16, x16, #40
-// DISASM-NEXT:    2006c:       20 02 1f d6     br      x17
-// DISASM-NEXT:    20070:       10 01 00 90     adrp    x16, #131072
-// DISASM-NEXT:    20074:       11 1a 40 f9     ldr     x17, [x16, #48]
-// DISASM-NEXT:    20078:       10 c2 00 91     add     x16, x16, #48
-// DISASM-NEXT:    2007c:       20 02 1f d6     br      x17
+// DISASM-NEXT:    20020: {{.*}} stp     x16, x30, [sp, #-16]!
+// DISASM-NEXT:    20024: {{.*}} adrp    x16, #65536
+// DISASM-NEXT:    20028: {{.*}} ldr     x17, [x16, #16]
+// DISASM-NEXT:    2002c: {{.*}} add     x16, x16, #16
+// DISASM-NEXT:    20030: {{.*}} br      x17
+// DISASM-NEXT:    20034: {{.*}} nop
+// DISASM-NEXT:    20038: {{.*}} nop
+// DISASM-NEXT:    2003c: {{.*}} nop
+// DISASM-NEXT:    20040: {{.*}} adrp    x16, #65536
+// DISASM-NEXT:    20044: {{.*}} ldr     x17, [x16, #24]
+// DISASM-NEXT:    20048: {{.*}} add     x16, x16, #24
+// DISASM-NEXT:    2004c: {{.*}} br      x17
+// DISASM-NEXT:    20050: {{.*}} adrp    x16, #65536
+// DISASM-NEXT:    20054: {{.*}} ldr     x17, [x16, #32]
+// DISASM-NEXT:    20058: {{.*}} add     x16, x16, #32
+// DISASM-NEXT:    2005c: {{.*}} br      x17
+// DISASM-NEXT:    20060: {{.*}} adrp    x16, #65536
+// DISASM-NEXT:    20064: {{.*}} ldr     x17, [x16, #40]
+// DISASM-NEXT:    20068: {{.*}} add     x16, x16, #40
+// DISASM-NEXT:    2006c: {{.*}} br      x17
+// DISASM-NEXT:    20070: {{.*}} adrp    x16, #65536
+// DISASM-NEXT:    20074: {{.*}} ldr     x17, [x16, #48]
+// DISASM-NEXT:    20078: {{.*}} add     x16, x16, #48
+// DISASM-NEXT:    2007c: {{.*}} br      x17
 
 .text
 .type foo STT_GNU_IFUNC

Modified: lld/trunk/test/ELF/aarch64-tstbr14-reloc.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/aarch64-tstbr14-reloc.s?rev=291523&r1=291522&r2=291523&view=diff
==============================================================================
--- lld/trunk/test/ELF/aarch64-tstbr14-reloc.s (original)
+++ lld/trunk/test/ELF/aarch64-tstbr14-reloc.s Mon Jan  9 19:21:30 2017
@@ -35,8 +35,8 @@
 #DSOREL-NEXT:     SHF_ALLOC
 #DSOREL-NEXT:     SHF_WRITE
 #DSOREL-NEXT:   ]
-#DSOREL-NEXT:   Address: 0x30000
-#DSOREL-NEXT:   Offset: 0x30000
+#DSOREL-NEXT:   Address: 0x20000
+#DSOREL-NEXT:   Offset: 0x20000
 #DSOREL-NEXT:   Size: 40
 #DSOREL-NEXT:   Link: 0
 #DSOREL-NEXT:   Info: 0
@@ -45,8 +45,8 @@
 #DSOREL-NEXT:  }
 #DSOREL:      Relocations [
 #DSOREL-NEXT:  Section ({{.*}}) .rela.plt {
-#DSOREL-NEXT:    0x30018 R_AARCH64_JUMP_SLOT _foo
-#DSOREL-NEXT:    0x30020 R_AARCH64_JUMP_SLOT _bar
+#DSOREL-NEXT:    0x20018 R_AARCH64_JUMP_SLOT _foo
+#DSOREL-NEXT:    0x20020 R_AARCH64_JUMP_SLOT _bar
 #DSOREL-NEXT:  }
 #DSOREL-NEXT:]
 
@@ -72,18 +72,18 @@
 #DSO-NEXT: Disassembly of section .plt:
 #DSO-NEXT: .plt:
 #DSO-NEXT:  10030: {{.*}} stp x16, x30, [sp, #-16]!
-#DSO-NEXT:  10034: {{.*}} adrp x16, #131072
+#DSO-NEXT:  10034: {{.*}} adrp x16, #65536
 #DSO-NEXT:  10038: {{.*}} ldr x17, [x16, #16]
 #DSO-NEXT:  1003c: {{.*}} add x16, x16, #16
 #DSO-NEXT:  10040: {{.*}} br x17
 #DSO-NEXT:  10044: {{.*}} nop
 #DSO-NEXT:  10048: {{.*}} nop
 #DSO-NEXT:  1004c: {{.*}} nop
-#DSO-NEXT:  10050: {{.*}} adrp x16, #131072
+#DSO-NEXT:  10050: {{.*}} adrp x16, #65536
 #DSO-NEXT:  10054: {{.*}} ldr x17, [x16, #24]
 #DSO-NEXT:  10058: {{.*}} add x16, x16, #24
 #DSO-NEXT:  1005c: {{.*}} br x17
-#DSO-NEXT:  10060: {{.*}} adrp x16, #131072
+#DSO-NEXT:  10060: {{.*}} adrp x16, #65536
 #DSO-NEXT:  10064: {{.*}} ldr x17, [x16, #32]
 #DSO-NEXT:  10068: {{.*}} add x16, x16, #32
 #DSO-NEXT:  1006c: {{.*}} br x17

Modified: lld/trunk/test/ELF/amdgpu-relocs.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/amdgpu-relocs.s?rev=291523&r1=291522&r2=291523&view=diff
==============================================================================
--- lld/trunk/test/ELF/amdgpu-relocs.s (original)
+++ lld/trunk/test/ELF/amdgpu-relocs.s Mon Jan  9 19:21:30 2017
@@ -89,5 +89,5 @@ ptr:
 # CHECK-NEXT: ]
 
 # OBJDUMP: Contents of section nonalloc:
-# OBJDUMP-NEXT: 0000 00000000 14380000 00000000 18340000
-# OBJDUMP-NEXT: 00000000 1c300000
+# OBJDUMP-NEXT: 0000 00000000 04480000 00000000 08440000
+# OBJDUMP-NEXT: 00000000 0c400000

Modified: lld/trunk/test/ELF/arm-abs32-dyn.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/arm-abs32-dyn.s?rev=291523&r1=291522&r2=291523&view=diff
==============================================================================
--- lld/trunk/test/ELF/arm-abs32-dyn.s (original)
+++ lld/trunk/test/ELF/arm-abs32-dyn.s Mon Jan  9 19:21:30 2017
@@ -18,8 +18,8 @@ bar:
 // RUN: llvm-readobj -symbols -dyn-relocations %t.so | FileCheck %s
 
 // CHECK:      Dynamic Relocations {
-// CHECK-NEXT:   0x2004 R_ARM_RELATIVE
-// CHECK-NEXT:   0x2000 R_ARM_ABS32 foo 0x0
+// CHECK-NEXT:   0x1004 R_ARM_RELATIVE
+// CHECK-NEXT:   0x1000 R_ARM_ABS32 foo 0x0
 // CHECK-NEXT: }
 
 // CHECK:      Symbols [

Modified: lld/trunk/test/ELF/arm-exidx-shared.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/arm-exidx-shared.s?rev=291523&r1=291522&r2=291523&view=diff
==============================================================================
--- lld/trunk/test/ELF/arm-exidx-shared.s (original)
+++ lld/trunk/test/ELF/arm-exidx-shared.s Mon Jan  9 19:21:30 2017
@@ -38,7 +38,7 @@ __aeabi_unwind_cpp_pr0:
 
 // CHECK: Relocations [
 // CHECK-NEXT:   Section (6) .rel.plt {
-// CHECK-NEXT:     0x300C R_ARM_JUMP_SLOT __gxx_personality_v0
+// CHECK-NEXT:     0x200C R_ARM_JUMP_SLOT __gxx_personality_v0
 
 // CHECK-EXTAB: Contents of section .ARM.extab.text.func2:
 // 014c + 0ed8 = 0x1024 = __gxx_personality_v0(PLT)

Modified: lld/trunk/test/ELF/arm-fpic-got.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/arm-fpic-got.s?rev=291523&r1=291522&r2=291523&view=diff
==============================================================================
--- lld/trunk/test/ELF/arm-fpic-got.s (original)
+++ lld/trunk/test/ELF/arm-fpic-got.s Mon Jan  9 19:21:30 2017
@@ -36,7 +36,7 @@ val:
 // CHECK-NEXT:      SHF_ALLOC
 // CHECK-NEXT:      SHF_WRITE
 // CHECK-NEXT:    ]
-// CHECK-NEXT:    Address: 0x12000
+// CHECK-NEXT:    Address: 0x13000
 // CHECK-NEXT:    Offset:
 // CHECK-NEXT:    Size: 4
 // CHECK-NEXT:    Link:
@@ -45,7 +45,7 @@ val:
 // CHECK-NEXT:    EntrySize:
 
 // SYMBOLS:    Name: val
-// SYMBOLS-NEXT:    Value: 0x13000
+// SYMBOLS-NEXT:    Value: 0x12000
 // SYMBOLS-NEXT:    Size: 4
 // SYMBOLS-NEXT:    Binding: Global
 // SYMBOLS-NEXT:    Type: Object
@@ -59,5 +59,5 @@ val:
 // CODE-NEXT:   11008:  00 00 90 e5     ldr     r0, [r0]
 // CODE-NEXT:   1100c:  1e ff 2f e1     bx      lr
 // CODE: $d.1:
-// 0x11004 + 0x0ff4 + 8 = 0x12000 = .got
-// CODE-NEXT:   11010:  f4 0f 00 00
+// 0x11004 + 0x1ff4 + 8 = 0x13000 = .got
+// CODE-NEXT:   11010:  f4 1f 00 00

Modified: lld/trunk/test/ELF/arm-gnu-ifunc-plt.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/arm-gnu-ifunc-plt.s?rev=291523&r1=291522&r2=291523&view=diff
==============================================================================
--- lld/trunk/test/ELF/arm-gnu-ifunc-plt.s (original)
+++ lld/trunk/test/ELF/arm-gnu-ifunc-plt.s Mon Jan  9 19:21:30 2017
@@ -10,23 +10,23 @@
 // Check that the IRELATIVE relocations are last in the .got
 // CHECK: Relocations [
 // CHECK-NEXT:   Section (4) .rel.dyn {
-// CHECK-NEXT:     0x12078 R_ARM_GLOB_DAT bar2 0x0
-// CHECK-NEXT:     0x1207C R_ARM_GLOB_DAT zed2 0x0
-// CHECK-NEXT:     0x12080 R_ARM_IRELATIVE - 0x0
-// CHECK-NEXT:     0x12084 R_ARM_IRELATIVE - 0x0
+// CHECK-NEXT:     0x13078 R_ARM_GLOB_DAT bar2 0x0
+// CHECK-NEXT:     0x1307C R_ARM_GLOB_DAT zed2 0x0
+// CHECK-NEXT:     0x13080 R_ARM_IRELATIVE - 0x0
+// CHECK-NEXT:     0x13084 R_ARM_IRELATIVE - 0x0
 // CHECK-NEXT:   }
 // CHECK-NEXT:   Section (5) .rel.plt {
-// CHECK-NEXT:     0x1300C R_ARM_JUMP_SLOT bar2 0x0
-// CHECK-NEXT:     0x13010 R_ARM_JUMP_SLOT zed2 0x0
+// CHECK-NEXT:     0x1200C R_ARM_JUMP_SLOT bar2 0x0
+// CHECK-NEXT:     0x12010 R_ARM_JUMP_SLOT zed2 0x0
 // CHECK-NEXT:   }
 // CHECK-NEXT: ]
 
 // Check that the GOT entries refer back to the ifunc resolver
+// GOTPLT: Contents of section .got.plt:
+// GOTPLT-NEXT:  12000 00000000 00000000 00000000 20100100
+// GOTPLT-NEXT:  12010 20100100
 // GOTPLT: Contents of section .got:
-// GOTPLT-NEXT:  12078 00000000 00000000 00100100 04100100
-// GOTPLT-NEXT: Contents of section .got.plt:
-// GOTPLT-NEXT:  13000 00000000 00000000 00000000 20100100
-// GOTPLT-NEXT:  13010 20100100
+// GOTPLT-NEXT:  13078 00000000 00000000 00100100 04100100
 
 // DISASM: Disassembly of section .text:
 // DISASM-NEXT: foo:
@@ -46,15 +46,15 @@
 // DISASM-NEXT:    11024:       04 e0 9f e5     ldr     lr, [pc, #4]
 // DISASM-NEXT:    11028:       0e e0 8f e0     add     lr, pc, lr
 // DISASM-NEXT:    1102c:       08 f0 be e5     ldr     pc, [lr, #8]!
-// DISASM-NEXT:    11030:       d0 1f 00 00
+// DISASM-NEXT:    11030:       d0 0f 00 00
 // DISASM-NEXT:    11034:       04 c0 9f e5     ldr     r12, [pc, #4]
 // DISASM-NEXT:    11038:       0f c0 8c e0     add     r12, r12, pc
 // DISASM-NEXT:    1103c:       00 f0 9c e5     ldr     pc, [r12]
-// DISASM-NEXT:    11040:       cc 1f 00 00
+// DISASM-NEXT:    11040:       cc 0f 00 00
 // DISASM-NEXT:    11044:       04 c0 9f e5     ldr     r12, [pc, #4]
 // DISASM-NEXT:    11048:       0f c0 8c e0     add     r12, r12, pc
 // DISASM-NEXT:    1104c:       00 f0 9c e5     ldr     pc, [r12]
-// DISASM-NEXT:    11050:       c0 1f 00 00
+// DISASM-NEXT:    11050:       c0 0f 00 00
 // Alignment to 16 byte boundary not strictly necessary on ARM, but harmless
 // DISASM-NEXT:    11054:       00 00 00 00     andeq   r0, r0, r0
 // DISASM-NEXT:    11058:       00 00 00 00     andeq   r0, r0, r0
@@ -62,11 +62,11 @@
 // DISASM-NEXT:    11060:       04 c0 9f e5     ldr     r12, [pc, #4]
 // DISASM-NEXT:    11064:       0f c0 8c e0     add     r12, r12, pc
 // DISASM-NEXT:    11068:       00 f0 9c e5     ldr     pc, [r12]
-// DISASM-NEXT:    1106c:       14 10 00 00
+// DISASM-NEXT:    1106c:       14 20 00 00
 // DISASM-NEXT:    11070:       04 c0 9f e5     ldr     r12, [pc, #4]
 // DISASM-NEXT:    11074:       0f c0 8c e0     add     r12, r12, pc
 // DISASM-NEXT:    11078:       00 f0 9c e5     ldr     pc, [r12]
-// DISASM-NEXT:    1107c:       08 10 00 00
+// DISASM-NEXT:    1107c:       08 20 00 00
 
 
 .syntax unified

Modified: lld/trunk/test/ELF/arm-pie-relative.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/arm-pie-relative.s?rev=291523&r1=291522&r2=291523&view=diff
==============================================================================
--- lld/trunk/test/ELF/arm-pie-relative.s (original)
+++ lld/trunk/test/ELF/arm-pie-relative.s Mon Jan  9 19:21:30 2017
@@ -19,7 +19,7 @@ sym:
 
 // CHECK:      Relocations [
 // CHECK-NEXT:   Section (4) .rel.dyn {
-// CHECK-NEXT:     0x2058 R_ARM_RELATIVE
+// CHECK-NEXT:     0x3058 R_ARM_RELATIVE
 
 // GOT: Contents of section .got:
-// GOT-NEXT:  2058 00300000
+// GOT-NEXT:  3058 00200000

Modified: lld/trunk/test/ELF/arm-plt-reloc.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/arm-plt-reloc.s?rev=291523&r1=291522&r2=291523&view=diff
==============================================================================
--- lld/trunk/test/ELF/arm-plt-reloc.s (original)
+++ lld/trunk/test/ELF/arm-plt-reloc.s Mon Jan  9 19:21:30 2017
@@ -52,23 +52,23 @@ _start:
 // DSO-NEXT:    1024:        04 e0 9f e5    ldr     lr, [pc, #4]
 // DSO-NEXT:    1028:        0e e0 8f e0    add     lr, pc, lr
 // DSO-NEXT:    102c:        08 f0 be e5    ldr     pc, [lr, #8]!
-// 0x1028 + 8 + 1fd0 = 0x3000
-// DSO-NEXT:    1030:        d0 1f 00 00
+// 0x1028 + 8 + 0fd0 = 0x2000
+// DSO-NEXT:    1030:        d0 0f 00 00
 // DSO-NEXT:    1034:        04 c0 9f e5    ldr     r12, [pc, #4]
 // DSO-NEXT:    1038:        0f c0 8c e0    add     r12, r12, pc
 // DSO-NEXT:    103c:        00 f0 9c e5    ldr     pc, [r12]
-// 0x1038 + 8 + 1fcc = 0x300c
-// DSO-NEXT:    1040:        cc 1f 00 00
+// 0x1038 + 8 + 0fcc = 0x200c
+// DSO-NEXT:    1040:        cc 0f 00 00
 // DSO-NEXT:    1044:        04 c0 9f e5    ldr     r12, [pc, #4]
 // DSO-NEXT:    1048:        0f c0 8c e0    add     r12, r12, pc
 // DSO-NEXT:    104c:        00 f0 9c e5    ldr     pc, [r12]
-// 0x1048 + 8 + 1fc0 = 0x3010
-// DSO-NEXT:    1050:        c0 1f 00 00
+// 0x1048 + 8 + 0fc0 = 0x2010
+// DSO-NEXT:    1050:        c0 0f 00 00
 // DSO-NEXT:    1054:        04 c0 9f e5    ldr     r12, [pc, #4]
 // DSO-NEXT:    1058:        0f c0 8c e0    add     r12, r12, pc
 // DSO-NEXT:    105c:        00 f0 9c e5    ldr     pc, [r12]
-// 0x1058 + 8 + 1fb4 = 0x3014
-// DSO-NEXT:    1060:       b4 1f 00 00
+// 0x1058 + 8 + 0fb4 = 0x2014
+// DSO-NEXT:    1060:       b4 0f 00 00
 
 // DSOREL:    Name: .got.plt
 // DSOREL-NEXT:    Type: SHT_PROGBITS
@@ -76,7 +76,7 @@ _start:
 // DSOREL-NEXT:      SHF_ALLOC
 // DSOREL-NEXT:      SHF_WRITE
 // DSOREL-NEXT:    ]
-// DSOREL-NEXT:    Address: 0x3000
+// DSOREL-NEXT:    Address: 0x2000
 // DSOREL-NEXT:    Offset:
 // DSOREL-NEXT:    Size: 24
 // DSOREL-NEXT:    Link:
@@ -85,6 +85,6 @@ _start:
 // DSOREL-NEXT:    EntrySize:
 // DSOREL:  Relocations [
 // DSOREL-NEXT:  Section (4) .rel.plt {
-// DSOREL-NEXT:    0x300C R_ARM_JUMP_SLOT func1 0x0
-// DSOREL-NEXT:    0x3010 R_ARM_JUMP_SLOT func2 0x0
-// DSOREL-NEXT:    0x3014 R_ARM_JUMP_SLOT func3 0x0
+// DSOREL-NEXT:    0x200C R_ARM_JUMP_SLOT func1 0x0
+// DSOREL-NEXT:    0x2010 R_ARM_JUMP_SLOT func2 0x0
+// DSOREL-NEXT:    0x2014 R_ARM_JUMP_SLOT func3 0x0

Modified: lld/trunk/test/ELF/arm-thumb-interwork-shared.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/arm-thumb-interwork-shared.s?rev=291523&r1=291522&r2=291523&view=diff
==============================================================================
--- lld/trunk/test/ELF/arm-thumb-interwork-shared.s (original)
+++ lld/trunk/test/ELF/arm-thumb-interwork-shared.s Mon Jan  9 19:21:30 2017
@@ -33,12 +33,12 @@ sym1:
 // PLT-NEXT:     1024:       04 e0 9f e5     ldr     lr, [pc, #4]
 // PLT-NEXT:     1028:       0e e0 8f e0     add     lr, pc, lr
 // PLT-NEXT:     102c:       08 f0 be e5     ldr     pc, [lr, #8]!
-// PLT-NEXT:     1030:       d0 1f 00 00
+// PLT-NEXT:     1030:       d0 0f 00 00
 // PLT-NEXT:     1034:       04 c0 9f e5     ldr     r12, [pc, #4]
 // PLT-NEXT:     1038:       0f c0 8c e0     add     r12, r12, pc
 // PLT-NEXT:     103c:       00 f0 9c e5     ldr     pc, [r12]
-// PLT-NEXT:     1040:       cc 1f 00 00
+// PLT-NEXT:     1040:       cc 0f 00 00
 // PLT-NEXT:     1044:       04 c0 9f e5     ldr     r12, [pc, #4]
 // PLT-NEXT:     1048:       0f c0 8c e0     add     r12, r12, pc
 // PLT-NEXT:     104c:       00 f0 9c e5     ldr     pc, [r12]
-// PLT-NEXT:     1050:       c0 1f 00 00
+// PLT-NEXT:     1050:       c0 0f 00 00

Modified: lld/trunk/test/ELF/arm-thumb-plt-reloc.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/arm-thumb-plt-reloc.s?rev=291523&r1=291522&r2=291523&view=diff
==============================================================================
--- lld/trunk/test/ELF/arm-thumb-plt-reloc.s (original)
+++ lld/trunk/test/ELF/arm-thumb-plt-reloc.s Mon Jan  9 19:21:30 2017
@@ -63,23 +63,23 @@ _start:
 // DSOARM-NEXT:    1024:       04 e0 9f e5     ldr     lr, [pc, #4]
 // DSOARM-NEXT:    1028:       0e e0 8f e0     add     lr, pc, lr
 // DSOARM-NEXT:    102c:       08 f0 be e5     ldr     pc, [lr, #8]!
-// DSOARM-NEXT:    1030:       d0 1f 00 00
-// 0x1028 + 8 + 1fd0 = 0x3000
+// DSOARM-NEXT:    1030:       d0 0f 00 00
+// 0x1028 + 8 + 0fd0 = 0x2000
 // DSOARM-NEXT:    1034:       04 c0 9f e5     ldr     r12, [pc, #4]
 // DSOARM-NEXT:    1038:       0f c0 8c e0     add     r12, r12, pc
 // DSOARM-NEXT:    103c:       00 f0 9c e5     ldr     pc, [r12]
-// DSOARM-NEXT:    1040:       cc 1f 00 00
-// 0x1038 + 8 + 1fcc = 0x300c
+// DSOARM-NEXT:    1040:       cc 0f 00 00
+// 0x1038 + 8 + 0fcc = 0x200c
 // DSOARM-NEXT:    1044:       04 c0 9f e5     ldr     r12, [pc, #4]
 // DSOARM-NEXT:    1048:       0f c0 8c e0     add     r12, r12, pc
 // DSOARM-NEXT:    104c:       00 f0 9c e5     ldr     pc, [r12]
-// DSOARM-NEXT:    1050:       c0 1f 00 00
-// 0x1048 + 8 + 1fc0 = 0x3010
+// DSOARM-NEXT:    1050:       c0 0f 00 00
+// 0x1048 + 8 + 0fc0 = 0x2010
 // DSOARM-NEXT:    1054:       04 c0 9f e5     ldr     r12, [pc, #4]
 // DSOARM-NEXT:    1058:       0f c0 8c e0     add     r12, r12, pc
 // DSOARM-NEXT:    105c:       00 f0 9c e5     ldr     pc, [r12]
-// DSOARM-NEXT:    1060:       b4 1f 00 00
-// 0x1058 + 8 + 1fb4 = 0x3014
+// DSOARM-NEXT:    1060:       b4 0f 00 00
+// 0x1058 + 8 + 0fb4 = 0x2014
 
 // DSOREL:    Name: .got.plt
 // DSOREL-NEXT:    Type: SHT_PROGBITS
@@ -87,7 +87,7 @@ _start:
 // DSOREL-NEXT:      SHF_ALLOC
 // DSOREL-NEXT:      SHF_WRITE
 // DSOREL-NEXT:    ]
-// DSOREL-NEXT:    Address: 0x3000
+// DSOREL-NEXT:    Address: 0x2000
 // DSOREL-NEXT:    Offset:
 // DSOREL-NEXT:    Size: 24
 // DSOREL-NEXT:    Link:
@@ -96,6 +96,6 @@ _start:
 // DSOREL-NEXT:    EntrySize:
 // DSOREL:  Relocations [
 // DSOREL-NEXT:  Section (4) .rel.plt {
-// DSOREL-NEXT:    0x300C R_ARM_JUMP_SLOT func1 0x0
-// DSOREL-NEXT:    0x3010 R_ARM_JUMP_SLOT func2 0x0
-// DSOREL-NEXT:    0x3014 R_ARM_JUMP_SLOT func3 0x0
+// DSOREL-NEXT:    0x200C R_ARM_JUMP_SLOT func1 0x0
+// DSOREL-NEXT:    0x2010 R_ARM_JUMP_SLOT func2 0x0
+// DSOREL-NEXT:    0x2014 R_ARM_JUMP_SLOT func3 0x0

Modified: lld/trunk/test/ELF/arm-tls-norelax-gd-ie.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/arm-tls-norelax-gd-ie.s?rev=291523&r1=291522&r2=291523&view=diff
==============================================================================
--- lld/trunk/test/ELF/arm-tls-norelax-gd-ie.s (original)
+++ lld/trunk/test/ELF/arm-tls-norelax-gd-ie.s Mon Jan  9 19:21:30 2017
@@ -25,6 +25,6 @@ func:
  .Lt0: .word   y(TLSGD) + (. - .L0 - 8)
 
 // CHECK: Dynamic Relocations {
-// CHECK-NEXT:   0x12078 R_ARM_TLS_DTPMOD32 y
-// CHECK-NEXT:   0x1207C R_ARM_TLS_DTPOFF32 y
-// CHECK-NEXT:   0x1300C R_ARM_JUMP_SLOT __tls_get_addr
+// CHECK-NEXT:   0x13078 R_ARM_TLS_DTPMOD32 y
+// CHECK-NEXT:   0x1307C R_ARM_TLS_DTPOFF32 y
+// CHECK-NEXT:   0x1200C R_ARM_JUMP_SLOT __tls_get_addr

Modified: lld/trunk/test/ELF/arm-tls-norelax-gd-le.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/arm-tls-norelax-gd-le.s?rev=291523&r1=291522&r2=291523&view=diff
==============================================================================
--- lld/trunk/test/ELF/arm-tls-norelax-gd-le.s (original)
+++ lld/trunk/test/ELF/arm-tls-norelax-gd-le.s Mon Jan  9 19:21:30 2017
@@ -33,5 +33,5 @@ x:
 
 // CHECK:       Contents of section .got:
 // Module index is always 1 for executable
-// CHECK-NEXT:  12060 01000000 00000000
+// CHECK-NEXT:  13060 01000000 00000000
 

Modified: lld/trunk/test/ELF/arm-tls-norelax-ie-le.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/arm-tls-norelax-ie-le.s?rev=291523&r1=291522&r2=291523&view=diff
==============================================================================
--- lld/trunk/test/ELF/arm-tls-norelax-ie-le.s (original)
+++ lld/trunk/test/ELF/arm-tls-norelax-ie-le.s Mon Jan  9 19:21:30 2017
@@ -36,6 +36,6 @@ x2:
  .space 4
  .type x2, %object
 
-// CHECK: Contents of section .got
+// CHECK: Contents of section .got:
 // x1 at offset 8 from TP, x2 at offset c from TP. Offsets include TCB size of 8
-// CHECK-NEXT: 12064 08000000 0c000000
+// CHECK-NEXT: 13064 08000000 0c000000

Modified: lld/trunk/test/ELF/arm-tls-norelax-ld-le.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/arm-tls-norelax-ld-le.s?rev=291523&r1=291522&r2=291523&view=diff
==============================================================================
--- lld/trunk/test/ELF/arm-tls-norelax-ld-le.s (original)
+++ lld/trunk/test/ELF/arm-tls-norelax-ld-le.s Mon Jan  9 19:21:30 2017
@@ -32,4 +32,4 @@ x:
  .word   10
 
 // CHECK: Contents of section .got:
-// CHECK-NEXT:  12064 01000000 00000000
+// CHECK-NEXT:  13064 01000000 00000000

Modified: lld/trunk/test/ELF/basic-mips.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/basic-mips.s?rev=291523&r1=291522&r2=291523&view=diff
==============================================================================
--- lld/trunk/test/ELF/basic-mips.s (original)
+++ lld/trunk/test/ELF/basic-mips.s Mon Jan  9 19:21:30 2017
@@ -27,7 +27,7 @@ __start:
 # CHECK-NEXT:   Version: 1
 # CHECK-NEXT:   Entry: 0x20000
 # CHECK-NEXT:   ProgramHeaderOffset: 0x34
-# CHECK-NEXT:   SectionHeaderOffset: 0x30098
+# CHECK-NEXT:   SectionHeaderOffset: 0x200A0
 # CHECK-NEXT:   Flags [
 # CHECK-NEXT:     EF_MIPS_ABI_O32
 # CHECK-NEXT:     EF_MIPS_ARCH_32
@@ -103,35 +103,35 @@ __start:
 # CHECK-NEXT:   }
 # CHECK-NEXT:   Section {
 # CHECK-NEXT:     Index: 4
-# CHECK-NEXT:     Name: .got
+# CHECK-NEXT:     Name: .data
 # CHECK-NEXT:     Type: SHT_PROGBITS (0x1)
-# CHECK-NEXT:     Flags [ (0x10000003)
+# CHECK-NEXT:     Flags [ (0x3)
 # CHECK-NEXT:       SHF_ALLOC (0x2)
-# CHECK-NEXT:       SHF_MIPS_GPREL (0x10000000)
 # CHECK-NEXT:       SHF_WRITE (0x1)
 # CHECK-NEXT:     ]
 # CHECK-NEXT:     Address: 0x30000
 # CHECK-NEXT:     Offset: 0x20000
-# CHECK-NEXT:     Size: 8
+# CHECK-NEXT:     Size: 0
 # CHECK-NEXT:     Link: 0
 # CHECK-NEXT:     Info: 0
-# CHECK-NEXT:     AddressAlignment: 4
+# CHECK-NEXT:     AddressAlignment: 16
 # CHECK-NEXT:     EntrySize: 0
 # CHECK-NEXT:   }
 # CHECK-NEXT:   Section {
 # CHECK-NEXT:     Index: 5
-# CHECK-NEXT:     Name: .data
+# CHECK-NEXT:     Name: .got
 # CHECK-NEXT:     Type: SHT_PROGBITS (0x1)
-# CHECK-NEXT:     Flags [ (0x3)
+# CHECK-NEXT:     Flags [ (0x10000003)
 # CHECK-NEXT:       SHF_ALLOC (0x2)
+# CHECK-NEXT:       SHF_MIPS_GPREL (0x10000000)
 # CHECK-NEXT:       SHF_WRITE (0x1)
 # CHECK-NEXT:     ]
-# CHECK-NEXT:     Address: 0x40000
-# CHECK-NEXT:     Offset: 0x30000
-# CHECK-NEXT:     Size: 0
+# CHECK-NEXT:     Address: 0x30000
+# CHECK-NEXT:     Offset: 0x20000
+# CHECK-NEXT:     Size: 8
 # CHECK-NEXT:     Link: 0
 # CHECK-NEXT:     Info: 0
-# CHECK-NEXT:     AddressAlignment: 16
+# CHECK-NEXT:     AddressAlignment: 4
 # CHECK-NEXT:     EntrySize: 0
 # CHECK-NEXT:   }
 # CHECK-NEXT:   Section {
@@ -143,7 +143,7 @@ __start:
 # CHECK-NEXT:       SHF_WRITE (0x1)
 # CHECK-NEXT:     ]
 # CHECK-NEXT:     Address: 0x40000
-# CHECK-NEXT:     Offset: 0x30000
+# CHECK-NEXT:     Offset: 0x20008
 # CHECK-NEXT:     Size: 0
 # CHECK-NEXT:     Link: 0
 # CHECK-NEXT:     Info: 0
@@ -159,7 +159,7 @@ __start:
 # CHECK-NEXT:       SHF_STRINGS (0x20)
 # CHECK-NEXT:     ]
 # CHECK-NEXT:     Address: 0x0
-# CHECK-NEXT:     Offset: 0x30000
+# CHECK-NEXT:     Offset: 0x20008
 # CHECK-NEXT:     Size: 8
 # CHECK-NEXT:     Link: 0
 # CHECK-NEXT:     Info: 0
@@ -173,7 +173,7 @@ __start:
 # CHECK-NEXT:     Flags [ (0x0)
 # CHECK-NEXT:     ]
 # CHECK-NEXT:     Address: 0x0
-# CHECK-NEXT:     Offset: 0x30008
+# CHECK-NEXT:     Offset: 0x20010
 # CHECK-NEXT:     Size: 48
 # CHECK-NEXT:     Link: 10
 # CHECK-NEXT:     Info: 1
@@ -187,7 +187,7 @@ __start:
 # CHECK-NEXT:     Flags [ (0x0)
 # CHECK-NEXT:     ]
 # CHECK-NEXT:     Address: 0x0
-# CHECK-NEXT:     Offset: 0x30038
+# CHECK-NEXT:     Offset: 0x20040
 # CHECK-NEXT:     Size: 82
 # CHECK-NEXT:     Link: 0
 # CHECK-NEXT:     Info: 0
@@ -201,7 +201,7 @@ __start:
 # CHECK-NEXT:     Flags [ (0x0)
 # CHECK-NEXT:     ]
 # CHECK-NEXT:     Address: 0x0
-# CHECK-NEXT:     Offset: 0x3008A
+# CHECK-NEXT:     Offset: 0x20092
 # CHECK-NEXT:     Size: 13
 # CHECK-NEXT:     Link: 0
 # CHECK-NEXT:     Info: 0
@@ -283,7 +283,7 @@ __start:
 # CHECK-NEXT:     Offset: 0x20000
 # CHECK-NEXT:     VirtualAddress: 0x30000
 # CHECK-NEXT:     PhysicalAddress: 0x30000
-# CHECK-NEXT:     FileSize: 65536
+# CHECK-NEXT:     FileSize: 8
 # CHECK-NEXT:     MemSize: 65536
 # CHECK-NEXT:     Flags [
 # CHECK-NEXT:       PF_R

Modified: lld/trunk/test/ELF/basic64be.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/basic64be.s?rev=291523&r1=291522&r2=291523&view=diff
==============================================================================
--- lld/trunk/test/ELF/basic64be.s (original)
+++ lld/trunk/test/ELF/basic64be.s Mon Jan  9 19:21:30 2017
@@ -38,7 +38,7 @@ _start:
 # CHECK-NEXT:   Version: 1
 # CHECK-NEXT:   Entry: 0x10020040
 # CHECK-NEXT:   ProgramHeaderOffset: 0x40
-# CHECK-NEXT:   SectionHeaderOffset: 0x200D8
+# CHECK-NEXT:   SectionHeaderOffset: 0x30080
 # CHECK-NEXT:   Flags [ (0x0)
 # CHECK-NEXT:   ]
 # CHECK-NEXT:   HeaderSize: 64
@@ -85,24 +85,6 @@ _start:
 # CHECK-NEXT:   }
 # CHECK-NEXT:   Section {
 # CHECK-NEXT:     Index: 2
-# CHECK-NEXT:     Name: .got
-# CHECK-NEXT:     Type: SHT_PROGBITS
-# CHECK-NEXT:     Flags [
-# CHECK-NEXT:       SHF_ALLOC
-# CHECK-NEXT:       SHF_WRITE
-# CHECK-NEXT:     ]
-# CHECK-NEXT:     Address: 0x10020000
-# CHECK-NEXT:     Offset: 0x20000
-# CHECK-NEXT:     Size: 0
-# CHECK-NEXT:     Link: 0
-# CHECK-NEXT:     Info: 0
-# CHECK-NEXT:     AddressAlignment: 8
-# CHECK-NEXT:     EntrySize: 0
-# CHECK-NEXT:     SectionData (
-# CHECK-NEXT:     )
-# CHECK-NEXT:   }
-# CHECK-NEXT:   Section {
-# CHECK-NEXT:     Index: 3
 # CHECK-NEXT:     Name: .toc
 # CHECK-NEXT:     Type: SHT_PROGBITS (0x1)
 # CHECK-NEXT:     Flags [ (0x3)
@@ -122,7 +104,7 @@ _start:
 # CHECK-NEXT:     )
 # CHECK-NEXT:   }
 # CHECK-NEXT:   Section {
-# CHECK-NEXT:     Index: 4
+# CHECK-NEXT:     Index: 3
 # CHECK-NEXT:     Name: .toc1
 # CHECK-NEXT:     Type: SHT_PROGBITS (0x1)
 # CHECK-NEXT:     Flags [ (0x3)
@@ -142,7 +124,7 @@ _start:
 # CHECK-NEXT:     )
 # CHECK-NEXT:   }
 # CHECK-NEXT:   Section {
-# CHECK-NEXT:     Index: 5
+# CHECK-NEXT:     Index: 4
 # CHECK-NEXT:     Name: .opd
 # CHECK-NEXT:     Type: SHT_PROGBITS (0x1)
 # CHECK-NEXT:     Flags [ (0x3)
@@ -157,11 +139,29 @@ _start:
 # CHECK-NEXT:     AddressAlignment: 1
 # CHECK-NEXT:     EntrySize: 0
 # CHECK-NEXT:     SectionData (
-# CHECK-NEXT:       0000: 00000000 10010000 00000000 10028000 |................|
+# CHECK-NEXT:       0000: 00000000 10010000 00000000 10038000 |................|
 # CHECK-NEXT:       0010: 00000000 00000000                   |........|
 # CHECK-NEXT:     )
 # CHECK-NEXT:   }
 # CHECK-NEXT:   Section {
+# CHECK-NEXT:     Index: 5
+# CHECK-NEXT:     Name: .got
+# CHECK-NEXT:     Type: SHT_PROGBITS
+# CHECK-NEXT:     Flags [
+# CHECK-NEXT:       SHF_ALLOC
+# CHECK-NEXT:       SHF_WRITE
+# CHECK-NEXT:     ]
+# CHECK-NEXT:     Address: 0x10030000
+# CHECK-NEXT:     Offset: 0x30000
+# CHECK-NEXT:     Size: 0
+# CHECK-NEXT:     Link: 0
+# CHECK-NEXT:     Info: 0
+# CHECK-NEXT:     AddressAlignment: 8
+# CHECK-NEXT:     EntrySize: 0
+# CHECK-NEXT:     SectionData (
+# CHECK-NEXT:     )
+# CHECK-NEXT:   }
+# CHECK-NEXT:   Section {
 # CHECK-NEXT:     Index: 6
 # CHECK-NEXT:     Name: .comment
 # CHECK-NEXT:     Type: SHT_PROGBITS (0x1)
@@ -170,7 +170,7 @@ _start:
 # CHECK-NEXT:       SHF_STRINGS (0x20)
 # CHECK-NEXT:     ]
 # CHECK-NEXT:     Address: 0x0
-# CHECK-NEXT:     Offset: 0x20058
+# CHECK-NEXT:     Offset: 0x30000
 # CHECK-NEXT:     Size: 8
 # CHECK-NEXT:     Link: 0
 # CHECK-NEXT:     Info: 0
@@ -187,7 +187,7 @@ _start:
 # CHECK-NEXT:     Flags [ (0x0)
 # CHECK-NEXT:     ]
 # CHECK-NEXT:     Address: 0x0
-# CHECK-NEXT:     Offset: 0x20060
+# CHECK-NEXT:     Offset: 0x30008
 # CHECK-NEXT:     Size: 48
 # CHECK-NEXT:     Link: 9
 # CHECK-NEXT:     Info: 1
@@ -203,7 +203,7 @@ _start:
 # CHECK-NEXT:     Flags [
 # CHECK-NEXT:     ]
 # CHECK-NEXT:     Address: 0x0
-# CHECK-NEXT:     Offset: 0x20090
+# CHECK-NEXT:     Offset: 0x30038
 # CHECK-NEXT:     Size: 63
 # CHECK-NEXT:     Link: 0
 # CHECK-NEXT:     Info: 0
@@ -219,7 +219,7 @@ _start:
 # CHECK-NEXT:     Flags [ (0x0)
 # CHECK-NEXT:     ]
 # CHECK-NEXT:     Address: 0x0
-# CHECK-NEXT:     Offset: 0x200CF
+# CHECK-NEXT:     Offset: 0x30077
 # CHECK-NEXT:     Size: 8
 # CHECK-NEXT:     Link: 0
 # CHECK-NEXT:     Info: 0
@@ -273,8 +273,8 @@ _start:
 # CHECK-NEXT:    Offset: 0x20000
 # CHECK-NEXT:    VirtualAddress: 0x10020000
 # CHECK-NEXT:    PhysicalAddress: 0x10020000
-# CHECK-NEXT:    FileSize: 88
-# CHECK-NEXT:    MemSize: 88
+# CHECK-NEXT:    FileSize: 65536
+# CHECK-NEXT:    MemSize: 65536
 # CHECK-NEXT:    Flags [ (0x6)
 # CHECK-NEXT:      PF_R (0x4)
 # CHECK-NEXT:      PF_W (0x2)
@@ -283,9 +283,9 @@ _start:
 # CHECK-NEXT:  }
 # CHECK-NEXT:  ProgramHeader {
 # CHECK-NEXT:    Type: PT_GNU_RELRO
-# CHECK-NEXT:    Offset: 0x20000
-# CHECK-NEXT:    VirtualAddress: 0x10020000
-# CHECK-NEXT:    PhysicalAddress: 0x10020000
+# CHECK-NEXT:    Offset: 0x30000
+# CHECK-NEXT:    VirtualAddress: 0x10030000
+# CHECK-NEXT:    PhysicalAddress: 0x10030000
 # CHECK-NEXT:    FileSize: 0
 # CHECK-NEXT:    MemSize: 0
 # CHECK-NEXT:    Flags [ (0x4)

Modified: lld/trunk/test/ELF/combrelocs.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/combrelocs.s?rev=291523&r1=291522&r2=291523&view=diff
==============================================================================
--- lld/trunk/test/ELF/combrelocs.s (original)
+++ lld/trunk/test/ELF/combrelocs.s Mon Jan  9 19:21:30 2017
@@ -7,31 +7,31 @@
 # CHECK:      Relocations [
 # CHECK-NEXT:   Section ({{.*}}) .rela.dyn {
 # CHECK-NEXT:     Relocation {
-# CHECK-NEXT:       Offset: 0x2000
+# CHECK-NEXT:       Offset: 0x1000
 # CHECK-NEXT:       Type: R_X86_64_64
 # CHECK-NEXT:       Symbol: aaa (1)
 # CHECK-NEXT:       Addend: 0x0
 # CHECK-NEXT:     }
 # CHECK-NEXT:     Relocation {
-# CHECK-NEXT:       Offset: 0x2018
+# CHECK-NEXT:       Offset: 0x1018
 # CHECK-NEXT:       Type: R_X86_64_64
 # CHECK-NEXT:       Symbol: aaa (1)
 # CHECK-NEXT:       Addend: 0x0
 # CHECK-NEXT:     }
 # CHECK-NEXT:     Relocation {
-# CHECK-NEXT:       Offset: 0x2010
+# CHECK-NEXT:       Offset: 0x1010
 # CHECK-NEXT:       Type: R_X86_64_64
 # CHECK-NEXT:       Symbol: bbb (2)
 # CHECK-NEXT:       Addend: 0x0
 # CHECK-NEXT:     }
 # CHECK-NEXT:     Relocation {
-# CHECK-NEXT:       Offset: 0x2008
+# CHECK-NEXT:       Offset: 0x1008
 # CHECK-NEXT:       Type: R_X86_64_64
 # CHECK-NEXT:       Symbol: ccc (3)
 # CHECK-NEXT:       Addend: 0x0
 # CHECK-NEXT:     }
 # CHECK-NEXT:     Relocation {
-# CHECK-NEXT:       Offset: 0x2020
+# CHECK-NEXT:       Offset: 0x1020
 # CHECK-NEXT:       Type: R_X86_64_64
 # CHECK-NEXT:       Symbol: ddd (4)
 # CHECK-NEXT:       Addend: 0x0
@@ -49,31 +49,31 @@
 # NOCOMB:      Relocations [
 # NOCOMB-NEXT:    Section ({{.*}}) .rela.dyn {
 # NOCOMB-NEXT:     Relocation {
-# NOCOMB-NEXT:       Offset: 0x2000
+# NOCOMB-NEXT:       Offset: 0x1000
 # NOCOMB-NEXT:       Type: R_X86_64_64
 # NOCOMB-NEXT:       Symbol: aaa (1)
 # NOCOMB-NEXT:       Addend: 0x0
 # NOCOMB-NEXT:     }
 # NOCOMB-NEXT:     Relocation {
-# NOCOMB-NEXT:       Offset: 0x2008
+# NOCOMB-NEXT:       Offset: 0x1008
 # NOCOMB-NEXT:       Type: R_X86_64_64
 # NOCOMB-NEXT:       Symbol: ccc (3)
 # NOCOMB-NEXT:       Addend: 0x0
 # NOCOMB-NEXT:     }
 # NOCOMB-NEXT:     Relocation {
-# NOCOMB-NEXT:       Offset: 0x2010
+# NOCOMB-NEXT:       Offset: 0x1010
 # NOCOMB-NEXT:       Type: R_X86_64_64
 # NOCOMB-NEXT:       Symbol: bbb (2)
 # NOCOMB-NEXT:       Addend: 0x0
 # NOCOMB-NEXT:     }
 # NOCOMB-NEXT:     Relocation {
-# NOCOMB-NEXT:       Offset: 0x2018
+# NOCOMB-NEXT:       Offset: 0x1018
 # NOCOMB-NEXT:       Type: R_X86_64_64
 # NOCOMB-NEXT:       Symbol: aaa (1)
 # NOCOMB-NEXT:       Addend: 0x0
 # NOCOMB-NEXT:     }
 # NOCOMB-NEXT:     Relocation {
-# NOCOMB-NEXT:       Offset: 0x2020
+# NOCOMB-NEXT:       Offset: 0x1020
 # NOCOMB-NEXT:       Type: R_X86_64_64
 # NOCOMB-NEXT:       Symbol: ddd (4)
 # NOCOMB-NEXT:       Addend: 0x0

Modified: lld/trunk/test/ELF/copy-rel-pie.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/copy-rel-pie.s?rev=291523&r1=291522&r2=291523&view=diff
==============================================================================
--- lld/trunk/test/ELF/copy-rel-pie.s (original)
+++ lld/trunk/test/ELF/copy-rel-pie.s Mon Jan  9 19:21:30 2017
@@ -24,21 +24,21 @@ _start:
 // CHECK-NEXT:   SHF_ALLOC
 // CHECK-NEXT:   SHF_WRITE
 // CHECK-NEXT: ]
-// CHECK-NEXT: Address: 0x3020
+// CHECK-NEXT: Address: 0x4000
 
 // CHECK:      Relocations [
 // CHECK-NEXT:   Section (4) .rela.dyn {
-// CHECK-NEXT:     0x3020 R_X86_64_COPY foo 0x0
+// CHECK-NEXT:     0x4000 R_X86_64_COPY foo 0x0
 // CHECK-NEXT:   }
 // CHECK-NEXT:   Section (5) .rela.plt {
-// CHECK-NEXT:     0x3018 R_X86_64_JUMP_SLOT bar 0x0
+// CHECK-NEXT:     0x2018 R_X86_64_JUMP_SLOT bar 0x0
 // CHECK-NEXT:   }
 // CHECK-NEXT: ]
 
 // (0x1010 + 0x10) - 0x1005 = 27
-// 0x3020          - 0x100a = 8214
+// 0x4000          - 0x100a = 12278
 
 // DISASM:      Disassembly of section .text:
 // DISASM-NEXT: _start:
 // DISASM-NEXT:     1000:       e8 1b 00 00 00  callq   27
-// DISASM-NEXT:     1005:       e8 16 20 00 00  callq   8214 <foo>
+// DISASM-NEXT:     1005:       e8 f6 2f 00 00  callq   12278 <foo>

Modified: lld/trunk/test/ELF/dynamic-reloc-index.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/dynamic-reloc-index.s?rev=291523&r1=291522&r2=291523&view=diff
==============================================================================
--- lld/trunk/test/ELF/dynamic-reloc-index.s (original)
+++ lld/trunk/test/ELF/dynamic-reloc-index.s Mon Jan  9 19:21:30 2017
@@ -8,7 +8,7 @@
 
 // CHECK:      Relocations [
 // CHECK-NEXT:   Section ({{.*}}) .rela.plt {
-// CHECK-NEXT:     0x203018 R_X86_64_JUMP_SLOT bar 0x0
+// CHECK-NEXT:     0x202018 R_X86_64_JUMP_SLOT bar 0x0
 // CHECK-NEXT:   }
 // CHECK-NEXT: ]
 

Modified: lld/trunk/test/ELF/dynamic-reloc.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/dynamic-reloc.s?rev=291523&r1=291522&r2=291523&view=diff
==============================================================================
--- lld/trunk/test/ELF/dynamic-reloc.s (original)
+++ lld/trunk/test/ELF/dynamic-reloc.s Mon Jan  9 19:21:30 2017
@@ -33,7 +33,7 @@
 // CHECK:      Relocations [
 // CHECK-NEXT:   Section ({{.*}}) .rela.plt {
 // CHECK-NEXT:     Relocation {
-// CHECK-NEXT:       Offset: 0x203018
+// CHECK-NEXT:       Offset: 0x202018
 // CHECK-NEXT:       Type: R_X86_64_JUMP_SLOT
 // CHECK-NEXT:       Symbol: bar
 // CHECK-NEXT:       Addend: 0x0

Modified: lld/trunk/test/ELF/gnu-ifunc-plt-i386.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/gnu-ifunc-plt-i386.s?rev=291523&r1=291522&r2=291523&view=diff
==============================================================================
--- lld/trunk/test/ELF/gnu-ifunc-plt-i386.s (original)
+++ lld/trunk/test/ELF/gnu-ifunc-plt-i386.s Mon Jan  9 19:21:30 2017
@@ -10,16 +10,16 @@
 // Check that the IRELATIVE relocations are after the JUMP_SLOT in the plt
 // CHECK: Relocations [
 // CHECK-NEXT:   Section (4) .rel.plt {
-// CHECK-NEXT:     0x1300C R_386_JUMP_SLOT bar2
-// CHECK-NEXT:     0x13010 R_386_JUMP_SLOT zed2
-// CHECK-NEXT:     0x13014 R_386_IRELATIVE
-// CHECK-NEXT:     0x13018 R_386_IRELATIVE
+// CHECK-NEXT:     0x1200C R_386_JUMP_SLOT bar2
+// CHECK-NEXT:     0x12010 R_386_JUMP_SLOT zed2
+// CHECK-NEXT:     0x12014 R_386_IRELATIVE
+// CHECK-NEXT:     0x12018 R_386_IRELATIVE
 
 // Check that IRELATIVE .got.plt entries point to ifunc resolver and not
 // back to the plt entry + 6.
 // GOTPLT: Contents of section .got.plt:
-// GOTPLT:       13000 00200100 00000000 00000000 36100100
-// GOTPLT-NEXT:  13010 46100100 00100100 01100100
+// GOTPLT:       12000 00300100 00000000 00000000 36100100
+// GOTPLT-NEXT:  12010 46100100 00100100 01100100
 
 // Check that the PLTRELSZ tag includes the IRELATIVE relocations
 // CHECK: DynamicSection [
@@ -38,22 +38,22 @@
 // DISASM-NEXT:    11011:       e8 2a 00 00 00          calll   42
 // DISASM-NEXT: Disassembly of section .plt:
 // DISASM-NEXT: .plt:
-// DISASM-NEXT:    11020:       ff 35 04 30 01 00       pushl   77828
-// DISASM-NEXT:    11026:       ff 25 08 30 01 00       jmpl    *77832
+// DISASM-NEXT:    11020:       ff 35 04 20 01 00       pushl   73732
+// DISASM-NEXT:    11026:       ff 25 08 20 01 00       jmpl    *73736
 // DISASM-NEXT:    1102c:       90      nop
 // DISASM-NEXT:    1102d:       90      nop
 // DISASM-NEXT:    1102e:       90      nop
 // DISASM-NEXT:    1102f:       90      nop
-// DISASM-NEXT:    11030:       ff 25 0c 30 01 00       jmpl    *77836
+// DISASM-NEXT:    11030:       ff 25 0c 20 01 00       jmpl    *73740
 // DISASM-NEXT:    11036:       68 00 00 00 00          pushl   $0
 // DISASM-NEXT:    1103b:       e9 e0 ff ff ff          jmp     -32 <.plt>
-// DISASM-NEXT:    11040:       ff 25 10 30 01 00       jmpl    *77840
+// DISASM-NEXT:    11040:       ff 25 10 20 01 00       jmpl    *73744
 // DISASM-NEXT:    11046:       68 08 00 00 00          pushl   $8
 // DISASM-NEXT:    1104b:       e9 d0 ff ff ff          jmp     -48 <.plt>
-// DISASM-NEXT:    11050:       ff 25 14 30 01 00       jmpl    *77844
+// DISASM-NEXT:    11050:       ff 25 14 20 01 00       jmpl    *73748
 // DISASM-NEXT:    11056:       68 30 00 00 00          pushl   $48
 // DISASM-NEXT:    1105b:       e9 e0 ff ff ff          jmp     -32 <.plt+0x20>
-// DISASM-NEXT:    11060:       ff 25 18 30 01 00       jmpl    *77848
+// DISASM-NEXT:    11060:       ff 25 18 20 01 00       jmpl    *73752
 // DISASM-NEXT:    11066:       68 38 00 00 00          pushl   $56
 // DISASM-NEXT:    1106b:       e9 d0 ff ff ff          jmp     -48 <.plt+0x20>
 

Modified: lld/trunk/test/ELF/gnu-ifunc-plt.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/gnu-ifunc-plt.s?rev=291523&r1=291522&r2=291523&view=diff
==============================================================================
--- lld/trunk/test/ELF/gnu-ifunc-plt.s (original)
+++ lld/trunk/test/ELF/gnu-ifunc-plt.s Mon Jan  9 19:21:30 2017
@@ -10,17 +10,17 @@
 // Check that the IRELATIVE relocations are after the JUMP_SLOT in the plt
 // CHECK: Relocations [
 // CHECK-NEXT:   Section (4) .rela.plt {
-// CHECK-NEXT:     0x203018 R_X86_64_JUMP_SLOT bar2 0x0
-// CHECK-NEXT:     0x203020 R_X86_64_JUMP_SLOT zed2 0x0
-// CHECK-NEXT:     0x203028 R_X86_64_IRELATIVE - 0x201000
-// CHECK-NEXT:     0x203030 R_X86_64_IRELATIVE - 0x201001
+// CHECK-NEXT:     0x202018 R_X86_64_JUMP_SLOT bar2 0x0
+// CHECK-NEXT:     0x202020 R_X86_64_JUMP_SLOT zed2 0x0
+// CHECK-NEXT:     0x202028 R_X86_64_IRELATIVE - 0x201000
+// CHECK-NEXT:     0x202030 R_X86_64_IRELATIVE - 0x201001
 
 // Check that .got.plt entries point back to PLT header
 // GOTPLT: Contents of section .got.plt:
-// GOTPLT-NEXT:  203000 00202000 00000000 00000000 00000000  .  .............
-// GOTPLT-NEXT:  203010 00000000 00000000 36102000 00000000  ........6. .....
-// GOTPLT-NEXT:  203020 46102000 00000000 56102000 00000000  F. .....V. .....
-// GOTPLT-NEXT:  203030 66102000 00000000
+// GOTPLT-NEXT:  202000 00302000 00000000 00000000 00000000
+// GOTPLT-NEXT:  202010 00000000 00000000 36102000 00000000
+// GOTPLT-NEXT:  202020 46102000 00000000 56102000 00000000
+// GOTPLT-NEXT:  202030 66102000 00000000
 
 // Check that the PLTRELSZ tag includes the IRELATIVE relocations
 // CHECK: DynamicSection [
@@ -39,19 +39,19 @@
 // DISASM-NEXT:   201011:       e8 2a 00 00 00          callq   42
 // DISASM-NEXT: Disassembly of section .plt:
 // DISASM-NEXT: .plt:
-// DISASM-NEXT:   201020:       ff 35 e2 1f 00 00       pushq   8162(%rip)
-// DISASM-NEXT:   201026:       ff 25 e4 1f 00 00       jmpq    *8164(%rip)
+// DISASM-NEXT:   201020:       ff 35 e2 0f 00 00       pushq   4066(%rip)
+// DISASM-NEXT:   201026:       ff 25 e4 0f 00 00       jmpq    *4068(%rip)
 // DISASM-NEXT:   20102c:       0f 1f 40 00     nopl    (%rax)
-// DISASM-NEXT:   201030:       ff 25 e2 1f 00 00       jmpq    *8162(%rip)
+// DISASM-NEXT:   201030:       ff 25 e2 0f 00 00       jmpq    *4066(%rip)
 // DISASM-NEXT:   201036:       68 00 00 00 00          pushq   $0
 // DISASM-NEXT:   20103b:       e9 e0 ff ff ff          jmp     -32 <.plt>
-// DISASM-NEXT:   201040:       ff 25 da 1f 00 00       jmpq    *8154(%rip)
+// DISASM-NEXT:   201040:       ff 25 da 0f 00 00       jmpq    *4058(%rip)
 // DISASM-NEXT:   201046:       68 01 00 00 00          pushq   $1
 // DISASM-NEXT:   20104b:       e9 d0 ff ff ff          jmp     -48 <.plt>
-// DISASM-NEXT:   201050:       ff 25 d2 1f 00 00       jmpq    *8146(%rip)
+// DISASM-NEXT:   201050:       ff 25 d2 0f 00 00       jmpq    *4050(%rip)
 // DISASM-NEXT:   201056:       68 00 00 00 00          pushq   $0
 // DISASM-NEXT:   20105b:       e9 e0 ff ff ff          jmp     -32 <.plt+0x20>
-// DISASM-NEXT:   201060:       ff 25 ca 1f 00 00       jmpq    *8138(%rip)
+// DISASM-NEXT:   201060:       ff 25 ca 0f 00 00       jmpq    *4042(%rip)
 // DISASM-NEXT:   201066:       68 01 00 00 00          pushq   $1
 // DISASM-NEXT:   20106b:       e9 d0 ff ff ff          jmp     -48 <.plt+0x20>
 

Modified: lld/trunk/test/ELF/gnu-ifunc-shared.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/gnu-ifunc-shared.s?rev=291523&r1=291522&r2=291523&view=diff
==============================================================================
--- lld/trunk/test/ELF/gnu-ifunc-shared.s (original)
+++ lld/trunk/test/ELF/gnu-ifunc-shared.s Mon Jan  9 19:21:30 2017
@@ -20,24 +20,24 @@
 // DISASM-NEXT:     1012:       c3      retq
 // DISASM-NEXT: Disassembly of section .plt:
 // DISASM-NEXT: .plt:
-// DISASM-NEXT:     1020:       ff 35 e2 1f 00 00       pushq   8162(%rip)
-// DISASM-NEXT:     1026:       ff 25 e4 1f 00 00       jmpq    *8164(%rip)
+// DISASM-NEXT:     1020:       ff 35 e2 0f 00 00       pushq   4066(%rip)
+// DISASM-NEXT:     1026:       ff 25 e4 0f 00 00       jmpq    *4068(%rip)
 // DISASM-NEXT:     102c:       0f 1f 40 00     nopl    (%rax)
-// DISASM-NEXT:     1030:       ff 25 e2 1f 00 00       jmpq    *8162(%rip)
+// DISASM-NEXT:     1030:       ff 25 e2 0f 00 00       jmpq    *4066(%rip)
 // DISASM-NEXT:     1036:       68 00 00 00 00          pushq   $0
 // DISASM-NEXT:     103b:       e9 e0 ff ff ff          jmp     -32 <.plt>
-// DISASM-NEXT:     1040:       ff 25 da 1f 00 00       jmpq    *8154(%rip)
+// DISASM-NEXT:     1040:       ff 25 da 0f 00 00       jmpq    *4058(%rip)
 // DISASM-NEXT:     1046:       68 01 00 00 00          pushq   $1
 // DISASM-NEXT:     104b:       e9 d0 ff ff ff          jmp     -48 <.plt>
-// DISASM-NEXT:     1050:       ff 25 d2 1f 00 00       jmpq    *8146(%rip)
+// DISASM-NEXT:     1050:       ff 25 d2 0f 00 00       jmpq    *4050(%rip)
 // DISASM-NEXT:     1056:       68 00 00 00 00          pushq   $0
 // DISASM-NEXT:     105b:       e9 e0 ff ff ff          jmp     -32 <.plt+0x20>
 
 // CHECK: Relocations [
 // CHECK-NEXT:   Section (4) .rela.plt {
-// CHECK-NEXT:     0x3018 R_X86_64_JUMP_SLOT fct2 0x0
-// CHECK-NEXT:     0x3020 R_X86_64_JUMP_SLOT f2 0x0
-// CHECK-NEXT:     0x3028 R_X86_64_IRELATIVE - 0x1000
+// CHECK-NEXT:     0x2018 R_X86_64_JUMP_SLOT fct2 0x0
+// CHECK-NEXT:     0x2020 R_X86_64_JUMP_SLOT f2 0x0
+// CHECK-NEXT:     0x2028 R_X86_64_IRELATIVE - 0x1000
 
  // Hidden expect IRELATIVE
  .globl fct

Modified: lld/trunk/test/ELF/got-aarch64.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/got-aarch64.s?rev=291523&r1=291522&r2=291523&view=diff
==============================================================================
--- lld/trunk/test/ELF/got-aarch64.s (original)
+++ lld/trunk/test/ELF/got-aarch64.s Mon Jan  9 19:21:30 2017
@@ -10,7 +10,7 @@
 // CHECK-NEXT:   SHF_ALLOC
 // CHECK-NEXT:   SHF_WRITE
 // CHECK-NEXT: ]
-// CHECK-NEXT: Address: 0x20090
+// CHECK-NEXT: Address: 0x30090
 // CHECK-NEXT: Offset:
 // CHECK-NEXT: Size: 8
 // CHECK-NEXT: Link: 0
@@ -19,7 +19,7 @@
 
 // CHECK:      Relocations [
 // CHECK-NEXT:   Section ({{.*}}) .rela.dyn {
-// CHECK-NEXT:     0x20090 R_AARCH64_GLOB_DAT dat 0x0
+// CHECK-NEXT:     0x30090 R_AARCH64_GLOB_DAT dat 0x0
 // CHECK-NEXT:   }
 // CHECK-NEXT: ]
 
@@ -27,7 +27,7 @@
 // 0x20098 & 0xff8 = 0x98 = 152
 
 // DISASM: main:
-// DISASM-NEXT:   10000:  80 00 00 90   adrp  x0, #65536
+// DISASM-NEXT:   10000:  00 01 00 90   adrp  x0, #131072
 // DISASM-NEXT:   10004: 00 48 40 f9   ldr x0, [x0, #144]
 
 .global main,foo,dat

Modified: lld/trunk/test/ELF/got-plt-header.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/got-plt-header.s?rev=291523&r1=291522&r2=291523&view=diff
==============================================================================
--- lld/trunk/test/ELF/got-plt-header.s (original)
+++ lld/trunk/test/ELF/got-plt-header.s Mon Jan  9 19:21:30 2017
@@ -6,25 +6,25 @@
 
 // Check that the first .got.plt entry has the address of the dynamic table.
 
-// CHECK:      Type: SHT_DYNAMIC
-// CHECK-NEXT: Flags [
-// CHECK-NEXT:   SHF_ALLOC
-// CHECK-NEXT:   SHF_WRITE
-// CHECK-NEXT: ]
-// CHECK-NEXT: Address: 0x2000
-
 // CHECK:      Name: .got.plt
 // CHECK-NEXT: Type: SHT_PROGBITS
 // CHECK-NEXT: Flags [
 // CHECK-NEXT:   SHF_ALLOC
 // CHECK-NEXT:   SHF_WRITE
 // CHECK-NEXT: ]
-// CHECK-NEXT: Address: 0x3000
-// CHECK-NEXT: Offset: 0x3000
+// CHECK-NEXT: Address: 0x2000
+// CHECK-NEXT: Offset: 0x2000
 // CHECK-NEXT: Size: 32
 // CHECK-NEXT: Link: 0
 // CHECK-NEXT: Info: 0
 // CHECK-NEXT: AddressAlignment: 8
 // CHECK-NEXT: EntrySize: 0
 // CHECK-NEXT: SectionData (
-// CHECK-NEXT:   0000: 00200000 00000000 00000000 00000000
+// CHECK-NEXT:   0000: 00300000 00000000 00000000 00000000
+
+// CHECK:      Type: SHT_DYNAMIC
+// CHECK-NEXT: Flags [
+// CHECK-NEXT:   SHF_ALLOC
+// CHECK-NEXT:   SHF_WRITE
+// CHECK-NEXT: ]
+// CHECK-NEXT: Address: 0x3000

Modified: lld/trunk/test/ELF/gotpc-relax-nopic.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/gotpc-relax-nopic.s?rev=291523&r1=291522&r2=291523&view=diff
==============================================================================
--- lld/trunk/test/ELF/gotpc-relax-nopic.s (original)
+++ lld/trunk/test/ELF/gotpc-relax-nopic.s Mon Jan  9 19:21:30 2017
@@ -36,8 +36,8 @@
 # SEC-PIC-NEXT:     SHF_ALLOC
 # SEC-PIC-NEXT:     SHF_WRITE
 # SEC-PIC-NEXT:   ]
-# SEC-PIC-NEXT:   Address: 0x20A0
-# SEC-PIC-NEXT:   Offset: 0x20A0
+# SEC-PIC-NEXT:   Address: 0x30A0
+# SEC-PIC-NEXT:   Offset: 0x30A0
 # SEC-PIC-NEXT:   Size: 8
 # SEC-PIC-NEXT:   Link:
 # SEC-PIC-NEXT:   Info:
@@ -46,7 +46,7 @@
 # SEC-PIC-NEXT: }
 # SEC-PIC:      Relocations [
 # SEC-PIC-NEXT:   Section ({{.*}}) .rela.dyn {
-# SEC-PIC-NEXT:     0x20A0 R_X86_64_RELATIVE - 0x3000
+# SEC-PIC-NEXT:     0x30A0 R_X86_64_RELATIVE - 0x2000
 # SEC-PIC-NEXT:   }
 # SEC-PIC-NEXT: ]
 # SEC-PIC:      0x000000006FFFFFF9 RELACOUNT            1
@@ -56,15 +56,15 @@
 ##     0x102a + 4207 + 7 = 0x20A0
 # DISASM-PIC:      Disassembly of section .text:
 # DISASM-PIC-NEXT: _start:
-# DISASM-PIC-NEXT: 1000: {{.*}} adcq  4249(%rip), %rax
-# DISASM-PIC-NEXT: 1007: {{.*}} addq  4242(%rip), %rbx
-# DISASM-PIC-NEXT: 100e: {{.*}} andq  4235(%rip), %rcx
-# DISASM-PIC-NEXT: 1015: {{.*}} cmpq  4228(%rip), %rdx
-# DISASM-PIC-NEXT: 101c: {{.*}} orq   4221(%rip), %rdi
-# DISASM-PIC-NEXT: 1023: {{.*}} sbbq  4214(%rip), %rsi
-# DISASM-PIC-NEXT: 102a: {{.*}} subq  4207(%rip), %rbp
-# DISASM-PIC-NEXT: 1031: {{.*}} xorq  4200(%rip), %r8
-# DISASM-PIC-NEXT: 1038: {{.*}} testq 4193(%rip), %r15
+# DISASM-PIC-NEXT: 1000: {{.*}} adcq  8345(%rip), %rax
+# DISASM-PIC-NEXT: 1007: {{.*}} addq  8338(%rip), %rbx
+# DISASM-PIC-NEXT: 100e: {{.*}} andq  8331(%rip), %rcx
+# DISASM-PIC-NEXT: 1015: {{.*}} cmpq  8324(%rip), %rdx
+# DISASM-PIC-NEXT: 101c: {{.*}} orq   8317(%rip), %rdi
+# DISASM-PIC-NEXT: 1023: {{.*}} sbbq  8310(%rip), %rsi
+# DISASM-PIC-NEXT: 102a: {{.*}} subq  8303(%rip), %rbp
+# DISASM-PIC-NEXT: 1031: {{.*}} xorq  8296(%rip), %r8
+# DISASM-PIC-NEXT: 1038: {{.*}} testq 8289(%rip), %r15
 
 .data
 .type   bar, @object

Modified: lld/trunk/test/ELF/i386-merge.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/i386-merge.s?rev=291523&r1=291522&r2=291523&view=diff
==============================================================================
--- lld/trunk/test/ELF/i386-merge.s (original)
+++ lld/trunk/test/ELF/i386-merge.s Mon Jan  9 19:21:30 2017
@@ -27,8 +27,8 @@
 // CHECK-NEXT:   SHF_ALLOC
 // CHECK-NEXT:   SHF_WRITE
 // CHECK-NEXT: ]
-// CHECK-NEXT: Address: 0x2000
-// CHECK-NEXT: Offset: 0x2000
+// CHECK-NEXT: Address: 0x1000
+// CHECK-NEXT: Offset: 0x1000
 // CHECK-NEXT: Size: 4
 // CHECK-NEXT: Link: 0
 // CHECK-NEXT: Info: 0

Modified: lld/trunk/test/ELF/linkerscript/orphan.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/linkerscript/orphan.s?rev=291523&r1=291522&r2=291523&view=diff
==============================================================================
--- lld/trunk/test/ELF/linkerscript/orphan.s (original)
+++ lld/trunk/test/ELF/linkerscript/orphan.s Mon Jan  9 19:21:30 2017
@@ -9,15 +9,15 @@
 # RUN: ld.lld -o %t1 --script %t.script %t
 # RUN: llvm-objdump -section-headers %t1 | FileCheck %s
 
-## .jcr is a relro section and should be placed before other RW sections.
+## .jcr is a relro section and should be placed after other RW sections.
 ## .bss is SHT_NOBITS section and should be last RW section, so some space
 ## in ELF file could be saved.
 # CHECK:       0               00000000 0000000000000000
 # CHECK-NEXT:  1 .text         00000000 0000000000000000 TEXT DATA
-# CHECK-NEXT:  2 .jcr          00000008 0000000000000000 DATA
-# CHECK-NEXT:  3 .rw1          00000008 0000000000000008 DATA
-# CHECK-NEXT:  4 .rw2          00000008 0000000000000010 DATA
-# CHECK-NEXT:  5 .rw3          00000008 0000000000000018 DATA
+# CHECK-NEXT:  2 .rw1          00000008 0000000000000000 DATA
+# CHECK-NEXT:  3 .rw2          00000008 0000000000000008 DATA
+# CHECK-NEXT:  4 .rw3          00000008 0000000000000010 DATA
+# CHECK-NEXT:  5 .jcr          00000008 0000000000000018 DATA
 # CHECK-NEXT:  6 .bss          00000008 0000000000000020 BSS
 
 .section .rw1, "aw"

Modified: lld/trunk/test/ELF/linkerscript/repsection-symbol.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/linkerscript/repsection-symbol.s?rev=291523&r1=291522&r2=291523&view=diff
==============================================================================
--- lld/trunk/test/ELF/linkerscript/repsection-symbol.s (original)
+++ lld/trunk/test/ELF/linkerscript/repsection-symbol.s Mon Jan  9 19:21:30 2017
@@ -10,13 +10,13 @@
 # RUN: llvm-readobj -t %t1 | FileCheck %s
 
 # CHECK:      Name: foo1
-# CHECK-NEXT: Value: 0x288
+# CHECK-NEXT: Value: 0x228
 
 # CHECK:      Name: foo2
-# CHECK-NEXT: Value: 0x290
+# CHECK-NEXT: Value: 0x230
 
 # CHECK:      Name: foo3
-# CHECK-NEXT: Value: 0x294
+# CHECK-NEXT: Value: 0x234
 
 .section .foo.1,"a"
  .long 1

Modified: lld/trunk/test/ELF/linkerscript/sort-non-script.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/linkerscript/sort-non-script.s?rev=291523&r1=291522&r2=291523&view=diff
==============================================================================
--- lld/trunk/test/ELF/linkerscript/sort-non-script.s (original)
+++ lld/trunk/test/ELF/linkerscript/sort-non-script.s Mon Jan  9 19:21:30 2017
@@ -9,8 +9,8 @@
 # CHECK-NEXT: .dynsym  {{.*}}   A
 # CHECK-NEXT: .hash    {{.*}}   A
 # CHECK-NEXT: .dynstr  {{.*}}   A
-# CHECK-NEXT: .dynamic {{.*}}  WA
 # CHECK-NEXT: foo      {{.*}}  WA
+# CHECK-NEXT: .dynamic {{.*}}  WA
 
 .section foo, "aw"
 .byte 0

Modified: lld/trunk/test/ELF/lto/undefined-puts.ll
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/lto/undefined-puts.ll?rev=291523&r1=291522&r2=291523&view=diff
==============================================================================
--- lld/trunk/test/ELF/lto/undefined-puts.ll (original)
+++ lld/trunk/test/ELF/lto/undefined-puts.ll Mon Jan  9 19:21:30 2017
@@ -20,7 +20,7 @@ declare i32 @printf(i8*, ...)
 ; Check that puts symbol is present in the dynamic symbol table and
 ; there's a relocation for it.
 ; CHECK: Dynamic Relocations {
-; CHECK-NEXT:  0x203018 R_X86_64_JUMP_SLOT puts 0x0
+; CHECK-NEXT:  0x202018 R_X86_64_JUMP_SLOT puts 0x0
 ; CHECK-NEXT: }
 
 ; CHECK: DynamicSymbols [

Modified: lld/trunk/test/ELF/lto/visibility.ll
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/lto/visibility.ll?rev=291523&r1=291522&r2=291523&view=diff
==============================================================================
--- lld/trunk/test/ELF/lto/visibility.ll (original)
+++ lld/trunk/test/ELF/lto/visibility.ll Mon Jan  9 19:21:30 2017
@@ -15,7 +15,7 @@
 ; CHECK-NEXT: Section: .text
 
 ; CHECK:      Name: a
-; CHECK-NEXT: Value: 0x3000
+; CHECK-NEXT: Value: 0x2000
 ; CHECK-NEXT: Size: 0
 ; CHECK-NEXT: Binding: Local
 ; CHECK-NEXT: Type: None

Modified: lld/trunk/test/ELF/mips-26.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/mips-26.s?rev=291523&r1=291522&r2=291523&view=diff
==============================================================================
--- lld/trunk/test/ELF/mips-26.s (original)
+++ lld/trunk/test/ELF/mips-26.s Mon Jan  9 19:21:30 2017
@@ -27,7 +27,7 @@
 # CHECK-NEXT:   20018:       00 00 00 00     nop
 # CHECK-NEXT: Disassembly of section .plt:
 # CHECK-NEXT: .plt:
-# CHECK-NEXT:   20020:       3c 1c 00 04     lui     $gp, 4
+# CHECK-NEXT:   20020:       3c 1c 00 03     lui     $gp, 3
 # CHECK-NEXT:   20024:       8f 99 00 04     lw      $25, 4($gp)
 # CHECK-NEXT:   20028:       27 9c 00 04     addiu   $gp, $gp, 4
 # CHECK-NEXT:   2002c:       03 1c c0 23     subu    $24, $24, $gp
@@ -35,7 +35,7 @@
 # CHECK-NEXT:   20034:       00 18 c0 82     srl     $24, $24, 2
 # CHECK-NEXT:   20038:       03 20 f8 09     jalr    $25
 # CHECK-NEXT:   2003c:       27 18 ff fe     addiu   $24, $24, -2
-# CHECK-NEXT:   20040:       3c 0f 00 04     lui     $15, 4
+# CHECK-NEXT:   20040:       3c 0f 00 03     lui     $15, 3
 # CHECK-NEXT:   20044:       8d f9 00 0c     lw      $25, 12($15)
 # CHECK-NEXT:   20048:       03 20 00 08     jr      $25
 # CHECK-NEXT:   2004c:       25 f8 00 0c     addiu   $24, $15, 12

Modified: lld/trunk/test/ELF/mips-32.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/mips-32.s?rev=291523&r1=291522&r2=291523&view=diff
==============================================================================
--- lld/trunk/test/ELF/mips-32.s (original)
+++ lld/trunk/test/ELF/mips-32.s Mon Jan  9 19:21:30 2017
@@ -34,21 +34,21 @@ v2:
   .word v1   # R_MIPS_32 target v1 addend 0
 
 # BE: Contents of section .data:
-# BE-NEXT: 30000 00000000 00000004 00030000
+# BE-NEXT: 20000 00000000 00000004 00020000
 #                         ^-- v2+4 ^-- v1
 
 # EL: Contents of section .data:
-# EL-NEXT: 30000 00000000 04000000 00000300
+# EL-NEXT: 20000 00000000 04000000 00000200
 #                         ^-- v2+4 ^-- v1
 
 # SYM: SYMBOL TABLE:
-# SYM: 00030000 l       .data           00000004 v1
-# SYM: 00030004 g       .data           00000008 v2
+# SYM: 00020000 l       .data           00000004 v1
+# SYM: 00020004 g       .data           00000008 v2
 
 # REL:      Relocations [
 # REL-NEXT:   Section (7) .rel.dyn {
-# REL-NEXT:     0x30008 R_MIPS_REL32 - 0x0
-# REL-NEXT:     0x30004 R_MIPS_REL32 v2 0x0
+# REL-NEXT:     0x20008 R_MIPS_REL32 - 0x0
+# REL-NEXT:     0x20004 R_MIPS_REL32 v2 0x0
 # REL-NEXT:   }
 # REL-NEXT: ]
 
@@ -68,8 +68,8 @@ v2:
 # REL-NEXT:     Entry {
 # REL-NEXT:       Address:
 # REL-NEXT:       Access:
-# REL-NEXT:       Initial: 0x30004
-# REL-NEXT:       Value: 0x30004
+# REL-NEXT:       Initial: 0x20004
+# REL-NEXT:       Value: 0x20004
 # REL-NEXT:       Type: Object
 # REL-NEXT:       Section: .data
 # REL-NEXT:       Name: v2

Modified: lld/trunk/test/ELF/mips-64-disp.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/mips-64-disp.s?rev=291523&r1=291522&r2=291523&view=diff
==============================================================================
--- lld/trunk/test/ELF/mips-64-disp.s (original)
+++ lld/trunk/test/ELF/mips-64-disp.s Mon Jan  9 19:21:30 2017
@@ -18,23 +18,23 @@
 # CHECK-NEXT:    20010:   24 42 80 38   addiu   $2, $2, -32712
 
 # CHECK: 0000000000020014     .text   00000000 foo
-# CHECK: 0000000000037ff0     *ABS*   00000000 .hidden _gp
+# CHECK: 0000000000047ff0     *ABS*   00000000 .hidden _gp
 # CHECK: 0000000000020000     .text   00000000 __start
 # CHECK: 0000000000000000 g F *UND*   00000000 foo1a
 
 # GOT:      Relocations [
 # GOT-NEXT: ]
 # GOT-NEXT: Primary GOT {
-# GOT-NEXT:   Canonical gp value: 0x37FF0
+# GOT-NEXT:   Canonical gp value: 0x47FF0
 # GOT-NEXT:   Reserved entries [
 # GOT-NEXT:     Entry {
-# GOT-NEXT:       Address: 0x30000
+# GOT-NEXT:       Address: 0x40000
 # GOT-NEXT:       Access: -32752
 # GOT-NEXT:       Initial: 0x0
 # GOT-NEXT:       Purpose: Lazy resolver
 # GOT-NEXT:     }
 # GOT-NEXT:     Entry {
-# GOT-NEXT:       Address: 0x30008
+# GOT-NEXT:       Address: 0x40008
 # GOT-NEXT:       Access: -32744
 # GOT-NEXT:       Initial: 0x8000000000000000
 # GOT-NEXT:       Purpose: Module pointer (GNU extension)
@@ -42,29 +42,29 @@
 # GOT-NEXT:   ]
 # GOT-NEXT:   Local entries [
 # GOT-NEXT:     Entry {
-# GOT-NEXT:       Address: 0x30010
+# GOT-NEXT:       Address: 0x40010
 # GOT-NEXT:       Access: -32736
 # GOT-NEXT:       Initial: 0x20014
 # GOT-NEXT:     }
 # GOT-NEXT:     Entry {
-# GOT-NEXT:       Address: 0x30018
+# GOT-NEXT:       Address: 0x40018
 # GOT-NEXT:       Access: -32728
 # GOT-NEXT:       Initial: 0x20004
 # GOT-NEXT:     }
 # GOT-NEXT:     Entry {
-# GOT-NEXT:       Address: 0x30020
+# GOT-NEXT:       Address: 0x40020
 # GOT-NEXT:       Access: -32720
 # GOT-NEXT:       Initial: 0x20008
 # GOT-NEXT:     }
 # GOT-NEXT:     Entry {
-# GOT-NEXT:       Address: 0x30028
+# GOT-NEXT:       Address: 0x40028
 # GOT-NEXT:       Access: -32712
 # GOT-NEXT:       Initial: 0x2000C
 # GOT-NEXT:     }
 # GOT-NEXT:   ]
 # GOT-NEXT:   Global entries [
 # GOT-NEXT:     Entry {
-# GOT-NEXT:       Address: 0x30030
+# GOT-NEXT:       Address: 0x40030
 # GOT-NEXT:       Access: -32704
 # GOT-NEXT:       Initial: 0x0
 # GOT-NEXT:       Value: 0x0

Modified: lld/trunk/test/ELF/mips-64-got.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/mips-64-got.s?rev=291523&r1=291522&r2=291523&view=diff
==============================================================================
--- lld/trunk/test/ELF/mips-64-got.s (original)
+++ lld/trunk/test/ELF/mips-64-got.s Mon Jan  9 19:21:30 2017
@@ -19,23 +19,23 @@
 # CHECK-NEXT:    20010:   24 42 80 38   addiu   $2,  $2, -32712
 
 # CHECK: 0000000000020018   .text   00000000 foo
-# CHECK: 0000000000037ff0   *ABS*   00000000 .hidden _gp
+# CHECK: 0000000000047ff0   *ABS*   00000000 .hidden _gp
 # CHECK: 0000000000020000   .text   00000000 __start
 # CHECK: 0000000000020014   .text   00000000 bar
 
 # GOT:      Relocations [
 # GOT-NEXT: ]
 # GOT-NEXT: Primary GOT {
-# GOT-NEXT:   Canonical gp value: 0x37FF0
+# GOT-NEXT:   Canonical gp value: 0x47FF0
 # GOT-NEXT:   Reserved entries [
 # GOT-NEXT:     Entry {
-# GOT-NEXT:       Address: 0x30000
+# GOT-NEXT:       Address: 0x40000
 # GOT-NEXT:       Access: -32752
 # GOT-NEXT:       Initial: 0x0
 # GOT-NEXT:       Purpose: Lazy resolver
 # GOT-NEXT:     }
 # GOT-NEXT:     Entry {
-# GOT-NEXT:       Address: 0x30008
+# GOT-NEXT:       Address: 0x40008
 # GOT-NEXT:       Access: -32744
 # GOT-NEXT:       Initial: 0x8000000000000000
 # GOT-NEXT:       Purpose: Module pointer (GNU extension)
@@ -43,29 +43,29 @@
 # GOT-NEXT:   ]
 # GOT-NEXT:   Local entries [
 # GOT-NEXT:     Entry {
-# GOT-NEXT:       Address: 0x30010
+# GOT-NEXT:       Address: 0x40010
 # GOT-NEXT:       Access: -32736
 # GOT-NEXT:       Initial: 0x20000
 # GOT-NEXT:     }
 # GOT-NEXT:     Entry {
-# GOT-NEXT:       Address: 0x30018
+# GOT-NEXT:       Address: 0x40018
 # GOT-NEXT:       Access: -32728
 # GOT-NEXT:       Initial: 0x30000
 # GOT-NEXT:     }
 # GOT-NEXT:     Entry {
-# GOT-NEXT:       Address: 0x30020
+# GOT-NEXT:       Address: 0x40020
 # GOT-NEXT:       Access: -32720
 # GOT-NEXT:       Initial: 0x20014
 # GOT-NEXT:     }
 # GOT-NEXT:     Entry {
-# GOT-NEXT:       Address: 0x30028
+# GOT-NEXT:       Address: 0x40028
 # GOT-NEXT:       Access: -32712
 # GOT-NEXT:       Initial: 0x20018
 # GOT-NEXT:     }
 # GOT-NEXT:   ]
 # GOT-NEXT:   Global entries [
 # GOT-NEXT:     Entry {
-# GOT-NEXT:       Address: 0x30030
+# GOT-NEXT:       Address: 0x40030
 # GOT-NEXT:       Access: -32704
 # GOT-NEXT:       Initial: 0x0
 # GOT-NEXT:       Value: 0x0

Modified: lld/trunk/test/ELF/mips-64.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/mips-64.s?rev=291523&r1=291522&r2=291523&view=diff
==============================================================================
--- lld/trunk/test/ELF/mips-64.s (original)
+++ lld/trunk/test/ELF/mips-64.s Mon Jan  9 19:21:30 2017
@@ -26,14 +26,14 @@ v2:
 
 
 # SYM: SYMBOL TABLE:
-# SYM: 00030000 l       .data           00000004 v1
-# SYM: 00030008 g       .data           00000008 v2
+# SYM: 00020000 l       .data           00000004 v1
+# SYM: 00020008 g       .data           00000008 v2
 
 # CHECK:      Relocations [
 # CHECK-NEXT:   Section (7) .rela.dyn {
-# CHECK-NEXT:     0x30010 R_MIPS_REL32/R_MIPS_64/R_MIPS_NONE - 0x30000
+# CHECK-NEXT:     0x20010 R_MIPS_REL32/R_MIPS_64/R_MIPS_NONE - 0x20000
 #                                                             ^-- v1
-# CHECK-NEXT:     0x30008 R_MIPS_REL32/R_MIPS_64/R_MIPS_NONE v2 0x8
+# CHECK-NEXT:     0x20008 R_MIPS_REL32/R_MIPS_64/R_MIPS_NONE v2 0x8
 # CHECK-NEXT:   }
 # CHECK-NEXT: ]
 
@@ -52,8 +52,8 @@ v2:
 # CHECK-NEXT:     Entry {
 # CHECK-NEXT:       Address:
 # CHECK-NEXT:       Access:
-# CHECK-NEXT:       Initial: 0x30008
-# CHECK-NEXT:       Value: 0x30008
+# CHECK-NEXT:       Initial: 0x20008
+# CHECK-NEXT:       Value: 0x20008
 # CHECK-NEXT:       Type: Object
 # CHECK-NEXT:       Section: .data
 # CHECK-NEXT:       Name: v2

Modified: lld/trunk/test/ELF/mips-dynamic.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/mips-dynamic.s?rev=291523&r1=291522&r2=291523&view=diff
==============================================================================
--- lld/trunk/test/ELF/mips-dynamic.s (original)
+++ lld/trunk/test/ELF/mips-dynamic.s Mon Jan  9 19:21:30 2017
@@ -24,25 +24,25 @@
 # EXE-NEXT:     Flags [
 # EXE-NEXT:       SHF_ALLOC
 # EXE-NEXT:     ]
-# EXE:          Name: .got
+# EXE:          Name: .rld_map
 # EXE-NEXT:     Type: SHT_PROGBITS
-# EXE-NEXT:     Flags [ (0x10000003)
+# EXE-NEXT:     Flags [
 # EXE-NEXT:       SHF_ALLOC
-# EXE-NEXT:       SHF_MIPS_GPREL
 # EXE-NEXT:       SHF_WRITE
 # EXE-NEXT:     ]
-# EXE-NEXT:     Address: [[GOTADDR:0x[0-9a-f]+]]
+# EXE-NEXT:     Address: [[RLDMAPADDR:0x[0-9a-f]+]]
 # EXE-NEXT:     Offset:
-# EXE-NEXT:     Size: 8
-# EXE:          Name: .rld_map
+# EXE-NEXT:     Size: 4
+# EXE:          Name: .got
 # EXE-NEXT:     Type: SHT_PROGBITS
-# EXE-NEXT:     Flags [
+# EXE-NEXT:     Flags [ (0x10000003)
 # EXE-NEXT:       SHF_ALLOC
+# EXE-NEXT:       SHF_MIPS_GPREL
 # EXE-NEXT:       SHF_WRITE
 # EXE-NEXT:     ]
-# EXE-NEXT:     Address: [[RLDMAPADDR:0x[0-9a-f]+]]
+# EXE-NEXT:     Address: [[GOTADDR:0x[0-9a-f]+]]
 # EXE-NEXT:     Offset:
-# EXE-NEXT:     Size: 4
+# EXE-NEXT:     Size: 8
 # EXE:      ]
 # EXE:      DynamicSection [
 # EXE-NEXT:   Tag        Type                 Name/Value

Modified: lld/trunk/test/ELF/mips-got-and-copy.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/mips-got-and-copy.s?rev=291523&r1=291522&r2=291523&view=diff
==============================================================================
--- lld/trunk/test/ELF/mips-got-and-copy.s (original)
+++ lld/trunk/test/ELF/mips-got-and-copy.s Mon Jan  9 19:21:30 2017
@@ -19,22 +19,22 @@
 # CHECK-NEXT:   }
 # CHECK-NEXT: ]
 # CHECK-NEXT: Primary GOT {
-# CHECK-NEXT:   Canonical gp value: 0x37FF0
+# CHECK-NEXT:   Canonical gp value: 0x47FF0
 # CHECK-NEXT:   Reserved entries [
 # CHECK:        ]
 # CHECK-NEXT:   Local entries [
 # CHECK-NEXT:     Entry {
-# CHECK-NEXT:       Address: 0x30008
+# CHECK-NEXT:       Address: 0x40008
 # CHECK-NEXT:       Access: -32744
-# CHECK-NEXT:       Initial: 0x40010
+# CHECK-NEXT:       Initial: 0x50000
 # CHECK-NEXT:     }
 # CHECK-NEXT:   ]
 # CHECK-NEXT:   Global entries [
 # CHECK-NEXT:     Entry {
-# CHECK-NEXT:       Address: 0x3000C
+# CHECK-NEXT:       Address: 0x4000C
 # CHECK-NEXT:       Access: -32740
-# CHECK-NEXT:       Initial: 0x40014
-# CHECK-NEXT:       Value: 0x40014
+# CHECK-NEXT:       Initial: 0x50004
+# CHECK-NEXT:       Value: 0x50004
 # CHECK-NEXT:       Type: Object (0x1)
 # CHECK-NEXT:       Section: .bss (0xD)
 # CHECK-NEXT:       Name: data1@

Modified: lld/trunk/test/ELF/mips-got-extsym.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/mips-got-extsym.s?rev=291523&r1=291522&r2=291523&view=diff
==============================================================================
--- lld/trunk/test/ELF/mips-got-extsym.s (original)
+++ lld/trunk/test/ELF/mips-got-extsym.s Mon Jan  9 19:21:30 2017
@@ -30,7 +30,7 @@
 
 # CHECK:      Local entries [
 # CHECK-NEXT:   Entry {
-# CHECK-NEXT:     Address: 0x30008
+# CHECK-NEXT:     Address: 0x40008
 # CHECK-NEXT:     Access: -32744
 # CHECK-NEXT:     Initial: 0x20008
 #                          ^-- bar
@@ -38,7 +38,7 @@
 # CHECK-NEXT: ]
 # CHECK-NEXT: Global entries [
 # CHECK-NEXT:   Entry {
-# CHECK-NEXT:     Address: 0x3000C
+# CHECK-NEXT:     Address: 0x4000C
 # CHECK-NEXT:     Access: -32740
 # CHECK-NEXT:     Initial: 0x0
 # CHECK-NEXT:     Value: 0x0

Modified: lld/trunk/test/ELF/mips-got-hilo.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/mips-got-hilo.s?rev=291523&r1=291522&r2=291523&view=diff
==============================================================================
--- lld/trunk/test/ELF/mips-got-hilo.s (original)
+++ lld/trunk/test/ELF/mips-got-hilo.s Mon Jan  9 19:21:30 2017
@@ -20,22 +20,22 @@
 # GOT-NEXT: ]
 
 # GOT:      Primary GOT {
-# GOT-NEXT:   Canonical gp value: 0x27FF0
+# GOT-NEXT:   Canonical gp value: 0x37FF0
 # GOT:        Local entries [
 # GOT-NEXT:     Entry {
-# GOT-NEXT:       Address: 0x20008
+# GOT-NEXT:       Address: 0x30008
 # GOT-NEXT:       Access: -32744
-# GOT-NEXT:       Initial: 0x30000
+# GOT-NEXT:       Initial: 0x20000
 # GOT-NEXT:     }
 # GOT-NEXT:     Entry {
-# GOT-NEXT:       Address: 0x2000C
+# GOT-NEXT:       Address: 0x3000C
 # GOT-NEXT:       Access: -32740
-# GOT-NEXT:       Initial: 0x30004
+# GOT-NEXT:       Initial: 0x20004
 # GOT-NEXT:     }
 # GOT-NEXT:   ]
 # GOT-NEXT:   Global entries [
 # GOT-NEXT:     Entry {
-# GOT-NEXT:       Address: 0x20010
+# GOT-NEXT:       Address: 0x30010
 # GOT-NEXT:       Access: -32736
 # GOT-NEXT:       Initial: 0x0
 # GOT-NEXT:       Value: 0x0

Modified: lld/trunk/test/ELF/mips-got-redundant.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/mips-got-redundant.s?rev=291523&r1=291522&r2=291523&view=diff
==============================================================================
--- lld/trunk/test/ELF/mips-got-redundant.s (original)
+++ lld/trunk/test/ELF/mips-got-redundant.s Mon Jan  9 19:21:30 2017
@@ -8,27 +8,27 @@
 
 # CHECK:      Local entries [
 # CHECK-NEXT:   Entry {
-# CHECK-NEXT:     Address: 0x20008
+# CHECK-NEXT:     Address: 0x40008
 # CHECK-NEXT:     Access: -32744
-# CHECK-NEXT:     Initial: 0x30000
+# CHECK-NEXT:     Initial: 0x20000
 #                          ^-- loc1
 # CHECK-NEXT:   }
 # CHECK-NEXT:   Entry {
-# CHECK-NEXT:     Address: 0x2000C
+# CHECK-NEXT:     Address: 0x4000C
 # CHECK-NEXT:     Access: -32740
-# CHECK-NEXT:     Initial: 0x40000
+# CHECK-NEXT:     Initial: 0x30000
 #                          ^-- loc2, loc3, loc4
 # CHECK-NEXT:   }
 # CHECK-NEXT:   Entry {
-# CHECK-NEXT:     Address: 0x20010
+# CHECK-NEXT:     Address: 0x40010
 # CHECK-NEXT:     Access: -32736
-# CHECK-NEXT:     Initial: 0x50000
+# CHECK-NEXT:     Initial: 0x40000
 #                          ^-- redundant
 # CHECK-NEXT:   }
 # CHECK-NEXT:   Entry {
-# CHECK-NEXT:     Address: 0x20014
+# CHECK-NEXT:     Address: 0x40014
 # CHECK-NEXT:     Access: -32732
-# CHECK-NEXT:     Initial: 0x40008
+# CHECK-NEXT:     Initial: 0x30008
 #                          ^-- glb1
 # CHECK-NEXT:   }
 # CHECK-NEXT: ]

Modified: lld/trunk/test/ELF/mips-got-relocs.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/mips-got-relocs.s?rev=291523&r1=291522&r2=291523&view=diff
==============================================================================
--- lld/trunk/test/ELF/mips-got-relocs.s (original)
+++ lld/trunk/test/ELF/mips-got-relocs.s Mon Jan  9 19:21:30 2017
@@ -45,22 +45,22 @@ v1:
   .word 0
 
 # EXE_SYM: Sections:
-# EXE_SYM: .got 0000000c 0000000000030000 DATA
+# EXE_SYM: .got 0000000c 0000000000040000 DATA
 # EXE_SYM: SYMBOL TABLE:
-# EXE_SYM: 00037ff0         *ABS*    00000000 .hidden _gp
+# EXE_SYM: 00047ff0         *ABS*    00000000 .hidden _gp
 #          ^-- .got + GP offset (0x7ff0)
-# EXE_SYM: 00040000 g       .data		 00000004 v1
+# EXE_SYM: 00030000 g       .data		 00000004 v1
 
 
 # EXE_GOT_BE: Contents of section .got:
-# EXE_GOT_BE:  30000 00000000 80000000 00040000
-#                    ^        ^        ^-- v1 (0x40000)
+# EXE_GOT_BE:  40000 00000000 80000000 00030000
+#                    ^        ^        ^-- v1 (0x30000)
 #                    |        +-- Module pointer (0x80000000)
 #                    +-- Lazy resolver (0x0)
 
 # EXE_GOT_EL: Contents of section .got:
-# EXE_GOT_EL:  30000 00000000 00000080 00000400
-#                    ^        ^        ^-- v1 (0x40000)
+# EXE_GOT_EL:  40000 00000000 00000080 00000300
+#                    ^        ^        ^-- v1 (0x30000)
 #                    |        +-- Module pointer (0x80000000)
 #                    +-- Lazy resolver (0x0)
 
@@ -69,21 +69,21 @@ v1:
 # EXE_DIS_EL:  20000:  18 80 02 3c  lui $2, 32792
 
 # DSO_SYM: Sections:
-# DSO_SYM: .got 0000000c 0000000000020000 DATA
+# DSO_SYM: .got 0000000c 0000000000030000 DATA
 # DSO_SYM: SYMBOL TABLE:
-# DSO_SYM: 00027ff0         *ABS*    00000000 .hidden _gp
+# DSO_SYM: 00037ff0         *ABS*    00000000 .hidden _gp
 #          ^-- .got + GP offset (0x7ff0)
-# DSO_SYM: 00030000 g       .data		 00000004 v1
+# DSO_SYM: 00020000 g       .data		 00000004 v1
 
 # DSO_GOT_BE: Contents of section .got:
-# DSO_GOT_BE:  20000 00000000 80000000 00030000
-#                    ^        ^        ^-- v1 (0x30000)
+# DSO_GOT_BE:  30000 00000000 80000000 00020000
+#                    ^        ^        ^-- v1 (0x20000)
 #                    |        +-- Module pointer (0x80000000)
 #                    +-- Lazy resolver (0x0)
 
 # DSO_GOT_EL: Contents of section .got:
-# DSO_GOT_EL:  20000 00000000 00000080 00000300
-#                    ^        ^        ^-- v1 (0x30000)
+# DSO_GOT_EL:  30000 00000000 00000080 00000200
+#                    ^        ^        ^-- v1 (0x20000)
 #                    |        +-- Module pointer (0x80000000)
 #                    +-- Lazy resolver (0x0)
 

Modified: lld/trunk/test/ELF/mips-got-weak.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/mips-got-weak.s?rev=291523&r1=291522&r2=291523&view=diff
==============================================================================
--- lld/trunk/test/ELF/mips-got-weak.s (original)
+++ lld/trunk/test/ELF/mips-got-weak.s Mon Jan  9 19:21:30 2017
@@ -15,7 +15,7 @@
 
 # NOSYM:        Symbol {
 # NOSYM:          Name: foo
-# NOSYM-NEXT:     Value: 0x30000
+# NOSYM-NEXT:     Value: 0x20000
 # NOSYM-NEXT:     Size: 0
 # NOSYM-NEXT:     Binding: Weak
 # NOSYM-NEXT:     Type: None
@@ -33,7 +33,7 @@
 # NOSYM-NEXT:   }
 # NOSYM-NEXT:   Symbol {
 # NOSYM-NEXT:     Name: sym
-# NOSYM-NEXT:     Value: 0x30004
+# NOSYM-NEXT:     Value: 0x20004
 # NOSYM-NEXT:     Size: 0
 # NOSYM-NEXT:     Binding: Global
 # NOSYM-NEXT:     Type: None
@@ -47,16 +47,16 @@
 # NOSYM-NEXT: 0x70000013 MIPS_GOTSYM          0x1
 
 # NOSYM:      Primary GOT {
-# NOSYM-NEXT:   Canonical gp value: 0x27FF0
+# NOSYM-NEXT:   Canonical gp value: 0x37FF0
 # NOSYM-NEXT:   Reserved entries [
 # NOSYM-NEXT:     Entry {
-# NOSYM-NEXT:       Address: 0x20000
+# NOSYM-NEXT:       Address: 0x30000
 # NOSYM-NEXT:       Access: -32752
 # NOSYM-NEXT:       Initial: 0x0
 # NOSYM-NEXT:       Purpose: Lazy resolver
 # NOSYM-NEXT:     }
 # NOSYM-NEXT:     Entry {
-# NOSYM-NEXT:       Address: 0x20004
+# NOSYM-NEXT:       Address: 0x30004
 # NOSYM-NEXT:       Access: -32748
 # NOSYM-NEXT:       Initial: 0x80000000
 # NOSYM-NEXT:       Purpose: Module pointer (GNU extension)
@@ -66,16 +66,16 @@
 # NOSYM-NEXT:   ]
 # NOSYM-NEXT:   Global entries [
 # NOSYM-NEXT:     Entry {
-# NOSYM-NEXT:       Address: 0x20008
+# NOSYM-NEXT:       Address: 0x30008
 # NOSYM-NEXT:       Access: -32744
-# NOSYM-NEXT:       Initial: 0x30000
-# NOSYM-NEXT:       Value: 0x30000
+# NOSYM-NEXT:       Initial: 0x20000
+# NOSYM-NEXT:       Value: 0x20000
 # NOSYM-NEXT:       Type: None
 # NOSYM-NEXT:       Section: .data
 # NOSYM-NEXT:       Name: foo
 # NOSYM-NEXT:     }
 # NOSYM-NEXT:     Entry {
-# NOSYM-NEXT:       Address: 0x2000C
+# NOSYM-NEXT:       Address: 0x3000C
 # NOSYM-NEXT:       Access: -32740
 # NOSYM-NEXT:       Initial: 0x0
 # NOSYM-NEXT:       Value: 0x0
@@ -84,10 +84,10 @@
 # NOSYM-NEXT:       Name: bar
 # NOSYM-NEXT:     }
 # NOSYM-NEXT:     Entry {
-# NOSYM-NEXT:       Address: 0x20010
+# NOSYM-NEXT:       Address: 0x30010
 # NOSYM-NEXT:       Access: -32736
-# NOSYM-NEXT:       Initial: 0x30004
-# NOSYM-NEXT:       Value: 0x30004
+# NOSYM-NEXT:       Initial: 0x20004
+# NOSYM-NEXT:       Value: 0x20004
 # NOSYM-NEXT:       Type: None
 # NOSYM-NEXT:       Section: .data
 # NOSYM-NEXT:       Name: sym
@@ -115,16 +115,16 @@
 # SYM-NEXT: 0x70000013 MIPS_GOTSYM          0x3
 
 # SYM:      Primary GOT {
-# SYM-NEXT:   Canonical gp value: 0x27FF0
+# SYM-NEXT:   Canonical gp value: 0x37FF0
 # SYM-NEXT:   Reserved entries [
 # SYM-NEXT:     Entry {
-# SYM-NEXT:       Address: 0x20000
+# SYM-NEXT:       Address: 0x30000
 # SYM-NEXT:       Access: -32752
 # SYM-NEXT:       Initial: 0x0
 # SYM-NEXT:       Purpose: Lazy resolver
 # SYM-NEXT:     }
 # SYM-NEXT:     Entry {
-# SYM-NEXT:       Address: 0x20004
+# SYM-NEXT:       Address: 0x30004
 # SYM-NEXT:       Access: -32748
 # SYM-NEXT:       Initial: 0x80000000
 # SYM-NEXT:       Purpose: Module pointer (GNU extension)
@@ -132,19 +132,19 @@
 # SYM-NEXT:   ]
 # SYM-NEXT:   Local entries [
 # SYM-NEXT:     Entry {
-# SYM-NEXT:       Address: 0x20008
+# SYM-NEXT:       Address: 0x30008
 # SYM-NEXT:       Access: -32744
-# SYM-NEXT:       Initial: 0x30000
+# SYM-NEXT:       Initial: 0x20000
 # SYM-NEXT:     }
 # SYM-NEXT:     Entry {
-# SYM-NEXT:       Address: 0x2000C
+# SYM-NEXT:       Address: 0x3000C
 # SYM-NEXT:       Access: -32740
-# SYM-NEXT:       Initial: 0x30004
+# SYM-NEXT:       Initial: 0x20004
 # SYM-NEXT:     }
 # SYM-NEXT:   ]
 # SYM-NEXT:   Global entries [
 # SYM-NEXT:     Entry {
-# SYM-NEXT:       Address: 0x20010
+# SYM-NEXT:       Address: 0x30010
 # SYM-NEXT:       Access: -32736
 # SYM-NEXT:       Initial: 0x0
 # SYM-NEXT:       Value: 0x0

Modified: lld/trunk/test/ELF/mips-got16.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/mips-got16.s?rev=291523&r1=291522&r2=291523&view=diff
==============================================================================
--- lld/trunk/test/ELF/mips-got16.s (original)
+++ lld/trunk/test/ELF/mips-got16.s Mon Jan  9 19:21:30 2017
@@ -22,23 +22,23 @@
 # CHECK-NEXT:    10028:       8f 88 80 34     lw      $8, -32716($gp)
 #
 # CHECK: SYMBOL TABLE:
-# CHECK: 00051008         .data           00000000 .hidden bar
+# CHECK: 00041008         .data           00000000 .hidden bar
 # CHECK: 00000000         *UND*           00000000 foo
 
 # GOT:      Relocations [
 # GOT-NEXT: ]
 
 # GOT:      Primary GOT {
-# GOT-NEXT:   Canonical gp value: 0x27FF0
+# GOT-NEXT:   Canonical gp value: 0x57FF0
 # GOT-NEXT:   Reserved entries [
 # GOT-NEXT:     Entry {
-# GOT-NEXT:       Address: 0x20000
+# GOT-NEXT:       Address: 0x50000
 # GOT-NEXT:       Access: -32752
 # GOT-NEXT:       Initial: 0x0
 # GOT-NEXT:       Purpose: Lazy resolver
 # GOT-NEXT:     }
 # GOT-NEXT:     Entry {
-# GOT-NEXT:       Address: 0x20004
+# GOT-NEXT:       Address: 0x50004
 # GOT-NEXT:       Access: -32748
 # GOT-NEXT:       Initial: 0x80000000
 # GOT-NEXT:       Purpose: Module pointer (GNU extension)
@@ -46,52 +46,52 @@
 # GOT-NEXT:   ]
 # GOT-NEXT:   Local entries [
 # GOT-NEXT:     Entry {
-# GOT-NEXT:       Address: 0x20008
+# GOT-NEXT:       Address: 0x50008
 # GOT-NEXT:       Access: -32744
 # GOT-NEXT:       Initial: 0x10000
 #                          ^-- (0x1002c + 0x8000) & ~0xffff
 # GOT-NEXT:     }
 # GOT-NEXT:     Entry {
-# GOT-NEXT:       Address: 0x2000C
+# GOT-NEXT:       Address: 0x5000C
 # GOT-NEXT:       Access: -32740
 # GOT-NEXT:       Initial: 0x20000
 #                          ^-- redundant unused entry
 # GOT-NEXT:     }
 # GOT-NEXT:     Entry {
-# GOT-NEXT:       Address: 0x20010
+# GOT-NEXT:       Address: 0x50010
 # GOT-NEXT:       Access: -32736
-# GOT-NEXT:       Initial: 0x30000
+# GOT-NEXT:       Initial: 0x20000
 #                          ^-- redundant unused entry
 # GOT-NEXT:     }
 # GOT-NEXT:     Entry {
-# GOT-NEXT:       Address: 0x20014
+# GOT-NEXT:       Address: 0x50014
 # GOT-NEXT:       Access: -32732
-# GOT-NEXT:       Initial: 0x40000
-#                          ^-- (0x39000 + 0x8000) & ~0xffff
+# GOT-NEXT:       Initial: 0x30000
+#                          ^-- (0x29000 + 0x8000) & ~0xffff
 # GOT-NEXT:     }
 # GOT-NEXT:     Entry {
-# GOT-NEXT:       Address: 0x20018
+# GOT-NEXT:       Address: 0x50018
 # GOT-NEXT:       Access: -32728
-# GOT-NEXT:       Initial: 0x50000
-#                          ^-- (0x39000 + 0x10004 + 0x8000) & ~0xffff
-#                          ^-- (0x39000 + 0x18004 + 0x8000) & ~0xffff
+# GOT-NEXT:       Initial: 0x40000
+#                          ^-- (0x29000 + 0x10004 + 0x8000) & ~0xffff
+#                          ^-- (0x29000 + 0x18004 + 0x8000) & ~0xffff
 # GOT-NEXT:     }
 # GOT-NEXT:     Entry {
-# GOT-NEXT:       Address: 0x2001C
+# GOT-NEXT:       Address: 0x5001C
 # GOT-NEXT:       Access: -32724
-# GOT-NEXT:       Initial: 0x60000
+# GOT-NEXT:       Initial: 0x50000
 #                          ^-- redundant unused entry
 # GOT-NEXT:     }
 # GOT-NEXT:     Entry {
-# GOT-NEXT:       Address: 0x20020
+# GOT-NEXT:       Address: 0x50020
 # GOT-NEXT:       Access: -32720
-# GOT-NEXT:       Initial: 0x51008
+# GOT-NEXT:       Initial: 0x41008
 #                          ^-- 'bar' address
 # GOT-NEXT:     }
 # GOT-NEXT:   ]
 # GOT-NEXT:   Global entries [
 # GOT-NEXT:     Entry {
-# GOT-NEXT:       Address: 0x20024
+# GOT-NEXT:       Address: 0x50024
 # GOT-NEXT:       Access: -32716
 # GOT-NEXT:       Initial: 0x0
 # GOT-NEXT:       Value: 0x0

Modified: lld/trunk/test/ELF/mips-gp-ext.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/mips-gp-ext.s?rev=291523&r1=291522&r2=291523&view=diff
==============================================================================
--- lld/trunk/test/ELF/mips-gp-ext.s (original)
+++ lld/trunk/test/ELF/mips-gp-ext.s Mon Jan  9 19:21:30 2017
@@ -20,10 +20,10 @@
 # REQUIRES: mips
 
 # REL:      Contents of section .text:
-# REL-NEXT:  0000 3c080000 2108010c 8f82ffe4
+# REL-NEXT:  0000 3c080000 2108010c 8f82fff0
 #                 ^-- %hi(_gp_disp)
 #                          ^-- %lo(_gp_disp)
-#                                   ^-- 8 - (0x10c - 0xe8)
+#                                   ^-- 8 - (0x10c - 0xf4)
 #                                       G - (GP - .got)
 
 # REL:      Contents of section .reginfo:
@@ -32,7 +32,7 @@
 #                          ^-- _gp
 
 # REL:      Contents of section .data:
-# REL-NEXT:  0100 fffffef4
+# REL-NEXT:  00f0 fffffef4
 #                 ^-- 0-0x10c
 
 # REL: 00000000         .text           00000000 foo
@@ -40,10 +40,10 @@
 # REL: 0000010c         *ABS*           00000000 .hidden _gp
 
 # ABS:      Contents of section .text:
-# ABS-NEXT:  0000 3c080000 21080200 8f82fef0
+# ABS-NEXT:  0000 3c080000 21080200 8f82fefc
 #                 ^-- %hi(_gp_disp)
 #                          ^-- %lo(_gp_disp)
-#                                   ^-- 8 - (0x200 - 0xe8)
+#                                   ^-- 8 - (0x200 - 0xf4)
 #                                       G - (GP - .got)
 
 # ABS:      Contents of section .reginfo:
@@ -52,7 +52,7 @@
 #                          ^-- _gp
 
 # ABS:      Contents of section .data:
-# ABS-NEXT:  0100 fffffe00
+# ABS-NEXT:  00f0 fffffe00
 #                 ^-- 0-0x200
 
 # ABS: 00000000         .text           00000000 foo

Modified: lld/trunk/test/ELF/mips-gp-lowest.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/mips-gp-lowest.s?rev=291523&r1=291522&r2=291523&view=diff
==============================================================================
--- lld/trunk/test/ELF/mips-gp-lowest.s (original)
+++ lld/trunk/test/ELF/mips-gp-lowest.s Mon Jan  9 19:21:30 2017
@@ -36,7 +36,7 @@ foo:
 # CHECK-NEXT:     SHF_MIPS_GPREL
 # CHECK-NEXT:     SHF_WRITE
 # CHECK-NEXT:   ]
-# CHECK-NEXT:   Address: 0xE4
+# CHECK-NEXT:   Address: 0xF0
 # CHECK:      }
 
 # CHECK:      Name: _gp (5)

Modified: lld/trunk/test/ELF/mips-hilo-gp-disp.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/mips-hilo-gp-disp.s?rev=291523&r1=291522&r2=291523&view=diff
==============================================================================
--- lld/trunk/test/ELF/mips-hilo-gp-disp.s (original)
+++ lld/trunk/test/ELF/mips-hilo-gp-disp.s Mon Jan  9 19:21:30 2017
@@ -22,34 +22,34 @@ bar:
 
 # EXE:      Disassembly of section .text:
 # EXE-NEXT: __start:
-# EXE-NEXT:  20000:   3c 08 00 01   lui    $8, 1
-#                                              ^-- %hi(0x37ff0-0x20000)
+# EXE-NEXT:  20000:   3c 08 00 02   lui    $8, 2
+#                                              ^-- %hi(0x47ff0-0x20000)
 # EXE-NEXT:  20004:   21 08 7f f0   addi   $8, $8, 32752
-#                                                  ^-- %lo(0x37ff0-0x20004+4)
+#                                                  ^-- %lo(0x47ff0-0x20004+4)
 # EXE:      bar:
-# EXE-NEXT:  2000c:   3c 08 00 01   lui    $8, 1
-#                                              ^-- %hi(0x37ff0-0x2000c)
+# EXE-NEXT:  2000c:   3c 08 00 02   lui    $8, 2
+#                                              ^-- %hi(0x47ff0-0x2000c)
 # EXE-NEXT:  20010:   21 08 7f e4   addi   $8, $8, 32740
-#                                                  ^-- %lo(0x37ff0-0x20010+4)
+#                                                  ^-- %lo(0x47ff0-0x20010+4)
 
 # EXE: SYMBOL TABLE:
 # EXE: 0002000c     .text   00000000 bar
-# EXE: 00037ff0     *ABS*   00000000 .hidden _gp
+# EXE: 00047ff0     *ABS*   00000000 .hidden _gp
 # EXE: 00020000     .text   00000000 __start
 
 # SO:      Disassembly of section .text:
 # SO-NEXT: __start:
-# SO-NEXT:  10000:   3c 08 00 01   lui    $8, 1
-#                                             ^-- %hi(0x27ff0-0x10000)
+# SO-NEXT:  10000:   3c 08 00 02   lui    $8, 2
+#                                             ^-- %hi(0x37ff0-0x10000)
 # SO-NEXT:  10004:   21 08 7f f0   addi   $8, $8, 32752
-#                                                 ^-- %lo(0x27ff0-0x10004+4)
+#                                                 ^-- %lo(0x37ff0-0x10004+4)
 # SO:       bar:
-# SO-NEXT:   1000c:   3c 08 00 01   lui    $8, 1
-#                                              ^-- %hi(0x27ff0-0x1000c)
+# SO-NEXT:   1000c:   3c 08 00 02   lui    $8, 2
+#                                              ^-- %hi(0x37ff0-0x1000c)
 # SO-NEXT:   10010:   21 08 7f e4   addi   $8, $8, 32740
-#                                                  ^-- %lo(0x27ff0-0x10010+4)
+#                                                  ^-- %lo(0x37ff0-0x10010+4)
 
 # SO: SYMBOL TABLE:
 # SO: 0001000c     .text   00000000 bar
-# SO: 00027ff0     *ABS*   00000000 .hidden _gp
+# SO: 00037ff0     *ABS*   00000000 .hidden _gp
 # SO: 00010000     .text   00000000 __start

Modified: lld/trunk/test/ELF/mips-hilo.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/mips-hilo.s?rev=291523&r1=291522&r2=291523&view=diff
==============================================================================
--- lld/trunk/test/ELF/mips-hilo.s (original)
+++ lld/trunk/test/ELF/mips-hilo.s Mon Jan  9 19:21:30 2017
@@ -34,20 +34,20 @@ g1:
 # CHECK-NEXT: __start:
 # CHECK-NEXT:  20000:   3c 08 00 02   lui    $8, 2
 #                                                ^-- %hi(__start+4)
-# CHECK-NEXT:  20004:   3c 09 00 04   lui    $9, 4
+# CHECK-NEXT:  20004:   3c 09 00 03   lui    $9, 3
 #                                                ^-- %hi(g1+8)
 # CHECK-NEXT:  20008:   21 08 00 04   addi   $8, $8, 4
 #                                                    ^-- %lo(__start+4)
 # CHECK-NEXT:  2000c:   21 08 00 0c   addi   $8, $8, 12
 #                                                    ^-- %lo(g1+8)
-# CHECK-NEXT:  20010:   3c 08 00 05   lui    $8, 5
+# CHECK-NEXT:  20010:   3c 08 00 04   lui    $8, 4
 #                                                ^-- %hi(l1+0x10000-4)
-# CHECK-NEXT:  20014:   3c 09 00 06   lui    $9, 6
+# CHECK-NEXT:  20014:   3c 09 00 05   lui    $9, 5
 #                                                ^-- %hi(l1+0x20000-4)
 # CHECK-NEXT:  20018:   21 08 ff fc   addi   $8, $8, -4
 #                                                    ^-- %lo(l1-4)
 
 # CHECK: SYMBOL TABLE:
-# CHECK: 0040000 l   .data   00000004 l1
+# CHECK: 0030000 l   .data   00000004 l1
 # CHECK: 0020000     .text   00000000 __start
-# CHECK: 0040004 g   .data   00000004 g1
+# CHECK: 0030004 g   .data   00000004 g1

Modified: lld/trunk/test/ELF/mips-options.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/mips-options.s?rev=291523&r1=291522&r2=291523&view=diff
==============================================================================
--- lld/trunk/test/ELF/mips-options.s (original)
+++ lld/trunk/test/ELF/mips-options.s Mon Jan  9 19:21:30 2017
@@ -17,11 +17,11 @@ __start:
     lui  $gp, %hi(%neg(%gp_rel(g1)))
 
 # CHECK:      Name: _gp
-# CHECK-NEXT: Value: 0x100008250
+# CHECK-NEXT: Value: 0x100008258
 
 # CHECK:      MIPS Options {
 # CHECK-NEXT:   ODK_REGINFO {
-# CHECK-NEXT:     GP: 0x100008250
+# CHECK-NEXT:     GP: 0x100008258
 # CHECK-NEXT:     General Mask: 0x10000001
 # CHECK-NEXT:     Co-Proc Mask0: 0x0
 # CHECK-NEXT:     Co-Proc Mask1: 0x0

Modified: lld/trunk/test/ELF/mips-pc-relocs.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/mips-pc-relocs.s?rev=291523&r1=291522&r2=291523&view=diff
==============================================================================
--- lld/trunk/test/ELF/mips-pc-relocs.s (original)
+++ lld/trunk/test/ELF/mips-pc-relocs.s Mon Jan  9 19:21:30 2017
@@ -38,8 +38,8 @@ __start:
 #                                      ^-- %lo(0x20020-0x20014)
 
 # CHECK: Contents of section .data:
-# CHECK-NEXT: 40000 fffe0028 00000000 00000000 00000000
-#                   ^-- 0x20020 + 8 - 0x40000
+# CHECK-NEXT: 30000 ffff0028 00000000 00000000 00000000
+#                   ^-- 0x20020 + 8 - 0x30000
 
 # CHECK: 00020000         .text           00000000 __start
 # CHECK: 00020020         .text           00000000 _foo

Modified: lld/trunk/test/ELF/mips-plt-r6.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/mips-plt-r6.s?rev=291523&r1=291522&r2=291523&view=diff
==============================================================================
--- lld/trunk/test/ELF/mips-plt-r6.s (original)
+++ lld/trunk/test/ELF/mips-plt-r6.s Mon Jan  9 19:21:30 2017
@@ -18,7 +18,7 @@
 #
 # CHECK-NEXT: Disassembly of section .plt:
 # CHECK-NEXT: .plt:
-# CHECK-NEXT:   20010:       3c 1c 00 04     aui     $zero, $gp, 4
+# CHECK-NEXT:   20010:       3c 1c 00 03     aui     $zero, $gp, 3
 # CHECK-NEXT:   20014:       8f 99 00 04     lw      $25, 4($gp)
 # CHECK-NEXT:   20018:       27 9c 00 04     addiu   $gp, $gp, 4
 # CHECK-NEXT:   2001c:       03 1c c0 23     subu    $24, $24, $gp
@@ -27,7 +27,7 @@
 # CHECK-NEXT:   20028:       03 20 f8 09     jalr    $25
 # CHECK-NEXT:   2002c:       27 18 ff fe     addiu   $24, $24, -2
 
-# CHECK-NEXT:   20030:       3c 0f 00 04     aui     $zero, $15, 4
+# CHECK-NEXT:   20030:       3c 0f 00 03     aui     $zero, $15, 3
 # CHECK-NEXT:   20034:       8d f9 00 0c     lw      $25, 12($15)
 # CHECK-NEXT:   20038:       03 20 00 09     jr      $25
 # CHECK-NEXT:   2003c:       25 f8 00 0c     addiu   $24, $15, 12

Modified: lld/trunk/test/ELF/mips-tls-64.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/mips-tls-64.s?rev=291523&r1=291522&r2=291523&view=diff
==============================================================================
--- lld/trunk/test/ELF/mips-tls-64.s (original)
+++ lld/trunk/test/ELF/mips-tls-64.s Mon Jan  9 19:21:30 2017
@@ -23,26 +23,26 @@
 # DIS-NEXT:    20010:   24 62 80 58   addiu   $2, $3, -32680
 
 # DIS:      Contents of section .got:
-# DIS-NEXT:  30008 00000000 00000000 80000000 00000000
-# DIS-NEXT:  30018 00000000 00000000 00000000 00000000
-# DIS-NEXT:  30028 00000000 00000000 00000000 00000001
-# DIS-NEXT:  30038 00000000 00000000 00000000 00000001
-# DIS-NEXT:  30048 ffffffff ffff8004 ffffffff ffff9004
+# DIS-NEXT:  40008 00000000 00000000 80000000 00000000
+# DIS-NEXT:  40018 00000000 00000000 00000000 00000000
+# DIS-NEXT:  40028 00000000 00000000 00000000 00000001
+# DIS-NEXT:  40038 00000000 00000000 00000000 00000001
+# DIS-NEXT:  40048 ffffffff ffff8004 ffffffff ffff9004
 
-# DIS: 0000000000030000 l       .tdata          00000000 .tdata
-# DIS: 0000000000030000 l       .tdata          00000000 loc
+# DIS: 0000000000040000 l       .tdata          00000000 .tdata
+# DIS: 0000000000040000 l       .tdata          00000000 loc
 # DIS: 0000000000000004 g       .tdata          00000000 bar
 # DIS: 0000000000000000 g       *UND*           00000000 foo
 
 # CHECK:      Relocations [
 # CHECK-NEXT:   Section (7) .rela.dyn {
-# CHECK-NEXT:     0x30018 R_MIPS_TLS_DTPMOD64/R_MIPS_NONE/R_MIPS_NONE foo 0x0
-# CHECK-NEXT:     0x30020 R_MIPS_TLS_DTPREL64/R_MIPS_NONE/R_MIPS_NONE foo 0x0
-# CHECK-NEXT:     0x30028 R_MIPS_TLS_TPREL64/R_MIPS_NONE/R_MIPS_NONE foo 0x0
+# CHECK-NEXT:     0x40018 R_MIPS_TLS_DTPMOD64/R_MIPS_NONE/R_MIPS_NONE foo 0x0
+# CHECK-NEXT:     0x40020 R_MIPS_TLS_DTPREL64/R_MIPS_NONE/R_MIPS_NONE foo 0x0
+# CHECK-NEXT:     0x40028 R_MIPS_TLS_TPREL64/R_MIPS_NONE/R_MIPS_NONE foo 0x0
 # CHECK-NEXT:   }
 # CHECK-NEXT: ]
 # CHECK-NEXT: Primary GOT {
-# CHECK-NEXT:   Canonical gp value: 0x37FF8
+# CHECK-NEXT:   Canonical gp value: 0x47FF8
 # CHECK-NEXT:   Reserved entries [
 # CHECK:        ]
 # CHECK-NEXT:   Local entries [

Modified: lld/trunk/test/ELF/mips-tls-static-64.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/mips-tls-static-64.s?rev=291523&r1=291522&r2=291523&view=diff
==============================================================================
--- lld/trunk/test/ELF/mips-tls-static-64.s (original)
+++ lld/trunk/test/ELF/mips-tls-static-64.s Mon Jan  9 19:21:30 2017
@@ -8,8 +8,8 @@
 # REQUIRES: mips
 
 # CHECK:      Contents of section .data:
-# CHECK-NEXT:  40000 00020004 ffffffff ffff8004 ffffffff
-# CHECK-NEXT:  40010 ffff9004
+# CHECK-NEXT:  30000 00020004 ffffffff ffff8004 ffffffff
+# CHECK-NEXT:  30010 ffff9004
 #
 # CHECK: SYMBOL TABLE:
 # CHECK: 0000000000020004         .text           00000000 __tls_get_addr

Modified: lld/trunk/test/ELF/mips-tls-static.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/mips-tls-static.s?rev=291523&r1=291522&r2=291523&view=diff
==============================================================================
--- lld/trunk/test/ELF/mips-tls-static.s (original)
+++ lld/trunk/test/ELF/mips-tls-static.s Mon Jan  9 19:21:30 2017
@@ -7,11 +7,11 @@
 
 # REQUIRES: mips
 
-# CHECK:      Contents of section .got:
-# CHECK-NEXT:  30008 00000000 80000000 00000001 ffff8000
-# CHECK-NEXT:  30018 00000001 00000000 ffff9000
 # CHECK:      Contents of section .data:
-# CHECK-NEXT:  40000 0002000c ffff8004 ffff9004
+# CHECK-NEXT:  30000 0002000c ffff8004 ffff9004
+# CHECK:      Contents of section .got:
+# CHECK-NEXT:  40008 00000000 80000000 00000001 ffff8000
+# CHECK-NEXT:  40018 00000001 00000000 ffff9000
 #
 # CHECK: SYMBOL TABLE:
 # CHECK: 0002000c         .text           00000000 __tls_get_addr

Modified: lld/trunk/test/ELF/mips-tls.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/mips-tls.s?rev=291523&r1=291522&r2=291523&view=diff
==============================================================================
--- lld/trunk/test/ELF/mips-tls.s (original)
+++ lld/trunk/test/ELF/mips-tls.s Mon Jan  9 19:21:30 2017
@@ -23,24 +23,24 @@
 # DIS-NEXT:    20010:   24 62 80 34   addiu   $2, $3, -32716
 
 # DIS:      Contents of section .got:
-# DIS-NEXT:  30008 00000000 80000000 00000000 00000000
-# DIS-NEXT:  30018 00000000 00000001 00000000 00000001
-# DIS-NEXT:  30028 ffff8004 ffff9004
+# DIS-NEXT:  40008 00000000 80000000 00000000 00000000
+# DIS-NEXT:  40018 00000000 00000001 00000000 00000001
+# DIS-NEXT:  40028 ffff8004 ffff9004
 
-# DIS: 00030000 l       .tdata          00000000 .tdata
-# DIS: 00030000 l       .tdata          00000000 loc
+# DIS: 00040000 l       .tdata          00000000 .tdata
+# DIS: 00040000 l       .tdata          00000000 loc
 # DIS: 00000004 g       .tdata          00000000 bar
 # DIS: 00000000 g       *UND*           00000000 foo
 
 # CHECK:      Relocations [
 # CHECK-NEXT:   Section (7) .rel.dyn {
-# CHECK-NEXT:     0x30010 R_MIPS_TLS_DTPMOD32 foo 0x0
-# CHECK-NEXT:     0x30014 R_MIPS_TLS_DTPREL32 foo 0x0
-# CHECK-NEXT:     0x30018 R_MIPS_TLS_TPREL32 foo 0x0
+# CHECK-NEXT:     0x40010 R_MIPS_TLS_DTPMOD32 foo 0x0
+# CHECK-NEXT:     0x40014 R_MIPS_TLS_DTPREL32 foo 0x0
+# CHECK-NEXT:     0x40018 R_MIPS_TLS_TPREL32 foo 0x0
 # CHECK-NEXT:   }
 # CHECK-NEXT: ]
 # CHECK-NEXT: Primary GOT {
-# CHECK-NEXT:   Canonical gp value: 0x37FF8
+# CHECK-NEXT:   Canonical gp value: 0x47FF8
 # CHECK-NEXT:   Reserved entries [
 # CHECK:        ]
 # CHECK-NEXT:   Local entries [

Modified: lld/trunk/test/ELF/mips-xgot-order.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/mips-xgot-order.s?rev=291523&r1=291522&r2=291523&view=diff
==============================================================================
--- lld/trunk/test/ELF/mips-xgot-order.s (original)
+++ lld/trunk/test/ELF/mips-xgot-order.s Mon Jan  9 19:21:30 2017
@@ -20,15 +20,15 @@
 # CHECK-NEXT:    20018:       20 42 00 00     addi    $2, $2, 0
 
 # CHECK:      Contents of section .got:
-# CHECK-NEXT:  30000 00000000 80000000 00040000 00050000
+# CHECK-NEXT:  40000 00000000 80000000 00030000 00040000
 #                                      ^ %hi(loc)
 #                                               ^ redundant entry
-# CHECK-NEXT:  30010 00020010 00020000 00040000
+# CHECK-NEXT:  40010 00020010 00020000 00030000
 #                    ^ %got(bar)
 #                             ^ %got_hi/lo(start)
 #                                      ^ %got_hi/lo(loc)
 
-# CHECK: 00040000         .data           00000000 loc
+# CHECK: 00030000         .data           00000000 loc
 # CHECK: 00020000         .text           00000000 __start
 # CHECK: 00020010         .text           00000000 bar
 

Modified: lld/trunk/test/ELF/plt-aarch64.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/plt-aarch64.s?rev=291523&r1=291522&r2=291523&view=diff
==============================================================================
--- lld/trunk/test/ELF/plt-aarch64.s (original)
+++ lld/trunk/test/ELF/plt-aarch64.s Mon Jan  9 19:21:30 2017
@@ -31,7 +31,7 @@
 // CHECKDSO-NEXT:       SHF_ALLOC
 // CHECKDSO-NEXT:       SHF_WRITE
 // CHECKDSO-NEXT:     ]
-// CHECKDSO-NEXT:     Address: 0x30000
+// CHECKDSO-NEXT:     Address: 0x20000
 // CHECKDSO-NEXT:     Offset:
 // CHECKDSO-NEXT:     Size: 48
 // CHECKDSO-NEXT:     Link:
@@ -41,23 +41,23 @@
 // CHECKDSO: Relocations [
 // CHECKDSO-NEXT:   Section ({{.*}}) .rela.plt {
 
-// &(.got.plt[3]) = 0x30000 + 3 * 8 = 0x30018
-// CHECKDSO-NEXT:     0x30018 R_AARCH64_JUMP_SLOT foo
+// &(.got.plt[3]) = 0x20000 + 3 * 8 = 0x30018
+// CHECKDSO-NEXT:     0x20018 R_AARCH64_JUMP_SLOT foo
 
-// &(.got.plt[4]) = 0x30000 + 4 * 8 = 0x30020
-// CHECKDSO-NEXT:     0x30020 R_AARCH64_JUMP_SLOT bar
+// &(.got.plt[4]) = 0x20000 + 4 * 8 = 0x30020
+// CHECKDSO-NEXT:     0x20020 R_AARCH64_JUMP_SLOT bar
 
-// &(.got.plt[5]) = 0x30000 + 5 * 8 = 0x30028
-// CHECKDSO-NEXT:     0x30028 R_AARCH64_JUMP_SLOT weak
+// &(.got.plt[5]) = 0x20000 + 5 * 8 = 0x30028
+// CHECKDSO-NEXT:     0x20028 R_AARCH64_JUMP_SLOT weak
 // CHECKDSO-NEXT:   }
 // CHECKDSO-NEXT: ]
 
 // DUMPDSO: Contents of section .got.plt:
 // .got.plt[0..2] = 0 (reserved)
 // .got.plt[3..5] = .plt = 0x10010
-// DUMPDSO-NEXT: 30000 00000000 00000000 00000000 00000000  ................
-// DUMPDSO-NEXT: 30010 00000000 00000000 10000100 00000000  ................
-// DUMPDSO-NEXT: 30020 10000100 00000000 10000100 00000000  ................
+// DUMPDSO-NEXT: 20000 00000000 00000000 00000000 00000000  ................
+// DUMPDSO-NEXT: 20010 00000000 00000000 10000100 00000000  ................
+// DUMPDSO-NEXT: 20020 10000100 00000000 10000100 00000000  ................
 
 // DISASMDSO: _start:
 // 0x10030 - 0x10000 = 0x30 = 48
@@ -74,8 +74,8 @@
 // DISASMDSO-NEXT: .plt:
 // DISASMDSO-NEXT:     10010:	f0 7b bf a9 	stp	x16, x30, [sp, #-16]!
 // &(.got.plt[2]) = 0x3000 + 2 * 8 = 0x3010
-// Page(0x30010) - Page(0x10014) = 0x30000 - 0x10000 = 0x20000 = 131072
-// DISASMDSO-NEXT:     10014:	10 01 00 90 	adrp	x16, #131072
+// Page(0x20010) - Page(0x10014) = 0x20000 - 0x10000 = 0x10000 = 65536
+// DISASMDSO-NEXT:     10014:	90 00 00 90 	adrp	x16, #65536
 // 0x3010 & 0xFFF = 0x10 = 16
 // DISASMDSO-NEXT:     10018:	11 0a 40 f9 ldr x17, [x16, #16]
 // DISASMDSO-NEXT:     1001c:	10 42 00 91 	add	x16, x16, #16
@@ -85,24 +85,24 @@
 // DISASMDSO-NEXT:     1002c:	1f 20 03 d5 	nop
 
 // foo at plt
-// Page(0x30018) - Page(0x10030) = 0x30000 - 0x10000 = 0x20000 = 131072
-// DISASMDSO-NEXT:     10030:	10 01 00 90 	adrp	x16, #131072
+// Page(0x30018) - Page(0x10030) = 0x20000 - 0x10000 = 0x10000 = 65536
+// DISASMDSO-NEXT:     10030:	90 00 00 90 	adrp	x16, #65536
 // 0x3018 & 0xFFF = 0x18 = 24
 // DISASMDSO-NEXT:     10034:	11 0e 40 f9 	ldr	x17, [x16, #24]
 // DISASMDSO-NEXT:     10038:	10 62 00 91 	add	x16, x16, #24
 // DISASMDSO-NEXT:     1003c:	20 02 1f d6 	br	x17
 
 // bar at plt
-// Page(0x30020) - Page(0x10040) = 0x30000 - 0x10000 = 0x20000 = 131072
-// DISASMDSO-NEXT:     10040:	10 01 00 90 	adrp	x16, #131072
+// Page(0x30020) - Page(0x10040) = 0x20000 - 0x10000 = 0x10000 = 65536
+// DISASMDSO-NEXT:     10040:	90 00 00 90 	adrp	x16, #65536
 // 0x3020 & 0xFFF = 0x20 = 32
 // DISASMDSO-NEXT:     10044:	11 12 40 f9 	ldr	x17, [x16, #32]
 // DISASMDSO-NEXT:     10048:	10 82 00 91 	add	x16, x16, #32
 // DISASMDSO-NEXT:     1004c:	20 02 1f d6 	br	x17
 
 // weak at plt
-// Page(0x30028) - Page(0x10050) = 0x30000 - 0x10000 = 0x20000 = 131072
-// DISASMDSO-NEXT:     10050:	10 01 00 90 	adrp	x16, #131072
+// Page(0x30028) - Page(0x10050) = 0x20000 - 0x10000 = 0x10000 = 65536
+// DISASMDSO-NEXT:     10050:	90 00 00 90 	adrp	x16, #65536
 // 0x3028 & 0xFFF = 0x28 = 40
 // DISASMDSO-NEXT:     10054:	11 16 40 f9 	ldr	x17, [x16, #40]
 // DISASMDSO-NEXT:     10058:	10 a2 00 91 	add	x16, x16, #40
@@ -127,7 +127,7 @@
 // CHECKEXE-NEXT:       SHF_ALLOC
 // CHECKEXE-NEXT:       SHF_WRITE
 // CHECKEXE-NEXT:     ]
-// CHECKEXE-NEXT:     Address: 0x40000
+// CHECKEXE-NEXT:     Address: 0x30000
 // CHECKEXE-NEXT:     Offset:
 // CHECKEXE-NEXT:     Size: 40
 // CHECKEXE-NEXT:     Link:
@@ -137,20 +137,20 @@
 // CHECKEXE: Relocations [
 // CHECKEXE-NEXT:   Section ({{.*}}) .rela.plt {
 
-// &(.got.plt[3]) = 0x13000 + 3 * 8 = 0x13018
-// CHECKEXE-NEXT:     0x40018 R_AARCH64_JUMP_SLOT bar 0x0
+// &(.got.plt[3]) = 0x30000 + 3 * 8 = 0x30018
+// CHECKEXE-NEXT:     0x30018 R_AARCH64_JUMP_SLOT bar 0x0
 
-// &(.got.plt[4]) = 0x13000 + 4 * 8 = 0x13020
-// CHECKEXE-NEXT:     0x40020 R_AARCH64_JUMP_SLOT weak 0x0
+// &(.got.plt[4]) = 0x30000 + 4 * 8 = 0x30020
+// CHECKEXE-NEXT:     0x30020 R_AARCH64_JUMP_SLOT weak 0x0
 // CHECKEXE-NEXT:   }
 // CHECKEXE-NEXT: ]
 
 // DUMPEXE: Contents of section .got.plt:
 // .got.plt[0..2] = 0 (reserved)
 // .got.plt[3..4] = .plt = 0x40010
-// DUMPEXE-NEXT:  40000 00000000 00000000 00000000 00000000  ................
-// DUMPEXE-NEXT:  40010 00000000 00000000 10000200 00000000  ................
-// DUMPEXE-NEXT:  40020 10000200 00000000                    ........
+// DUMPEXE-NEXT:  30000 00000000 00000000 00000000 00000000  ................
+// DUMPEXE-NEXT:  30010 00000000 00000000 10000200 00000000  ................
+// DUMPEXE-NEXT:  30020 10000200 00000000                    ........
 
 // DISASMEXE: _start:
 // 0x2000c - 0x20000 = 0xc = 12
@@ -167,8 +167,8 @@
 // DISASMEXE-NEXT: .plt:
 // DISASMEXE-NEXT:    20010:	f0 7b bf a9 	stp	x16, x30, [sp, #-16]!
 // &(.got.plt[2]) = 0x300B0 + 2 * 8 = 0x300C0
-// Page(0x40010) - Page(0x20014) = 0x40000 - 0x20000 = 0x20000 = 131072
-// DISASMEXE-NEXT:    20014:	10 01 00 90  	adrp	x16, #131072
+// Page(0x30010) - Page(0x20014) = 0x30000 - 0x20000 = 0x10000 = 65536
+// DISASMEXE-NEXT:    20014:	90 00 00 90  	adrp	x16, #65536
 // 0x120c0 & 0xFFF = 0xC0 = 192
 // DISASMEXE-NEXT:    20018:	11 0a 40 f9 	ldr	x17, [x16, #16]
 // DISASMEXE-NEXT:    2001c:	10 42 00 91 	add	x16, x16, #16
@@ -178,15 +178,15 @@
 // DISASMEXE-NEXT:    2002c:	1f 20 03 d5 	nop
 
 // bar at plt
-// Page(0x40018) - Page(0x20030) = 0x40000 - 0x20000 = 0x20000 = 131072
-// DISASMEXE-NEXT:    20030:	10 01 00 90 	adrp	x16, #131072
+// Page(0x40018) - Page(0x20030) = 0x30000 - 0x20000 = 0x10000 = 65536
+// DISASMEXE-NEXT:    20030:	90 00 00 90 	adrp	x16, #65536
 // DISASMEXE-NEXT:    20034:	11 0e 40 f9 	ldr	x17, [x16, #24]
 // DISASMEXE-NEXT:    20038:	10 62 00 91 	add	x16, x16, #24
 // DISASMEXE-NEXT:    2003c:	20 02 1f d6 	br	x17
 
 // weak at plt
-// Page(0x40020) - Page(0x20040) = 0x40000 - 0x20000 = 0x20000 = 131072
-// DISASMEXE-NEXT:    20040:	10 01 00 90 	adrp	x16, #131072
+// Page(0x40020) - Page(0x20040) = 0x30000 - 0x20000 = 0x10000 = 65536
+// DISASMEXE-NEXT:    20040:	90 00 00 90 	adrp	x16, #65536
 // DISASMEXE-NEXT:    20044:	11 12 40 f9 	ldr	x17, [x16, #32]
 // DISASMEXE-NEXT:    20048:	10 82 00 91 	add	x16, x16, #32
 // DISASMEXE-NEXT:    2004c:	20 02 1f d6 	br	x17

Modified: lld/trunk/test/ELF/plt-i686.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/plt-i686.s?rev=291523&r1=291522&r2=291523&view=diff
==============================================================================
--- lld/trunk/test/ELF/plt-i686.s (original)
+++ lld/trunk/test/ELF/plt-i686.s Mon Jan  9 19:21:30 2017
@@ -30,20 +30,20 @@
 // CHECK-NEXT:   SHF_ALLOC
 // CHECK-NEXT:   SHF_WRITE
 // CHECK-NEXT: ]
-// CHECK-NEXT: Address: 0x13000
-// CHECK-NEXT: Offset: 0x3000
+// CHECK-NEXT: Address: 0x12000
+// CHECK-NEXT: Offset: 0x2000
 // CHECK-NEXT: Size: 20
 // CHECK-NEXT: Link: 0
 // CHECK-NEXT: Info: 0
 // CHECK-NEXT: AddressAlignment: 4
 // CHECK-NEXT: EntrySize: 0
 
-// 0x13000 + got.plt.reserved(12) = 0x1300C
-// 0x13000 + got.plt.reserved(12) + 4 = 0x13010
+// 0x12000 + got.plt.reserved(12) = 0x1200C
+// 0x12000 + got.plt.reserved(12) + 4 = 0x12010
 // CHECK:      Relocations [
 // CHECK-NEXT:   Section ({{.*}}) .rel.plt {
-// CHECK-NEXT:     0x1300C R_386_JUMP_SLOT bar 0x0
-// CHECK-NEXT:     0x13010 R_386_JUMP_SLOT zed 0x0
+// CHECK-NEXT:     0x1200C R_386_JUMP_SLOT bar 0x0
+// CHECK-NEXT:     0x12010 R_386_JUMP_SLOT zed 0x0
 // CHECK-NEXT:   }
 // CHECK-NEXT: ]
 
@@ -73,16 +73,16 @@
 // 77840 = 0x13010 = .got.plt (0x13000) + got.plt.reserved(12) + 4
 // DISASM:      Disassembly of section .plt:
 // DISASM-NEXT: .plt:
-// DISASM-NEXT:    11020: ff 35 04 30 01 00 pushl 77828
-// DISASM-NEXT:    11026: ff 25 08 30 01 00 jmpl *77832
+// DISASM-NEXT:    11020: ff 35 04 20 01 00 pushl 73732
+// DISASM-NEXT:    11026: ff 25 08 20 01 00 jmpl *73736
 // DISASM-NEXT:    1102c: 90 nop
 // DISASM-NEXT:    1102d: 90 nop
 // DISASM-NEXT:    1102e: 90 nop
 // DISASM-NEXT:    1102f: 90 nop
-// DISASM-NEXT:    11030: ff 25 0c 30 01 00 jmpl *77836
+// DISASM-NEXT:    11030: ff 25 0c 20 01 00 jmpl *73740
 // DISASM-NEXT:    11036: 68 00 00 00 00 pushl $0
 // DISASM-NEXT:    1103b: e9 e0 ff ff ff jmp -32 <.plt>
-// DISASM-NEXT:    11040: ff 25 10 30 01 00 jmpl *77840
+// DISASM-NEXT:    11040: ff 25 10 20 01 00 jmpl *73744
 // DISASM-NEXT:    11046: 68 08 00 00 00 pushl $8
 // DISASM-NEXT:    1104b: e9 d0 ff ff ff jmp -48 <.plt>
 
@@ -106,8 +106,8 @@
 // CHECKSHARED-NEXT:     SHF_ALLOC
 // CHECKSHARED-NEXT:     SHF_WRITE
 // CHECKSHARED-NEXT:   ]
-// CHECKSHARED-NEXT:   Address: 0x3000
-// CHECKSHARED-NEXT:   Offset: 0x3000
+// CHECKSHARED-NEXT:   Address: 0x2000
+// CHECKSHARED-NEXT:   Offset: 0x2000
 // CHECKSHARED-NEXT:   Size: 20
 // CHECKSHARED-NEXT:   Link: 0
 // CHECKSHARED-NEXT:   Info: 0
@@ -115,12 +115,12 @@
 // CHECKSHARED-NEXT:   EntrySize: 0
 // CHECKSHARED-NEXT:   }
 
-// 0x3000 + got.plt.reserved(12) = 0x300C
-// 0x3000 + got.plt.reserved(12) + 4 = 0x3010
+// 0x2000 + got.plt.reserved(12) = 0x200C
+// 0x2000 + got.plt.reserved(12) + 4 = 0x2010
 // CHECKSHARED:        Relocations [
 // CHECKSHARED-NEXT:     Section ({{.*}}) .rel.plt {
-// CHECKSHARED-NEXT:       0x300C R_386_JUMP_SLOT bar 0x0
-// CHECKSHARED-NEXT:       0x3010 R_386_JUMP_SLOT zed 0x0
+// CHECKSHARED-NEXT:       0x200C R_386_JUMP_SLOT bar 0x0
+// CHECKSHARED-NEXT:       0x2010 R_386_JUMP_SLOT zed 0x0
 // CHECKSHARED-NEXT:     }
 // CHECKSHARED-NEXT:   ]
 
@@ -156,10 +156,10 @@
 // DISASMPIE-NEXT:   102d:	90 nop
 // DISASMPIE-NEXT:   102e:	90 nop
 // DISASMPIE-NEXT:   102f:	90 nop
-// DISASMPIE-NEXT:   1030:	ff a3 0c 30 00 00 jmpl *12300(%ebx)
+// DISASMPIE-NEXT:   1030:	ff a3 0c 20 00 00 jmpl *8204(%ebx)
 // DISASMPIE-NEXT:   1036:	68 00 00 00 00 pushl $0
 // DISASMPIE-NEXT:   103b:	e9 e0 ff ff ff jmp -32 <.plt>
-// DISASMPIE-NEXT:   1040:	ff a3 10 30 00 00 jmpl *12304(%ebx)
+// DISASMPIE-NEXT:   1040:	ff a3 10 20 00 00 jmpl *8208(%ebx)
 // DISASMPIE-NEXT:   1046:	68 08 00 00 00 pushl $8
 // DISASMPIE-NEXT:   104b:	e9 d0 ff ff ff jmp -48 <.plt>
 

Modified: lld/trunk/test/ELF/plt.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/plt.s?rev=291523&r1=291522&r2=291523&view=diff
==============================================================================
--- lld/trunk/test/ELF/plt.s (original)
+++ lld/trunk/test/ELF/plt.s Mon Jan  9 19:21:30 2017
@@ -25,9 +25,9 @@
 
 // CHECK:      Relocations [
 // CHECK-NEXT:   Section ({{.*}}) .rela.plt {
-// CHECK-NEXT:     0x3018 R_X86_64_JUMP_SLOT bar 0x0
-// CHECK-NEXT:     0x3020 R_X86_64_JUMP_SLOT zed 0x0
-// CHECK-NEXT:     0x3028 R_X86_64_JUMP_SLOT _start 0x0
+// CHECK-NEXT:     0x2018 R_X86_64_JUMP_SLOT bar 0x0
+// CHECK-NEXT:     0x2020 R_X86_64_JUMP_SLOT zed 0x0
+// CHECK-NEXT:     0x2028 R_X86_64_JUMP_SLOT _start 0x0
 // CHECK-NEXT:   }
 // CHECK-NEXT: ]
 
@@ -46,8 +46,8 @@
 
 // CHECK2:      Relocations [
 // CHECK2-NEXT:   Section ({{.*}}) .rela.plt {
-// CHECK2-NEXT:     0x203018 R_X86_64_JUMP_SLOT bar 0x0
-// CHECK2-NEXT:     0x203020 R_X86_64_JUMP_SLOT zed 0x0
+// CHECK2-NEXT:     0x202018 R_X86_64_JUMP_SLOT bar 0x0
+// CHECK2-NEXT:     0x202020 R_X86_64_JUMP_SLOT zed 0x0
 // CHECK2-NEXT:   }
 // CHECK2-NEXT: ]
 
@@ -65,22 +65,22 @@
 // DISASM-NEXT:   100a:  e9 {{.*}}       jmp  49
 // DISASM-NEXT:   100f:  e9 {{.*}}       jmp  60
 
-// 0x3018 - 0x1036  = 8162
-// 0x3020 - 0x1046  = 4234
-// 0x3028 - 0x1056  = 4226
+// 0x2018 - 0x1036  = 4066
+// 0x2020 - 0x1046  = 4058
+// 0x2028 - 0x1056  = 4050
 
 // DISASM:      Disassembly of section .plt:
 // DISASM-NEXT: .plt:
-// DISASM-NEXT:   1020:  ff 35 e2 1f 00 00  pushq 8162(%rip)
-// DISASM-NEXT:   1026:  ff 25 e4 1f 00 00  jmpq *8164(%rip)
+// DISASM-NEXT:   1020:  ff 35 e2 0f 00 00  pushq 4066(%rip)
+// DISASM-NEXT:   1026:  ff 25 e4 0f 00 00  jmpq *4068(%rip)
 // DISASM-NEXT:   102c:  0f 1f 40 00        nopl (%rax)
-// DISASM-NEXT:   1030:  ff 25 e2 1f 00 00  jmpq *8162(%rip)
+// DISASM-NEXT:   1030:  ff 25 e2 0f 00 00  jmpq *4066(%rip)
 // DISASM-NEXT:   1036:  68 00 00 00 00     pushq $0
 // DISASM-NEXT:   103b:  e9 e0 ff ff ff     jmp -32 <.plt>
-// DISASM-NEXT:   1040:  ff 25 da 1f 00 00  jmpq *8154(%rip)
+// DISASM-NEXT:   1040:  ff 25 da 0f 00 00  jmpq *4058(%rip)
 // DISASM-NEXT:   1046:  68 01 00 00 00     pushq $1
 // DISASM-NEXT:   104b:  e9 d0 ff ff ff     jmp -48 <.plt>
-// DISASM-NEXT:   1050:  ff 25 d2 1f 00 00  jmpq *8146(%rip)
+// DISASM-NEXT:   1050:  ff 25 d2 0f 00 00  jmpq *4050(%rip)
 // DISASM-NEXT:   1056:  68 02 00 00 00     pushq $2
 // DISASM-NEXT:   105b:  e9 c0 ff ff ff     jmp -64 <.plt>
 
@@ -95,18 +95,18 @@
 // DISASM2-NEXT:   20100a:  e9 {{.*}}     jmp  49
 // DISASM2-NEXT:   20100f:  e9 {{.*}}     jmp  -20
 
-// 0x203018 - 0x201036  = 4242
-// 0x203020 - 0x201046  = 4234
+// 0x202018 - 0x201036  = 4066
+// 0x202020 - 0x201046  = 4058
 
 // DISASM2:      Disassembly of section .plt:
 // DISASM2-NEXT: .plt:
-// DISASM2-NEXT:  201020:  ff 35 e2 1f 00 00   pushq 8162(%rip)
-// DISASM2-NEXT:  201026:  ff 25 e4 1f 00 00   jmpq *8164(%rip)
+// DISASM2-NEXT:  201020:  ff 35 e2 0f 00 00   pushq 4066(%rip)
+// DISASM2-NEXT:  201026:  ff 25 e4 0f 00 00   jmpq *4068(%rip)
 // DISASM2-NEXT:  20102c:  0f 1f 40 00         nopl  (%rax)
-// DISASM2-NEXT:  201030:  ff 25 e2 1f 00 00   jmpq *8162(%rip)
+// DISASM2-NEXT:  201030:  ff 25 e2 0f 00 00   jmpq *4066(%rip)
 // DISASM2-NEXT:  201036:  68 00 00 00 00      pushq $0
 // DISASM2-NEXT:  20103b:  e9 e0 ff ff ff      jmp -32 <.plt>
-// DISASM2-NEXT:  201040:  ff 25 da 1f 00 00   jmpq *8154(%rip)
+// DISASM2-NEXT:  201040:  ff 25 da 0f 00 00   jmpq *4058(%rip)
 // DISASM2-NEXT:  201046:  68 01 00 00 00      pushq $1
 // DISASM2-NEXT:  20104b:  e9 d0 ff ff ff      jmp -48 <.plt>
 // DISASM2-NOT:   2010C0

Modified: lld/trunk/test/ELF/ppc64-relocs.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/ppc64-relocs.s?rev=291523&r1=291522&r2=291523&view=diff
==============================================================================
--- lld/trunk/test/ELF/ppc64-relocs.s (original)
+++ lld/trunk/test/ELF/ppc64-relocs.s Mon Jan  9 19:21:30 2017
@@ -43,7 +43,7 @@ _start:
 
 # CHECK: Disassembly of section .R_PPC64_TOC16_HI:
 # CHECK: .FR_PPC64_TOC16_HI:
-# CHECK: 10010014: 3c 22 ff ff addis 1, 2, -1
+# CHECK: 10010014: 3c 22 ff fe addis 1, 2, -2
 
 .section .R_PPC64_TOC16_HA,"ax", at progbits
 .globl .FR_PPC64_TOC16_HA
@@ -52,7 +52,7 @@ _start:
 
 # CHECK: Disassembly of section .R_PPC64_TOC16_HA:
 # CHECK: .FR_PPC64_TOC16_HA:
-# CHECK: 10010018: 3c 22 00 00 addis 1, 2, 0
+# CHECK: 10010018: 3c 22 ff ff addis 1, 2, -1
 
 .section .R_PPC64_REL24,"ax", at progbits
 .globl .FR_PPC64_REL24

Modified: lld/trunk/test/ELF/ppc64-shared-rel-toc.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/ppc64-shared-rel-toc.s?rev=291523&r1=291522&r2=291523&view=diff
==============================================================================
--- lld/trunk/test/ELF/ppc64-shared-rel-toc.s (original)
+++ lld/trunk/test/ELF/ppc64-shared-rel-toc.s Mon Jan  9 19:21:30 2017
@@ -19,9 +19,9 @@ foo:
 .Lfunc_begin0:
         blr
 
-// CHECK: 0x30000 R_PPC64_RELATIVE - 0x10000
-// CHECK: 0x30008 R_PPC64_RELATIVE - 0x8000
+// CHECK: 0x20000 R_PPC64_RELATIVE - 0x10000
+// CHECK: 0x20008 R_PPC64_RELATIVE - 0x8000
 
 // CHECK: Name: foo
-// CHECK-NEXT: Value: 0x30000
+// CHECK-NEXT: Value: 0x20000
 

Modified: lld/trunk/test/ELF/ppc64-toc-restore.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/ppc64-toc-restore.s?rev=291523&r1=291522&r2=291523&view=diff
==============================================================================
--- lld/trunk/test/ELF/ppc64-toc-restore.s (original)
+++ lld/trunk/test/ELF/ppc64-toc-restore.s Mon Jan  9 19:21:30 2017
@@ -53,7 +53,7 @@ last:
 // CHECK: Disassembly of section .plt:
 // CHECK: .plt:
 // CHECK: 10010020:       f8 41 00 28     std 2, 40(1)
-// CHECK: 10010024:       3d 62 10 03     addis 11, 2, 4099
+// CHECK: 10010024:       3d 62 10 02     addis 11, 2, 4098
 // CHECK: 10010028:       e9 8b 80 18     ld 12, -32744(11)
 // CHECK: 1001002c:       e9 6c 00 00     ld 11, 0(12)
 // CHECK: 10010030:       7d 69 03 a6     mtctr 11

Modified: lld/trunk/test/ELF/rel-offset.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/rel-offset.s?rev=291523&r1=291522&r2=291523&view=diff
==============================================================================
--- lld/trunk/test/ELF/rel-offset.s (original)
+++ lld/trunk/test/ELF/rel-offset.s Mon Jan  9 19:21:30 2017
@@ -10,6 +10,6 @@
         .quad   foo
 
 // CHECK:      Section ({{.*}}) .rela.dyn {
-// CHECK-NEXT:   0x2000 R_X86_64_64 foo 0x0
-// CHECK-NEXT:   0x2008 R_X86_64_64 foo 0x0
+// CHECK-NEXT:   0x1000 R_X86_64_64 foo 0x0
+// CHECK-NEXT:   0x1008 R_X86_64_64 foo 0x0
 // CHECK-NEXT: }

Modified: lld/trunk/test/ELF/relative-dynamic-reloc-pie.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/relative-dynamic-reloc-pie.s?rev=291523&r1=291522&r2=291523&view=diff
==============================================================================
--- lld/trunk/test/ELF/relative-dynamic-reloc-pie.s (original)
+++ lld/trunk/test/ELF/relative-dynamic-reloc-pie.s Mon Jan  9 19:21:30 2017
@@ -5,9 +5,9 @@
 ## Test that we create R_X86_64_RELATIVE relocations with -pie.
 # CHECK:      Relocations [
 # CHECK-NEXT:   Section ({{.*}}) .rela.dyn {
-# CHECK-NEXT:     0x3000 R_X86_64_RELATIVE - 0x3000
-# CHECK-NEXT:     0x3008 R_X86_64_RELATIVE - 0x3008
-# CHECK-NEXT:     0x3010 R_X86_64_RELATIVE - 0x3009
+# CHECK-NEXT:     0x2000 R_X86_64_RELATIVE - 0x2000
+# CHECK-NEXT:     0x2008 R_X86_64_RELATIVE - 0x2008
+# CHECK-NEXT:     0x2010 R_X86_64_RELATIVE - 0x2009
 # CHECK-NEXT:   }
 # CHECK-NEXT: ]
 

Modified: lld/trunk/test/ELF/relative-dynamic-reloc-ppc64.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/relative-dynamic-reloc-ppc64.s?rev=291523&r1=291522&r2=291523&view=diff
==============================================================================
--- lld/trunk/test/ELF/relative-dynamic-reloc-ppc64.s (original)
+++ lld/trunk/test/ELF/relative-dynamic-reloc-ppc64.s Mon Jan  9 19:21:30 2017
@@ -10,10 +10,10 @@
 // CHECK-NEXT:   Section ({{.*}}) .rela.dyn {
 // CHECK-NEXT:     0x[[FOO_ADDR:.*]] R_PPC64_RELATIVE - 0x[[FOO_ADDR]]
 // CHECK-NEXT:     0x[[BAR_ADDR:.*]] R_PPC64_RELATIVE - 0x[[BAR_ADDR]]
-// CHECK-NEXT:     0x20010 R_PPC64_RELATIVE - 0x20009
+// CHECK-NEXT:     0x10010 R_PPC64_RELATIVE - 0x10009
 // CHECK-NEXT:     0x{{.*}} R_PPC64_RELATIVE - 0x[[ZED_ADDR:.*]]
 // CHECK-NEXT:     0x{{.*}} R_PPC64_RELATIVE - 0x[[FOO_ADDR]]
-// CHECK-NEXT:     0x20028 R_PPC64_ADDR64 external 0x0
+// CHECK-NEXT:     0x10028 R_PPC64_ADDR64 external 0x0
 // CHECK-NEXT:   }
 // CHECK-NEXT: ]
 

Modified: lld/trunk/test/ELF/relative-dynamic-reloc.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/relative-dynamic-reloc.s?rev=291523&r1=291522&r2=291523&view=diff
==============================================================================
--- lld/trunk/test/ELF/relative-dynamic-reloc.s (original)
+++ lld/trunk/test/ELF/relative-dynamic-reloc.s Mon Jan  9 19:21:30 2017
@@ -9,10 +9,10 @@
 // CHECK-NEXT:   Section ({{.*}}) .rela.dyn {
 // CHECK-NEXT:     0x[[FOO_ADDR:.*]] R_X86_64_RELATIVE - 0x[[FOO_ADDR]]
 // CHECK-NEXT:     0x[[BAR_ADDR:.*]] R_X86_64_RELATIVE - 0x[[BAR_ADDR]]
-// CHECK-NEXT:     0x2010 R_X86_64_RELATIVE - 0x2009
+// CHECK-NEXT:     0x1010 R_X86_64_RELATIVE - 0x1009
 // CHECK-NEXT:     0x{{.*}} R_X86_64_RELATIVE - 0x[[ZED_ADDR:.*]]
 // CHECK-NEXT:     0x{{.*}} R_X86_64_RELATIVE - 0x[[FOO_ADDR]]
-// CHECK-NEXT:     0x2028 R_X86_64_64 external 0x0
+// CHECK-NEXT:     0x1028 R_X86_64_64 external 0x0
 // CHECK-NEXT:   }
 // CHECK-NEXT: ]
 

Modified: lld/trunk/test/ELF/relocation-copy-flags.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/relocation-copy-flags.s?rev=291523&r1=291522&r2=291523&view=diff
==============================================================================
--- lld/trunk/test/ELF/relocation-copy-flags.s (original)
+++ lld/trunk/test/ELF/relocation-copy-flags.s Mon Jan  9 19:21:30 2017
@@ -30,7 +30,7 @@ _start:
 // CHECK-NEXT: AddressAlignment: 4
 // CHECK-NEXT: EntrySize: 0
 // CHECK-NEXT: SectionData (
-// CHECK-NEXT:   0000: 10302000
+// CHECK-NEXT:   0000: 00402000
 // CHECK-NEXT: )
 
 // CHECK:      Name: bar
@@ -39,8 +39,8 @@ _start:
 // CHECK-NEXT:   SHF_ALLOC
 // CHECK-NEXT:   SHF_WRITE
 // CHECK-NEXT: ]
-// CHECK-NEXT: Address: 0x203000
-// CHECK-NEXT: Offset: 0x3000
+// CHECK-NEXT: Address: 0x202000
+// CHECK-NEXT: Offset: 0x2000
 // CHECK-NEXT: Size: 8
 // CHECK-NEXT: Link: 0
 // CHECK-NEXT: Info: 0
@@ -55,7 +55,7 @@ _start:
 // CHECK-NEXT: Flags [
 // CHECK-NEXT: ]
 // CHECK-NEXT: Address: 0x0
-// CHECK-NEXT: Offset: 0x3008
+// CHECK-NEXT: Offset: 0x30B0
 // CHECK-NEXT: Size: 8
 // CHECK-NEXT: Link: 0
 // CHECK-NEXT: Info: 0
@@ -67,7 +67,7 @@ _start:
 
 // CHECK:      Relocations [
 // CHECK-NEXT:   Section (4) .rela.dyn {
-// CHECK-NEXT:     0x203010 R_X86_64_COPY x 0x0
-// CHECK-NEXT:     0x203000 R_X86_64_64 z 0x0
+// CHECK-NEXT:     0x204000 R_X86_64_COPY x 0x0
+// CHECK-NEXT:     0x202000 R_X86_64_64 z 0x0
 // CHECK-NEXT:   }
 // CHECK-NEXT: ]

Modified: lld/trunk/test/ELF/relocation-i686.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/relocation-i686.s?rev=291523&r1=291522&r2=291523&view=diff
==============================================================================
--- lld/trunk/test/ELF/relocation-i686.s (original)
+++ lld/trunk/test/ELF/relocation-i686.s Mon Jan  9 19:21:30 2017
@@ -49,13 +49,13 @@ movl bar at GOT, %eax
 // ADDR-NEXT: Offset: 0x1040
 // ADDR-NEXT: Size: 32
 
-// ADDR:      Name: .got
+// ADDR:      Name: .got (
 // ADDR-NEXT: Type: SHT_PROGBITS
 // ADDR-NEXT: Flags [
 // ADDR-NEXT:   SHF_ALLOC
 // ADDR-NEXT:   SHF_WRITE
 // ADDR-NEXT: ]
-// ADDR-NEXT: Address: 0x12078
+// ADDR-NEXT: Address: 0x13078
 // ADDR-NEXT: Offset:
 // ADDR-NEXT: Size: 8
 
@@ -67,7 +67,7 @@ R_386_GOTPC:
 
 // CHECK:      Disassembly of section .R_386_GOTPC:
 // CHECK-NEXT: R_386_GOTPC:
-// CHECK-NEXT:   11014:  {{.*}} movl  $4204, %eax
+// CHECK-NEXT:   11014:  {{.*}} movl  $8300, %eax
 
 .section .dynamic_reloc, "ax", at progbits
  call bar

Modified: lld/trunk/test/ELF/relocation-non-alloc.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/relocation-non-alloc.s?rev=291523&r1=291522&r2=291523&view=diff
==============================================================================
--- lld/trunk/test/ELF/relocation-non-alloc.s (original)
+++ lld/trunk/test/ELF/relocation-non-alloc.s Mon Jan  9 19:21:30 2017
@@ -10,8 +10,8 @@
 // CHECK-NEXT:   SHF_ALLOC
 // CHECK-NEXT:   SHF_WRITE
 // CHECK-NEXT: ]
-// CHECK-NEXT: Address: 0x2000
-// CHECK-NEXT: Offset: 0x2000
+// CHECK-NEXT: Address: 0x1000
+// CHECK-NEXT: Offset: 0x1000
 // CHECK-NEXT: Size: 16
 // CHECK-NEXT: Link: 0
 // CHECK-NEXT: Info: 0
@@ -33,14 +33,14 @@
 // CHECK-NEXT: AddressAlignment: 1
 // CHECK-NEXT: EntrySize: 0
 // CHECK-NEXT: SectionData (
-// CHECK-NEXT:   0000: 00200000 00000000 00200000 00000000
-// CHECK-NEXT:   0010: 00200000 00000000 00200000 00000000
+// CHECK-NEXT:   0000: 00100000 00000000 00100000 00000000
+// CHECK-NEXT:   0010: 00100000 00000000 00100000 00000000
 // CHECK-NEXT: )
 
 // CHECK:      Relocations [
 // CHECK-NEXT:   Section ({{.}}) .rela.dyn {
-// CHECK-NEXT:     0x2000 R_X86_64_RELATIVE - 0x2000
-// CHECK-NEXT:     0x2008 R_X86_64_64 zed 0x0
+// CHECK-NEXT:     0x1000 R_X86_64_RELATIVE - 0x1000
+// CHECK-NEXT:     0x1008 R_X86_64_64 zed 0x0
 // CHECK-NEXT:   }
 // CHECK-NEXT: ]
 

Modified: lld/trunk/test/ELF/relocation.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/relocation.s?rev=291523&r1=291522&r2=291523&view=diff
==============================================================================
--- lld/trunk/test/ELF/relocation.s (original)
+++ lld/trunk/test/ELF/relocation.s Mon Jan  9 19:21:30 2017
@@ -16,35 +16,35 @@
 // SEC-NEXT: Offset: 0x1030
 // SEC-NEXT: Size: 48
 
-// SEC:         Name: .got
+// SEC:        Name: .got.plt
 // SEC-NEXT:   Type: SHT_PROGBITS
 // SEC-NEXT:   Flags [
 // SEC-NEXT:     SHF_ALLOC
 // SEC-NEXT:     SHF_WRITE
 // SEC-NEXT:   ]
-// SEC-NEXT:   Address: 0x2020F0
-// SEC-NEXT:   Offset:
-// SEC-NEXT:   Size: 8
+// SEC-NEXT:   Address: 0x202000
+// SEC-NEXT:   Offset: 0x2000
+// SEC-NEXT:   Size: 40
 // SEC-NEXT:   Link: 0
 // SEC-NEXT:   Info: 0
 // SEC-NEXT:   AddressAlignment: 8
 // SEC-NEXT:   EntrySize: 0
-// SEC-NEXT: }
+// SEC-NEXT:   }
 
-// SEC:        Name: .got.plt
+// SEC:         Name: .got
 // SEC-NEXT:   Type: SHT_PROGBITS
 // SEC-NEXT:   Flags [
 // SEC-NEXT:     SHF_ALLOC
 // SEC-NEXT:     SHF_WRITE
 // SEC-NEXT:   ]
-// SEC-NEXT:   Address: 0x203000
-// SEC-NEXT:   Offset: 0x3000
-// SEC-NEXT:   Size: 40
+// SEC-NEXT:   Address: 0x2030F0
+// SEC-NEXT:   Offset:
+// SEC-NEXT:   Size: 8
 // SEC-NEXT:   Link: 0
 // SEC-NEXT:   Info: 0
 // SEC-NEXT:   AddressAlignment: 8
 // SEC-NEXT:   EntrySize: 0
-// SEC-NEXT:   }
+// SEC-NEXT: }
 
 .section       .text,"ax", at progbits,unique,1
 .global _start
@@ -123,7 +123,7 @@ R_X86_64_GOTPCREL:
 // 0x2020F8 - 0x2001D8 = 7952
 // 7952 = 0x101f0000 in little endian
 // CHECK:      Contents of section .R_X86_64_GOTPCREL
-// CHECK-NEXT:   2001d0 201f0000
+// CHECK-NEXT:   2001d0 202f0000
 
 .section .R_X86_64_GOT32,"a", at progbits
 .global R_X86_64_GOT32

Modified: lld/trunk/test/ELF/section-layout.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/section-layout.s?rev=291523&r1=291522&r2=291523&view=diff
==============================================================================
--- lld/trunk/test/ELF/section-layout.s (original)
+++ lld/trunk/test/ELF/section-layout.s Mon Jan  9 19:21:30 2017
@@ -34,11 +34,13 @@ _start:
 // CHECK: Name: c
 // CHECK: Name: d
 
+// Writable sections appear before TLS and other relro sections.
+// CHECK: Name: i
+
 // TLS sections are only sorted on NOBITS.
 // CHECK: Name: e
 // CHECK: Name: g
 
-// CHECK: Name: i
 // CHECK: Name: j
 // CHECK: Name: k
 // CHECK: Name: l

Modified: lld/trunk/test/ELF/section-name.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/section-name.s?rev=291523&r1=291522&r2=291523&view=diff
==============================================================================
--- lld/trunk/test/ELF/section-name.s (original)
+++ lld/trunk/test/ELF/section-name.s Mon Jan  9 19:21:30 2017
@@ -45,12 +45,12 @@ _start:
 // CHECK:  1 .rodata  00000002
 // CHECK:  2 .gcc_except_table 00000001
 // CHECK:  3 .text         00000002
-// CHECK:  4 .tdata        00000001
-// CHECK:  5 .tbss         00000001
-// CHECK:  6 .data.rel.ro  00000004
-// CHECK:  7 .data         00000002
-// CHECK:  8 .foo.a        00000001
-// CHECK:  9 .foo          00000001
+// CHECK:  4 .data         00000002
+// CHECK:  5 .foo.a        00000001
+// CHECK:  6 .foo          00000001
+// CHECK:  7 .tdata        00000001
+// CHECK:  8 .tbss         00000001
+// CHECK:  9 .data.rel.ro  00000004
 // CHECK: 10 .bss          00000002
 // CHECK: 11 .comment      00000008
 // CHECK: 12 .symtab       00000060

Modified: lld/trunk/test/ELF/sort-norosegment.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/sort-norosegment.s?rev=291523&r1=291522&r2=291523&view=diff
==============================================================================
--- lld/trunk/test/ELF/sort-norosegment.s (original)
+++ lld/trunk/test/ELF/sort-norosegment.s Mon Jan  9 19:21:30 2017
@@ -8,8 +8,8 @@
 # CHECK-NEXT: .dynsym  {{.*}}   A
 # CHECK-NEXT: .hash    {{.*}}   A
 # CHECK-NEXT: .dynstr  {{.*}}   A
-# CHECK-NEXT: .dynamic {{.*}}  WA
 # CHECK-NEXT: foo      {{.*}}  WA
+# CHECK-NEXT: .dynamic {{.*}}  WA
 
 .section foo, "aw"
 .byte 0

Modified: lld/trunk/test/ELF/startstop.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/startstop.s?rev=291523&r1=291522&r2=291523&view=diff
==============================================================================
--- lld/trunk/test/ELF/startstop.s (original)
+++ lld/trunk/test/ELF/startstop.s Mon Jan  9 19:21:30 2017
@@ -22,10 +22,10 @@
 
 // SYMBOL:      Relocations [
 // SYMBOL-NEXT:   Section ({{.*}}) .rela.dyn {
-// SYMBOL-NEXT:     0x3010 R_X86_64_64 __stop_zed1 0x0
-// SYMBOL-NEXT:     0x3018 R_X86_64_64 __stop_zed1 0x1
-// SYMBOL-NEXT:     0x3000 R_X86_64_64 __stop_zed2 0x0
-// SYMBOL-NEXT:     0x3008 R_X86_64_64 __stop_zed2 0x1
+// SYMBOL-NEXT:     0x2010 R_X86_64_64 __stop_zed1 0x0
+// SYMBOL-NEXT:     0x2018 R_X86_64_64 __stop_zed1 0x1
+// SYMBOL-NEXT:     0x2000 R_X86_64_64 __stop_zed2 0x0
+// SYMBOL-NEXT:     0x2008 R_X86_64_64 __stop_zed2 0x1
 // SYMBOL-NEXT:   }
 // SYMBOL-NEXT: ]
 
@@ -51,13 +51,13 @@
 
 // SYMBOL: Symbol {
 // SYMBOL:   Name: __stop_zed1
-// SYMBOL:   Value: 0x3010
+// SYMBOL:   Value: 0x2010
 // STMBOL:   Other: 0
 // SYMBOL:   Section: zed1
 // SYMBOL: }
 // SYMBOL: Symbol {
 // SYMBOL:   Name: __stop_zed2
-// SYMBOL:   Value: 0x3020
+// SYMBOL:   Value: 0x2020
 // STMBOL:   Other: 0
 // SYMBOL:   Section: zed2
 // SYMBOL: }

Modified: lld/trunk/test/ELF/synthetic-got.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/synthetic-got.s?rev=291523&r1=291522&r2=291523&view=diff
==============================================================================
--- lld/trunk/test/ELF/synthetic-got.s (original)
+++ lld/trunk/test/ELF/synthetic-got.s Mon Jan  9 19:21:30 2017
@@ -7,13 +7,13 @@
 # RUN:   | FileCheck %s --check-prefix=GOTDATA
 
 # GOT:     Sections:
-# GOT:      9  .got         00000008 00000000000001b0 DATA
-# GOT-NEXT: 10 .got.plt     00000020 00000000000001b8 DATA
-# GOTDATA:     Contents of section .got:
-# GOTDATA-NEXT:  01b0 00000000 00000000
-# GOTDATA-NEXT: Contents of section .got.plt:
-# GOTDATA-NEXT:  01b8 e0000000 00000000 00000000 00000000
-# GOTDATA-NEXT:  01c8 00000000 00000000 d6000000 00000000
+# GOT:      8  .got.plt     00000020 00000000000000e0 DATA
+# GOT:      10 .got         00000008 00000000000001d0 DATA
+# GOTDATA:     Contents of section .got.plt:
+# GOTDATA-NEXT:  00e0 00010000 00000000 00000000 00000000
+# GOTDATA-NEXT:  00f0 00000000 00000000 d6000000 00000000
+# GOTDATA-NEXT: Contents of section .got:
+# GOTDATA-NEXT:  01d0 00000000 00000000
 
 # RUN: echo "SECTIONS { .mygot : { *(.got) *(.got.plt) } }" > %t1.script
 # RUN: ld.lld -shared %t.o -o %t1.out --script %t1.script
@@ -21,12 +21,12 @@
 # RUN: llvm-objdump -s -section=.mygot %t1.out | FileCheck %s --check-prefix=MYGOTDATA
 
 # MYGOT:     Sections:
-# MYGOT:      9  .mygot     00000028 00000000000001b0 DATA
+# MYGOT:      8  .mygot     00000028 00000000000000e0 DATA
 # MYGOT-NOT:  .got
 # MYGOT-NOT:  .got.plt
-# MYGOTDATA:      01b0 00000000 00000000 e0000000 00000000
-# MYGOTDATA-NEXT: 01c0 00000000 00000000 00000000 00000000
-# MYGOTDATA-NEXT: 01d0 d6000000 00000000
+# MYGOTDATA:      00e0 00000000 00000000 08010000 00000000
+# MYGOTDATA-NEXT: 00f0 00000000 00000000 00000000 00000000
+# MYGOTDATA-NEXT: 0100 d6000000 00000000
 
 mov bar at gotpcrel(%rip), %rax
 call foo at plt

Modified: lld/trunk/test/ELF/tls-dynamic-i686.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/tls-dynamic-i686.s?rev=291523&r1=291522&r2=291523&view=diff
==============================================================================
--- lld/trunk/test/ELF/tls-dynamic-i686.s (original)
+++ lld/trunk/test/ELF/tls-dynamic-i686.s Mon Jan  9 19:21:30 2017
@@ -50,15 +50,14 @@ addl tls0 at gotntpoff(%ebx),%eax
 movl %gs:0,%eax
 addl tls1 at gotntpoff(%ebx),%eax
 
-// CHECK:      Index: 10
-// CHECK-NEXT: Name: .got
+// CHECK:      Name: .got (
 // CHECK-NEXT: Type: SHT_PROGBITS
 // CHECK-NEXT: Flags [
 // CHECK-NEXT:   SHF_ALLOC
 // CHECK-NEXT:   SHF_WRITE
 // CHECK-NEXT: ]
-// CHECK-NEXT: Address: 0x2068
-// CHECK-NEXT: Offset: 0x2068
+// CHECK-NEXT: Address: 0x3068
+// CHECK-NEXT: Offset: 0x3068
 // CHECK-NEXT: Size: 32
 // CHECK-NEXT: Link: 0
 // CHECK-NEXT: Info: 0
@@ -67,13 +66,13 @@ addl tls1 at gotntpoff(%ebx),%eax
 
 // CHECK: Relocations [
 // CHECK:      Section ({{.+}}) .rel.dyn {
-// CHECK-NEXT: 0x2078 R_386_TLS_DTPMOD32 - 0x0
-// CHECK-NEXT: 0x2068 R_386_TLS_DTPMOD32 tls0 0x0
-// CHECK-NEXT: 0x206C R_386_TLS_DTPOFF32 tls0 0x0
-// CHECK-NEXT: 0x2080 R_386_TLS_TPOFF tls0 0x0
-// CHECK-NEXT: 0x2070 R_386_TLS_DTPMOD32 tls1 0x0
-// CHECK-NEXT: 0x2074 R_386_TLS_DTPOFF32 tls1 0x0
-// CHECK-NEXT: 0x2084 R_386_TLS_TPOFF tls1 0x0
+// CHECK-NEXT: 0x3078 R_386_TLS_DTPMOD32 - 0x0
+// CHECK-NEXT: 0x3068 R_386_TLS_DTPMOD32 tls0 0x0
+// CHECK-NEXT: 0x306C R_386_TLS_DTPOFF32 tls0 0x0
+// CHECK-NEXT: 0x3080 R_386_TLS_TPOFF tls0 0x0
+// CHECK-NEXT: 0x3070 R_386_TLS_DTPMOD32 tls1 0x0
+// CHECK-NEXT: 0x3074 R_386_TLS_DTPOFF32 tls1 0x0
+// CHECK-NEXT: 0x3084 R_386_TLS_TPOFF tls1 0x0
 // CHECK-NEXT: }
 
 // DIS:      Disassembly of section .text:

Modified: lld/trunk/test/ELF/tls-dynamic.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/tls-dynamic.s?rev=291523&r1=291522&r2=291523&view=diff
==============================================================================
--- lld/trunk/test/ELF/tls-dynamic.s (original)
+++ lld/trunk/test/ELF/tls-dynamic.s Mon Jan  9 19:21:30 2017
@@ -42,22 +42,22 @@ c:
 // Get the address of the got, and check that it has 4 entries.
 
 // CHECK:      Sections [
-// CHECK:          Name: .got
+// CHECK:          Name: .got (
 // CHECK-NEXT:     Type: SHT_PROGBITS
 // CHECK-NEXT:     Flags [
 // CHECK-NEXT:       SHF_ALLOC
 // CHECK-NEXT:       SHF_WRITE
 // CHECK-NEXT:     ]
-// CHECK-NEXT:     Address: 0x20D0
+// CHECK-NEXT:     Address: 0x30D0
 // CHECK-NEXT:     Offset:
 // CHECK-NEXT:     Size: 40
 
 // CHECK:      Relocations [
 // CHECK:        Section ({{.+}}) .rela.dyn {
-// CHECK-NEXT:     0x20D0 R_X86_64_DTPMOD64 - 0x0
-// CHECK-NEXT:     0x20E0 R_X86_64_DTPMOD64 c 0x0
-// CHECK-NEXT:     0x20E8 R_X86_64_DTPOFF64 c 0x0
-// CHECK-NEXT:     0x20F0 R_X86_64_TPOFF64 c 0x0
+// CHECK-NEXT:     0x30D0 R_X86_64_DTPMOD64 - 0x0
+// CHECK-NEXT:     0x30E0 R_X86_64_DTPMOD64 c 0x0
+// CHECK-NEXT:     0x30E8 R_X86_64_DTPOFF64 c 0x0
+// CHECK-NEXT:     0x30F0 R_X86_64_TPOFF64 c 0x0
 // CHECK-NEXT:   }
 
 // 4297 = (0x20D0 + -4) - (0x1000 + 3) // PC relative offset to got entry.
@@ -67,9 +67,9 @@ c:
 
 // DIS:      Disassembly of section .text:
 // DIS-NEXT: .text:
-// DIS-NEXT:     1000: {{.+}} leaq    4297(%rip), %rdi
+// DIS-NEXT:     1000: {{.+}} leaq    8393(%rip), %rdi
 // DIS-NEXT:     1007: {{.+}} callq
-// DIS-NEXT:     100c: {{.+}} leaq    4285(%rip), %rdi
+// DIS-NEXT:     100c: {{.+}} leaq    8381(%rip), %rdi
 // DIS-NEXT:     1013: {{.+}} callq
 // DIS-NEXT:     1018: {{.+}} leaq    (%rax), %rcx
 // DIS-NEXT:     101f: {{.+}} leaq    4(%rax), %rcx
@@ -77,10 +77,10 @@ c:
 // DIS-NEXT:     1028: 00 00
 // DIS-NEXT:     102a: 00 00
 // DIS-NEXT:     102c: 00 00
-// DIS-NEXT:     102e: {{.+}} leaq    4267(%rip), %rdi
+// DIS-NEXT:     102e: {{.+}} leaq    8363(%rip), %rdi
 // DIS-NEXT:     1035: {{.+}} callq
 // DIS-NEXT:     103b: {{.+}} leaq    (%rax), %rcx
-// DIS-NEXT:     1042: {{.+}} movq    4263(%rip), %rax
+// DIS-NEXT:     1042: {{.+}} movq    8359(%rip), %rax
 // DIS-NEXT:     1049: {{.+}} movq    %fs:(%rax), %rax
 // DIS-NEXT:     104d: {{.+}} movabsq $0, %rax
 // DIS-NEXT:     1057: {{.+}} movabsq $4, %rax

Modified: lld/trunk/test/ELF/tls-offset.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/tls-offset.s?rev=291523&r1=291522&r2=291523&view=diff
==============================================================================
--- lld/trunk/test/ELF/tls-offset.s (original)
+++ lld/trunk/test/ELF/tls-offset.s Mon Jan  9 19:21:30 2017
@@ -15,7 +15,7 @@ _start:
         .align  16
         .zero 16
 
-        .data
+        .section        .data.rel.ro,"aw", at progbits
         .long 1
 
 
@@ -45,7 +45,7 @@ _start:
 // CHECK-NEXT: Offset: 0x2004
 // CHECK-NEXT: Size: 16
 
-// CHECK:      Name: .data
+// CHECK:      Name: .data.rel.ro
 // CHECK-NEXT: Type: SHT_PROGBITS
 // CHECK-NEXT: Flags [
 // CHECK-NEXT:   SHF_ALLOC

Modified: lld/trunk/test/ELF/undef-with-plt-addr.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/undef-with-plt-addr.s?rev=291523&r1=291522&r2=291523&view=diff
==============================================================================
--- lld/trunk/test/ELF/undef-with-plt-addr.s (original)
+++ lld/trunk/test/ELF/undef-with-plt-addr.s Mon Jan  9 19:21:30 2017
@@ -22,10 +22,10 @@ movabsq	$set_data, %rax
 // CHECK-NEXT: Address: 0x201010
 
 // CHECK:      Section ({{.*}}) .rela.dyn {
-// CHECK-NEXT:   0x203000 R_X86_64_64 foo 0x0
+// CHECK-NEXT:   0x202000 R_X86_64_64 foo 0x0
 // CHECK-NEXT: }
 // CHECK-NEXT: Section ({{.*}}) .rela.plt {
-// CHECK-NEXT:   0x203020 R_X86_64_JUMP_SLOT set_data 0x0
+// CHECK-NEXT:   0x202020 R_X86_64_JUMP_SLOT set_data 0x0
 // CHECK-NEXT: }
 
 // CHECK:      Name: foo

Modified: lld/trunk/test/ELF/undefined-versioned-symbol.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/undefined-versioned-symbol.s?rev=291523&r1=291522&r2=291523&view=diff
==============================================================================
--- lld/trunk/test/ELF/undefined-versioned-symbol.s (original)
+++ lld/trunk/test/ELF/undefined-versioned-symbol.s Mon Jan  9 19:21:30 2017
@@ -15,19 +15,19 @@
 
 // CHECK:      Section ({{.*}}) .rela.dyn {
 // CHECK-NEXT:   Relocation {
-// CHECK-NEXT:     Offset: 0x2000
+// CHECK-NEXT:     Offset: 0x1000
 // CHECK-NEXT:     Type: R_X86_64_64 (1)
 // CHECK-NEXT:     Symbol: basename (1)
 // CHECK-NEXT:     Addend: 0x0
 // CHECK-NEXT:   }
 // CHECK-NEXT:   Relocation {
-// CHECK-NEXT:     Offset: 0x2008
+// CHECK-NEXT:     Offset: 0x1008
 // CHECK-NEXT:     Type: R_X86_64_64 (1)
 // CHECK-NEXT:     Symbol: basename (2)
 // CHECK-NEXT:     Addend: 0x0
 // CHECK-NEXT:   }
 // CHECK-NEXT:   Relocation {
-// CHECK-NEXT:     Offset: 0x2010
+// CHECK-NEXT:     Offset: 0x1010
 // CHECK-NEXT:     Type: R_X86_64_64 (1)
 // CHECK-NEXT:     Symbol: basename (3)
 // CHECK-NEXT:     Addend: 0x0

Modified: lld/trunk/test/ELF/x86-64-tls-gd-local.s
URL: http://llvm.org/viewvc/llvm-project/lld/trunk/test/ELF/x86-64-tls-gd-local.s?rev=291523&r1=291522&r2=291523&view=diff
==============================================================================
--- lld/trunk/test/ELF/x86-64-tls-gd-local.s (original)
+++ lld/trunk/test/ELF/x86-64-tls-gd-local.s Mon Jan  9 19:21:30 2017
@@ -28,14 +28,14 @@ bar:
         .zero   4
 
 
-// CHECK:      Name: .got
+// CHECK:      Name: .got (
 // CHECK-NEXT: Type: SHT_PROGBITS
 // CHECK-NEXT: Flags [
 // CHECK-NEXT:   SHF_ALLOC (0x2)
 // CHECK-NEXT:   SHF_WRITE (0x1)
 // CHECK-NEXT: ]
-// CHECK-NEXT: Address: 0x20D0
-// CHECK-NEXT: Offset: 0x20D0
+// CHECK-NEXT: Address: 0x30D0
+// CHECK-NEXT: Offset: 0x30D0
 // CHECK-NEXT: Size: 32
 // CHECK-NEXT: Link: 0
 // CHECK-NEXT: Info: 0
@@ -47,6 +47,6 @@ bar:
 // CHECK-NEXT: )
 
 // CHECK:      Section ({{.*}}) .rela.dyn {
-// CHECK-NEXT:   0x20D0 R_X86_64_DTPMOD64 - 0x0
-// CHECK-NEXT:   0x20E0 R_X86_64_DTPMOD64 - 0x0
+// CHECK-NEXT:   0x30D0 R_X86_64_DTPMOD64 - 0x0
+// CHECK-NEXT:   0x30E0 R_X86_64_DTPMOD64 - 0x0
 // CHECK-NEXT: }




More information about the llvm-commits mailing list