@@ -690,6 +690,9 @@ fn reg_to_gcc(reg: InlineAsmRegOrRegClass) -> ConstraintOrRegister {
690690 }
691691 InlineAsmRegClass :: Sparc ( SparcInlineAsmRegClass :: reg) => "r" ,
692692 InlineAsmRegClass :: Sparc ( SparcInlineAsmRegClass :: yreg) => unreachable ! ( "clobber-only" ) ,
693+ InlineAsmRegClass :: Xtensa ( XtensaInlineAsmRegClass :: reg) => "r" ,
694+ InlineAsmRegClass :: Xtensa ( XtensaInlineAsmRegClass :: freg) => "f" ,
695+ InlineAsmRegClass :: Xtensa ( XtensaInlineAsmRegClass :: breg) => "b" ,
693696 InlineAsmRegClass :: Err => unreachable ! ( ) ,
694697 } ,
695698 } ;
@@ -779,7 +782,10 @@ fn dummy_output_type<'gcc, 'tcx>(cx: &CodegenCx<'gcc, 'tcx>, reg: InlineAsmRegCl
779782 InlineAsmRegClass :: CSKY ( CSKYInlineAsmRegClass :: freg) => cx. type_f32 ( ) ,
780783 InlineAsmRegClass :: SpirV ( SpirVInlineAsmRegClass :: reg) => {
781784 bug ! ( "GCC backend does not support SPIR-V" )
782- }
785+ } ,
786+ InlineAsmRegClass :: Xtensa ( XtensaInlineAsmRegClass :: reg) => cx. type_i32 ( ) ,
787+ InlineAsmRegClass :: Xtensa ( XtensaInlineAsmRegClass :: freg) => cx. type_f32 ( ) ,
788+ InlineAsmRegClass :: Xtensa ( XtensaInlineAsmRegClass :: breg) => cx. type_i8 ( ) , // FIXME: should this be i1?
783789 InlineAsmRegClass :: Err => unreachable ! ( ) ,
784790 }
785791}
@@ -956,7 +962,10 @@ fn modifier_to_gcc(
956962 InlineAsmRegClass :: CSKY ( _) => None ,
957963 InlineAsmRegClass :: SpirV ( SpirVInlineAsmRegClass :: reg) => {
958964 bug ! ( "LLVM backend does not support SPIR-V" )
959- }
965+ } ,
966+ InlineAsmRegClass :: Xtensa ( XtensaInlineAsmRegClass :: reg) => unimplemented ! ( ) ,
967+ InlineAsmRegClass :: Xtensa ( XtensaInlineAsmRegClass :: freg) => unimplemented ! ( ) ,
968+ InlineAsmRegClass :: Xtensa ( XtensaInlineAsmRegClass :: breg) => unimplemented ! ( ) ,
960969 InlineAsmRegClass :: Err => unreachable ! ( ) ,
961970 }
962971}
0 commit comments