diff options
| author | bors <bors@rust-lang.org> | 2017-09-02 19:46:51 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2017-09-02 19:46:51 +0000 |
| commit | 744dd6c1d5db522d5d3b7f2bb82abde5dc41cbeb (patch) | |
| tree | 8aa52013c4f9fb978c3d47c4e8a7b41f122a61a5 /src/rustllvm/RustWrapper.cpp | |
| parent | 204c0a47e7b7e371cf1cdc159404d405b86386ba (diff) | |
| parent | 40b14736a05c1d26d5be38a48a88cb938e317e59 (diff) | |
| download | rust-744dd6c1d5db522d5d3b7f2bb82abde5dc41cbeb.tar.gz rust-744dd6c1d5db522d5d3b7f2bb82abde5dc41cbeb.zip | |
Auto merge of #44066 - cuviper:powerpc64-extern-abi, r=alexcrichton
powerpc64: improve extern struct ABI These fixes all have to do with the 64-bit PowerPC ELF ABI for big-endian targets. The ELF v2 ABI for powerpc64le already worked well. - Return after marking return aggregates indirect. Fixes #42757. - Pass one-member float aggregates as direct argument values. - Aggregate arguments less than 64-bit must be written in the least- significant bits of the parameter space. - Larger aggregates are instead padded at the tail. (i.e. filling MSBs, padding the remaining LSBs.) New tests were also added for the single-float aggregate, and a 3-byte aggregate to check that it's filled into LSBs. Overall, at least these formerly-failing tests now pass on powerpc64: - run-make/extern-fn-struct-passing-abi - run-make/extern-fn-with-packed-struct - run-pass/extern-pass-TwoU16s.rs - run-pass/extern-pass-TwoU8s.rs - run-pass/struct-return.rs
Diffstat (limited to 'src/rustllvm/RustWrapper.cpp')
0 files changed, 0 insertions, 0 deletions
