Index: ELF/Target.cpp =================================================================== --- ELF/Target.cpp +++ ELF/Target.cpp @@ -312,6 +312,9 @@ PltEntrySize = 16; PltHeaderSize = 16; TlsGdRelaxSkip = 2; + // Align to the large page size (known as a superpage or huge page). + // FreeBSD automatically promotes large, superpage-aligned allocations. + DefaultImageBase = 0x200000; } RelExpr X86TargetInfo::getRelExpr(uint32_t Type, const SymbolBody &S) const { Index: test/ELF/basic32.s =================================================================== --- test/ELF/basic32.s +++ test/ELF/basic32.s @@ -23,7 +23,7 @@ # CHECK-NEXT: Type: Executable (0x2) # CHECK-NEXT: Machine: EM_386 (0x3) # CHECK-NEXT: Version: 1 -# CHECK-NEXT: Entry: 0x11000 +# CHECK-NEXT: Entry: 0x201000 # CHECK-NEXT: ProgramHeaderOffset: 0x34 # CHECK-NEXT: SectionHeaderOffset: 0x1068 # CHECK-NEXT: Flags [ (0x0) @@ -58,7 +58,7 @@ # CHECK-NEXT: SHF_ALLOC (0x2) # CHECK-NEXT: SHF_EXECINSTR (0x4) # CHECK-NEXT: ] -# CHECK-NEXT: Address: 0x11000 +# CHECK-NEXT: Address: 0x201000 # CHECK-NEXT: Offset: 0x1000 # CHECK-NEXT: Size: 12 # CHECK-NEXT: Link: 0 @@ -129,8 +129,8 @@ # CHECK-NEXT: ProgramHeader { # CHECK-NEXT: Type: PT_PHDR (0x6) # CHECK-NEXT: Offset: 0x34 -# CHECK-NEXT: VirtualAddress: 0x10034 -# CHECK-NEXT: PhysicalAddress: 0x10034 +# CHECK-NEXT: VirtualAddress: 0x200034 +# CHECK-NEXT: PhysicalAddress: 0x200034 # CHECK-NEXT: FileSize: 128 # CHECK-NEXT: MemSize: 128 # CHECK-NEXT: Flags [ (0x4) @@ -141,8 +141,8 @@ # CHECK-NEXT: ProgramHeader { # CHECK-NEXT: Type: PT_LOAD (0x1) # CHECK-NEXT: Offset: 0x0 -# CHECK-NEXT: VirtualAddress: 0x10000 -# CHECK-NEXT: PhysicalAddress: 0x10000 +# CHECK-NEXT: VirtualAddress: 0x200000 +# CHECK-NEXT: PhysicalAddress: 0x200000 # CHECK-NEXT: FileSize: 180 # CHECK-NEXT: MemSize: 180 # CHECK-NEXT: Flags [ @@ -153,8 +153,8 @@ # CHECK-NEXT: ProgramHeader { # CHECK-NEXT: Type: PT_LOAD (0x1) # CHECK-NEXT: Offset: 0x1000 -# CHECK-NEXT: VirtualAddress: 0x11000 -# CHECK-NEXT: PhysicalAddress: 0x11000 +# CHECK-NEXT: VirtualAddress: 0x201000 +# CHECK-NEXT: PhysicalAddress: 0x201000 # CHECK-NEXT: FileSize: 12 # CHECK-NEXT: MemSize: 12 # CHECK-NEXT: Flags [ (0x5) Index: test/ELF/gc-sections-implicit-addend.s =================================================================== --- test/ELF/gc-sections-implicit-addend.s +++ test/ELF/gc-sections-implicit-addend.s @@ -12,10 +12,10 @@ # CHECK-NEXT: SHF_MERGE # CHECK-NEXT: SHF_STRINGS # CHECK-NEXT: ] -# CHECK-NEXT: Address: 0x100B4 +# CHECK-NEXT: Address: 0x2000B4 -# 0x100B4 == 65716 -# DISASM: leal 65716, %eax +# 0x2000B4 == 2097332 +# DISASM: leal 2097332, %eax .section .foo,"aMS",@progbits,1 .byte 0 Index: test/ELF/gnu-ifunc-i386.s =================================================================== --- test/ELF/gnu-ifunc-i386.s +++ test/ELF/gnu-ifunc-i386.s @@ -22,8 +22,8 @@ // CHECK-NEXT: } // CHECK: Relocations [ // CHECK-NEXT: Section ({{.*}}) .rel.plt { -// CHECK-NEXT: 0x1200C R_386_IRELATIVE -// CHECK-NEXT: 0x12010 R_386_IRELATIVE +// CHECK-NEXT: 0x20200C R_386_IRELATIVE +// CHECK-NEXT: 0x202010 R_386_IRELATIVE // CHECK-NEXT: } // CHECK-NEXT: ] @@ -39,7 +39,7 @@ // CHECK-NEXT: } // CHECK-NEXT: Symbol { // CHECK-NEXT: Name: __rel_iplt_end -// CHECK-NEXT: Value: 0x100E4 +// CHECK-NEXT: Value: 0x2000E4 // CHECK-NEXT: Size: 0 // CHECK-NEXT: Binding: Local // CHECK-NEXT: Type: None @@ -61,7 +61,7 @@ // CHECK-NEXT: } // CHECK-NEXT: Symbol { // CHECK-NEXT: Name: _start -// CHECK-NEXT: Value: 0x11002 +// CHECK-NEXT: Value: 0x201002 // CHECK-NEXT: Size: 0 // CHECK-NEXT: Binding: Global // CHECK-NEXT: Type: None @@ -70,7 +70,7 @@ // CHECK-NEXT: } // CHECK-NEXT: Symbol { // CHECK-NEXT: Name: bar -// CHECK-NEXT: Value: 0x11001 +// CHECK-NEXT: Value: 0x201001 // CHECK-NEXT: Size: 0 // CHECK-NEXT: Binding: Global // CHECK-NEXT: Type: GNU_IFunc @@ -79,7 +79,7 @@ // CHECK-NEXT: } // CHECK-NEXT: Symbol { // CHECK-NEXT: Name: foo -// CHECK-NEXT: Value: 0x11000 +// CHECK-NEXT: Value: 0x201000 // CHECK-NEXT: Size: 0 // CHECK-NEXT: Binding: Global // CHECK-NEXT: Type: GNU_IFunc @@ -90,28 +90,28 @@ // DISASM: Disassembly of section .text: // DISASM-NEXT: foo: -// DISASM-NEXT: 11000: c3 retl +// DISASM-NEXT: 201000: c3 retl // DISASM: bar: -// DISASM-NEXT: 11001: c3 retl +// DISASM-NEXT: 201001: c3 retl // DISASM: _start: -// DISASM-NEXT: 11002: e8 29 00 00 00 calll 41 -// DISASM-NEXT: 11007: e8 34 00 00 00 calll 52 -// DISASM-NEXT: 1100c: ba d4 00 01 00 movl $65748, %edx -// DISASM-NEXT: 11011: ba e4 00 01 00 movl $65764, %edx +// DISASM-NEXT: 201002: e8 29 00 00 00 calll 41 +// DISASM-NEXT: 201007: e8 34 00 00 00 calll 52 +// DISASM-NEXT: 20100c: ba d4 00 20 00 movl $2097364, %edx +// DISASM-NEXT: 201011: ba e4 00 20 00 movl $2097380, %edx // DISASM-NEXT: Disassembly of section .plt: // DISASM-NEXT: .plt: -// 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 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 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: 201020: ff 35 04 20 20 00 pushl 2105348 +// DISASM-NEXT: 201026: ff 25 08 20 20 00 jmpl *2105352 +// DISASM-NEXT: 20102c: 90 nop +// DISASM-NEXT: 20102d: 90 nop +// DISASM-NEXT: 20102e: 90 nop +// DISASM-NEXT: 20102f: 90 nop +// DISASM-NEXT: 201030: ff 25 0c 20 20 00 jmpl *2105356 +// DISASM-NEXT: 201036: 68 00 00 00 00 pushl $0 +// DISASM-NEXT: 20103b: e9 e0 ff ff ff jmp -32 <.plt> +// DISASM-NEXT: 201040: ff 25 10 20 20 00 jmpl *2105360 +// DISASM-NEXT: 201046: 68 08 00 00 00 pushl $8 +// DISASM-NEXT: 20104b: e9 d0 ff ff ff jmp -48 <.plt> .text .type foo STT_GNU_IFUNC Index: test/ELF/got-i386.s =================================================================== --- test/ELF/got-i386.s +++ test/ELF/got-i386.s @@ -10,7 +10,7 @@ // CHECK-NEXT: SHF_ALLOC // CHECK-NEXT: SHF_WRITE // CHECK-NEXT: ] -// CHECK-NEXT: Address: 0x12000 +// CHECK-NEXT: Address: 0x202000 // CHECK-NEXT: Offset: // CHECK-NEXT: Size: 0 // CHECK-NEXT: Link: @@ -19,7 +19,7 @@ // CHECK: Symbol { // CHECK: Name: bar -// CHECK-NEXT: Value: 0x12000 +// CHECK-NEXT: Value: 0x202000 // CHECK-NEXT: Size: 10 // CHECK-NEXT: Binding: Global // CHECK-NEXT: Type: Object @@ -28,7 +28,7 @@ // CHECK-NEXT: } // CHECK-NEXT: Symbol { // CHECK-NEXT: Name: obj -// CHECK-NEXT: Value: 0x1200A +// CHECK-NEXT: Value: 0x20200A // CHECK-NEXT: Size: 10 // CHECK-NEXT: Binding: Global // CHECK-NEXT: Type: Object @@ -41,9 +41,9 @@ // 0x1200A + 5 - 15 = addr(.got) = 0x12000 // DISASM: Disassembly of section .text: // DISASM-NEXT: _start: -// DISASM-NEXT: 11000: c7 81 00 00 00 00 01 00 00 00 movl $1, (%ecx) -// DISASM-NEXT: 1100a: c7 81 0a 00 00 00 02 00 00 00 movl $2, 10(%ecx) -// DISASM-NEXT: 11014: c7 81 0f 00 00 00 03 00 00 00 movl $3, 15(%ecx) +// DISASM-NEXT: 201000: c7 81 00 00 00 00 01 00 00 00 movl $1, (%ecx) +// DISASM-NEXT: 20100a: c7 81 0a 00 00 00 02 00 00 00 movl $2, 10(%ecx) +// DISASM-NEXT: 201014: c7 81 0f 00 00 00 03 00 00 00 movl $3, 15(%ecx) .global _start _start: Index: test/ELF/plt-i686.s =================================================================== --- test/ELF/plt-i686.s +++ test/ELF/plt-i686.s @@ -17,7 +17,7 @@ // CHECK-NEXT: SHF_ALLOC // CHECK-NEXT: SHF_EXECINSTR // CHECK-NEXT: ] -// CHECK-NEXT: Address: 0x11020 +// CHECK-NEXT: Address: 0x201020 // CHECK-NEXT: Offset: // CHECK-NEXT: Size: 48 // CHECK-NEXT: Link: 0 @@ -30,7 +30,7 @@ // CHECK-NEXT: SHF_ALLOC // CHECK-NEXT: SHF_WRITE // CHECK-NEXT: ] -// CHECK-NEXT: Address: 0x13000 +// CHECK-NEXT: Address: 0x203000 // CHECK-NEXT: Offset: 0x3000 // CHECK-NEXT: Size: 20 // CHECK-NEXT: Link: 0 @@ -38,12 +38,12 @@ // CHECK-NEXT: AddressAlignment: 4 // CHECK-NEXT: EntrySize: 0 -// 0x13000 + got.plt.reserved(12) = 0x1300C -// 0x13000 + got.plt.reserved(12) + 4 = 0x13010 +// 0x203000 + got.plt.reserved(12) = 0x20300C +// 0x203000 + got.plt.reserved(12) + 4 = 0x203010 // 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: 0x20300C R_386_JUMP_SLOT bar 0x0 +// CHECK-NEXT: 0x203010 R_386_JUMP_SLOT zed 0x0 // CHECK-NEXT: } // CHECK-NEXT: ] @@ -51,40 +51,40 @@ // values: // 16 is the size of PLT[0] -// (0x11010 + 16) - (0x11000 + 1) - 4 = 27 -// (0x11010 + 16) - (0x11005 + 1) - 4 = 22 -// (0x11020 + 16) - (0x1100a + 1) - 4 = 33 +// (0x201010 + 16) - (0x201000 + 1) - 4 = 27 +// (0x201010 + 16) - (0x201005 + 1) - 4 = 22 +// (0x201020 + 16) - (0x20100a + 1) - 4 = 33 // DISASM: local: -// DISASM-NEXT: 11000: {{.*}} -// DISASM-NEXT: 11002: {{.*}} +// DISASM-NEXT: 201000: {{.*}} +// DISASM-NEXT: 201002: {{.*}} // DISASM: _start: -// 0x11013 + 5 - 24 = 0x11000 -// DISASM-NEXT: 11004: e9 27 00 00 00 jmp 39 -// DISASM-NEXT: 11009: e9 22 00 00 00 jmp 34 -// DISASM-NEXT: 1100e: e9 2d 00 00 00 jmp 45 -// DISASM-NEXT: 11013: e9 e8 ff ff ff jmp -24 +// 0x201013 + 5 - 24 = 0x201000 +// DISASM-NEXT: 201004: e9 27 00 00 00 jmp 39 +// DISASM-NEXT: 201009: e9 22 00 00 00 jmp 34 +// DISASM-NEXT: 20100e: e9 2d 00 00 00 jmp 45 +// DISASM-NEXT: 201013: e9 e8 ff ff ff jmp -24 -// 0x11010 - 0x1102b - 5 = -32 -// 0x11010 - 0x1103b - 5 = -48 -// 77828 = 0x13004 = .got.plt (0x13000) + 4 -// 77832 = 0x13008 = .got.plt (0x13000) + 8 -// 77836 = 0x1300C = .got.plt (0x13000) + got.plt.reserved(12) -// 77840 = 0x13010 = .got.plt (0x13000) + got.plt.reserved(12) + 4 +// 0x201010 - 0x20102b - 5 = -32 +// 0x201010 - 0x20103b - 5 = -48 +// 2109444 = 0x203004 = .got.plt (0x203000) + 4 +// 2109448 = 0x203008 = .got.plt (0x203000) + 8 +// 2109452 = 0x20300C = .got.plt (0x203000) + got.plt.reserved(12) +// 2109456 = 0x203010 = .got.plt (0x203000) + 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: 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: 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: 11046: 68 08 00 00 00 pushl $8 -// DISASM-NEXT: 1104b: e9 d0 ff ff ff jmp -48 <.plt> +// DISASM-NEXT: 201020: ff 35 04 30 20 00 pushl 2109444 +// DISASM-NEXT: 201026: ff 25 08 30 20 00 jmpl *2109448 +// DISASM-NEXT: 20102c: 90 nop +// DISASM-NEXT: 20102d: 90 nop +// DISASM-NEXT: 20102e: 90 nop +// DISASM-NEXT: 20102f: 90 nop +// DISASM-NEXT: 201030: ff 25 0c 30 20 00 jmpl *2109452 +// DISASM-NEXT: 201036: 68 00 00 00 00 pushl $0 +// DISASM-NEXT: 20103b: e9 e0 ff ff ff jmp -32 <.plt> +// DISASM-NEXT: 201040: ff 25 10 30 20 00 jmpl *2109456 +// DISASM-NEXT: 201046: 68 08 00 00 00 pushl $8 +// DISASM-NEXT: 20104b: e9 d0 ff ff ff jmp -48 <.plt> // CHECKSHARED: Name: .plt // CHECKSHARED-NEXT: Type: SHT_PROGBITS Index: test/ELF/progname.s =================================================================== --- test/ELF/progname.s +++ test/ELF/progname.s @@ -25,7 +25,7 @@ // RUN: llvm-readobj -dyn-symbols %t | FileCheck %s // CHECK: Name: __progname@ -// CHECK-NEXT: Value: 0x11000 +// CHECK-NEXT: Value: 0x201000 // CHECK-NEXT: Size: 0 // CHECK-NEXT: Binding: Global (0x1) // CHECK-NEXT: Type: None (0x0) Index: test/ELF/relocation-copy-i686.s =================================================================== --- test/ELF/relocation-copy-i686.s +++ test/ELF/relocation-copy-i686.s @@ -21,7 +21,7 @@ // CHECK-NEXT: SHF_ALLOC // CHECK-NEXT: SHF_WRITE // CHECK-NEXT: ] -// CHECK-NEXT: Address: 0x13000 +// CHECK-NEXT: Address: 0x203000 // CHECK-NEXT: Offset: // CHECK-NEXT: Size: 24 // CHECK-NEXT: Link: 0 @@ -52,12 +52,12 @@ // CHECK-NEXT: } // CHECK-NEXT: ] -// 77824 = 0x13000 +// 2109440 = 0x203000 // 16 is alignment here -// 77840 = 0x13000 + 16 -// 77844 = 0x13000 + 16 + 4 +// 2109456 = 0x203000 + 16 +// 2109460 = 0x203000 + 16 + 4 // CODE: Disassembly of section .text: // CODE-NEXT: main: -// CODE-NEXT: 11000: c7 05 00 30 01 00 05 00 00 00 movl $5, 77824 -// CODE-NEXT: 1100a: c7 05 10 30 01 00 07 00 00 00 movl $7, 77840 -// CODE-NEXT: 11014: c7 05 14 30 01 00 09 00 00 00 movl $9, 77844 +// CODE-NEXT: 201000: c7 05 00 30 20 00 05 00 00 00 movl $5, 2109440 +// CODE-NEXT: 20100a: c7 05 10 30 20 00 07 00 00 00 movl $7, 2109456 +// CODE-NEXT: 201014: c7 05 14 30 20 00 09 00 00 00 movl $9, 2109460 Index: test/ELF/relocation-i686.s =================================================================== --- test/ELF/relocation-i686.s +++ test/ELF/relocation-i686.s @@ -27,14 +27,14 @@ // CHECK: Disassembly of section .R_386_32: // CHECK-NEXT: R_386_32: -// CHECK-NEXT: 11000: {{.*}} movl $69633, %edx +// CHECK-NEXT: 201000: {{.*}} movl $2101249, %edx // CHECK: Disassembly of section .R_386_PC32: // CHECK-NEXT: R_386_PC32: -// CHECK-NEXT: 11005: e8 04 00 00 00 calll 4 +// CHECK-NEXT: 201005: e8 04 00 00 00 calll 4 // CHECK: R_386_PC32_2: -// CHECK-NEXT: 1100e: 90 nop +// CHECK-NEXT: 20100e: 90 nop // Create a .got movl bar@GOT, %eax @@ -45,7 +45,7 @@ // ADDR-NEXT: SHF_ALLOC // ADDR-NEXT: SHF_EXECINSTR // ADDR-NEXT: ] -// ADDR-NEXT: Address: 0x11040 +// ADDR-NEXT: Address: 0x201040 // ADDR-NEXT: Offset: 0x1040 // ADDR-NEXT: Size: 32 @@ -55,7 +55,7 @@ // ADDR-NEXT: SHF_ALLOC // ADDR-NEXT: SHF_WRITE // ADDR-NEXT: ] -// ADDR-NEXT: Address: 0x12078 +// ADDR-NEXT: Address: 0x202078 // ADDR-NEXT: Offset: // ADDR-NEXT: Size: 8 @@ -63,18 +63,18 @@ R_386_GOTPC: movl $_GLOBAL_OFFSET_TABLE_, %eax -// 0x12078 + 8 - 0x11014 = 4204 +// 0x202078 + 8 - 0x201014 = 4204 // CHECK: Disassembly of section .R_386_GOTPC: // CHECK-NEXT: R_386_GOTPC: -// CHECK-NEXT: 11014: {{.*}} movl $4204, %eax +// CHECK-NEXT: 201014: {{.*}} movl $4204, %eax .section .dynamic_reloc, "ax",@progbits call bar -// addr(.plt) + 16 - (0x11019 + 5) = 50 +// addr(.plt) + 16 - (0x201019 + 5) = 50 // CHECK: Disassembly of section .dynamic_reloc: // CHECK-NEXT: .dynamic_reloc: -// CHECK-NEXT: 11019: e8 32 00 00 00 calll 50 +// CHECK-NEXT: 201019: e8 32 00 00 00 calll 50 .section .R_386_GOT32,"ax",@progbits .global R_386_GOT32 @@ -90,7 +90,7 @@ // 0xFFFFFFFC + 4 = 0 // CHECK: Disassembly of section .R_386_GOT32: // CHECK-NEXT: R_386_GOT32: -// CHECK-NEXT: 1101e: a1 f8 ff ff ff movl 4294967288, %eax -// CHECK-NEXT: 11023: a1 fc ff ff ff movl 4294967292, %eax -// CHECK-NEXT: 11028: a1 00 00 00 00 movl 0, %eax -// CHECK-NEXT: 1102d: a1 00 00 00 00 movl 0, %eax +// CHECK-NEXT: 20101e: a1 f8 ff ff ff movl 4294967288, %eax +// CHECK-NEXT: 201023: a1 fc ff ff ff movl 4294967292, %eax +// CHECK-NEXT: 201028: a1 00 00 00 00 movl 0, %eax +// CHECK-NEXT: 20102d: a1 00 00 00 00 movl 0, %eax Index: test/ELF/shared.s =================================================================== --- test/ELF/shared.s +++ test/ELF/shared.s @@ -144,7 +144,7 @@ // CHECK-NEXT: } // CHECK-NEXT: Symbol { // CHECK-NEXT: Name: _DYNAMIC -// CHECK-NEXT: Value: 0x12000 +// CHECK-NEXT: Value: 0x202000 // CHECK-NEXT: Size: 0 // CHECK-NEXT: Binding: Local // CHECK-NEXT: Type: None @@ -155,7 +155,7 @@ // CHECK-NEXT: } // CHECK-NEXT: Symbol { // CHECK-NEXT: Name: _start -// CHECK-NEXT: Value: 0x11000 +// CHECK-NEXT: Value: 0x201000 // CHECK-NEXT: Size: 0 // CHECK-NEXT: Binding: Global // CHECK-NEXT: Type: None @@ -194,7 +194,7 @@ // CHECK-NEXT: } // CHECK-NEXT: Symbol { // CHECK-NEXT: Name: _start@ -// CHECK-NEXT: Value: 0x11000 +// CHECK-NEXT: Value: 0x201000 // CHECK-NEXT: Size: 0 // CHECK-NEXT: Binding: Global // CHECK-NEXT: Type: Non Index: test/ELF/tls-i686.s =================================================================== --- test/ELF/tls-i686.s +++ test/ELF/tls-i686.s @@ -32,16 +32,16 @@ // DIS: Disassembly of section test: // DIS-NEXT: _start: -// DIS-NEXT: 12000: ba 08 00 00 00 movl $8, %edx -// DIS-NEXT: 12005: 65 8b 0d 00 00 00 00 movl %gs:0, %ecx -// DIS-NEXT: 1200c: 29 d0 subl %edx, %eax -// DIS-NEXT: 1200e: ba 04 00 00 00 movl $4, %edx -// DIS-NEXT: 12013: 65 8b 0d 00 00 00 00 movl %gs:0, %ecx -// DIS-NEXT: 1201a: 29 d0 subl %edx, %eax -// DIS-NEXT: 1201c: 65 8b 0d 00 00 00 00 movl %gs:0, %ecx -// DIS-NEXT: 12023: 8d 81 f8 ff ff ff leal -8(%ecx), %eax -// DIS-NEXT: 12029: 65 8b 0d 00 00 00 00 movl %gs:0, %ecx -// DIS-NEXT: 12030: 8d 81 77 00 00 00 leal 119(%ecx), %eax +// DIS-NEXT: 202000: ba 08 00 00 00 movl $8, %edx +// DIS-NEXT: 202005: 65 8b 0d 00 00 00 00 movl %gs:0, %ecx +// DIS-NEXT: 20200c: 29 d0 subl %edx, %eax +// DIS-NEXT: 20200e: ba 04 00 00 00 movl $4, %edx +// DIS-NEXT: 202013: 65 8b 0d 00 00 00 00 movl %gs:0, %ecx +// DIS-NEXT: 20201a: 29 d0 subl %edx, %eax +// DIS-NEXT: 20201c: 65 8b 0d 00 00 00 00 movl %gs:0, %ecx +// DIS-NEXT: 202023: 8d 81 f8 ff ff ff leal -8(%ecx), %eax +// DIS-NEXT: 202029: 65 8b 0d 00 00 00 00 movl %gs:0, %ecx +// DIS-NEXT: 202030: 8d 81 77 00 00 00 leal 119(%ecx), %eax // RELOC: Relocations [ // RELOC-NEXT: ] Index: test/ELF/tls-opt-gdiele-i686.s =================================================================== --- test/ELF/tls-opt-gdiele-i686.s +++ test/ELF/tls-opt-gdiele-i686.s @@ -7,21 +7,21 @@ // NORELOC: Relocations [ // NORELOC-NEXT: Section ({{.*}}) .rel.dyn { -// NORELOC-NEXT: 0x12058 R_386_TLS_TPOFF tlsshared0 0x0 -// NORELOC-NEXT: 0x1205C R_386_TLS_TPOFF tlsshared1 0x0 +// NORELOC-NEXT: 0x202058 R_386_TLS_TPOFF tlsshared0 0x0 +// NORELOC-NEXT: 0x20205C R_386_TLS_TPOFF tlsshared1 0x0 // NORELOC-NEXT: } // NORELOC-NEXT: ] // DISASM: Disassembly of section .text: // DISASM-NEXT: _start: -// DISASM-NEXT: 11000: 65 a1 00 00 00 00 movl %gs:0, %eax -// DISASM-NEXT: 11006: 03 83 f8 ff ff ff addl -8(%ebx), %eax -// DISASM-NEXT: 1100c: 65 a1 00 00 00 00 movl %gs:0, %eax -// DISASM-NEXT: 11012: 03 83 fc ff ff ff addl -4(%ebx), %eax -// DISASM-NEXT: 11018: 65 a1 00 00 00 00 movl %gs:0, %eax -// DISASM-NEXT: 1101e: 81 e8 08 00 00 00 subl $8, %eax -// DISASM-NEXT: 11024: 65 a1 00 00 00 00 movl %gs:0, %eax -// DISASM-NEXT: 1102a: 81 e8 04 00 00 00 subl $4, %eax +// DISASM-NEXT: 201000: 65 a1 00 00 00 00 movl %gs:0, %eax +// DISASM-NEXT: 201006: 03 83 f8 ff ff ff addl -8(%ebx), %eax +// DISASM-NEXT: 20100c: 65 a1 00 00 00 00 movl %gs:0, %eax +// DISASM-NEXT: 201012: 03 83 fc ff ff ff addl -4(%ebx), %eax +// DISASM-NEXT: 201018: 65 a1 00 00 00 00 movl %gs:0, %eax +// DISASM-NEXT: 20101e: 81 e8 08 00 00 00 subl $8, %eax +// DISASM-NEXT: 201024: 65 a1 00 00 00 00 movl %gs:0, %eax +// DISASM-NEXT: 20102a: 81 e8 04 00 00 00 subl $4, %eax .type tlsexe1,@object .section .tbss,"awT",@nobits Index: test/ELF/tls-opt-i686.s =================================================================== --- test/ELF/tls-opt-i686.s +++ test/ELF/tls-opt-i686.s @@ -9,25 +9,25 @@ // DISASM: Disassembly of section .text: // DISASM-NEXT: _start: // LD -> LE: -// DISASM-NEXT: 11000: 65 a1 00 00 00 00 movl %gs:0, %eax -// DISASM-NEXT: 11006: 90 nop -// DISASM-NEXT: 11007: 8d 74 26 00 leal (%esi), %esi -// DISASM-NEXT: 1100b: 8d 90 f8 ff ff ff leal -8(%eax), %edx -// DISASM-NEXT: 11011: 65 a1 00 00 00 00 movl %gs:0, %eax -// DISASM-NEXT: 11017: 90 nop -// DISASM-NEXT: 11018: 8d 74 26 00 leal (%esi), %esi -// DISASM-NEXT: 1101c: 8d 90 fc ff ff ff leal -4(%eax), %edx +// DISASM-NEXT: 201000: 65 a1 00 00 00 00 movl %gs:0, %eax +// DISASM-NEXT: 201006: 90 nop +// DISASM-NEXT: 201007: 8d 74 26 00 leal (%esi), %esi +// DISASM-NEXT: 20100b: 8d 90 f8 ff ff ff leal -8(%eax), %edx +// DISASM-NEXT: 201011: 65 a1 00 00 00 00 movl %gs:0, %eax +// DISASM-NEXT: 201017: 90 nop +// DISASM-NEXT: 201018: 8d 74 26 00 leal (%esi), %esi +// DISASM-NEXT: 20101c: 8d 90 fc ff ff ff leal -4(%eax), %edx // IE -> LE: // 4294967288 == 0xFFFFFFF8 // 4294967292 == 0xFFFFFFFC -// DISASM-NEXT: 11022: 65 a1 00 00 00 00 movl %gs:0, %eax -// DISASM-NEXT: 11028: c7 c0 f8 ff ff ff movl $4294967288, %eax -// DISASM-NEXT: 1102e: 65 a1 00 00 00 00 movl %gs:0, %eax -// DISASM-NEXT: 11034: c7 c0 fc ff ff ff movl $4294967292, %eax -// DISASM-NEXT: 1103a: 65 a1 00 00 00 00 movl %gs:0, %eax -// DISASM-NEXT: 11040: 8d 80 f8 ff ff ff leal -8(%eax), %eax -// DISASM-NEXT: 11046: 65 a1 00 00 00 00 movl %gs:0, %eax -// DISASM-NEXT: 1104c: 8d 80 fc ff ff ff leal -4(%eax), %eax +// DISASM-NEXT: 201022: 65 a1 00 00 00 00 movl %gs:0, %eax +// DISASM-NEXT: 201028: c7 c0 f8 ff ff ff movl $4294967288, %eax +// DISASM-NEXT: 20102e: 65 a1 00 00 00 00 movl %gs:0, %eax +// DISASM-NEXT: 201034: c7 c0 fc ff ff ff movl $4294967292, %eax +// DISASM-NEXT: 20103a: 65 a1 00 00 00 00 movl %gs:0, %eax +// DISASM-NEXT: 201040: 8d 80 f8 ff ff ff leal -8(%eax), %eax +// DISASM-NEXT: 201046: 65 a1 00 00 00 00 movl %gs:0, %eax +// DISASM-NEXT: 20104c: 8d 80 fc ff ff ff leal -4(%eax), %eax .type tls0,@object .section .tbss,"awT",@nobits .globl tls0 Index: test/ELF/tls-opt-iele-i686-nopic.s =================================================================== --- test/ELF/tls-opt-iele-i686-nopic.s +++ test/ELF/tls-opt-iele-i686-nopic.s @@ -13,7 +13,7 @@ // GOTREL-NEXT: SHF_ALLOC // GOTREL-NEXT: SHF_WRITE // GOTREL-NEXT: ] -// GOTREL-NEXT: Address: 0x12058 +// GOTREL-NEXT: Address: 0x202058 // GOTREL-NEXT: Offset: 0x2058 // GOTREL-NEXT: Size: 8 // GOTREL-NEXT: Link: 0 @@ -23,8 +23,8 @@ // GOTREL-NEXT: } // GOTREL: Relocations [ // GOTREL-NEXT: Section ({{.*}}) .rel.dyn { -// GOTREL-NEXT: 0x12058 R_386_TLS_TPOFF tlsshared0 0x0 -// GOTREL-NEXT: 0x1205C R_386_TLS_TPOFF tlsshared1 0x0 +// GOTREL-NEXT: 0x202058 R_386_TLS_TPOFF tlsshared0 0x0 +// GOTREL-NEXT: 0x20205C R_386_TLS_TPOFF tlsshared1 0x0 // GOTREL-NEXT: } // GOTREL-NEXT: ] @@ -32,24 +32,24 @@ // DISASM-NEXT: _start: // 4294967288 = 0xFFFFFFF8 // 4294967292 = 0xFFFFFFFC -// 73808 = (.got)[0] = 0x12058 -// 73812 = (.got)[1] = 0x1205C -// DISASM-NEXT: 11000: c7 c1 f8 ff ff ff movl $4294967288, %ecx -// DISASM-NEXT: 11006: 65 8b 01 movl %gs:(%ecx), %eax -// DISASM-NEXT: 11009: b8 f8 ff ff ff movl $4294967288, %eax -// DISASM-NEXT: 1100e: 65 8b 00 movl %gs:(%eax), %eax -// DISASM-NEXT: 11011: 81 c1 f8 ff ff ff addl $4294967288, %ecx -// DISASM-NEXT: 11017: 65 8b 01 movl %gs:(%ecx), %eax -// DISASM-NEXT: 1101a: c7 c1 fc ff ff ff movl $4294967292, %ecx -// DISASM-NEXT: 11020: 65 8b 01 movl %gs:(%ecx), %eax -// DISASM-NEXT: 11023: b8 fc ff ff ff movl $4294967292, %eax -// DISASM-NEXT: 11028: 65 8b 00 movl %gs:(%eax), %eax -// DISASM-NEXT: 1102b: 81 c1 fc ff ff ff addl $4294967292, %ecx -// DISASM-NEXT: 11031: 65 8b 01 movl %gs:(%ecx), %eax -// DISASM-NEXT: 11034: 8b 0d 58 20 01 00 movl 73816, %ecx -// DISASM-NEXT: 1103a: 65 8b 01 movl %gs:(%ecx), %eax -// DISASM-NEXT: 1103d: 03 0d 5c 20 01 00 addl 73820, %ecx -// DISASM-NEXT: 11043: 65 8b 01 movl %gs:(%ecx), %eax +// 2105432 = (.got)[0] = 0x202058 +// 2105436 = (.got)[1] = 0x20205C +// DISASM-NEXT: 201000: c7 c1 f8 ff ff ff movl $4294967288, %ecx +// DISASM-NEXT: 201006: 65 8b 01 movl %gs:(%ecx), %eax +// DISASM-NEXT: 201009: b8 f8 ff ff ff movl $4294967288, %eax +// DISASM-NEXT: 20100e: 65 8b 00 movl %gs:(%eax), %eax +// DISASM-NEXT: 201011: 81 c1 f8 ff ff ff addl $4294967288, %ecx +// DISASM-NEXT: 201017: 65 8b 01 movl %gs:(%ecx), %eax +// DISASM-NEXT: 20101a: c7 c1 fc ff ff ff movl $4294967292, %ecx +// DISASM-NEXT: 201020: 65 8b 01 movl %gs:(%ecx), %eax +// DISASM-NEXT: 201023: b8 fc ff ff ff movl $4294967292, %eax +// DISASM-NEXT: 201028: 65 8b 00 movl %gs:(%eax), %eax +// DISASM-NEXT: 20102b: 81 c1 fc ff ff ff addl $4294967292, %ecx +// DISASM-NEXT: 201031: 65 8b 01 movl %gs:(%ecx), %eax +// DISASM-NEXT: 201034: 8b 0d 58 20 20 00 movl 2105432, %ecx +// DISASM-NEXT: 20103a: 65 8b 01 movl %gs:(%ecx), %eax +// DISASM-NEXT: 20103d: 03 0d 5c 20 20 00 addl 2105436, %ecx +// DISASM-NEXT: 201043: 65 8b 01 movl %gs:(%ecx), %eax .type tlslocal0,@object .section .tbss,"awT",@nobits Index: test/ELF/undef-with-plt-addr-i686.s =================================================================== --- test/ELF/undef-with-plt-addr-i686.s +++ test/ELF/undef-with-plt-addr-i686.s @@ -17,7 +17,7 @@ // CHECK-NEXT: SHF_ALLOC // CHECK-NEXT: SHF_EXECINSTR // CHECK-NEXT: ] -// CHECK-NEXT: Address: 0x11010 +// CHECK-NEXT: Address: 0x201010 // CHECK: Name: set_data -// CHECK-NEXT: Value: 0x11020 +// CHECK-NEXT: Value: 0x201020