Mercurial > hg > CbC > CbC_llvm
comparison lld/test/ELF/mips-npic-call-pic-script.s @ 150:1d019706d866
LLVM10
author | anatofuz |
---|---|
date | Thu, 13 Feb 2020 15:10:13 +0900 |
parents | |
children | 0572611fdcc8 |
comparison
equal
deleted
inserted
replaced
147:c2174574ed3a | 150:1d019706d866 |
---|---|
1 # REQUIRES: mips | |
2 # Check LA25 stubs creation. This stub code is necessary when | |
3 # non-PIC code calls PIC function. | |
4 # RUN: echo "SECTIONS { .out 0x20000 : { *(.text.*) . = . + 0x100 ; *(.text) } }" > %t1.script | |
5 # RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux \ | |
6 # RUN: %p/Inputs/mips-fpic.s -o %t-fpic.o | |
7 # RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux \ | |
8 # RUN: %p/Inputs/mips-fnpic.s -o %t-fnpic.o | |
9 # RUN: ld.lld -r %t-fpic.o %t-fnpic.o -o %t-sto-pic.o | |
10 # RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux \ | |
11 # RUN: %p/Inputs/mips-pic.s -o %t-pic.o | |
12 # RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux %s -o %t-npic.o | |
13 # RUN: ld.lld --script %t1.script %t-npic.o %t-pic.o %t-sto-pic.o -o %t.exe | |
14 # RUN: llvm-objdump -d --no-show-raw-insn %t.exe | FileCheck %s | |
15 | |
16 # CHECK: Disassembly of section .out: | |
17 # CHECK-EMPTY: | |
18 # CHECK-NEXT: __LA25Thunk_foo1a: | |
19 # CHECK-NEXT: 20000: lui $25, 2 | |
20 # CHECK-NEXT: 20004: j 131104 <foo1a> | |
21 # CHECK-NEXT: 20008: addiu $25, $25, 32 | |
22 # CHECK-NEXT: 2000c: nop | |
23 | |
24 # CHECK: __LA25Thunk_foo1b: | |
25 # CHECK-NEXT: 20010: lui $25, 2 | |
26 # CHECK-NEXT: 20014: j 131108 <foo1b> | |
27 # CHECK-NEXT: 20018: addiu $25, $25, 36 | |
28 # CHECK-NEXT: 2001c: nop | |
29 | |
30 # CHECK: foo1a: | |
31 # CHECK-NEXT: 20020: nop | |
32 | |
33 # CHECK: foo1b: | |
34 # CHECK-NEXT: 20024: nop | |
35 | |
36 # CHECK: __LA25Thunk_foo2: | |
37 # CHECK-NEXT: 20028: lui $25, 2 | |
38 # CHECK-NEXT: 2002c: j 131136 <foo2> | |
39 # CHECK-NEXT: 20030: addiu $25, $25, 64 | |
40 # CHECK-NEXT: 20034: nop | |
41 | |
42 # CHECK: foo2: | |
43 # CHECK-NEXT: 20040: nop | |
44 | |
45 # CHECK: __start: | |
46 # CHECK-NEXT: 20150: jal 131072 <__LA25Thunk_foo1a> | |
47 # CHECK-NEXT: 20154: nop | |
48 # CHECK-NEXT: 20158: jal 131112 <__LA25Thunk_foo2> | |
49 # CHECK-NEXT: 2015c: nop | |
50 # CHECK-NEXT: 20160: jal 131088 <__LA25Thunk_foo1b> | |
51 # CHECK-NEXT: 20164: nop | |
52 # CHECK-NEXT: 20168: jal 131112 <__LA25Thunk_foo2> | |
53 # CHECK-NEXT: 2016c: nop | |
54 # CHECK-NEXT: 20170: jal 131456 <__LA25Thunk_fpic> | |
55 # CHECK-NEXT: 20174: nop | |
56 # CHECK-NEXT: 20178: jal 131488 <fnpic> | |
57 # CHECK-NEXT: 2017c: nop | |
58 | |
59 # CHECK: __LA25Thunk_fpic: | |
60 # CHECK-NEXT: 20180: lui $25, 2 | |
61 # CHECK-NEXT: 20184: j 131472 <fpic> | |
62 # CHECK-NEXT: 20188: addiu $25, $25, 400 | |
63 # CHECK-NEXT: 2018c: nop | |
64 | |
65 # CHECK: fpic: | |
66 # CHECK-NEXT: 20190: nop | |
67 | |
68 # CHECK: fnpic: | |
69 # CHECK-NEXT: 201a0: nop | |
70 | |
71 .text | |
72 .globl __start | |
73 __start: | |
74 jal foo1a | |
75 jal foo2 | |
76 jal foo1b | |
77 jal foo2 | |
78 jal fpic | |
79 jal fnpic | |
80 | |
81 # Test script with orphans added to existing OutputSection, the .text.1 and | |
82 # .text.2 sections will be added to .text | |
83 # RUN: echo "SECTIONS { .text 0x20000 : { *(.text) } }" > %t2.script | |
84 # RUN: ld.lld --script %t2.script %t-npic.o %t-pic.o %t-sto-pic.o -o %t2.exe | |
85 # RUN: llvm-objdump -d --no-show-raw-insn %t2.exe | FileCheck -check-prefix=ORPH1 %s | |
86 | |
87 # ORPH1: Disassembly of section .text: | |
88 # ORPH1-EMPTY: | |
89 # ORPH1-NEXT: __start: | |
90 # ORPH1-NEXT: 20000: jal 131156 <__LA25Thunk_foo1a> | |
91 # ORPH1-NEXT: 20004: nop | |
92 # ORPH1-NEXT: 20008: jal 131208 <__LA25Thunk_foo2> | |
93 # ORPH1-NEXT: 2000c: nop | |
94 # ORPH1-NEXT: 20010: jal 131172 <__LA25Thunk_foo1b> | |
95 # ORPH1-NEXT: 20014: nop | |
96 # ORPH1-NEXT: 20018: jal 131208 <__LA25Thunk_foo2> | |
97 # ORPH1-NEXT: 2001c: nop | |
98 # ORPH1-NEXT: 20020: jal 131120 <__LA25Thunk_fpic> | |
99 # ORPH1-NEXT: 20024: nop | |
100 # ORPH1-NEXT: 20028: jal 131152 <fnpic> | |
101 # ORPH1-NEXT: 2002c: nop | |
102 | |
103 # ORPH1: __LA25Thunk_fpic: | |
104 # ORPH1-NEXT: 20030: lui $25, 2 | |
105 # ORPH1-NEXT: 20034: j 131136 <fpic> | |
106 # ORPH1-NEXT: 20038: addiu $25, $25, 64 | |
107 # ORPH1-NEXT: 2003c: nop | |
108 | |
109 # ORPH1: fpic: | |
110 # ORPH1-NEXT: 20040: nop | |
111 | |
112 # ORPH1: fnpic: | |
113 # ORPH1-NEXT: 20050: nop | |
114 | |
115 # ORPH1: __LA25Thunk_foo1a: | |
116 # ORPH1-NEXT: 20054: lui $25, 2 | |
117 # ORPH1-NEXT: 20058: j 131200 <foo1a> | |
118 # ORPH1-NEXT: 2005c: addiu $25, $25, 128 | |
119 # ORPH1-NEXT: 20060: nop | |
120 | |
121 # ORPH1: __LA25Thunk_foo1b: | |
122 # ORPH1-NEXT: 20064: lui $25, 2 | |
123 # ORPH1-NEXT: 20068: j 131204 <foo1b> | |
124 # ORPH1-NEXT: 2006c: addiu $25, $25, 132 | |
125 # ORPH1-NEXT: 20070: nop | |
126 | |
127 # ORPH1: foo1a: | |
128 # ORPH1-NEXT: 20080: nop | |
129 | |
130 # ORPH1: foo1b: | |
131 # ORPH1-NEXT: 20084: nop | |
132 | |
133 # ORPH1: __LA25Thunk_foo2: | |
134 # ORPH1-NEXT: 20088: lui $25, 2 | |
135 # ORPH1-NEXT: 2008c: j 131232 <foo2> | |
136 # ORPH1-NEXT: 20090: addiu $25, $25, 160 | |
137 # ORPH1-NEXT: 20094: nop | |
138 | |
139 # ORPH1: foo2: | |
140 # ORPH1-NEXT: 200a0: nop | |
141 | |
142 # Test script with orphans added to new OutputSection, the .text.1 and | |
143 # .text.2 sections will form a new OutputSection .text | |
144 # RUN: echo "SECTIONS { .out 0x20000 : { *(.text) } }" > %t3.script | |
145 # RUN: ld.lld --script %t3.script %t-npic.o %t-pic.o %t-sto-pic.o -o %t3.exe | |
146 # RUN: llvm-objdump -d --no-show-raw-insn %t3.exe | FileCheck -check-prefix=ORPH2 %s | |
147 | |
148 # ORPH2: Disassembly of section .out: | |
149 # ORPH2-EMPTY: | |
150 # ORPH2-NEXT: __start: | |
151 # ORPH2-NEXT: 20000: jal 131168 <__LA25Thunk_foo1a> | |
152 # ORPH2-NEXT: 20004: nop | |
153 # ORPH2-NEXT: 20008: jal 131208 <__LA25Thunk_foo2> | |
154 # ORPH2-NEXT: 2000c: nop | |
155 # ORPH2-NEXT: 20010: jal 131184 <__LA25Thunk_foo1b> | |
156 # ORPH2-NEXT: 20014: nop | |
157 # ORPH2-NEXT: 20018: jal 131208 <__LA25Thunk_foo2> | |
158 # ORPH2-NEXT: 2001c: nop | |
159 # ORPH2-NEXT: 20020: jal 131120 <__LA25Thunk_fpic> | |
160 # ORPH2-NEXT: 20024: nop | |
161 # ORPH2-NEXT: 20028: jal 131152 <fnpic> | |
162 # ORPH2-NEXT: 2002c: nop | |
163 | |
164 # ORPH2: __LA25Thunk_fpic: | |
165 # ORPH2-NEXT: 20030: lui $25, 2 | |
166 # ORPH2-NEXT: 20034: j 131136 <fpic> | |
167 # ORPH2-NEXT: 20038: addiu $25, $25, 64 | |
168 # ORPH2-NEXT: 2003c: nop | |
169 | |
170 # ORPH2: fpic: | |
171 # ORPH2-NEXT: 20040: nop | |
172 | |
173 # ORPH2: fnpic: | |
174 # ORPH2-NEXT: 20050: nop | |
175 # ORPH2-EMPTY: | |
176 # ORPH2-NEXT: Disassembly of section .text: | |
177 # ORPH2-EMPTY: | |
178 | |
179 # ORPH2-NEXT: __LA25Thunk_foo1a: | |
180 # ORPH2-NEXT: 20060: lui $25, 2 | |
181 # ORPH2-NEXT: 20064: j 131200 <foo1a> | |
182 # ORPH2-NEXT: 20068: addiu $25, $25, 128 | |
183 # ORPH2-NEXT: 2006c: nop | |
184 | |
185 # ORPH2: __LA25Thunk_foo1b: | |
186 # ORPH2-NEXT: 20070: lui $25, 2 | |
187 # ORPH2-NEXT: 20074: j 131204 <foo1b> | |
188 # ORPH2-NEXT: 20078: addiu $25, $25, 132 | |
189 # ORPH2-NEXT: 2007c: nop | |
190 | |
191 # ORPH2: foo1a: | |
192 # ORPH2-NEXT: 20080: nop | |
193 | |
194 # ORPH2: foo1b: | |
195 # ORPH2-NEXT: 20084: nop | |
196 | |
197 # ORPH2: __LA25Thunk_foo2: | |
198 # ORPH2-NEXT: 20088: lui $25, 2 | |
199 # ORPH2-NEXT: 2008c: j 131232 <foo2> | |
200 # ORPH2-NEXT: 20090: addiu $25, $25, 160 | |
201 # ORPH2-NEXT: 20094: nop | |
202 | |
203 # ORPH2: foo2: | |
204 # ORPH2-NEXT: 200a0: nop |