1 use super::{InlineAsmArch, InlineAsmType};
2 use rustc_macros::HashStable_Generic;
6 Hexagon HexagonInlineAsmRegClass {
11 impl HexagonInlineAsmRegClass {
12 pub fn valid_modifiers(self, _arch: super::InlineAsmArch) -> &'static [char] {
16 pub fn suggest_class(self, _arch: InlineAsmArch, _ty: InlineAsmType) -> Option<Self> {
20 pub fn suggest_modifier(
24 ) -> Option<(char, &'static str)> {
28 pub fn default_modifier(self, _arch: InlineAsmArch) -> Option<(char, &'static str)> {
32 pub fn supported_types(
35 ) -> &'static [(InlineAsmType, Option<&'static str>)] {
37 Self::reg => types! { _: I8, I16, I32, F32; },
43 Hexagon HexagonInlineAsmReg HexagonInlineAsmRegClass {
73 #error = ["r29", "sp"] =>
74 "the stack pointer cannot be used as an operand for inline asm",
75 #error = ["r30", "fr"] =>
76 "the frame register cannot be used as an operand for inline asm",
77 #error = ["r31", "lr"] =>
78 "the link register cannot be used as an operand for inline asm",
82 impl HexagonInlineAsmReg {
85 out: &mut dyn fmt::Write,
87 _modifier: Option<char>,
89 out.write_str(self.name())
92 pub fn overlapping_regs(self, mut _cb: impl FnMut(HexagonInlineAsmReg)) {}