about summary refs log tree commit diff
path: root/compiler/rustc_codegen_llvm/src
diff options
context:
space:
mode:
authorMatthias Krüger <matthias.krueger@famsik.de>2024-08-13 12:12:21 +0200
committerGitHub <noreply@github.com>2024-08-13 12:12:21 +0200
commit00d040e50a8ab80e3f30aebcb136af8dd61715e7 (patch)
tree9340de554975336dcb4333c01677f905589a40cf /compiler/rustc_codegen_llvm/src
parent591ecb88dffdb0f233e2fae74fd3d7c81d65ff0c (diff)
parent715728f546ec13fd7e59fd09eef96a15d936fc2a (diff)
downloadrust-00d040e50a8ab80e3f30aebcb136af8dd61715e7.tar.gz
rust-00d040e50a8ab80e3f30aebcb136af8dd61715e7.zip
Rollup merge of #128643 - beetrees:ppc64-abi-fix, r=bjorn3
Refactor `powerpc64` call ABI handling

As the [specification](https://openpowerfoundation.org/specifications/64bitelfabi/) for the ELFv2 ABI states that returned aggregates are returned like arguments as long as they are at most two doublewords, I've merged the `classify_arg` and `classify_ret` functions to reduce code duplication. The only functional change is to fix #128579: the `classify_ret` function was incorrectly handling aggregates where `bits > 64 && bits < 128`. I've used the aggregate handling implementation from `classify_arg` which doesn't have this issue.

`@awilfox` could you test this on `powerpc64-unknown-linux-musl`? I'm only able to cross-test on `powerpc64-unknown-linux-gnu` and `powerpc64le-unknown-linux-gnu` locally at the moment, and as a tier 3 target `powerpc64-unknown-linux-musl` has zero CI coverage.

Fixes: #128579
Diffstat (limited to 'compiler/rustc_codegen_llvm/src')
0 files changed, 0 insertions, 0 deletions