@@ -692,6 +692,9 @@ fn reg_to_gcc(reg: InlineAsmRegOrRegClass) -> ConstraintOrRegister {
692692 }
693693 InlineAsmRegClass :: Sparc ( SparcInlineAsmRegClass :: reg) => "r" ,
694694 InlineAsmRegClass :: Sparc ( SparcInlineAsmRegClass :: yreg) => unreachable ! ( "clobber-only" ) ,
695+ InlineAsmRegClass :: Xtensa ( XtensaInlineAsmRegClass :: reg) => "r" ,
696+ InlineAsmRegClass :: Xtensa ( XtensaInlineAsmRegClass :: freg) => "f" ,
697+ InlineAsmRegClass :: Xtensa ( XtensaInlineAsmRegClass :: breg) => "b" ,
695698 InlineAsmRegClass :: Err => unreachable ! ( ) ,
696699 } ,
697700 } ;
@@ -787,7 +790,10 @@ fn dummy_output_type<'gcc, 'tcx>(cx: &CodegenCx<'gcc, 'tcx>, reg: InlineAsmRegCl
787790 InlineAsmRegClass :: CSKY ( CSKYInlineAsmRegClass :: freg) => cx. type_f32 ( ) ,
788791 InlineAsmRegClass :: SpirV ( SpirVInlineAsmRegClass :: reg) => {
789792 bug ! ( "GCC backend does not support SPIR-V" )
790- }
793+ } ,
794+ InlineAsmRegClass :: Xtensa ( XtensaInlineAsmRegClass :: reg) => cx. type_i32 ( ) ,
795+ InlineAsmRegClass :: Xtensa ( XtensaInlineAsmRegClass :: freg) => cx. type_f32 ( ) ,
796+ InlineAsmRegClass :: Xtensa ( XtensaInlineAsmRegClass :: breg) => cx. type_i8 ( ) , // FIXME: should this be i1?
791797 InlineAsmRegClass :: Err => unreachable ! ( ) ,
792798 }
793799}
@@ -971,7 +977,10 @@ fn modifier_to_gcc(
971977 InlineAsmRegClass :: CSKY ( _) => None ,
972978 InlineAsmRegClass :: SpirV ( SpirVInlineAsmRegClass :: reg) => {
973979 bug ! ( "LLVM backend does not support SPIR-V" )
974- }
980+ } ,
981+ InlineAsmRegClass :: Xtensa ( XtensaInlineAsmRegClass :: reg) => unimplemented ! ( ) ,
982+ InlineAsmRegClass :: Xtensa ( XtensaInlineAsmRegClass :: freg) => unimplemented ! ( ) ,
983+ InlineAsmRegClass :: Xtensa ( XtensaInlineAsmRegClass :: breg) => unimplemented ! ( ) ,
975984 InlineAsmRegClass :: Err => unreachable ! ( ) ,
976985 }
977986}
0 commit comments