Open
Description
In #126849 I fixed a bug on 32-bit Arm regarding features that govern "which register fits where" by sorting the features based on register class hierarchically.
However, this bug is present on more than 32-bit Arm:
rust/compiler/rustc_target/src/asm/aarch64.rs
Lines 134 to 149 in 0d8f734
In addition, there's some very ad-hoc restrictions showing up that in many cases are basically trying to encode the same thing:
rust/compiler/rustc_target/src/asm/riscv.rs
Lines 81 to 96 in 0d8f734
I believe we should switch to modeling register addressability more directly, and test more exhaustively for all architectural variations people want us to support.
Metadata
Metadata
Assignees
Labels
Area: Inline assembly (`asm!(…)`)Category: PRs that clean code up or issues documenting cleanup.Armv8-A or later processors in AArch64 modeTarget: RISC-V architectureRelevant to the compiler team, which will review and decide on the PR/issue.Relevant to the library team, which will review and decide on the PR/issue.