Add supported asm types for LoongArch32
This commit is contained in:
@@ -34,11 +34,13 @@ impl LoongArchInlineAsmRegClass {
|
||||
|
||||
pub fn supported_types(
|
||||
self,
|
||||
_arch: InlineAsmArch,
|
||||
arch: InlineAsmArch,
|
||||
) -> &'static [(InlineAsmType, Option<Symbol>)] {
|
||||
match self {
|
||||
Self::reg => types! { _: I8, I16, I32, I64, F32, F64; },
|
||||
Self::freg => types! { f: F32; d: F64; },
|
||||
match (self, arch) {
|
||||
(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; },
|
||||
_ => unreachable!("unsupported register class"),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,6 +19,7 @@ This feature tracks `asm!` and `global_asm!` support for the following architect
|
||||
- M68k
|
||||
- CSKY
|
||||
- SPARC
|
||||
- LoongArch32
|
||||
|
||||
## Register classes
|
||||
|
||||
@@ -53,6 +54,8 @@ This feature tracks `asm!` and `global_asm!` support for the following architect
|
||||
| CSKY | `freg` | `f[0-31]` | `f` |
|
||||
| SPARC | `reg` | `r[2-29]` | `r` |
|
||||
| SPARC | `yreg` | `y` | Only clobbers |
|
||||
| LoongArch32 | `reg` | `$r1`, `$r[4-20]`, `$r[23,30]` | `r` |
|
||||
| LoongArch32 | `freg` | `$f[0-31]` | `f` |
|
||||
|
||||
> **Notes**:
|
||||
> - NVPTX doesn't have a fixed register set, so named registers are not supported.
|
||||
@@ -91,6 +94,8 @@ This feature tracks `asm!` and `global_asm!` support for the following architect
|
||||
| CSKY | `freg` | None | `f32`, |
|
||||
| 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` |
|
||||
|
||||
## Register aliases
|
||||
|
||||
|
||||
Reference in New Issue
Block a user