Skip to content

Commit 89ab77b

Browse files
committed
Handle tmm_reg in rustc_codegen_gcc
1 parent 50ce367 commit 89ab77b

File tree

2 files changed

+4
-3
lines changed

2 files changed

+4
-3
lines changed

compiler/rustc_codegen_gcc/src/asm.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -592,7 +592,7 @@ fn reg_to_gcc(reg: InlineAsmRegOrRegClass) -> ConstraintOrRegister {
592592
InlineAsmRegClass::X86(X86InlineAsmRegClass::kreg0) => unimplemented!(),
593593
InlineAsmRegClass::Wasm(WasmInlineAsmRegClass::local) => unimplemented!(),
594594
InlineAsmRegClass::X86(
595-
X86InlineAsmRegClass::x87_reg | X86InlineAsmRegClass::mmx_reg,
595+
X86InlineAsmRegClass::x87_reg | X86InlineAsmRegClass::mmx_reg | X86InlineAsmRegClass::tmm_reg,
596596
) => unreachable!("clobber-only"),
597597
InlineAsmRegClass::SpirV(SpirVInlineAsmRegClass::reg) => {
598598
bug!("GCC backend does not support SPIR-V")
@@ -656,6 +656,7 @@ fn dummy_output_type<'gcc, 'tcx>(cx: &CodegenCx<'gcc, 'tcx>, reg: InlineAsmRegCl
656656
InlineAsmRegClass::X86(X86InlineAsmRegClass::x87_reg) => unimplemented!(),
657657
InlineAsmRegClass::X86(X86InlineAsmRegClass::kreg) => cx.type_i16(),
658658
InlineAsmRegClass::X86(X86InlineAsmRegClass::kreg0) => cx.type_i16(),
659+
InlineAsmRegClass::X86(X86InlineAsmRegClass::tmm_reg) => unimplemented!(),
659660
InlineAsmRegClass::Wasm(WasmInlineAsmRegClass::local) => cx.type_i32(),
660661
InlineAsmRegClass::SpirV(SpirVInlineAsmRegClass::reg) => {
661662
bug!("LLVM backend does not support SPIR-V")
@@ -787,7 +788,7 @@ fn modifier_to_gcc(arch: InlineAsmArch, reg: InlineAsmRegClass, modifier: Option
787788
},
788789
InlineAsmRegClass::X86(X86InlineAsmRegClass::kreg) => None,
789790
InlineAsmRegClass::X86(X86InlineAsmRegClass::kreg0) => None,
790-
InlineAsmRegClass::X86(X86InlineAsmRegClass::x87_reg | X86InlineAsmRegClass::mmx_reg) => {
791+
InlineAsmRegClass::X86(X86InlineAsmRegClass::x87_reg | X86InlineAsmRegClass::mmx_reg | X86InlineAsmRegClass::tmm_reg) => {
791792
unreachable!("clobber-only")
792793
}
793794
InlineAsmRegClass::Wasm(WasmInlineAsmRegClass::local) => unimplemented!(),

src/test/codegen/asm-target-clobbers.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
use std::arch::asm;
88

9-
// CHECK-LABEL: @avx512_clobber
9+
// CHECK-LABEL: @amx_clobber
1010
// base: call void asm sideeffect inteldialect "", "~{tmm0}"()
1111
#[no_mangle]
1212
pub unsafe fn amx_clobber() {

0 commit comments

Comments
 (0)