@@ -720,6 +720,9 @@ fn reg_class_to_gcc(reg_class: InlineAsmRegClass) -> &'static str {
720720 | X86InlineAsmRegClass :: mmx_reg
721721 | X86InlineAsmRegClass :: tmm_reg,
722722 ) => unreachable ! ( "clobber-only" ) ,
723+ InlineAsmRegClass :: Xtensa ( XtensaInlineAsmRegClass :: reg) => "r" ,
724+ InlineAsmRegClass :: Xtensa ( XtensaInlineAsmRegClass :: freg) => "f" ,
725+ InlineAsmRegClass :: Xtensa ( XtensaInlineAsmRegClass :: breg) => "b" ,
723726 InlineAsmRegClass :: SpirV ( SpirVInlineAsmRegClass :: reg) => {
724727 bug ! ( "GCC backend does not support SPIR-V" )
725728 }
@@ -825,7 +828,10 @@ fn dummy_output_type<'gcc, 'tcx>(cx: &CodegenCx<'gcc, 'tcx>, reg: InlineAsmRegCl
825828 InlineAsmRegClass :: CSKY ( CSKYInlineAsmRegClass :: freg) => cx. type_f32 ( ) ,
826829 InlineAsmRegClass :: SpirV ( SpirVInlineAsmRegClass :: reg) => {
827830 bug ! ( "GCC backend does not support SPIR-V" )
828- }
831+ } ,
832+ InlineAsmRegClass :: Xtensa ( XtensaInlineAsmRegClass :: reg) => cx. type_i32 ( ) ,
833+ InlineAsmRegClass :: Xtensa ( XtensaInlineAsmRegClass :: freg) => cx. type_f32 ( ) ,
834+ InlineAsmRegClass :: Xtensa ( XtensaInlineAsmRegClass :: breg) => cx. type_i8 ( ) , // FIXME: should this be i1?
829835 InlineAsmRegClass :: Err => unreachable ! ( ) ,
830836 }
831837}
@@ -1009,7 +1015,10 @@ fn modifier_to_gcc(
10091015 InlineAsmRegClass :: CSKY ( _) => None ,
10101016 InlineAsmRegClass :: SpirV ( SpirVInlineAsmRegClass :: reg) => {
10111017 bug ! ( "LLVM backend does not support SPIR-V" )
1012- }
1018+ } ,
1019+ InlineAsmRegClass :: Xtensa ( XtensaInlineAsmRegClass :: reg) => unimplemented ! ( ) ,
1020+ InlineAsmRegClass :: Xtensa ( XtensaInlineAsmRegClass :: freg) => unimplemented ! ( ) ,
1021+ InlineAsmRegClass :: Xtensa ( XtensaInlineAsmRegClass :: breg) => unimplemented ! ( ) ,
10131022 InlineAsmRegClass :: Err => unreachable ! ( ) ,
10141023 }
10151024}
0 commit comments