Rollup merge of #132638 - taiki-e:ppc-asm-fixme, r=jieyouxu

Remove fixme comment about clobber_abi on PowerPC

This was considered an unresolved question in https://github.com/rust-lang/rust/pull/131341, but according to the ABI document published in 2011 by Power.org the current implementation is fine as-is.
https://github.com/rust-lang/rust/pull/131341#discussion_r1829358396

> According to [Power Architecture 32-bit Application Binary Interface Supplement 1.0 - Linux & Embedded](https://web.archive.org/web/20120608163804/https://www.power.org/resources/downloads/Power-Arch-32-bit-ABI-supp-1.0-Unified.pdf) published in 2011, PPC32 has the same convention here as PPC64.
>
> Therefore, we can just remove the FIXME comment here.

r? workingjubilee
This commit is contained in:
Matthias Krüger 2024-11-07 18:19:37 +01:00 committed by GitHub
commit 27c193496d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -1128,6 +1128,21 @@ macro_rules! clobbered_regs {
}, },
InlineAsmClobberAbi::PowerPC => clobbered_regs! { InlineAsmClobberAbi::PowerPC => clobbered_regs! {
PowerPC PowerPCInlineAsmReg { PowerPC PowerPCInlineAsmReg {
// Refs:
// - PPC32 SysV: "3.2. Function Calling Sequence" in Power Architecture® 32-bit Application Binary Interface Supplement 1.0 - Linux® & Embedded
// https://web.archive.org/web/20120608163804/https://www.power.org/resources/downloads/Power-Arch-32-bit-ABI-supp-1.0-Unified.pdf
// - PPC64 ELFv1: "3.2. Function Calling Sequence" in 64-bit PowerPC ELF Application Binary Interface Supplement 1.9
// https://refspecs.linuxfoundation.org/ELF/ppc64/PPC-elf64abi.html#FUNC-CALL
// - PPC64 ELFv2: "2.2 Function Calling Sequence" in 64-Bit ELF V2 ABI Specification: Power Architecture, Revision 1.5
// https://openpowerfoundation.org/specifications/64bitelfabi/
// - AIX:
// - Register usage and conventions
// https://www.ibm.com/docs/en/aix/7.3?topic=overview-register-usage-conventions
// - Special registers in the PowerPC®
// https://www.ibm.com/docs/en/aix/7.3?topic=overview-special-registers-in-powerpc
// - AIX vector programming
// https://www.ibm.com/docs/en/aix/7.3?topic=concepts-aix-vector-programming
// r0, r3-r12 // r0, r3-r12
r0, r0,
r3, r4, r5, r6, r7, r3, r4, r5, r6, r7,
@ -1138,8 +1153,6 @@ macro_rules! clobbered_regs {
f8, f9, f10, f11, f12, f13, f8, f9, f10, f11, f12, f13,
// v0-v19 // v0-v19
// FIXME: PPC32 SysV ABI does not mention vector registers processing.
// https://refspecs.linuxfoundation.org/elf/elfspec_ppc.pdf
v0, v1, v2, v3, v4, v5, v6, v7, v0, v1, v2, v3, v4, v5, v6, v7,
v8, v9, v10, v11, v12, v13, v14, v8, v9, v10, v11, v12, v13, v14,
v15, v16, v17, v18, v19, v15, v16, v17, v18, v19,