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