comparison lld/test/ELF/mips-npic-call-pic-script.s @ 173:0572611fdcc8 llvm10 llvm12

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