@@ -898,6 +898,28 @@ static M68K_FEATURES: &[(&str, Stability, ImpliedFeatures)] = &[
898898 // tidy-alphabetical-end
899899] ;
900900
901+ static AVR_FEATURES : & [ ( & str , Stability , ImpliedFeatures ) ] = & [
902+ // tidy-alphabetical-start
903+ ( "addsubiw" , Unstable ( sym:: avr_target_feature) , & [ ] ) ,
904+ ( "break" , Unstable ( sym:: avr_target_feature) , & [ ] ) ,
905+ ( "eijmpcall" , Unstable ( sym:: avr_target_feature) , & [ ] ) ,
906+ ( "elpm" , Unstable ( sym:: avr_target_feature) , & [ ] ) ,
907+ ( "elpmx" , Unstable ( sym:: avr_target_feature) , & [ ] ) ,
908+ ( "ijmpcall" , Unstable ( sym:: avr_target_feature) , & [ ] ) ,
909+ ( "jmpcall" , Unstable ( sym:: avr_target_feature) , & [ ] ) ,
910+ ( "lowbytefirst" , Unstable ( sym:: avr_target_feature) , & [ ] ) ,
911+ ( "lpm" , Unstable ( sym:: avr_target_feature) , & [ ] ) ,
912+ ( "lpmx" , Unstable ( sym:: avr_target_feature) , & [ ] ) ,
913+ ( "movw" , Unstable ( sym:: avr_target_feature) , & [ ] ) ,
914+ ( "mul" , Unstable ( sym:: avr_target_feature) , & [ ] ) ,
915+ ( "rmw" , Unstable ( sym:: avr_target_feature) , & [ ] ) ,
916+ ( "spm" , Unstable ( sym:: avr_target_feature) , & [ ] ) ,
917+ ( "spmx" , Unstable ( sym:: avr_target_feature) , & [ ] ) ,
918+ ( "sram" , Unstable ( sym:: avr_target_feature) , & [ ] ) ,
919+ ( "tinyencoding" , Unstable ( sym:: avr_target_feature) , & [ ] ) ,
920+ // tidy-alphabetical-end
921+ ] ;
922+
901923/// When rustdoc is running, provide a list of all known features so that all their respective
902924/// primitives may be documented.
903925///
@@ -919,6 +941,7 @@ pub fn all_rust_features() -> impl Iterator<Item = (&'static str, Stability)> {
919941 . chain ( IBMZ_FEATURES )
920942 . chain ( SPARC_FEATURES )
921943 . chain ( M68K_FEATURES )
944+ . chain ( AVR_FEATURES )
922945 . cloned ( )
923946 . map ( |( f, s, _) | ( f, s) )
924947}
@@ -996,8 +1019,8 @@ impl Target {
9961019 Arch :: S390x => IBMZ_FEATURES ,
9971020 Arch :: Sparc | Arch :: Sparc64 => SPARC_FEATURES ,
9981021 Arch :: M68k => M68K_FEATURES ,
1022+ Arch :: Avr => AVR_FEATURES ,
9991023 Arch :: AmdGpu
1000- | Arch :: Avr
10011024 | Arch :: Msp430
10021025 | Arch :: SpirV
10031026 | Arch :: Xtensa
@@ -1023,11 +1046,11 @@ impl Target {
10231046 MIPS_FEATURES_FOR_CORRECT_FIXED_LENGTH_VECTOR_ABI
10241047 }
10251048 Arch :: AmdGpu => AMDGPU_FEATURES_FOR_CORRECT_FIXED_LENGTH_VECTOR_ABI ,
1026- Arch :: Nvptx64 | Arch :: Bpf | Arch :: M68k => & [ ] , // no vector ABI
1049+ Arch :: Nvptx64 | Arch :: Bpf | Arch :: M68k | Arch :: Avr => & [ ] , // no vector ABI
10271050 Arch :: CSky => CSKY_FEATURES_FOR_CORRECT_FIXED_LENGTH_VECTOR_ABI ,
10281051 // FIXME: for some tier3 targets, we are overly cautious and always give warnings
10291052 // when passing args in vector registers.
1030- Arch :: Avr | Arch :: Msp430 | Arch :: SpirV | Arch :: Xtensa | Arch :: Other ( _) => & [ ] ,
1053+ Arch :: Msp430 | Arch :: SpirV | Arch :: Xtensa | Arch :: Other ( _) => & [ ] ,
10311054 }
10321055 }
10331056
0 commit comments