@@ -885,6 +885,28 @@ static M68K_FEATURES: &[(&str, Stability, ImpliedFeatures)] = &[
885885 // tidy-alphabetical-end
886886] ;
887887
888+ static AVR_FEATURES : & [ ( & str , Stability , ImpliedFeatures ) ] = & [
889+ // tidy-alphabetical-start
890+ ( "addsubiw" , Unstable ( sym:: avr_target_feature) , & [ ] ) ,
891+ ( "break" , Unstable ( sym:: avr_target_feature) , & [ ] ) ,
892+ ( "eijmpcall" , Unstable ( sym:: avr_target_feature) , & [ ] ) ,
893+ ( "elpm" , Unstable ( sym:: avr_target_feature) , & [ ] ) ,
894+ ( "elpmx" , Unstable ( sym:: avr_target_feature) , & [ ] ) ,
895+ ( "ijmpcall" , Unstable ( sym:: avr_target_feature) , & [ ] ) ,
896+ ( "jmpcall" , Unstable ( sym:: avr_target_feature) , & [ ] ) ,
897+ ( "lowbytefirst" , Unstable ( sym:: avr_target_feature) , & [ ] ) ,
898+ ( "lpm" , Unstable ( sym:: avr_target_feature) , & [ ] ) ,
899+ ( "lpmx" , Unstable ( sym:: avr_target_feature) , & [ ] ) ,
900+ ( "movw" , Unstable ( sym:: avr_target_feature) , & [ ] ) ,
901+ ( "mul" , Unstable ( sym:: avr_target_feature) , & [ ] ) ,
902+ ( "rmw" , Unstable ( sym:: avr_target_feature) , & [ ] ) ,
903+ ( "spm" , Unstable ( sym:: avr_target_feature) , & [ ] ) ,
904+ ( "spmx" , Unstable ( sym:: avr_target_feature) , & [ ] ) ,
905+ ( "sram" , Unstable ( sym:: avr_target_feature) , & [ ] ) ,
906+ ( "tinyencoding" , Unstable ( sym:: avr_target_feature) , & [ ] ) ,
907+ // tidy-alphabetical-end
908+ ] ;
909+
888910/// When rustdoc is running, provide a list of all known features so that all their respective
889911/// primitives may be documented.
890912///
@@ -906,6 +928,7 @@ pub fn all_rust_features() -> impl Iterator<Item = (&'static str, Stability)> {
906928 . chain ( IBMZ_FEATURES )
907929 . chain ( SPARC_FEATURES )
908930 . chain ( M68K_FEATURES )
931+ . chain ( AVR_FEATURES )
909932 . cloned ( )
910933 . map ( |( f, s, _) | ( f, s) )
911934}
@@ -983,8 +1006,8 @@ impl Target {
9831006 Arch :: S390x => IBMZ_FEATURES ,
9841007 Arch :: Sparc | Arch :: Sparc64 => SPARC_FEATURES ,
9851008 Arch :: M68k => M68K_FEATURES ,
1009+ Arch :: Avr => AVR_FEATURES ,
9861010 Arch :: AmdGpu
987- | Arch :: Avr
9881011 | Arch :: Msp430
9891012 | Arch :: PowerPC64LE
9901013 | Arch :: SpirV
@@ -1011,16 +1034,11 @@ impl Target {
10111034 MIPS_FEATURES_FOR_CORRECT_FIXED_LENGTH_VECTOR_ABI
10121035 }
10131036 Arch :: AmdGpu => AMDGPU_FEATURES_FOR_CORRECT_FIXED_LENGTH_VECTOR_ABI ,
1014- Arch :: Nvptx64 | Arch :: Bpf | Arch :: M68k => & [ ] , // no vector ABI
1037+ Arch :: Nvptx64 | Arch :: Bpf | Arch :: M68k | Arch :: Avr => & [ ] , // no vector ABI
10151038 Arch :: CSky => CSKY_FEATURES_FOR_CORRECT_FIXED_LENGTH_VECTOR_ABI ,
10161039 // FIXME: for some tier3 targets, we are overly cautious and always give warnings
10171040 // when passing args in vector registers.
1018- Arch :: Avr
1019- | Arch :: Msp430
1020- | Arch :: PowerPC64LE
1021- | Arch :: SpirV
1022- | Arch :: Xtensa
1023- | Arch :: Other ( _) => & [ ] ,
1041+ Arch :: Msp430 | Arch :: PowerPC64LE | Arch :: SpirV | Arch :: Xtensa | Arch :: Other ( _) => & [ ] ,
10241042 }
10251043 }
10261044
0 commit comments