Commit 4594a61
committed
Merging r325049:
------------------------------------------------------------------------
r325049 | rnk | 2018-02-13 12:47:49 -0800 (Tue, 13 Feb 2018) | 17 lines
[X86] Use EDI for retpoline when no scratch regs are left
Summary:
Instead of solving the hard problem of how to pass the callee to the indirect
jump thunk without a register, just use a CSR. At a call boundary, there's
nothing stopping us from using a CSR to hold the callee as long as we save and
restore it in the prologue.
Also, add tests for this mregparm=3 case. I wrote execution tests for
__llvm_retpoline_push, but they never got committed as lit tests, either
because I never rewrote them or because they got lost in merge conflicts.
Reviewers: chandlerc, dwmw2
Subscribers: javed.absar, kristof.beyls, hiraditya, llvm-commits
Differential Revision: https://reviews.llvm.org/D43214
------------------------------------------------------------------------
git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_50@325090 91177308-0d34-0410-b5e6-96231b3b80d81 parent 8f5f7f9 commit 4594a61
File tree
4 files changed
+76
-72
lines changed- lib/Target/X86
- test/CodeGen/X86
4 files changed
+76
-72
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
26265 | 26265 | | |
26266 | 26266 | | |
26267 | 26267 | | |
26268 | | - | |
26269 | | - | |
26270 | | - | |
26271 | 26268 | | |
26272 | 26269 | | |
26273 | 26270 | | |
| |||
26277 | 26274 | | |
26278 | 26275 | | |
26279 | 26276 | | |
| 26277 | + | |
| 26278 | + | |
| 26279 | + | |
26280 | 26280 | | |
26281 | 26281 | | |
26282 | 26282 | | |
| |||
26286 | 26286 | | |
26287 | 26287 | | |
26288 | 26288 | | |
26289 | | - | |
26290 | | - | |
26291 | | - | |
26292 | 26289 | | |
26293 | 26290 | | |
26294 | 26291 | | |
| |||
26298 | 26295 | | |
26299 | 26296 | | |
26300 | 26297 | | |
| 26298 | + | |
| 26299 | + | |
| 26300 | + | |
26301 | 26301 | | |
26302 | 26302 | | |
26303 | 26303 | | |
| |||
26319 | 26319 | | |
26320 | 26320 | | |
26321 | 26321 | | |
26322 | | - | |
26323 | | - | |
26324 | | - | |
26325 | | - | |
| 26322 | + | |
| 26323 | + | |
26326 | 26324 | | |
26327 | 26325 | | |
26328 | 26326 | | |
26329 | 26327 | | |
26330 | | - | |
| 26328 | + | |
26331 | 26329 | | |
26332 | 26330 | | |
26333 | 26331 | | |
| |||
26345 | 26343 | | |
26346 | 26344 | | |
26347 | 26345 | | |
| 26346 | + | |
| 26347 | + | |
| 26348 | + | |
26348 | 26349 | | |
26349 | 26350 | | |
26350 | 26351 | | |
26351 | | - | |
26352 | | - | |
26353 | | - | |
26354 | | - | |
26355 | | - | |
26356 | | - | |
26357 | | - | |
26358 | | - | |
26359 | | - | |
26360 | | - | |
26361 | | - | |
26362 | | - | |
26363 | | - | |
26364 | | - | |
26365 | | - | |
26366 | | - | |
26367 | | - | |
26368 | | - | |
26369 | | - | |
26370 | | - | |
26371 | | - | |
| 26352 | + | |
| 26353 | + | |
| 26354 | + | |
| 26355 | + | |
| 26356 | + | |
| 26357 | + | |
26372 | 26358 | | |
26373 | 26359 | | |
26374 | 26360 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
43 | 43 | | |
44 | 44 | | |
45 | 45 | | |
46 | | - | |
| 46 | + | |
47 | 47 | | |
48 | 48 | | |
49 | 49 | | |
| |||
127 | 127 | | |
128 | 128 | | |
129 | 129 | | |
130 | | - | |
| 130 | + | |
131 | 131 | | |
132 | 132 | | |
133 | 133 | | |
| |||
151 | 151 | | |
152 | 152 | | |
153 | 153 | | |
154 | | - | |
155 | | - | |
156 | | - | |
| 154 | + | |
| 155 | + | |
157 | 156 | | |
158 | 157 | | |
159 | 158 | | |
| |||
174 | 173 | | |
175 | 174 | | |
176 | 175 | | |
177 | | - | |
178 | | - | |
179 | | - | |
180 | | - | |
181 | | - | |
182 | | - | |
183 | | - | |
184 | | - | |
185 | | - | |
186 | | - | |
187 | | - | |
188 | | - | |
189 | | - | |
190 | | - | |
191 | | - | |
192 | | - | |
193 | | - | |
194 | | - | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
195 | 180 | | |
196 | 181 | | |
197 | 182 | | |
198 | 183 | | |
199 | 184 | | |
200 | 185 | | |
201 | | - | |
202 | | - | |
| 186 | + | |
| 187 | + | |
203 | 188 | | |
204 | 189 | | |
205 | 190 | | |
| |||
301 | 286 | | |
302 | 287 | | |
303 | 288 | | |
304 | | - | |
305 | | - | |
306 | | - | |
307 | | - | |
308 | | - | |
309 | | - | |
| 289 | + | |
310 | 290 | | |
311 | 291 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
336 | 336 | | |
337 | 337 | | |
338 | 338 | | |
339 | | - | |
340 | | - | |
341 | | - | |
342 | | - | |
| 339 | + | |
| 340 | + | |
| 341 | + | |
| 342 | + | |
343 | 343 | | |
344 | 344 | | |
345 | 345 | | |
| |||
351 | 351 | | |
352 | 352 | | |
353 | 353 | | |
354 | | - | |
355 | | - | |
356 | | - | |
357 | | - | |
358 | | - | |
| 354 | + | |
359 | 355 | | |
360 | 356 | | |
361 | 357 | | |
| |||
0 commit comments