Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(285)

Side by Side Diff: llvm/test/CodeGen/X86/tls-pie.ll

Issue 10826251: Cherry-pick 159409 for TLS Initial Exec fix. (Closed)
Patch Set: cherry pick instead Created 8 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « llvm/lib/Target/X86/X86ISelLowering.cpp ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 ; RUN: llc < %s -march=x86 -mtriple=i386-linux-gnu -relocation-model=pic -enable -pie \ 1 ; RUN: llc < %s -march=x86 -mtriple=i386-linux-gnu -relocation-model=pic -enable -pie \
2 ; RUN: | FileCheck -check-prefix=X32 %s 2 ; RUN: | FileCheck -check-prefix=X32 %s
3 ; RUN: llc < %s -march=x86-64 -mtriple=x86_64-linux-gnu -relocation-model=pic -e nable-pie \ 3 ; RUN: llc < %s -march=x86-64 -mtriple=x86_64-linux-gnu -relocation-model=pic -e nable-pie \
4 ; RUN: | FileCheck -check-prefix=X64 %s 4 ; RUN: | FileCheck -check-prefix=X64 %s
5 5
6 @i = thread_local global i32 15 6 @i = thread_local global i32 15
7 @i2 = external thread_local global i32 7 @i2 = external thread_local global i32
8 8
9 define i32 @f1() { 9 define i32 @f1() {
10 ; X32: f1: 10 ; X32: f1:
(...skipping 22 matching lines...) Expand all
33 ret i32* @i 33 ret i32* @i
34 } 34 }
35 35
36 define i32 @f3() { 36 define i32 @f3() {
37 ; X32: f3: 37 ; X32: f3:
38 ; X32: calll .L{{[0-9]+}}$pb 38 ; X32: calll .L{{[0-9]+}}$pb
39 ; X32-NEXT: .L{{[0-9]+}}$pb: 39 ; X32-NEXT: .L{{[0-9]+}}$pb:
40 ; X32-NEXT: popl %eax 40 ; X32-NEXT: popl %eax
41 ; X32-NEXT: .Ltmp{{[0-9]+}}: 41 ; X32-NEXT: .Ltmp{{[0-9]+}}:
42 ; X32-NEXT: addl $_GLOBAL_OFFSET_TABLE_+(.Ltmp{{[0-9]+}}-.L{{[0-9]+}}$pb), %eax 42 ; X32-NEXT: addl $_GLOBAL_OFFSET_TABLE_+(.Ltmp{{[0-9]+}}-.L{{[0-9]+}}$pb), %eax
43 ; X32-NEXT: movl %gs:i2@GOTNTPOFF(%eax), %eax 43 ; X32-NEXT: movl i2@GOTNTPOFF(%eax), %eax
44 ; X32-NEXT: movl %gs:(%eax), %eax
44 ; X32-NEXT: ret 45 ; X32-NEXT: ret
45 ; X64: f3: 46 ; X64: f3:
46 ; X64: movq i2@GOTTPOFF(%rip), %rax 47 ; X64: movq i2@GOTTPOFF(%rip), %rax
47 ; X64-NEXT: movl %fs:(%rax), %eax 48 ; X64-NEXT: movl %fs:(%rax), %eax
48 ; X64-NEXT: ret 49 ; X64-NEXT: ret
49 50
50 entry: 51 entry:
51 %tmp1 = load i32* @i2 52 %tmp1 = load i32* @i2
52 ret i32 %tmp1 53 ret i32 %tmp1
53 } 54 }
54 55
55 define i32* @f4() { 56 define i32* @f4() {
56 ; X32: f4: 57 ; X32: f4:
57 ; X32: calll .L{{[0-9]+}}$pb 58 ; X32: calll .L{{[0-9]+}}$pb
58 ; X32-NEXT: .L{{[0-9]+}}$pb: 59 ; X32-NEXT: .L{{[0-9]+}}$pb:
59 ; X32-NEXT: popl %eax 60 ; X32-NEXT: popl %ecx
60 ; X32-NEXT: .Ltmp{{[0-9]+}}: 61 ; X32-NEXT: .Ltmp{{[0-9]+}}:
61 ; X32-NEXT: addl $_GLOBAL_OFFSET_TABLE_+(.Ltmp{{[0-9]+}}-.L{{[0-9]+}}$pb), %eax 62 ; X32-NEXT: addl $_GLOBAL_OFFSET_TABLE_+(.Ltmp{{[0-9]+}}-.L{{[0-9]+}}$pb), %ecx
62 ; X32-NEXT: leal i2@GOTNTPOFF(%eax), %eax 63 ; X32-NEXT: movl %gs:0, %eax
63 ; X32-NEXT: addl %gs:0, %eax 64 ; X32-NEXT: addl i2@GOTNTPOFF(%ecx), %eax
64 ; X32-NEXT: ret 65 ; X32-NEXT: ret
65 ; X64: f4: 66 ; X64: f4:
66 ; X64: movq %fs:0, %rax 67 ; X64: movq %fs:0, %rax
67 ; X64-NEXT: addq i2@GOTTPOFF(%rip), %rax 68 ; X64-NEXT: addq i2@GOTTPOFF(%rip), %rax
68 ; X64-NEXT: ret 69 ; X64-NEXT: ret
69 70
70 entry: 71 entry:
71 ret i32* @i2 72 ret i32* @i2
72 } 73 }
OLDNEW
« no previous file with comments | « llvm/lib/Target/X86/X86ISelLowering.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698