Commit 6135504
committed
[ARM][DAGISel] USe correct ABI for atomic functions
The AArch32 PCS passes small integer arguments in registers by zero- or
sign-extending them in the caller, but we were previously generating
calls to the __atomic and __sync functions which left other values in
the high bits. This is important in practice for the atomic min/max
functions, which have signed versions which expect the value to have
been correctly sign-extended.
Fixes #61880.1 parent 1bae5be commit 6135504
File tree
4 files changed
+51
-17
lines changed- llvm
- lib/CodeGen/SelectionDAG
- test/CodeGen/ARM
4 files changed
+51
-17
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4386 | 4386 | | |
4387 | 4387 | | |
4388 | 4388 | | |
| 4389 | + | |
| 4390 | + | |
| 4391 | + | |
4389 | 4392 | | |
| 4393 | + | |
| 4394 | + | |
| 4395 | + | |
| 4396 | + | |
| 4397 | + | |
| 4398 | + | |
| 4399 | + | |
| 4400 | + | |
| 4401 | + | |
| 4402 | + | |
| 4403 | + | |
| 4404 | + | |
| 4405 | + | |
| 4406 | + | |
| 4407 | + | |
| 4408 | + | |
| 4409 | + | |
| 4410 | + | |
| 4411 | + | |
| 4412 | + | |
4390 | 4413 | | |
4391 | 4414 | | |
4392 | | - | |
4393 | | - | |
| 4415 | + | |
| 4416 | + | |
4394 | 4417 | | |
4395 | 4418 | | |
4396 | 4419 | | |
4397 | 4420 | | |
4398 | 4421 | | |
4399 | 4422 | | |
4400 | | - | |
| 4423 | + | |
| 4424 | + | |
4401 | 4425 | | |
4402 | | - | |
4403 | | - | |
4404 | | - | |
4405 | | - | |
| 4426 | + | |
| 4427 | + | |
| 4428 | + | |
4406 | 4429 | | |
4407 | 4430 | | |
4408 | 4431 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
15 | | - | |
| 15 | + | |
| 16 | + | |
16 | 17 | | |
17 | | - | |
18 | | - | |
| 18 | + | |
19 | 19 | | |
20 | 20 | | |
21 | 21 | | |
| |||
25 | 25 | | |
26 | 26 | | |
27 | 27 | | |
28 | | - | |
29 | 28 | | |
30 | | - | |
31 | | - | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
32 | 33 | | |
33 | 34 | | |
34 | 35 | | |
| |||
52 | 53 | | |
53 | 54 | | |
54 | 55 | | |
55 | | - | |
| 56 | + | |
| 57 | + | |
56 | 58 | | |
57 | | - | |
58 | | - | |
| 59 | + | |
59 | 60 | | |
60 | 61 | | |
61 | 62 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
203 | 203 | | |
204 | 204 | | |
205 | 205 | | |
206 | | - | |
| 206 | + | |
207 | 207 | | |
208 | 208 | | |
209 | 209 | | |
| |||
692 | 692 | | |
693 | 693 | | |
694 | 694 | | |
| 695 | + | |
695 | 696 | | |
696 | 697 | | |
697 | 698 | | |
| |||
756 | 757 | | |
757 | 758 | | |
758 | 759 | | |
| 760 | + | |
759 | 761 | | |
760 | 762 | | |
761 | 763 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
396 | 396 | | |
397 | 397 | | |
398 | 398 | | |
| 399 | + | |
399 | 400 | | |
400 | 401 | | |
401 | 402 | | |
| |||
447 | 448 | | |
448 | 449 | | |
449 | 450 | | |
| 451 | + | |
450 | 452 | | |
451 | 453 | | |
452 | 454 | | |
| |||
478 | 480 | | |
479 | 481 | | |
480 | 482 | | |
| 483 | + | |
| 484 | + | |
481 | 485 | | |
482 | 486 | | |
483 | 487 | | |
| |||
524 | 528 | | |
525 | 529 | | |
526 | 530 | | |
| 531 | + | |
527 | 532 | | |
528 | 533 | | |
529 | 534 | | |
| |||
575 | 580 | | |
576 | 581 | | |
577 | 582 | | |
| 583 | + | |
578 | 584 | | |
579 | 585 | | |
580 | 586 | | |
| |||
606 | 612 | | |
607 | 613 | | |
608 | 614 | | |
| 615 | + | |
| 616 | + | |
609 | 617 | | |
610 | 618 | | |
611 | 619 | | |
| |||
0 commit comments