@@ -692,6 +692,9 @@ fn reg_to_gcc(reg: InlineAsmRegOrRegClass) -> ConstraintOrRegister {
692
692
}
693
693
InlineAsmRegClass :: Sparc ( SparcInlineAsmRegClass :: reg) => "r" ,
694
694
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" ,
695
698
InlineAsmRegClass :: Err => unreachable ! ( ) ,
696
699
} ,
697
700
} ;
@@ -787,7 +790,10 @@ fn dummy_output_type<'gcc, 'tcx>(cx: &CodegenCx<'gcc, 'tcx>, reg: InlineAsmRegCl
787
790
InlineAsmRegClass :: CSKY ( CSKYInlineAsmRegClass :: freg) => cx. type_f32 ( ) ,
788
791
InlineAsmRegClass :: SpirV ( SpirVInlineAsmRegClass :: reg) => {
789
792
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?
791
797
InlineAsmRegClass :: Err => unreachable ! ( ) ,
792
798
}
793
799
}
@@ -971,7 +977,10 @@ fn modifier_to_gcc(
971
977
InlineAsmRegClass :: CSKY ( _) => None ,
972
978
InlineAsmRegClass :: SpirV ( SpirVInlineAsmRegClass :: reg) => {
973
979
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 ! ( ) ,
975
984
InlineAsmRegClass :: Err => unreachable ! ( ) ,
976
985
}
977
986
}
0 commit comments