Add asm clobbers for PPC / PPC64 by Richard-Rogalski · Pull Request #111335 · rust-lang/rust (original) (raw)

Richard-Rogalski

@Richard-Rogalski

@rustbot rustbot added S-waiting-on-review

Status: Awaiting review from the assignee but also interested parties.

T-compiler

Relevant to the compiler team, which will review and decide on the PR/issue.

labels

May 8, 2023

Amanieu

@Richard-Rogalski

@Richard-Rogalski

Amanieu

@Dylan-DPC Dylan-DPC added S-waiting-on-author

Status: This is awaiting some action (such as code changes or more information) from the author.

and removed S-waiting-on-review

Status: Awaiting review from the assignee but also interested parties.

labels

Aug 12, 2023

@Dylan-DPC Dylan-DPC added S-inactive

Status: Inactive and waiting on the author. This is often applied to closed PRs.

and removed S-waiting-on-author

Status: This is awaiting some action (such as code changes or more information) from the author.

labels

Feb 9, 2024

This was referenced

Oct 5, 2024

tgross35 added a commit to tgross35/rust that referenced this pull request

Nov 5, 2024

@tgross35

…rkingjubilee

Support clobber_abi and vector registers (clobber-only) in PowerPC inline assembly

This supports clobber_abi which is one of the requirements of stabilization mentioned in rust-lang#93335.

This basically does a similar thing I did in rust-lang#130630 to implement clobber_abi for s390x, but for powerpc/powerpc64/powerpc64le.

Refs:

If I understand the above four ABI documentations correctly, except for the PPC32 SysV's VR (Vector Registers) and 32-bit AIX (currently not supported by rustc)'s r13, there does not appear to be important differences in terms of implementing clobber_abi:

We are currently treating r1-r2, r13 (non-32-bit-AIX), r29-r31, LR, CTR, and VRSAVE as reserved. We are currently not processing anything about FPSCR and VSCR, but I feel those are things that should be processed by preserves_flags rather than clobber_abi if we need to do something about them. (However, PPCRegisterInfo.td in LLVM does not seem to define anything about them.)

Replaces rust-lang#111335 and rust-lang#124279

cc @ecnelises @bzEq @lu-zero

r? @Amanieu

@rustbot label +O-PowerPC +A-inline-assembly

[^r13]: callee-saved, according to LLVM and GCC.

bors added a commit to rust-lang-ci/rust that referenced this pull request

Nov 5, 2024

@bors

…ingjubilee

Support clobber_abi and vector registers (clobber-only) in PowerPC inline assembly

This supports clobber_abi which is one of the requirements of stabilization mentioned in rust-lang#93335.

This basically does a similar thing I did in rust-lang#130630 to implement clobber_abi for s390x, but for powerpc/powerpc64/powerpc64le.

Refs:

If I understand the above four ABI documentations correctly, except for the PPC32 SysV's VR (Vector Registers) and 32-bit AIX (currently not supported by rustc)'s r13, there does not appear to be important differences in terms of implementing clobber_abi:

We are currently treating r1-r2, r13 (non-32-bit-AIX), r29-r31, LR, CTR, and VRSAVE as reserved. We are currently not processing anything about FPSCR and VSCR, but I feel those are things that should be processed by preserves_flags rather than clobber_abi if we need to do something about them. (However, PPCRegisterInfo.td in LLVM does not seem to define anything about them.)

Replaces rust-lang#111335 and rust-lang#124279

cc @ecnelises @bzEq @lu-zero

r? @Amanieu

@rustbot label +O-PowerPC +A-inline-assembly

[^r13]: callee-saved, according to LLVM and GCC.

antoyo pushed a commit to antoyo/rust that referenced this pull request

Jan 13, 2025

@bors

…ingjubilee

Support clobber_abi and vector registers (clobber-only) in PowerPC inline assembly

This supports clobber_abi which is one of the requirements of stabilization mentioned in rust-lang#93335.

This basically does a similar thing I did in rust-lang#130630 to implement clobber_abi for s390x, but for powerpc/powerpc64/powerpc64le.

Refs:

If I understand the above four ABI documentations correctly, except for the PPC32 SysV's VR (Vector Registers) and 32-bit AIX (currently not supported by rustc)'s r13, there does not appear to be important differences in terms of implementing clobber_abi:

We are currently treating r1-r2, r13 (non-32-bit-AIX), r29-r31, LR, CTR, and VRSAVE as reserved. We are currently not processing anything about FPSCR and VSCR, but I feel those are things that should be processed by preserves_flags rather than clobber_abi if we need to do something about them. (However, PPCRegisterInfo.td in LLVM does not seem to define anything about them.)

Replaces rust-lang#111335 and rust-lang#124279

cc @ecnelises @bzEq @lu-zero

r? @Amanieu

@rustbot label +O-PowerPC +A-inline-assembly

[^r13]: callee-saved, according to LLVM and GCC.