diff options
| author | Jacob Pratt <jacob@jhpratt.dev> | 2025-08-21 17:57:49 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-08-21 17:57:49 -0400 |
| commit | 32975fe542f4d27d42c4f21e904a040d7b2156e6 (patch) | |
| tree | d9af3c8172c67e889df023593178ccea1db3add0 /compiler/rustc_codegen_llvm/src | |
| parent | 0a0553e2e4fa19cb5d87286e0960bb984bf503aa (diff) | |
| parent | 74c6fdf171e04e368e6e2179158396a4ead6c634 (diff) | |
| download | rust-32975fe542f4d27d42c4f21e904a040d7b2156e6.tar.gz rust-32975fe542f4d27d42c4f21e904a040d7b2156e6.zip | |
Rollup merge of #144541 - folkertdev:c-variadic-same-program-multiple-abis-arm, r=RalfJung,davidtwco
c-variadic: multiple ABIs in the same program for arm similar to https://github.com/rust-lang/rust/pull/144379, but for arm, requested in https://github.com/rust-lang/rust/pull/144066. Quoting https://github.com/rust-lang/reference/issues/1946#issuecomment-3124555690 > `"aapcs"` specifically refers to the soft-float ABI where floating-point values are passed in integer registers. However for c-variadic functions, `aapcs` behaves the same as `C`: https://github.com/ARM-software/abi-aa/blob/main/aapcs32/aapcs32.rst#65parameter-passing > A variadic function is always marshaled as for the base standard. https://github.com/ARM-software/abi-aa/blob/main/aapcs32/aapcs32.rst#7the-standard-variants > This section applies only to non-variadic functions. For a variadic function the base standard is always used both for argument passing and result return. --- I also noticed that rustc currently emit more instructions than clang for c-variadic functions on arm, see https://godbolt.org/z/hMce9rnTh. I'll fix that separately. (edit: https://github.com/rust-lang/rust/pull/144549) try-job: armhf-gnu r? `@RalfJung`
Diffstat (limited to 'compiler/rustc_codegen_llvm/src')
0 files changed, 0 insertions, 0 deletions
