Skip to content

Commit 051b774

Browse files
committed
Basic inline assembly support for SPARC and SPARC64
1 parent 92c27e8 commit 051b774

File tree

1 file changed

+5
-0
lines changed

1 file changed

+5
-0
lines changed

src/asm.rs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -688,6 +688,8 @@ fn reg_to_gcc(reg: InlineAsmRegOrRegClass) -> ConstraintOrRegister {
688688
) => {
689689
unreachable!("clobber-only")
690690
}
691+
InlineAsmRegClass::Sparc(SparcInlineAsmRegClass::reg) => "r",
692+
InlineAsmRegClass::Sparc(SparcInlineAsmRegClass::yreg) => unreachable!("clobber-only"),
691693
InlineAsmRegClass::Err => unreachable!(),
692694
},
693695
};
@@ -767,6 +769,8 @@ fn dummy_output_type<'gcc, 'tcx>(cx: &CodegenCx<'gcc, 'tcx>, reg: InlineAsmRegCl
767769
InlineAsmRegClass::S390x(S390xInlineAsmRegClass::vreg | S390xInlineAsmRegClass::areg) => {
768770
unreachable!("clobber-only")
769771
}
772+
InlineAsmRegClass::Sparc(SparcInlineAsmRegClass::reg) => cx.type_i32(),
773+
InlineAsmRegClass::Sparc(SparcInlineAsmRegClass::yreg) => unreachable!("clobber-only"),
770774
InlineAsmRegClass::Msp430(Msp430InlineAsmRegClass::reg) => cx.type_i16(),
771775
InlineAsmRegClass::M68k(M68kInlineAsmRegClass::reg) => cx.type_i32(),
772776
InlineAsmRegClass::M68k(M68kInlineAsmRegClass::reg_addr) => cx.type_i32(),
@@ -946,6 +950,7 @@ fn modifier_to_gcc(
946950
},
947951
InlineAsmRegClass::Avr(_) => None,
948952
InlineAsmRegClass::S390x(_) => None,
953+
InlineAsmRegClass::Sparc(_) => None,
949954
InlineAsmRegClass::Msp430(_) => None,
950955
InlineAsmRegClass::M68k(_) => None,
951956
InlineAsmRegClass::CSKY(_) => None,

0 commit comments

Comments
 (0)