a9bb599fb1
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 |
||
---|---|---|
.. | ||
codegen | ||
codegen-units | ||
compile-fail | ||
compile-fail-fulldeps | ||
debuginfo | ||
incremental | ||
mir-opt | ||
parse-fail | ||
pretty | ||
run-fail | ||
run-fail-fulldeps | ||
run-make | ||
run-pass | ||
run-pass-fulldeps | ||
run-pass-valgrind | ||
rustdoc | ||
ui | ||
ui-fulldeps | ||
COMPILER_TESTS.md |