Add supported asm types for LoongArch32 by heiher · Pull Request #142248 · rust-lang/rust (original) (raw)

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Conversation10 Commits1 Checks9 Files changed

Conversation

This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.Learn more about bidirectional Unicode characters

[ Show hidden characters]({{ revealButtonHref }})

@heiher

@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

Jun 9, 2025

compiler-errors

match self {
Self::reg => types! { _: I8, I16, I32, I64, F32, F64; },
Self::reg => {
if arch == InlineAsmArch::LoongArch64 {

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

should we make this an exhaustive match?

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

compiler-errors

| | SPARC | `reg` | None | `i8`, `i16`, `i32`, `i64` (SPARC64 only) | | | -------------- | -------- | ---- | ------------------------------------------------ | | | | SPARC | `yreg` | N/A | Only clobbers | | | | LoongArch32 | `reg` | None | `i8`, `i16`, `i32`, `f32` | | | | LoongArch32 | `freg` | None | `f32`, `f64` | |

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The code above reference LoongArch64 but this table doesn't. Is that a mistake?

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could you also add LoongArch32 to the table above?

The code above reference LoongArch64 but this table doesn't. Is that a mistake?

LoongArch64 assembly is already stable. This PR adds it for LoongArch32.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

tgross35

Comment on lines 42 to 44

types! { _: I8, I16, I32, I64, F32, F64; }
} else {
types! { _: I8, I16, I32, F32; }

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not something to do here, but as a note f16 could probably get allowed in GPRs at some point (maybe also fregs? Not sure what the ABI status is), cc #125398.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll submit a separate PR to add support for types like f16 for both LoongArch32 and LoongArch64.

Amanieu

(Self::reg, InlineAsmArch::LoongArch64) => types! { _: I8, I16, I32, I64, F32, F64; },
(Self::reg, InlineAsmArch::LoongArch32) => types! { _: I8, I16, I32, F32; },
(Self::freg, _) => types! { f: F32; d: F64; },
_ => unimplemented!("unsupported register class"),

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should be unreachable! instead of unimplemented!.

@heiher

@Amanieu

@bors

📌 Commit de8a91b has been approved by Amanieu

It is now in the queue for this repository.

@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

Jun 10, 2025

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

Jun 10, 2025

@fmease

Add supported asm types for LoongArch32

r? @Amanieu

bors added a commit that referenced this pull request

Jun 11, 2025

@bors

Rollup of 13 pull requests

Successful merges:

Failed merges:

r? @ghost @rustbot modify labels: rollup

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

Jun 11, 2025

@workingjubilee

Add supported asm types for LoongArch32

r? @Amanieu

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

Jun 11, 2025

@workingjubilee

Add supported asm types for LoongArch32

r? @Amanieu

bors added a commit that referenced this pull request

Jun 11, 2025

@bors

Rollup of 13 pull requests

Successful merges:

r? @ghost @rustbot modify labels: rollup

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

Jun 12, 2025

@workingjubilee

Add supported asm types for LoongArch32

r? @Amanieu

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

Jun 12, 2025

@workingjubilee

Add supported asm types for LoongArch32

r? @Amanieu

bors added a commit that referenced this pull request

Jun 13, 2025

@bors

Rollup of 9 pull requests

Successful merges:

Failed merges:

r? @ghost @rustbot modify labels: rollup

try-job: aarch64-apple try-job: x86_64-msvc-1 try-job: x86_64-gnu try-job: dist-i586-gnu-i586-i686-musl try-job: test-various

bors added a commit that referenced this pull request

Jun 13, 2025

@bors

Rollup of 9 pull requests

Successful merges:

Failed merges:

r? @ghost @rustbot modify labels: rollup

try-job: aarch64-apple try-job: x86_64-msvc-1 try-job: x86_64-gnu try-job: dist-i586-gnu-i586-i686-musl try-job: test-various

rust-timer added a commit that referenced this pull request

Jun 13, 2025

@rust-timer

Rollup merge of #142248 - heiher:loong32-asm-types, r=Amanieu

Add supported asm types for LoongArch32

r? @Amanieu

@heiher heiher deleted the loong32-asm-types branch

June 13, 2025 21:29

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

Jun 14, 2025

@bors

bjorn3 pushed a commit to rust-lang/rustc_codegen_cranelift that referenced this pull request

Jun 14, 2025

@bors

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

Jun 16, 2025

@bors

github-actions bot pushed a commit to model-checking/verify-rust-std that referenced this pull request

Jun 18, 2025

@bors

…iaskrgr

Rollup of 9 pull requests

Successful merges:

Failed merges:

r? @ghost @rustbot modify labels: rollup

try-job: aarch64-apple try-job: x86_64-msvc-1 try-job: x86_64-gnu try-job: dist-i586-gnu-i586-i686-musl try-job: test-various

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

Jun 28, 2025

@bors

Labels

S-waiting-on-bors

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

T-compiler

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