Commit e648aa8
committed
Fix C aggregate-passing ABI on powerpc
The existing code (which looks like it was copied from MIPS) passes
aggregates by value in registers. This is wrong. According to the SVR4
powerpc psABI, all aggregates are passed indirectly.
See rust-lang#64259 for more discussion, which addresses the ABI for the special
case of ZSTs (empty structs).1 parent 1423bec commit e648aa8
2 files changed
+11
-32
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
554 | 554 | | |
555 | 555 | | |
556 | 556 | | |
557 | | - | |
| 557 | + | |
558 | 558 | | |
559 | 559 | | |
560 | 560 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
2 | | - | |
| 1 | + | |
3 | 2 | | |
4 | | - | |
5 | | - | |
6 | | - | |
7 | | - | |
8 | | - | |
9 | | - | |
| 3 | + | |
| 4 | + | |
10 | 5 | | |
11 | | - | |
| 6 | + | |
| 7 | + | |
12 | 8 | | |
13 | 9 | | |
14 | 10 | | |
15 | | - | |
16 | | - | |
17 | | - | |
18 | | - | |
19 | | - | |
20 | | - | |
21 | | - | |
| 11 | + | |
22 | 12 | | |
23 | | - | |
24 | | - | |
25 | | - | |
26 | | - | |
27 | | - | |
28 | | - | |
29 | | - | |
| 13 | + | |
30 | 14 | | |
31 | 15 | | |
32 | 16 | | |
33 | | - | |
34 | | - | |
35 | 17 | | |
36 | 18 | | |
37 | | - | |
38 | | - | |
39 | | - | |
40 | | - | |
| 19 | + | |
41 | 20 | | |
42 | | - | |
| 21 | + | |
43 | 22 | | |
44 | 23 | | |
45 | 24 | | |
46 | 25 | | |
47 | | - | |
| 26 | + | |
48 | 27 | | |
49 | 28 | | |
0 commit comments