diff options
| author | Taiki Endo <te316e89@gmail.com> | 2024-11-25 23:11:17 +0900 |
|---|---|---|
| committer | Taiki Endo <te316e89@gmail.com> | 2024-11-25 23:11:17 +0900 |
| commit | 9e22b5701dd3fab295476ca660f25995c3055c5a (patch) | |
| tree | 08e4819dbfb6a7cbce8f583f8a7da717442d27a0 | |
| parent | 968e79b0ec46b0e538b6e228cd2875b0d3b99585 (diff) | |
| download | rust-9e22b5701dd3fab295476ca660f25995c3055c5a.tar.gz rust-9e22b5701dd3fab295476ca660f25995c3055c5a.zip | |
Support predicate registers (clobber-only) in Hexagon inline assembly
| -rw-r--r-- | src/asm.rs | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/asm.rs b/src/asm.rs index ab4fdb78bb0..341d1b9c179 100644 --- a/src/asm.rs +++ b/src/asm.rs @@ -634,6 +634,9 @@ fn reg_to_gcc(reg: InlineAsmRegOrRegClass) -> ConstraintOrRegister { InlineAsmRegClass::Bpf(BpfInlineAsmRegClass::reg) => "r", InlineAsmRegClass::Bpf(BpfInlineAsmRegClass::wreg) => "w", InlineAsmRegClass::Hexagon(HexagonInlineAsmRegClass::reg) => "r", + InlineAsmRegClass::Hexagon(HexagonInlineAsmRegClass::preg) => { + unreachable!("clobber-only") + } InlineAsmRegClass::LoongArch(LoongArchInlineAsmRegClass::reg) => "r", InlineAsmRegClass::LoongArch(LoongArchInlineAsmRegClass::freg) => "f", InlineAsmRegClass::M68k(M68kInlineAsmRegClass::reg) => "r", @@ -720,6 +723,9 @@ fn dummy_output_type<'gcc, 'tcx>(cx: &CodegenCx<'gcc, 'tcx>, reg: InlineAsmRegCl cx.type_vector(cx.type_i64(), 2) } InlineAsmRegClass::Hexagon(HexagonInlineAsmRegClass::reg) => cx.type_i32(), + InlineAsmRegClass::Hexagon(HexagonInlineAsmRegClass::preg) => { + unreachable!("clobber-only") + } InlineAsmRegClass::LoongArch(LoongArchInlineAsmRegClass::reg) => cx.type_i32(), InlineAsmRegClass::LoongArch(LoongArchInlineAsmRegClass::freg) => cx.type_f32(), InlineAsmRegClass::Mips(MipsInlineAsmRegClass::reg) => cx.type_i32(), |
