Support clobber_abi and vector registers (clobber-only) in PowerPC inline assembly by taiki-e · Pull Request #131341 · rust-lang/rust (original) (raw)

taiki-e

@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

Oct 7, 2024

taiki-e

Comment on lines +1121 to +1145

taiki-e

Comment on lines 138 to 139

bzEq

bzEq

bzEq approved these changes Oct 13, 2024

workingjubilee

Comment on lines +162 to +165

@taiki-e

workingjubilee added a commit to workingjubilee/rustc that referenced this pull request

Nov 3, 2024

@workingjubilee

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

Nov 4, 2024

@rust-timer

@bors bors added S-waiting-on-bors

Status: Waiting on bors to run and complete tests. Bors will change the label on completion.

and removed S-waiting-on-review

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

labels

Nov 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

Rollup of 9 pull requests

Successful merges:

r? @ghost @rustbot modify labels: rollup

This was referenced

Nov 5, 2024

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

Nov 7, 2024

@matthiaskrgr

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

Nov 7, 2024

@rust-timer

github-actions bot pushed a commit to rust-lang/miri that referenced this pull request

Nov 9, 2024

@bors

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 #93335.

This basically does a similar thing I did in rust-lang/rust#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 #111335 and #124279

cc @ecnelises @bzEq @lu-zero

r? @Amanieu

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

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

lnicola pushed a commit to lnicola/rust-analyzer that referenced this pull request

Nov 28, 2024

@bors

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 #93335.

This basically does a similar thing I did in rust-lang/rust#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 #111335 and #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 rust-lang/rustc_codegen_gcc that referenced this pull request

Dec 11, 2024

@bors

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 #93335.

This basically does a similar thing I did in rust-lang/rust#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 #111335 and #124279

cc @ecnelises @bzEq @lu-zero

r? @Amanieu

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

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