rust/compiler/rustc_target/src/callconv
Jacob Pratt 61e572b3f6
Rollup merge of #135785 - folkertdev:s390x-vector-passmode-direct, r=bjorn3
use `PassMode::Direct` for vector types on `s390x`

closes https://github.com/rust-lang/rust/issues/135744
tracking issue: https://github.com/rust-lang/rust/issues/130869

Previously, all vector types were type erased to `Ni8`, now we pass non-wrapped vector types directly. That skips emitting a bunch of casting logic in rustc, that LLVM then has to clean up. The initial LLVM IR is also a bit more readable.

This calling convention is tested extensively in `tests/assembly/s390x-vector-abi.rs`, showing that this change has no impact on the ABI in practice.

r? ````@taiki-e````
2025-01-25 23:26:59 -05:00
..
aarch64.rs aarch64 softfloat target: always pass floats in int registers 2024-11-20 20:41:28 +01:00
amdgpu.rs compiler: Empty out rustc_target::abi 2024-10-11 17:41:52 -07:00
arm.rs compiler: Empty out rustc_target::abi 2024-10-11 17:41:52 -07:00
avr.rs compiler: Empty out rustc_target::abi 2024-10-11 17:41:52 -07:00
bpf.rs compiler: Empty out rustc_target::abi 2024-10-11 17:41:52 -07:00
csky.rs compiler: Empty out rustc_target::abi 2024-10-11 17:41:52 -07:00
hexagon.rs compiler: Empty out rustc_target::abi 2024-10-11 17:41:52 -07:00
loongarch.rs make no-variant types a dedicated Variants variant 2024-12-18 11:01:54 +01:00
m68k.rs compiler: Empty out rustc_target::abi 2024-10-11 17:41:52 -07:00
mips.rs compiler: Empty out rustc_target::abi 2024-10-11 17:41:52 -07:00
mips64.rs compiler: rustc_abi::Abi => BackendRepr 2024-10-29 14:56:00 -07:00
mod.rs Auto merge of #135047 - Flakebi:amdgpu-kernel-cc, r=workingjubilee 2025-01-17 04:36:09 +00:00
msp430.rs compiler: Empty out rustc_target::abi 2024-10-11 17:41:52 -07:00
nvptx64.rs compiler: Empty out rustc_target::abi 2024-10-11 17:41:52 -07:00
powerpc.rs compiler: Empty out rustc_target::abi 2024-10-11 17:41:52 -07:00
powerpc64.rs byval parameter should have align 8 on aix 2024-12-17 18:36:44 -05:00
riscv.rs make no-variant types a dedicated Variants variant 2024-12-18 11:01:54 +01:00
s390x.rs on s390x, use PassMode::Direct for vector types 2025-01-20 21:02:21 +01:00
sparc.rs compiler: Empty out rustc_target::abi 2024-10-11 17:41:52 -07:00
sparc64.rs compiler: rustc_abi::Abi => BackendRepr 2024-10-29 14:56:00 -07:00
wasm.rs use indirect return for i128 and f128 on wasm32 2025-01-16 13:25:40 +01:00
x86.rs rust_for_linux: -Zreg-struct-return commandline flag for X86 (#116973) 2024-12-02 01:14:40 +07:00
x86_64.rs make no-variant types a dedicated Variants variant 2024-12-18 11:01:54 +01:00
x86_win64.rs on Windows, consistently pass ZST by-ref 2025-01-12 13:32:36 +01:00
xtensa.rs compiler: rustc_abi::Abi => BackendRepr 2024-10-29 14:56:00 -07:00