Skip to content

Commit 6883c25

Browse files
committed
Auto merge of #109989 - ids1024:m68k-asm, r=Amanieu
Add inline assembly support for m68k I believe this should be correct, to the extent I understand the logic around inline assembly. M68k is fairly straightforward here, other than having separate address registers.
2 parents 8541fce + 387718f commit 6883c25

File tree

1 file changed

+7
-0
lines changed

1 file changed

+7
-0
lines changed

src/asm.rs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -593,6 +593,9 @@ fn reg_to_gcc(reg: InlineAsmRegOrRegClass) -> ConstraintOrRegister {
593593
InlineAsmRegClass::Bpf(BpfInlineAsmRegClass::reg) => "r",
594594
InlineAsmRegClass::Bpf(BpfInlineAsmRegClass::wreg) => "w",
595595
InlineAsmRegClass::Hexagon(HexagonInlineAsmRegClass::reg) => "r",
596+
InlineAsmRegClass::M68k(M68kInlineAsmRegClass::reg) => "r",
597+
InlineAsmRegClass::M68k(M68kInlineAsmRegClass::reg_addr) => "a",
598+
InlineAsmRegClass::M68k(M68kInlineAsmRegClass::reg_data) => "d",
596599
InlineAsmRegClass::Mips(MipsInlineAsmRegClass::reg) => "d", // more specific than "r"
597600
InlineAsmRegClass::Mips(MipsInlineAsmRegClass::freg) => "f",
598601
InlineAsmRegClass::Msp430(Msp430InlineAsmRegClass::reg) => "r",
@@ -664,6 +667,9 @@ fn dummy_output_type<'gcc, 'tcx>(cx: &CodegenCx<'gcc, 'tcx>, reg: InlineAsmRegCl
664667
InlineAsmRegClass::Avr(_) => unimplemented!(),
665668
InlineAsmRegClass::Bpf(_) => unimplemented!(),
666669
InlineAsmRegClass::Hexagon(HexagonInlineAsmRegClass::reg) => cx.type_i32(),
670+
InlineAsmRegClass::M68k(M68kInlineAsmRegClass::reg) => cx.type_i32(),
671+
InlineAsmRegClass::M68k(M68kInlineAsmRegClass::reg_addr) => cx.type_i32(),
672+
InlineAsmRegClass::M68k(M68kInlineAsmRegClass::reg_data) => cx.type_i32(),
667673
InlineAsmRegClass::Mips(MipsInlineAsmRegClass::reg) => cx.type_i32(),
668674
InlineAsmRegClass::Mips(MipsInlineAsmRegClass::freg) => cx.type_f32(),
669675
InlineAsmRegClass::Msp430(_) => unimplemented!(),
@@ -849,6 +855,7 @@ fn modifier_to_gcc(arch: InlineAsmArch, reg: InlineAsmRegClass, modifier: Option
849855
InlineAsmRegClass::Avr(_) => None,
850856
InlineAsmRegClass::S390x(_) => None,
851857
InlineAsmRegClass::Msp430(_) => None,
858+
InlineAsmRegClass::M68k(_) => None,
852859
InlineAsmRegClass::SpirV(SpirVInlineAsmRegClass::reg) => {
853860
bug!("LLVM backend does not support SPIR-V")
854861
}

0 commit comments

Comments
 (0)