@@ -717,6 +717,9 @@ fn reg_class_to_gcc(reg_class: InlineAsmRegClass) -> &'static str {
717717 | X86InlineAsmRegClass :: mmx_reg
718718 | X86InlineAsmRegClass :: tmm_reg,
719719 ) => unreachable ! ( "clobber-only" ) ,
720+ InlineAsmRegClass :: Xtensa ( XtensaInlineAsmRegClass :: reg) => "r" ,
721+ InlineAsmRegClass :: Xtensa ( XtensaInlineAsmRegClass :: freg) => "f" ,
722+ InlineAsmRegClass :: Xtensa ( XtensaInlineAsmRegClass :: breg) => "b" ,
720723 InlineAsmRegClass :: SpirV ( SpirVInlineAsmRegClass :: reg) => {
721724 bug ! ( "GCC backend does not support SPIR-V" )
722725 }
@@ -822,7 +825,10 @@ fn dummy_output_type<'gcc, 'tcx>(cx: &CodegenCx<'gcc, 'tcx>, reg: InlineAsmRegCl
822825 InlineAsmRegClass :: CSKY ( CSKYInlineAsmRegClass :: freg) => cx. type_f32 ( ) ,
823826 InlineAsmRegClass :: SpirV ( SpirVInlineAsmRegClass :: reg) => {
824827 bug ! ( "GCC backend does not support SPIR-V" )
825- }
828+ } ,
829+ InlineAsmRegClass :: Xtensa ( XtensaInlineAsmRegClass :: reg) => cx. type_i32 ( ) ,
830+ InlineAsmRegClass :: Xtensa ( XtensaInlineAsmRegClass :: freg) => cx. type_f32 ( ) ,
831+ InlineAsmRegClass :: Xtensa ( XtensaInlineAsmRegClass :: breg) => cx. type_i8 ( ) , // FIXME: should this be i1?
826832 InlineAsmRegClass :: Err => unreachable ! ( ) ,
827833 }
828834}
@@ -1006,7 +1012,10 @@ fn modifier_to_gcc(
10061012 InlineAsmRegClass :: CSKY ( _) => None ,
10071013 InlineAsmRegClass :: SpirV ( SpirVInlineAsmRegClass :: reg) => {
10081014 bug ! ( "LLVM backend does not support SPIR-V" )
1009- }
1015+ } ,
1016+ InlineAsmRegClass :: Xtensa ( XtensaInlineAsmRegClass :: reg) => unimplemented ! ( ) ,
1017+ InlineAsmRegClass :: Xtensa ( XtensaInlineAsmRegClass :: freg) => unimplemented ! ( ) ,
1018+ InlineAsmRegClass :: Xtensa ( XtensaInlineAsmRegClass :: breg) => unimplemented ! ( ) ,
10101019 InlineAsmRegClass :: Err => unreachable ! ( ) ,
10111020 }
10121021}
0 commit comments