Mercurial > hg > CbC > CbC_llvm
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 |