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 }})
rustbot added S-waiting-on-review
Status: Awaiting review from the assignee but also interested parties.
Relevant to the compiler team, which will review and decide on the PR/issue.
labels
| 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.
| | 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
LoongArch64but 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.
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.
| (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!.
📌 Commit de8a91b has been approved by Amanieu
It is now in the queue for this repository.
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
fmease added a commit to fmease/rust that referenced this pull request
Add supported asm types for LoongArch32
r? @Amanieu
bors added a commit that referenced this pull request
Rollup of 13 pull requests
Successful merges:
- #128425 (Make
missing_fragment_specifieran unconditional error) - #141639 (Expose discriminant values in stable_mir)
- #141967 (Configure bootstrap backport nominations through triagebot)
- #142042 (Make E0621 missing lifetime suggestion verbose)
- #142176 (tests: Split dont-shuffle-bswaps along opt-levels and arches)
- #142235 (Build rustc with assertions in
dist-altjobs) - #142248 (Add supported asm types for LoongArch32)
- #142272 (tests: Change ABIs in tests to more future-resilient ones)
- #142282 (Only run
citooltests on theautobranch) - #142285 (tests: Do not run afoul of asm.validity.non-exhaustive in input-stats)
- #142297 (Implement
//@ needs-target-stdcompiletest directive) - #142298 (Make loongarch-none target maintainers more easily pingable)
- #142306 (Dont unwrap and re-wrap typing envs)
Failed merges:
- #141942 (Implement representation options to smir)
r? @ghost
@rustbot modify labels: rollup
workingjubilee added a commit to workingjubilee/rustc that referenced this pull request
Add supported asm types for LoongArch32
r? @Amanieu
workingjubilee added a commit to workingjubilee/rustc that referenced this pull request
Add supported asm types for LoongArch32
r? @Amanieu
bors added a commit that referenced this pull request
Rollup of 13 pull requests
Successful merges:
- #134841 (Look at proc-macro attributes when encountering unknown attribute)
- #141639 (Expose discriminant values in stable_mir)
- #141967 (Configure bootstrap backport nominations through triagebot)
- #142042 (Make E0621 missing lifetime suggestion verbose)
- #142176 (tests: Split dont-shuffle-bswaps along opt-levels and arches)
- #142248 (Add supported asm types for LoongArch32)
- #142272 (tests: Change ABIs in tests to more future-resilient ones)
- #142282 (Only run
citooltests on theautobranch) - #142297 (Implement
//@ needs-target-stdcompiletest directive) - #142298 (Make loongarch-none target maintainers more easily pingable)
- #142306 (Dont unwrap and re-wrap typing envs)
- #142324 (Remove unneeded
FunctionCxfrom some codegen methods) - #142328 (feat: Add
bit_widthfor unsigned integer types)
r? @ghost
@rustbot modify labels: rollup
workingjubilee added a commit to workingjubilee/rustc that referenced this pull request
Add supported asm types for LoongArch32
r? @Amanieu
workingjubilee added a commit to workingjubilee/rustc that referenced this pull request
Add supported asm types for LoongArch32
r? @Amanieu
bors added a commit that referenced this pull request
Rollup of 9 pull requests
Successful merges:
- #128425 (Make
missing_fragment_specifieran unconditional error) - #135927 (retpoline and retpoline-external-thunk flags (target modifiers) to enable retpoline-related target features)
- #140770 (add
extern "custom"functions) - #142176 (tests: Split dont-shuffle-bswaps along opt-levels and arches)
- #142248 (Add supported asm types for LoongArch32)
- #142267 (assert more in release in
rustc_ast_lowering) - #142274 (Update the stdarch submodule)
- #142276 (Update dependencies in
library/Cargo.lock) - #142308 (Upgrade
object,addr2line, andunwindingin the standard library)
Failed merges:
- #140920 (Extract some shared code from codegen backend target feature handling)
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
Rollup of 9 pull requests
Successful merges:
- #128425 (Make
missing_fragment_specifieran unconditional error) - #135927 (retpoline and retpoline-external-thunk flags (target modifiers) to enable retpoline-related target features)
- #140770 (add
extern "custom"functions) - #142176 (tests: Split dont-shuffle-bswaps along opt-levels and arches)
- #142248 (Add supported asm types for LoongArch32)
- #142267 (assert more in release in
rustc_ast_lowering) - #142274 (Update the stdarch submodule)
- #142276 (Update dependencies in
library/Cargo.lock) - #142308 (Upgrade
object,addr2line, andunwindingin the standard library)
Failed merges:
- #140920 (Extract some shared code from codegen backend target feature handling)
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
Rollup merge of #142248 - heiher:loong32-asm-types, r=Amanieu
Add supported asm types for LoongArch32
r? @Amanieu
heiher deleted the loong32-asm-types branch
github-actions bot pushed a commit to rust-lang/miri that referenced this pull request
bjorn3 pushed a commit to rust-lang/rustc_codegen_cranelift that referenced this pull request
github-actions bot pushed a commit to rust-lang/rustc-dev-guide that referenced this pull request
github-actions bot pushed a commit to model-checking/verify-rust-std that referenced this pull request
…iaskrgr
Rollup of 9 pull requests
Successful merges:
- rust-lang#128425 (Make
missing_fragment_specifieran unconditional error) - rust-lang#135927 (retpoline and retpoline-external-thunk flags (target modifiers) to enable retpoline-related target features)
- rust-lang#140770 (add
extern "custom"functions) - rust-lang#142176 (tests: Split dont-shuffle-bswaps along opt-levels and arches)
- rust-lang#142248 (Add supported asm types for LoongArch32)
- rust-lang#142267 (assert more in release in
rustc_ast_lowering) - rust-lang#142274 (Update the stdarch submodule)
- rust-lang#142276 (Update dependencies in
library/Cargo.lock) - rust-lang#142308 (Upgrade
object,addr2line, andunwindingin the standard library)
Failed merges:
- rust-lang#140920 (Extract some shared code from codegen backend target feature handling)
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
Labels
Status: Waiting on bors to run and complete tests. Bors will change the label on completion.
Relevant to the compiler team, which will review and decide on the PR/issue.