[lld] r293879 - Port r292160 and r292161.

Simon Atanasyan via llvm-commits llvm-commits at lists.llvm.org
Thu Feb 2 03:46:01 PST 2017


Author: atanasyan
Date: Thu Feb  2 05:46:01 2017
New Revision: 293879

URL: http://llvm.org/viewvc/llvm-project?rev=293879&view=rev
Log:
Port r292160 and r292161.

r292161:
    [ELF][MIPS] Exclude mips .got from PT_GNU_RELRO segment

    On MIPS .got section cannot be included into the PT_GNU_RELRO segment.
    Sometimes it might work, but in general it is unsupported. One of the
    problem is that all sections marked by SHF_MIPS_GPREL should be grouped
    together because data in these sections is addressable with a gp
    relative address, but such sections might be writable.

    This patch exclude mips .got from PT_GNU_RELRO segment and group
    SHF_MIPS_GPREL sections.

r292160:
    [ELF][MIPS] Remove redundant checkings from test cases. NFC

    This change is a prerequisite for the r292161.

Modified:
    lld/branches/release_40/ELF/SyntheticSections.cpp
    lld/branches/release_40/ELF/Writer.cpp
    lld/branches/release_40/test/ELF/basic-mips.s
    lld/branches/release_40/test/ELF/eh-frame-hdr-abs-fde.s
    lld/branches/release_40/test/ELF/mips-64-disp.s
    lld/branches/release_40/test/ELF/mips-64-got.s
    lld/branches/release_40/test/ELF/mips-64-rels.s
    lld/branches/release_40/test/ELF/mips-got-and-copy.s
    lld/branches/release_40/test/ELF/mips-got-extsym.s
    lld/branches/release_40/test/ELF/mips-got-hilo.s
    lld/branches/release_40/test/ELF/mips-got-redundant.s
    lld/branches/release_40/test/ELF/mips-got-relocs.s
    lld/branches/release_40/test/ELF/mips-got-weak.s
    lld/branches/release_40/test/ELF/mips-got16.s
    lld/branches/release_40/test/ELF/mips-gp-ext.s
    lld/branches/release_40/test/ELF/mips-gp-lowest.s
    lld/branches/release_40/test/ELF/mips-gprel32-relocs-gp0.s
    lld/branches/release_40/test/ELF/mips-gprel32-relocs.s
    lld/branches/release_40/test/ELF/mips-hilo-gp-disp.s
    lld/branches/release_40/test/ELF/mips-n32-rels.s
    lld/branches/release_40/test/ELF/mips-options.s
    lld/branches/release_40/test/ELF/mips-tls-64.s
    lld/branches/release_40/test/ELF/mips-tls-hilo.s
    lld/branches/release_40/test/ELF/mips-tls-static.s
    lld/branches/release_40/test/ELF/mips-tls.s
    lld/branches/release_40/test/ELF/mips-xgot-order.s

Modified: lld/branches/release_40/ELF/SyntheticSections.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/branches/release_40/ELF/SyntheticSections.cpp?rev=293879&r1=293878&r2=293879&view=diff
==============================================================================
--- lld/branches/release_40/ELF/SyntheticSections.cpp (original)
+++ lld/branches/release_40/ELF/SyntheticSections.cpp Thu Feb  2 05:46:01 2017
@@ -437,7 +437,7 @@ template <class ELFT> void GotSection<EL
 template <class ELFT>
 MipsGotSection<ELFT>::MipsGotSection()
     : SyntheticSection<ELFT>(SHF_ALLOC | SHF_WRITE | SHF_MIPS_GPREL,
-                             SHT_PROGBITS, Target->GotEntrySize, ".got") {}
+                             SHT_PROGBITS, 16, ".got") {}
 
 template <class ELFT>
 void MipsGotSection<ELFT>::addEntry(SymbolBody &Sym, uintX_t Addend,

Modified: lld/branches/release_40/ELF/Writer.cpp
URL: http://llvm.org/viewvc/llvm-project/lld/branches/release_40/ELF/Writer.cpp?rev=293879&r1=293878&r2=293879&view=diff
==============================================================================
--- lld/branches/release_40/ELF/Writer.cpp (original)
+++ lld/branches/release_40/ELF/Writer.cpp Thu Feb  2 05:46:01 2017
@@ -476,6 +476,16 @@ static int getPPC64SectionRank(StringRef
       .Default(1);
 }
 
+// All sections with SHF_MIPS_GPREL flag should be grouped together
+// because data in these sections is addressable with a gp relative address.
+static int getMipsSectionRank(const OutputSectionBase *S) {
+  if ((S->Flags & SHF_MIPS_GPREL) == 0)
+    return 0;
+  if (S->getName() == ".got")
+    return 1;
+  return 2;
+}
+
 template <class ELFT> bool elf::isRelroSection(const OutputSectionBase *Sec) {
   if (!Config->ZRelro)
     return false;
@@ -494,8 +504,6 @@ template <class ELFT> bool elf::isRelroS
     return true;
   if (In<ELFT>::Got && Sec == In<ELFT>::Got->OutSec)
     return true;
-  if (In<ELFT>::MipsGot && Sec == In<ELFT>::MipsGot->OutSec)
-    return true;
   if (Sec == Out<ELFT>::BssRelRo)
     return true;
   StringRef S = Sec->getName();
@@ -595,6 +603,8 @@ static bool compareSectionsNonScript(con
   if (Config->EMachine == EM_PPC64)
     return getPPC64SectionRank(A->getName()) <
            getPPC64SectionRank(B->getName());
+  if (Config->EMachine == EM_MIPS)
+    return getMipsSectionRank(A) < getMipsSectionRank(B);
 
   return false;
 }

Modified: lld/branches/release_40/test/ELF/basic-mips.s
URL: http://llvm.org/viewvc/llvm-project/lld/branches/release_40/test/ELF/basic-mips.s?rev=293879&r1=293878&r2=293879&view=diff
==============================================================================
--- lld/branches/release_40/test/ELF/basic-mips.s (original)
+++ lld/branches/release_40/test/ELF/basic-mips.s Thu Feb  2 05:46:01 2017
@@ -35,7 +35,7 @@ __start:
 # CHECK-NEXT:   ]
 # CHECK-NEXT:   HeaderSize: 52
 # CHECK-NEXT:   ProgramHeaderEntrySize: 32
-# CHECK-NEXT:   ProgramHeaderCount: 6
+# CHECK-NEXT:   ProgramHeaderCount: 5
 # CHECK-NEXT:   SectionHeaderEntrySize: 40
 # CHECK-NEXT:   SectionHeaderCount: 11
 # CHECK-NEXT:   StringTableSectionIndex: 9
@@ -62,8 +62,8 @@ __start:
 # CHECK-NEXT:     Flags [ (0x2)
 # CHECK-NEXT:       SHF_ALLOC (0x2)
 # CHECK-NEXT:     ]
-# CHECK-NEXT:     Address: 0x100F8
-# CHECK-NEXT:     Offset: 0xF8
+# CHECK-NEXT:     Address: 0x100D8
+# CHECK-NEXT:     Offset: 0xD8
 # CHECK-NEXT:     Size: 24
 # CHECK-NEXT:     Link: 0
 # CHECK-NEXT:     Info: 0
@@ -77,8 +77,8 @@ __start:
 # CHECK-NEXT:     Flags [ (0x2)
 # CHECK-NEXT:       SHF_ALLOC (0x2)
 # CHECK-NEXT:     ]
-# CHECK-NEXT:     Address: 0x10110
-# CHECK-NEXT:     Offset: 0x110
+# CHECK-NEXT:     Address: 0x100F0
+# CHECK-NEXT:     Offset: 0xF0
 # CHECK-NEXT:     Size: 24
 # CHECK-NEXT:     Link: 0
 # CHECK-NEXT:     Info: 0
@@ -131,7 +131,7 @@ __start:
 # CHECK-NEXT:     Size: 8
 # 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 {
@@ -142,7 +142,7 @@ __start:
 # CHECK-NEXT:       SHF_ALLOC (0x2)
 # CHECK-NEXT:       SHF_WRITE (0x1)
 # CHECK-NEXT:     ]
-# CHECK-NEXT:     Address: 0x40000
+# CHECK-NEXT:     Address: 0x30010
 # CHECK-NEXT:     Offset: 0x20008
 # CHECK-NEXT:     Size: 0
 # CHECK-NEXT:     Link: 0
@@ -246,8 +246,8 @@ __start:
 # CHECK-NEXT:     Offset: 0x34
 # CHECK-NEXT:     VirtualAddress: 0x10034
 # CHECK-NEXT:     PhysicalAddress: 0x10034
-# CHECK-NEXT:     FileSize: 192
-# CHECK-NEXT:     MemSize: 192
+# CHECK-NEXT:     FileSize: 160
+# CHECK-NEXT:     MemSize: 160
 # CHECK-NEXT:     Flags [ (0x4)
 # CHECK-NEXT:       PF_R (0x4)
 # CHECK-NEXT:     ]
@@ -258,8 +258,8 @@ __start:
 # CHECK-NEXT:     Offset: 0x0
 # CHECK-NEXT:     VirtualAddress: 0x10000
 # CHECK-NEXT:     PhysicalAddress: 0x10000
-# CHECK-NEXT:     FileSize: 296
-# CHECK-NEXT:     MemSize: 296
+# CHECK-NEXT:     FileSize: 264
+# CHECK-NEXT:     MemSize: 264
 # CHECK-NEXT:     Flags [ (0x4)
 # CHECK-NEXT:       PF_R (0x4)
 # CHECK-NEXT:     ]
@@ -284,7 +284,7 @@ __start:
 # CHECK-NEXT:     VirtualAddress: 0x30000
 # CHECK-NEXT:     PhysicalAddress: 0x30000
 # CHECK-NEXT:     FileSize: 8
-# CHECK-NEXT:     MemSize: 65536
+# CHECK-NEXT:     MemSize: 16
 # CHECK-NEXT:     Flags [
 # CHECK-NEXT:       PF_R
 # CHECK-NEXT:       PF_W
@@ -292,18 +292,6 @@ __start:
 # CHECK-NEXT:     Alignment: 65536
 # CHECK-NEXT:   }
 # CHECK-NEXT:   ProgramHeader {
-# CHECK-NEXT:     Type: PT_GNU_RELRO (0x6474E552)
-# CHECK-NEXT:     Offset: 0x20000
-# CHECK-NEXT:     VirtualAddress: 0x30000
-# CHECK-NEXT:     PhysicalAddress: 0x30000
-# CHECK-NEXT:     FileSize: 8
-# CHECK-NEXT:     MemSize: 4096
-# CHECK-NEXT:     Flags [ (0x4)
-# CHECK-NEXT:       PF_R (0x4)
-# CHECK-NEXT:     ]
-# CHECK-NEXT:     Alignment: 1
-# CHECK-NEXT:   }
-# CHECK-NEXT:   ProgramHeader {
 # CHECK-NEXT:    Type: PT_GNU_STACK
 # CHECK-NEXT:    Offset: 0x0
 # CHECK-NEXT:    VirtualAddress: 0x0

Modified: lld/branches/release_40/test/ELF/eh-frame-hdr-abs-fde.s
URL: http://llvm.org/viewvc/llvm-project/lld/branches/release_40/test/ELF/eh-frame-hdr-abs-fde.s?rev=293879&r1=293878&r2=293879&view=diff
==============================================================================
--- lld/branches/release_40/test/ELF/eh-frame-hdr-abs-fde.s (original)
+++ lld/branches/release_40/test/ELF/eh-frame-hdr-abs-fde.s Thu Feb  2 05:46:01 2017
@@ -9,10 +9,10 @@
 # REQUIRES: mips
 
 # CHECK:      Contents of section .eh_frame_hdr:
-# CHECK-NEXT:  10148 011b033b 00000010 00000001 0000feb8
-#                                               ^-- 0x20000 - 0x10148
+# CHECK-NEXT:  10128 011b033b 00000010 00000001 0000fed8
+#                                               ^-- 0x20000 - 0x10138
 #                                                   .text   - .eh_frame_hdr
-# CHECK-NEXT:  10158 0000002c
+# CHECK-NEXT:  10138 0000002c
 # CHECK:      Contents of section .text:
 # CHECK-NEXT:  20000 00000000
 

Modified: lld/branches/release_40/test/ELF/mips-64-disp.s
URL: http://llvm.org/viewvc/llvm-project/lld/branches/release_40/test/ELF/mips-64-disp.s?rev=293879&r1=293878&r2=293879&view=diff
==============================================================================
--- lld/branches/release_40/test/ELF/mips-64-disp.s (original)
+++ lld/branches/release_40/test/ELF/mips-64-disp.s Thu Feb  2 05:46:01 2017
@@ -18,23 +18,22 @@
 # CHECK-NEXT:    20010:   24 42 80 38   addiu   $2, $2, -32712
 
 # CHECK: 0000000000020014     .text   00000000 foo
-# 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: 0x47FF0
+# GOT-NEXT:   Canonical gp value:
 # GOT-NEXT:   Reserved entries [
 # GOT-NEXT:     Entry {
-# GOT-NEXT:       Address: 0x40000
+# GOT-NEXT:       Address:
 # GOT-NEXT:       Access: -32752
 # GOT-NEXT:       Initial: 0x0
 # GOT-NEXT:       Purpose: Lazy resolver
 # GOT-NEXT:     }
 # GOT-NEXT:     Entry {
-# GOT-NEXT:       Address: 0x40008
+# GOT-NEXT:       Address:
 # GOT-NEXT:       Access: -32744
 # GOT-NEXT:       Initial: 0x8000000000000000
 # GOT-NEXT:       Purpose: Module pointer (GNU extension)
@@ -42,29 +41,29 @@
 # GOT-NEXT:   ]
 # GOT-NEXT:   Local entries [
 # GOT-NEXT:     Entry {
-# GOT-NEXT:       Address: 0x40010
+# GOT-NEXT:       Address:
 # GOT-NEXT:       Access: -32736
 # GOT-NEXT:       Initial: 0x20014
 # GOT-NEXT:     }
 # GOT-NEXT:     Entry {
-# GOT-NEXT:       Address: 0x40018
+# GOT-NEXT:       Address:
 # GOT-NEXT:       Access: -32728
 # GOT-NEXT:       Initial: 0x20004
 # GOT-NEXT:     }
 # GOT-NEXT:     Entry {
-# GOT-NEXT:       Address: 0x40020
+# GOT-NEXT:       Address:
 # GOT-NEXT:       Access: -32720
 # GOT-NEXT:       Initial: 0x20008
 # GOT-NEXT:     }
 # GOT-NEXT:     Entry {
-# GOT-NEXT:       Address: 0x40028
+# GOT-NEXT:       Address:
 # GOT-NEXT:       Access: -32712
 # GOT-NEXT:       Initial: 0x2000C
 # GOT-NEXT:     }
 # GOT-NEXT:   ]
 # GOT-NEXT:   Global entries [
 # GOT-NEXT:     Entry {
-# GOT-NEXT:       Address: 0x40030
+# GOT-NEXT:       Address:
 # GOT-NEXT:       Access: -32704
 # GOT-NEXT:       Initial: 0x0
 # GOT-NEXT:       Value: 0x0

Modified: lld/branches/release_40/test/ELF/mips-64-got.s
URL: http://llvm.org/viewvc/llvm-project/lld/branches/release_40/test/ELF/mips-64-got.s?rev=293879&r1=293878&r2=293879&view=diff
==============================================================================
--- lld/branches/release_40/test/ELF/mips-64-got.s (original)
+++ lld/branches/release_40/test/ELF/mips-64-got.s Thu Feb  2 05:46:01 2017
@@ -19,23 +19,22 @@
 # CHECK-NEXT:    20010:   24 42 80 38   addiu   $2,  $2, -32712
 
 # CHECK: 0000000000020018   .text   00000000 foo
-# 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: 0x47FF0
+# GOT-NEXT:   Canonical gp value:
 # GOT-NEXT:   Reserved entries [
 # GOT-NEXT:     Entry {
-# GOT-NEXT:       Address: 0x40000
+# GOT-NEXT:       Address:
 # GOT-NEXT:       Access: -32752
 # GOT-NEXT:       Initial: 0x0
 # GOT-NEXT:       Purpose: Lazy resolver
 # GOT-NEXT:     }
 # GOT-NEXT:     Entry {
-# GOT-NEXT:       Address: 0x40008
+# GOT-NEXT:       Address:
 # GOT-NEXT:       Access: -32744
 # GOT-NEXT:       Initial: 0x8000000000000000
 # GOT-NEXT:       Purpose: Module pointer (GNU extension)
@@ -43,29 +42,29 @@
 # GOT-NEXT:   ]
 # GOT-NEXT:   Local entries [
 # GOT-NEXT:     Entry {
-# GOT-NEXT:       Address: 0x40010
+# GOT-NEXT:       Address:
 # GOT-NEXT:       Access: -32736
 # GOT-NEXT:       Initial: 0x20000
 # GOT-NEXT:     }
 # GOT-NEXT:     Entry {
-# GOT-NEXT:       Address: 0x40018
+# GOT-NEXT:       Address:
 # GOT-NEXT:       Access: -32728
 # GOT-NEXT:       Initial: 0x30000
 # GOT-NEXT:     }
 # GOT-NEXT:     Entry {
-# GOT-NEXT:       Address: 0x40020
+# GOT-NEXT:       Address:
 # GOT-NEXT:       Access: -32720
 # GOT-NEXT:       Initial: 0x20014
 # GOT-NEXT:     }
 # GOT-NEXT:     Entry {
-# GOT-NEXT:       Address: 0x40028
+# GOT-NEXT:       Address:
 # GOT-NEXT:       Access: -32712
 # GOT-NEXT:       Initial: 0x20018
 # GOT-NEXT:     }
 # GOT-NEXT:   ]
 # GOT-NEXT:   Global entries [
 # GOT-NEXT:     Entry {
-# GOT-NEXT:       Address: 0x40030
+# GOT-NEXT:       Address:
 # GOT-NEXT:       Access: -32704
 # GOT-NEXT:       Initial: 0x0
 # GOT-NEXT:       Value: 0x0

Modified: lld/branches/release_40/test/ELF/mips-64-rels.s
URL: http://llvm.org/viewvc/llvm-project/lld/branches/release_40/test/ELF/mips-64-rels.s?rev=293879&r1=293878&r2=293879&view=diff
==============================================================================
--- lld/branches/release_40/test/ELF/mips-64-rels.s (original)
+++ lld/branches/release_40/test/ELF/mips-64-rels.s Thu Feb  2 05:46:01 2017
@@ -20,7 +20,7 @@
 #                                                    ^-- %lo(0x17ff0)
 
 # CHECK:      Contents of section .rodata:
-# CHECK-NEXT:  10190 ffffffff fffe8014
+# CHECK-NEXT:  10158 ffffffff fffe8014
 #                    ^-- 0x20004 - 0x37ff0 = 0xfffffffffffe8014
 
 # CHECK: 0000000000020004   .text   00000000 loc

Modified: lld/branches/release_40/test/ELF/mips-got-and-copy.s
URL: http://llvm.org/viewvc/llvm-project/lld/branches/release_40/test/ELF/mips-got-and-copy.s?rev=293879&r1=293878&r2=293879&view=diff
==============================================================================
--- lld/branches/release_40/test/ELF/mips-got-and-copy.s (original)
+++ lld/branches/release_40/test/ELF/mips-got-and-copy.s Thu Feb  2 05:46:01 2017
@@ -14,29 +14,29 @@
 
 # CHECK:      Relocations [
 # CHECK-NEXT:   Section (7) .rel.dyn {
-# CHECK-NEXT:     0x{{[0-9A-F]+}} R_MIPS_COPY data0
-# CHECK-NEXT:     0x{{[0-9A-F]+}} R_MIPS_COPY data1
+# CHECK-NEXT:     0x[[DATA0:[0-9A-F]+]] R_MIPS_COPY data0
+# CHECK-NEXT:     0x[[DATA1:[0-9A-F]+]] R_MIPS_COPY data1
 # CHECK-NEXT:   }
 # CHECK-NEXT: ]
 # CHECK-NEXT: Primary GOT {
-# CHECK-NEXT:   Canonical gp value: 0x47FF0
+# CHECK-NEXT:   Canonical gp value:
 # CHECK-NEXT:   Reserved entries [
 # CHECK:        ]
 # CHECK-NEXT:   Local entries [
 # CHECK-NEXT:     Entry {
-# CHECK-NEXT:       Address: 0x40008
+# CHECK-NEXT:       Address:
 # CHECK-NEXT:       Access: -32744
-# CHECK-NEXT:       Initial: 0x50000
+# CHECK-NEXT:       Initial: 0x[[DATA0]]
 # CHECK-NEXT:     }
 # CHECK-NEXT:   ]
 # CHECK-NEXT:   Global entries [
 # CHECK-NEXT:     Entry {
-# CHECK-NEXT:       Address: 0x4000C
+# CHECK-NEXT:       Address:
 # CHECK-NEXT:       Access: -32740
-# CHECK-NEXT:       Initial: 0x50004
-# CHECK-NEXT:       Value: 0x50004
-# CHECK-NEXT:       Type: Object (0x1)
-# CHECK-NEXT:       Section: .bss (0xD)
+# CHECK-NEXT:       Initial: 0x[[DATA1]]
+# CHECK-NEXT:       Value: 0x[[DATA1]]
+# CHECK-NEXT:       Type: Object
+# CHECK-NEXT:       Section: .bss
 # CHECK-NEXT:       Name: data1@
 # CHECK-NEXT:     }
 # CHECK-NEXT:   ]

Modified: lld/branches/release_40/test/ELF/mips-got-extsym.s
URL: http://llvm.org/viewvc/llvm-project/lld/branches/release_40/test/ELF/mips-got-extsym.s?rev=293879&r1=293878&r2=293879&view=diff
==============================================================================
--- lld/branches/release_40/test/ELF/mips-got-extsym.s (original)
+++ lld/branches/release_40/test/ELF/mips-got-extsym.s Thu Feb  2 05:46:01 2017
@@ -30,7 +30,7 @@
 
 # CHECK:      Local entries [
 # CHECK-NEXT:   Entry {
-# CHECK-NEXT:     Address: 0x40008
+# CHECK-NEXT:     Address:
 # 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: 0x4000C
+# CHECK-NEXT:     Address:
 # CHECK-NEXT:     Access: -32740
 # CHECK-NEXT:     Initial: 0x0
 # CHECK-NEXT:     Value: 0x0

Modified: lld/branches/release_40/test/ELF/mips-got-hilo.s
URL: http://llvm.org/viewvc/llvm-project/lld/branches/release_40/test/ELF/mips-got-hilo.s?rev=293879&r1=293878&r2=293879&view=diff
==============================================================================
--- lld/branches/release_40/test/ELF/mips-got-hilo.s (original)
+++ lld/branches/release_40/test/ELF/mips-got-hilo.s Thu Feb  2 05:46:01 2017
@@ -20,22 +20,22 @@
 # GOT-NEXT: ]
 
 # GOT:      Primary GOT {
-# GOT-NEXT:   Canonical gp value: 0x37FF0
+# GOT-NEXT:   Canonical gp value:
 # GOT:        Local entries [
 # GOT-NEXT:     Entry {
-# GOT-NEXT:       Address: 0x30008
+# GOT-NEXT:       Address:
 # GOT-NEXT:       Access: -32744
 # GOT-NEXT:       Initial: 0x20000
 # GOT-NEXT:     }
 # GOT-NEXT:     Entry {
-# GOT-NEXT:       Address: 0x3000C
+# GOT-NEXT:       Address:
 # GOT-NEXT:       Access: -32740
 # GOT-NEXT:       Initial: 0x20004
 # GOT-NEXT:     }
 # GOT-NEXT:   ]
 # GOT-NEXT:   Global entries [
 # GOT-NEXT:     Entry {
-# GOT-NEXT:       Address: 0x30010
+# GOT-NEXT:       Address:
 # GOT-NEXT:       Access: -32736
 # GOT-NEXT:       Initial: 0x0
 # GOT-NEXT:       Value: 0x0

Modified: lld/branches/release_40/test/ELF/mips-got-redundant.s
URL: http://llvm.org/viewvc/llvm-project/lld/branches/release_40/test/ELF/mips-got-redundant.s?rev=293879&r1=293878&r2=293879&view=diff
==============================================================================
--- lld/branches/release_40/test/ELF/mips-got-redundant.s (original)
+++ lld/branches/release_40/test/ELF/mips-got-redundant.s Thu Feb  2 05:46:01 2017
@@ -8,25 +8,25 @@
 
 # CHECK:      Local entries [
 # CHECK-NEXT:   Entry {
-# CHECK-NEXT:     Address: 0x40008
+# CHECK-NEXT:     Address:
 # CHECK-NEXT:     Access: -32744
 # CHECK-NEXT:     Initial: 0x20000
 #                          ^-- loc1
 # CHECK-NEXT:   }
 # CHECK-NEXT:   Entry {
-# CHECK-NEXT:     Address: 0x4000C
+# CHECK-NEXT:     Address:
 # CHECK-NEXT:     Access: -32740
 # CHECK-NEXT:     Initial: 0x30000
 #                          ^-- loc2, loc3, loc4
 # CHECK-NEXT:   }
 # CHECK-NEXT:   Entry {
-# CHECK-NEXT:     Address: 0x40010
+# CHECK-NEXT:     Address:
 # CHECK-NEXT:     Access: -32736
 # CHECK-NEXT:     Initial: 0x40000
 #                          ^-- redundant
 # CHECK-NEXT:   }
 # CHECK-NEXT:   Entry {
-# CHECK-NEXT:     Address: 0x40014
+# CHECK-NEXT:     Address:
 # CHECK-NEXT:     Access: -32732
 # CHECK-NEXT:     Initial: 0x30008
 #                          ^-- glb1

Modified: lld/branches/release_40/test/ELF/mips-got-relocs.s
URL: http://llvm.org/viewvc/llvm-project/lld/branches/release_40/test/ELF/mips-got-relocs.s?rev=293879&r1=293878&r2=293879&view=diff
==============================================================================
--- lld/branches/release_40/test/ELF/mips-got-relocs.s (original)
+++ lld/branches/release_40/test/ELF/mips-got-relocs.s Thu Feb  2 05:46:01 2017
@@ -45,21 +45,21 @@ v1:
   .word 0
 
 # EXE_SYM: Sections:
-# EXE_SYM: .got 0000000c 0000000000040000 DATA
+# EXE_SYM: .got 0000000c 0000000000030010 DATA
 # EXE_SYM: SYMBOL TABLE:
-# EXE_SYM: 00047ff0         *ABS*    00000000 .hidden _gp
+# EXE_SYM: 00038000         *ABS*    00000000 .hidden _gp
 #          ^-- .got + GP offset (0x7ff0)
 # EXE_SYM: 00030000 g       .data		 00000004 v1
 
 
 # EXE_GOT_BE: Contents of section .got:
-# EXE_GOT_BE:  40000 00000000 80000000 00030000
+# EXE_GOT_BE:  30010 00000000 80000000 00030000
 #                    ^        ^        ^-- v1 (0x30000)
 #                    |        +-- Module pointer (0x80000000)
 #                    +-- Lazy resolver (0x0)
 
 # EXE_GOT_EL: Contents of section .got:
-# EXE_GOT_EL:  40000 00000000 00000080 00000300
+# EXE_GOT_EL:  30010 00000000 00000080 00000300
 #                    ^        ^        ^-- v1 (0x30000)
 #                    |        +-- Module pointer (0x80000000)
 #                    +-- Lazy resolver (0x0)
@@ -69,20 +69,20 @@ v1:
 # EXE_DIS_EL:  20000:  18 80 02 3c  lui $2, 32792
 
 # DSO_SYM: Sections:
-# DSO_SYM: .got 0000000c 0000000000030000 DATA
+# DSO_SYM: .got 0000000c 0000000000020010 DATA
 # DSO_SYM: SYMBOL TABLE:
-# DSO_SYM: 00037ff0         *ABS*    00000000 .hidden _gp
+# DSO_SYM: 00028000         *ABS*    00000000 .hidden _gp
 #          ^-- .got + GP offset (0x7ff0)
 # DSO_SYM: 00020000 g       .data		 00000004 v1
 
 # DSO_GOT_BE: Contents of section .got:
-# DSO_GOT_BE:  30000 00000000 80000000 00020000
+# DSO_GOT_BE:  20010 00000000 80000000 00020000
 #                    ^        ^        ^-- v1 (0x20000)
 #                    |        +-- Module pointer (0x80000000)
 #                    +-- Lazy resolver (0x0)
 
 # DSO_GOT_EL: Contents of section .got:
-# DSO_GOT_EL:  30000 00000000 00000080 00000200
+# DSO_GOT_EL:  20010 00000000 00000080 00000200
 #                    ^        ^        ^-- v1 (0x20000)
 #                    |        +-- Module pointer (0x80000000)
 #                    +-- Lazy resolver (0x0)

Modified: lld/branches/release_40/test/ELF/mips-got-weak.s
URL: http://llvm.org/viewvc/llvm-project/lld/branches/release_40/test/ELF/mips-got-weak.s?rev=293879&r1=293878&r2=293879&view=diff
==============================================================================
--- lld/branches/release_40/test/ELF/mips-got-weak.s (original)
+++ lld/branches/release_40/test/ELF/mips-got-weak.s Thu Feb  2 05:46:01 2017
@@ -47,16 +47,16 @@
 # NOSYM-NEXT: 0x70000013 MIPS_GOTSYM          0x1
 
 # NOSYM:      Primary GOT {
-# NOSYM-NEXT:   Canonical gp value: 0x37FF0
+# NOSYM-NEXT:   Canonical gp value:
 # NOSYM-NEXT:   Reserved entries [
 # NOSYM-NEXT:     Entry {
-# NOSYM-NEXT:       Address: 0x30000
+# NOSYM-NEXT:       Address:
 # NOSYM-NEXT:       Access: -32752
 # NOSYM-NEXT:       Initial: 0x0
 # NOSYM-NEXT:       Purpose: Lazy resolver
 # NOSYM-NEXT:     }
 # NOSYM-NEXT:     Entry {
-# NOSYM-NEXT:       Address: 0x30004
+# NOSYM-NEXT:       Address:
 # NOSYM-NEXT:       Access: -32748
 # NOSYM-NEXT:       Initial: 0x80000000
 # NOSYM-NEXT:       Purpose: Module pointer (GNU extension)
@@ -66,7 +66,7 @@
 # NOSYM-NEXT:   ]
 # NOSYM-NEXT:   Global entries [
 # NOSYM-NEXT:     Entry {
-# NOSYM-NEXT:       Address: 0x30008
+# NOSYM-NEXT:       Address:
 # NOSYM-NEXT:       Access: -32744
 # NOSYM-NEXT:       Initial: 0x20000
 # NOSYM-NEXT:       Value: 0x20000
@@ -75,7 +75,7 @@
 # NOSYM-NEXT:       Name: foo
 # NOSYM-NEXT:     }
 # NOSYM-NEXT:     Entry {
-# NOSYM-NEXT:       Address: 0x3000C
+# NOSYM-NEXT:       Address:
 # NOSYM-NEXT:       Access: -32740
 # NOSYM-NEXT:       Initial: 0x0
 # NOSYM-NEXT:       Value: 0x0
@@ -84,7 +84,7 @@
 # NOSYM-NEXT:       Name: bar
 # NOSYM-NEXT:     }
 # NOSYM-NEXT:     Entry {
-# NOSYM-NEXT:       Address: 0x30010
+# NOSYM-NEXT:       Address:
 # NOSYM-NEXT:       Access: -32736
 # NOSYM-NEXT:       Initial: 0x20004
 # NOSYM-NEXT:       Value: 0x20004
@@ -115,16 +115,16 @@
 # SYM-NEXT: 0x70000013 MIPS_GOTSYM          0x3
 
 # SYM:      Primary GOT {
-# SYM-NEXT:   Canonical gp value: 0x37FF0
+# SYM-NEXT:   Canonical gp value:
 # SYM-NEXT:   Reserved entries [
 # SYM-NEXT:     Entry {
-# SYM-NEXT:       Address: 0x30000
+# SYM-NEXT:       Address:
 # SYM-NEXT:       Access: -32752
 # SYM-NEXT:       Initial: 0x0
 # SYM-NEXT:       Purpose: Lazy resolver
 # SYM-NEXT:     }
 # SYM-NEXT:     Entry {
-# SYM-NEXT:       Address: 0x30004
+# SYM-NEXT:       Address:
 # 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: 0x30008
+# SYM-NEXT:       Address:
 # SYM-NEXT:       Access: -32744
 # SYM-NEXT:       Initial: 0x20000
 # SYM-NEXT:     }
 # SYM-NEXT:     Entry {
-# SYM-NEXT:       Address: 0x3000C
+# SYM-NEXT:       Address:
 # SYM-NEXT:       Access: -32740
 # SYM-NEXT:       Initial: 0x20004
 # SYM-NEXT:     }
 # SYM-NEXT:   ]
 # SYM-NEXT:   Global entries [
 # SYM-NEXT:     Entry {
-# SYM-NEXT:       Address: 0x30010
+# SYM-NEXT:       Address:
 # SYM-NEXT:       Access: -32736
 # SYM-NEXT:       Initial: 0x0
 # SYM-NEXT:       Value: 0x0

Modified: lld/branches/release_40/test/ELF/mips-got16.s
URL: http://llvm.org/viewvc/llvm-project/lld/branches/release_40/test/ELF/mips-got16.s?rev=293879&r1=293878&r2=293879&view=diff
==============================================================================
--- lld/branches/release_40/test/ELF/mips-got16.s (original)
+++ lld/branches/release_40/test/ELF/mips-got16.s Thu Feb  2 05:46:01 2017
@@ -29,16 +29,16 @@
 # GOT-NEXT: ]
 
 # GOT:      Primary GOT {
-# GOT-NEXT:   Canonical gp value: 0x57FF0
+# GOT-NEXT:   Canonical gp value:
 # GOT-NEXT:   Reserved entries [
 # GOT-NEXT:     Entry {
-# GOT-NEXT:       Address: 0x50000
+# GOT-NEXT:       Address:
 # GOT-NEXT:       Access: -32752
 # GOT-NEXT:       Initial: 0x0
 # GOT-NEXT:       Purpose: Lazy resolver
 # GOT-NEXT:     }
 # GOT-NEXT:     Entry {
-# GOT-NEXT:       Address: 0x50004
+# GOT-NEXT:       Address:
 # GOT-NEXT:       Access: -32748
 # GOT-NEXT:       Initial: 0x80000000
 # GOT-NEXT:       Purpose: Module pointer (GNU extension)
@@ -46,44 +46,44 @@
 # GOT-NEXT:   ]
 # GOT-NEXT:   Local entries [
 # GOT-NEXT:     Entry {
-# GOT-NEXT:       Address: 0x50008
+# GOT-NEXT:       Address:
 # GOT-NEXT:       Access: -32744
 # GOT-NEXT:       Initial: 0x10000
 #                          ^-- (0x1002c + 0x8000) & ~0xffff
 # GOT-NEXT:     }
 # GOT-NEXT:     Entry {
-# GOT-NEXT:       Address: 0x5000C
+# GOT-NEXT:       Address:
 # GOT-NEXT:       Access: -32740
 # GOT-NEXT:       Initial: 0x20000
 #                          ^-- redundant unused entry
 # GOT-NEXT:     }
 # GOT-NEXT:     Entry {
-# GOT-NEXT:       Address: 0x50010
+# GOT-NEXT:       Address:
 # GOT-NEXT:       Access: -32736
 # GOT-NEXT:       Initial: 0x20000
 #                          ^-- redundant unused entry
 # GOT-NEXT:     }
 # GOT-NEXT:     Entry {
-# GOT-NEXT:       Address: 0x50014
+# GOT-NEXT:       Address:
 # GOT-NEXT:       Access: -32732
 # GOT-NEXT:       Initial: 0x30000
 #                          ^-- (0x29000 + 0x8000) & ~0xffff
 # GOT-NEXT:     }
 # GOT-NEXT:     Entry {
-# GOT-NEXT:       Address: 0x50018
+# GOT-NEXT:       Address:
 # GOT-NEXT:       Access: -32728
 # GOT-NEXT:       Initial: 0x40000
 #                          ^-- (0x29000 + 0x10004 + 0x8000) & ~0xffff
 #                          ^-- (0x29000 + 0x18004 + 0x8000) & ~0xffff
 # GOT-NEXT:     }
 # GOT-NEXT:     Entry {
-# GOT-NEXT:       Address: 0x5001C
+# GOT-NEXT:       Address:
 # GOT-NEXT:       Access: -32724
 # GOT-NEXT:       Initial: 0x50000
 #                          ^-- redundant unused entry
 # GOT-NEXT:     }
 # GOT-NEXT:     Entry {
-# GOT-NEXT:       Address: 0x50020
+# GOT-NEXT:       Address:
 # GOT-NEXT:       Access: -32720
 # GOT-NEXT:       Initial: 0x41008
 #                          ^-- 'bar' address
@@ -91,7 +91,7 @@
 # GOT-NEXT:   ]
 # GOT-NEXT:   Global entries [
 # GOT-NEXT:     Entry {
-# GOT-NEXT:       Address: 0x50024
+# GOT-NEXT:       Address:
 # GOT-NEXT:       Access: -32716
 # GOT-NEXT:       Initial: 0x0
 # GOT-NEXT:       Value: 0x0

Modified: lld/branches/release_40/test/ELF/mips-gp-ext.s
URL: http://llvm.org/viewvc/llvm-project/lld/branches/release_40/test/ELF/mips-gp-ext.s?rev=293879&r1=293878&r2=293879&view=diff
==============================================================================
--- lld/branches/release_40/test/ELF/mips-gp-ext.s (original)
+++ lld/branches/release_40/test/ELF/mips-gp-ext.s Thu Feb  2 05:46:01 2017
@@ -20,10 +20,10 @@
 # REQUIRES: mips
 
 # REL:      Contents of section .text:
-# REL-NEXT:  0000 3c080000 2108010c 8f82fff0
+# REL-NEXT:  0000 3c080000 2108010c 8f82fffc
 #                 ^-- %hi(_gp_disp)
 #                          ^-- %lo(_gp_disp)
-#                                   ^-- 8 - (0x10c - 0xf4)
+#                                   ^-- 8 - (0x10c - 0x100)
 #                                       G - (GP - .got)
 
 # REL:      Contents of section .reginfo:
@@ -40,10 +40,10 @@
 # REL: 0000010c         *ABS*           00000000 .hidden _gp
 
 # ABS:      Contents of section .text:
-# ABS-NEXT:  0000 3c080000 21080200 8f82fefc
+# ABS-NEXT:  0000 3c080000 21080200 8f82ff08
 #                 ^-- %hi(_gp_disp)
 #                          ^-- %lo(_gp_disp)
-#                                   ^-- 8 - (0x200 - 0xf4)
+#                                   ^-- 8 - (0x200 - 0x100)
 #                                       G - (GP - .got)
 
 # ABS:      Contents of section .reginfo:

Modified: lld/branches/release_40/test/ELF/mips-gp-lowest.s
URL: http://llvm.org/viewvc/llvm-project/lld/branches/release_40/test/ELF/mips-gp-lowest.s?rev=293879&r1=293878&r2=293879&view=diff
==============================================================================
--- lld/branches/release_40/test/ELF/mips-gp-lowest.s (original)
+++ lld/branches/release_40/test/ELF/mips-gp-lowest.s Thu Feb  2 05:46:01 2017
@@ -26,7 +26,7 @@ foo:
 # CHECK-NEXT:     SHF_MIPS_GPREL
 # CHECK-NEXT:     SHF_WRITE
 # CHECK-NEXT:   ]
-# CHECK-NEXT:   Address: 0xDD
+# CHECK-NEXT:   Address: 0xE0
 # CHECK:      }
 # CHECK:      Section {
 # CHECK:        Name: .got
@@ -40,5 +40,5 @@ foo:
 # CHECK:      }
 
 # CHECK:      Name: _gp (5)
-# CHECK-NEXT: Value: 0x80CD
-#                    ^-- 0xDD + 0x7ff0
+# CHECK-NEXT: Value: 0x80D0
+#                    ^-- 0xE0 + 0x7ff0

Modified: lld/branches/release_40/test/ELF/mips-gprel32-relocs-gp0.s
URL: http://llvm.org/viewvc/llvm-project/lld/branches/release_40/test/ELF/mips-gprel32-relocs-gp0.s?rev=293879&r1=293878&r2=293879&view=diff
==============================================================================
--- lld/branches/release_40/test/ELF/mips-gprel32-relocs-gp0.s (original)
+++ lld/branches/release_40/test/ELF/mips-gprel32-relocs-gp0.s Thu Feb  2 05:46:01 2017
@@ -22,7 +22,7 @@
 # DSO: GP: 0x27FF0
 
 # DUMP: Contents of section .rodata:
-# DUMP:  0114 ffff0004 ffff0008
+# DUMP:  00f4 ffff0004 ffff0008
 #             ^ 0x10004 + 0x7ff0 - 0x27ff0
 #                      ^ 0x10008 + 0x7ff0 - 0x27ff0
 

Modified: lld/branches/release_40/test/ELF/mips-gprel32-relocs.s
URL: http://llvm.org/viewvc/llvm-project/lld/branches/release_40/test/ELF/mips-gprel32-relocs.s?rev=293879&r1=293878&r2=293879&view=diff
==============================================================================
--- lld/branches/release_40/test/ELF/mips-gprel32-relocs.s (original)
+++ lld/branches/release_40/test/ELF/mips-gprel32-relocs.s Thu Feb  2 05:46:01 2017
@@ -21,7 +21,7 @@ v1:
   .gpword bar
 
 # CHECK: Contents of section .rodata:
-# CHECK:  0114 fffe8014 fffe8018
+# CHECK:  00f4 fffe8014 fffe8018
 #              ^ 0x10004 - 0x27ff0
 #                       ^ 0x10008 - 0x27ff0
 

Modified: lld/branches/release_40/test/ELF/mips-hilo-gp-disp.s
URL: http://llvm.org/viewvc/llvm-project/lld/branches/release_40/test/ELF/mips-hilo-gp-disp.s?rev=293879&r1=293878&r2=293879&view=diff
==============================================================================
--- lld/branches/release_40/test/ELF/mips-hilo-gp-disp.s (original)
+++ lld/branches/release_40/test/ELF/mips-hilo-gp-disp.s Thu Feb  2 05:46:01 2017
@@ -24,32 +24,32 @@ bar:
 # EXE-NEXT: __start:
 # 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(0x47ff0-0x20004+4)
+# EXE-NEXT:  20004:   21 08 80 00   addi   $8, $8, -32768
+#                                                  ^-- %lo(0x38000-0x20004+4)
 # EXE:      bar:
-# 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(0x47ff0-0x20010+4)
+# EXE-NEXT:  2000c:   3c 08 00 01   lui    $8, 1
+#                                              ^-- %hi(0x38000-0x2000c)
+# EXE-NEXT:  20010:   21 08 7f f4   addi   $8, $8, 32756
+#                                                  ^-- %lo(0x38000-0x20010+4)
 
 # EXE: SYMBOL TABLE:
 # EXE: 0002000c     .text   00000000 bar
-# EXE: 00047ff0     *ABS*   00000000 .hidden _gp
+# EXE: 00038000     *ABS*   00000000 .hidden _gp
 # EXE: 00020000     .text   00000000 __start
 
 # SO:      Disassembly of section .text:
 # SO-NEXT: __start:
 # 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(0x37ff0-0x10004+4)
+#                                             ^-- %hi(0x28000-0x10000)
+# SO-NEXT:  10004:   21 08 80 00   addi   $8, $8, -32768
+#                                                 ^-- %lo(0x28000-0x10004+4)
 # SO:       bar:
-# 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(0x37ff0-0x10010+4)
+# SO-NEXT:   1000c:   3c 08 00 01   lui    $8, 1
+#                                              ^-- %hi(0x28000-0x1000c)
+# SO-NEXT:   10010:   21 08 7f f4   addi   $8, $8, 32756
+#                                                  ^-- %lo(0x28000-0x10010+4)
 
 # SO: SYMBOL TABLE:
 # SO: 0001000c     .text   00000000 bar
-# SO: 00037ff0     *ABS*   00000000 .hidden _gp
+# SO: 00028000     *ABS*   00000000 .hidden _gp
 # SO: 00010000     .text   00000000 __start

Modified: lld/branches/release_40/test/ELF/mips-n32-rels.s
URL: http://llvm.org/viewvc/llvm-project/lld/branches/release_40/test/ELF/mips-n32-rels.s?rev=293879&r1=293878&r2=293879&view=diff
==============================================================================
--- lld/branches/release_40/test/ELF/mips-n32-rels.s (original)
+++ lld/branches/release_40/test/ELF/mips-n32-rels.s Thu Feb  2 05:46:01 2017
@@ -38,7 +38,7 @@
 #                                                       ^-- %lo(0x17ff0)
 
 # CHECK:      Contents of section .rodata:
-# CHECK-NEXT:  100f4 00020004
+# CHECK-NEXT:  100d4 00020004
 #                    ^-- loc
 
 # CHECK: 00020004      .text   00000000 loc

Modified: lld/branches/release_40/test/ELF/mips-options.s
URL: http://llvm.org/viewvc/llvm-project/lld/branches/release_40/test/ELF/mips-options.s?rev=293879&r1=293878&r2=293879&view=diff
==============================================================================
--- lld/branches/release_40/test/ELF/mips-options.s (original)
+++ lld/branches/release_40/test/ELF/mips-options.s Thu Feb  2 05:46:01 2017
@@ -17,11 +17,11 @@ __start:
     lui  $gp, %hi(%neg(%gp_rel(g1)))
 
 # CHECK:      Name: _gp
-# CHECK-NEXT: Value: 0x100008258
+# CHECK-NEXT: Value: 0x[[GP:[0-9A-F]+]]
 
 # CHECK:      MIPS Options {
 # CHECK-NEXT:   ODK_REGINFO {
-# CHECK-NEXT:     GP: 0x100008258
+# CHECK-NEXT:     GP: 0x[[GP]]
 # CHECK-NEXT:     General Mask: 0x10000001
 # CHECK-NEXT:     Co-Proc Mask0: 0x0
 # CHECK-NEXT:     Co-Proc Mask1: 0x0

Modified: lld/branches/release_40/test/ELF/mips-tls-64.s
URL: http://llvm.org/viewvc/llvm-project/lld/branches/release_40/test/ELF/mips-tls-64.s?rev=293879&r1=293878&r2=293879&view=diff
==============================================================================
--- lld/branches/release_40/test/ELF/mips-tls-64.s (original)
+++ lld/branches/release_40/test/ELF/mips-tls-64.s Thu Feb  2 05:46:01 2017
@@ -23,11 +23,11 @@
 # DIS-NEXT:    20010:   24 62 80 58   addiu   $2, $3, -32680
 
 # DIS:      Contents of section .got:
-# 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-NEXT:  30010 00000000 00000000 80000000 00000000
+# DIS-NEXT:  30020 00000000 00000000 00000000 00000000
+# DIS-NEXT:  30030 00000000 00000000 00000000 00000001
+# DIS-NEXT:  30040 00000000 00000000 00000000 00000001
+# DIS-NEXT:  30050 ffffffff ffff8004 ffffffff ffff9004
 
 # DIS: 0000000000040000 l       .tdata          00000000 .tdata
 # DIS: 0000000000040000 l       .tdata          00000000 loc
@@ -36,13 +36,13 @@
 
 # CHECK:      Relocations [
 # CHECK-NEXT:   Section (7) .rela.dyn {
-# 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:     0x30020 R_MIPS_TLS_DTPMOD64/R_MIPS_NONE/R_MIPS_NONE foo 0x0
+# CHECK-NEXT:     0x30028 R_MIPS_TLS_DTPREL64/R_MIPS_NONE/R_MIPS_NONE foo 0x0
+# CHECK-NEXT:     0x30030 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: 0x47FF8
+# CHECK-NEXT:   Canonical gp value: 0x38000
 # CHECK-NEXT:   Reserved entries [
 # CHECK:        ]
 # CHECK-NEXT:   Local entries [
@@ -60,25 +60,25 @@
 #               ^-- -32680 R_MIPS_TLS_GOTTPREL VA - 0x7000 bar
 
 # DIS-SO:      Contents of section .got:
-# DIS-SO-NEXT:  20008 00000000 00000000 80000000 00000000
-# DIS-SO-NEXT:  20018 00000000 00000000 00000000 00000000
-# DIS-SO-NEXT:  20028 00000000 00000000 00000000 00000000
-# DIS-SO-NEXT:  20038 00000000 00000000 00000000 00000000
-# DIS-SO-NEXT:  20048 00000000 00000000 00000000 00000000
+# DIS-SO-NEXT:  20000 00000000 00000000 80000000 00000000
+# DIS-SO-NEXT:  20010 00000000 00000000 00000000 00000000
+# DIS-SO-NEXT:  20020 00000000 00000000 00000000 00000000
+# DIS-SO-NEXT:  20030 00000000 00000000 00000000 00000000
+# DIS-SO-NEXT:  20040 00000000 00000000 00000000 00000000
 
 # SO:      Relocations [
 # SO-NEXT:   Section (7) .rela.dyn {
-# SO-NEXT:     0x20030 R_MIPS_TLS_DTPMOD64/R_MIPS_NONE/R_MIPS_NONE - 0x0
-# SO-NEXT:     0x20040 R_MIPS_TLS_DTPMOD64/R_MIPS_NONE/R_MIPS_NONE bar 0x0
-# SO-NEXT:     0x20048 R_MIPS_TLS_DTPREL64/R_MIPS_NONE/R_MIPS_NONE bar 0x0
-# SO-NEXT:     0x20050 R_MIPS_TLS_TPREL64/R_MIPS_NONE/R_MIPS_NONE bar 0x0
-# SO-NEXT:     0x20018 R_MIPS_TLS_DTPMOD64/R_MIPS_NONE/R_MIPS_NONE foo 0x0
-# SO-NEXT:     0x20020 R_MIPS_TLS_DTPREL64/R_MIPS_NONE/R_MIPS_NONE foo 0x0
-# SO-NEXT:     0x20028 R_MIPS_TLS_TPREL64/R_MIPS_NONE/R_MIPS_NONE foo 0x0
+# SO-NEXT:     0x20028 R_MIPS_TLS_DTPMOD64/R_MIPS_NONE/R_MIPS_NONE - 0x0
+# SO-NEXT:     0x20038 R_MIPS_TLS_DTPMOD64/R_MIPS_NONE/R_MIPS_NONE bar 0x0
+# SO-NEXT:     0x20040 R_MIPS_TLS_DTPREL64/R_MIPS_NONE/R_MIPS_NONE bar 0x0
+# SO-NEXT:     0x20048 R_MIPS_TLS_TPREL64/R_MIPS_NONE/R_MIPS_NONE bar 0x0
+# SO-NEXT:     0x20010 R_MIPS_TLS_DTPMOD64/R_MIPS_NONE/R_MIPS_NONE foo 0x0
+# SO-NEXT:     0x20018 R_MIPS_TLS_DTPREL64/R_MIPS_NONE/R_MIPS_NONE foo 0x0
+# SO-NEXT:     0x20020 R_MIPS_TLS_TPREL64/R_MIPS_NONE/R_MIPS_NONE foo 0x0
 # SO-NEXT:   }
 # SO-NEXT: ]
 # SO-NEXT: Primary GOT {
-# SO-NEXT:   Canonical gp value: 0x27FF8
+# SO-NEXT:   Canonical gp value: 0x27FF0
 # SO-NEXT:   Reserved entries [
 # SO:        ]
 # SO-NEXT:   Local entries [
@@ -86,14 +86,14 @@
 # SO-NEXT:   Global entries [
 # SO-NEXT:   ]
 # SO-NEXT:   Number of TLS and multi-GOT entries: 8
-#            ^-- 0x20018 R_MIPS_TLS_GD       R_MIPS_TLS_DTPMOD64 foo
-#            ^-- 0x20020                     R_MIPS_TLS_DTPREL64 foo
-#            ^-- 0x20028 R_MIPS_TLS_GOTTPREL R_MIPS_TLS_TPREL64  foo
-#            ^-- 0x20030 R_MIPS_TLS_LDM      R_MIPS_TLS_DTPMOD64 loc
-#            ^-- 0x20038                     0 loc
-#            ^-- 0x20040 R_MIPS_TLS_GD       R_MIPS_TLS_DTPMOD64 bar
-#            ^-- 0x20048                     R_MIPS_TLS_DTPREL64 bar
-#            ^-- 0x20050 R_MIPS_TLS_GOTTPREL R_MIPS_TLS_TPREL64  bar
+#            ^-- -32736 R_MIPS_TLS_GD       R_MIPS_TLS_DTPMOD64 foo
+#            ^-- -32728                     R_MIPS_TLS_DTPREL64 foo
+#            ^-- -32720 R_MIPS_TLS_GOTTPREL R_MIPS_TLS_TPREL64  foo
+#            ^-- -32712 R_MIPS_TLS_LDM      R_MIPS_TLS_DTPMOD64 loc
+#            ^-- -32704                     0 loc
+#            ^-- -32696 R_MIPS_TLS_GD       R_MIPS_TLS_DTPMOD64 bar
+#            ^-- -32688                     R_MIPS_TLS_DTPREL64 bar
+#            ^-- -32680 R_MIPS_TLS_GOTTPREL R_MIPS_TLS_TPREL64  bar
 
   .text
   .global  __start

Modified: lld/branches/release_40/test/ELF/mips-tls-hilo.s
URL: http://llvm.org/viewvc/llvm-project/lld/branches/release_40/test/ELF/mips-tls-hilo.s?rev=293879&r1=293878&r2=293879&view=diff
==============================================================================
--- lld/branches/release_40/test/ELF/mips-tls-hilo.s (original)
+++ lld/branches/release_40/test/ELF/mips-tls-hilo.s Thu Feb  2 05:46:01 2017
@@ -21,8 +21,8 @@
 # DIS-NEXT:    2000c:   24 62 90 00   addiu   $2, $3, -28672
 #                       %lo(loc0 - .tdata - 0x7000) --^
 
-# DIS: 00030000 l       .tdata          00000000 .tdata
-# DIS: 00030000 l       .tdata          00000000 loc0
+# DIS: 00040000 l       .tdata          00000000 .tdata
+# DIS: 00040000 l       .tdata          00000000 loc0
 
 # CHECK:      Relocations [
 # CHECK-NEXT: ]

Modified: lld/branches/release_40/test/ELF/mips-tls-static.s
URL: http://llvm.org/viewvc/llvm-project/lld/branches/release_40/test/ELF/mips-tls-static.s?rev=293879&r1=293878&r2=293879&view=diff
==============================================================================
--- lld/branches/release_40/test/ELF/mips-tls-static.s (original)
+++ lld/branches/release_40/test/ELF/mips-tls-static.s Thu Feb  2 05:46:01 2017
@@ -10,8 +10,8 @@
 # CHECK:      Contents of section .data:
 # 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-NEXT:  30010 00000000 80000000 00000001 ffff8000
+# CHECK-NEXT:  30020 00000001 00000000 ffff9000
 #
 # CHECK: SYMBOL TABLE:
 # CHECK: 0002000c         .text           00000000 __tls_get_addr

Modified: lld/branches/release_40/test/ELF/mips-tls.s
URL: http://llvm.org/viewvc/llvm-project/lld/branches/release_40/test/ELF/mips-tls.s?rev=293879&r1=293878&r2=293879&view=diff
==============================================================================
--- lld/branches/release_40/test/ELF/mips-tls.s (original)
+++ lld/branches/release_40/test/ELF/mips-tls.s Thu Feb  2 05:46:01 2017
@@ -23,9 +23,9 @@
 # DIS-NEXT:    20010:   24 62 80 34   addiu   $2, $3, -32716
 
 # DIS:      Contents of section .got:
-# DIS-NEXT:  40008 00000000 80000000 00000000 00000000
-# DIS-NEXT:  40018 00000000 00000001 00000000 00000001
-# DIS-NEXT:  40028 ffff8004 ffff9004
+# DIS-NEXT:  30010 00000000 80000000 00000000 00000000
+# DIS-NEXT:  30020 00000000 00000001 00000000 00000001
+# DIS-NEXT:  30030 ffff8004 ffff9004
 
 # DIS: 00040000 l       .tdata          00000000 .tdata
 # DIS: 00040000 l       .tdata          00000000 loc
@@ -34,13 +34,13 @@
 
 # CHECK:      Relocations [
 # CHECK-NEXT:   Section (7) .rel.dyn {
-# 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:     0x30018 R_MIPS_TLS_DTPMOD32 foo 0x0
+# CHECK-NEXT:     0x3001C R_MIPS_TLS_DTPREL32 foo 0x0
+# CHECK-NEXT:     0x30020 R_MIPS_TLS_TPREL32 foo 0x0
 # CHECK-NEXT:   }
 # CHECK-NEXT: ]
 # CHECK-NEXT: Primary GOT {
-# CHECK-NEXT:   Canonical gp value: 0x47FF8
+# CHECK-NEXT:   Canonical gp value: 0x38000
 # CHECK-NEXT:   Reserved entries [
 # CHECK:        ]
 # CHECK-NEXT:   Local entries [
@@ -48,33 +48,33 @@
 # CHECK-NEXT:   Global entries [
 # CHECK-NEXT:   ]
 # CHECK-NEXT:   Number of TLS and multi-GOT entries: 8
-#               ^-- 0x30010 R_MIPS_TLS_GD       R_MIPS_TLS_DTPMOD32 foo
-#               ^-- 0x30014                     R_MIPS_TLS_DTPREL32 foo
-#               ^-- 0x30018 R_MIPS_TLS_GOTTPREL R_MIPS_TLS_TPREL32  foo
-#               ^-- 0x3001C R_MIPS_TLS_LDM      1 loc
-#               ^-- 0x30020                     0 loc
-#               ^-- 0x30024 R_MIPS_TLS_GD       1 bar
-#               ^-- 0x30028                     VA - 0x8000 bar
-#               ^-- 0x3002C R_MIPS_TLS_GOTTPREL VA - 0x7000 bar
+#               ^-- -32744 R_MIPS_TLS_GD       R_MIPS_TLS_DTPMOD32 foo
+#               ^-- -32740                     R_MIPS_TLS_DTPREL32 foo
+#               ^-- -32736 R_MIPS_TLS_GOTTPREL R_MIPS_TLS_TPREL32  foo
+#               ^-- -32732 R_MIPS_TLS_LDM      1 loc
+#               ^-- -32728                     0 loc
+#               ^-- -32724 R_MIPS_TLS_GD       1 bar
+#               ^-- -32720                     VA - 0x8000 bar
+#               ^-- -32716 R_MIPS_TLS_GOTTPREL VA - 0x7000 bar
 
 # DIS-SO:      Contents of section .got:
-# DIS-SO-NEXT:  20008 00000000 80000000 00000000 00000000
-# DIS-SO-NEXT:  20018 00000000 00000000 00000000 00000000
-# DIS-SO-NEXT:  20028 00000000 00000000
+# DIS-SO-NEXT:  20000 00000000 80000000 00000000 00000000
+# DIS-SO-NEXT:  20010 00000000 00000000 00000000 00000000
+# DIS-SO-NEXT:  20020 00000000 00000000
 
 # SO:      Relocations [
 # SO-NEXT:   Section (7) .rel.dyn {
-# SO-NEXT:     0x2001C R_MIPS_TLS_DTPMOD32 - 0x0
-# SO-NEXT:     0x20024 R_MIPS_TLS_DTPMOD32 bar 0x0
-# SO-NEXT:     0x20028 R_MIPS_TLS_DTPREL32 bar 0x0
-# SO-NEXT:     0x2002C R_MIPS_TLS_TPREL32 bar 0x0
-# SO-NEXT:     0x20010 R_MIPS_TLS_DTPMOD32 foo 0x0
-# SO-NEXT:     0x20014 R_MIPS_TLS_DTPREL32 foo 0x0
-# SO-NEXT:     0x20018 R_MIPS_TLS_TPREL32 foo 0x0
+# SO-NEXT:     0x20014 R_MIPS_TLS_DTPMOD32 - 0x0
+# SO-NEXT:     0x2001C R_MIPS_TLS_DTPMOD32 bar 0x0
+# SO-NEXT:     0x20020 R_MIPS_TLS_DTPREL32 bar 0x0
+# SO-NEXT:     0x20024 R_MIPS_TLS_TPREL32 bar 0x0
+# SO-NEXT:     0x20008 R_MIPS_TLS_DTPMOD32 foo 0x0
+# SO-NEXT:     0x2000C R_MIPS_TLS_DTPREL32 foo 0x0
+# SO-NEXT:     0x20010 R_MIPS_TLS_TPREL32 foo 0x0
 # SO-NEXT:   }
 # SO-NEXT: ]
 # SO-NEXT: Primary GOT {
-# SO-NEXT:   Canonical gp value: 0x27FF8
+# SO-NEXT:   Canonical gp value: 0x27FF0
 # SO-NEXT:   Reserved entries [
 # SO:        ]
 # SO-NEXT:   Local entries [
@@ -82,14 +82,14 @@
 # SO-NEXT:   Global entries [
 # SO-NEXT:   ]
 # SO-NEXT:   Number of TLS and multi-GOT entries: 8
-#            ^-- 0x20010 R_MIPS_TLS_GD       R_MIPS_TLS_DTPMOD32 foo
-#            ^-- 0x20014                     R_MIPS_TLS_DTPREL32 foo
-#            ^-- 0x20018 R_MIPS_TLS_GOTTPREL R_MIPS_TLS_TPREL32  foo
-#            ^-- 0x2001C R_MIPS_TLS_LDM      R_MIPS_TLS_DTPMOD32 loc
-#            ^-- 0x20020                     0 loc
-#            ^-- 0x20024 R_MIPS_TLS_GD       R_MIPS_TLS_DTPMOD32 bar
-#            ^-- 0x20028                     R_MIPS_TLS_DTPREL32 bar
-#            ^-- 0x2002C R_MIPS_TLS_GOTTPREL R_MIPS_TLS_TPREL32  bar
+#            ^-- -32744 R_MIPS_TLS_GD       R_MIPS_TLS_DTPMOD32 foo
+#            ^-- -32740 R_MIPS_TLS_DTPREL32 foo
+#            ^-- -32736 R_MIPS_TLS_GOTTPREL R_MIPS_TLS_TPREL32  foo
+#            ^-- -32732 R_MIPS_TLS_LDM      R_MIPS_TLS_DTPMOD32 loc
+#            ^-- -32728 0 loc
+#            ^-- -32724 R_MIPS_TLS_GD       R_MIPS_TLS_DTPMOD32 bar
+#            ^-- -32720 R_MIPS_TLS_DTPREL32 bar
+#            ^-- -32716 R_MIPS_TLS_GOTTPREL R_MIPS_TLS_TPREL32  bar
 
   .text
   .global  __start

Modified: lld/branches/release_40/test/ELF/mips-xgot-order.s
URL: http://llvm.org/viewvc/llvm-project/lld/branches/release_40/test/ELF/mips-xgot-order.s?rev=293879&r1=293878&r2=293879&view=diff
==============================================================================
--- lld/branches/release_40/test/ELF/mips-xgot-order.s (original)
+++ lld/branches/release_40/test/ELF/mips-xgot-order.s Thu Feb  2 05:46:01 2017
@@ -20,10 +20,10 @@
 # CHECK-NEXT:    20018:       20 42 00 00     addi    $2, $2, 0
 
 # CHECK:      Contents of section .got:
-# CHECK-NEXT:  40000 00000000 80000000 00030000 00040000
+# CHECK-NEXT:  30010 00000000 80000000 00030000 00040000
 #                                      ^ %hi(loc)
 #                                               ^ redundant entry
-# CHECK-NEXT:  40010 00020010 00020000 00030000
+# CHECK-NEXT:  30020 00020010 00020000 00030000
 #                    ^ %got(bar)
 #                             ^ %got_hi/lo(start)
 #                                      ^ %got_hi/lo(loc)




More information about the llvm-commits mailing list