@@ -1083,26 +1083,26 @@ const EnumEntry<unsigned> ElfObjectFileType[] = {
1083
1083
};
1084
1084
1085
1085
const EnumEntry<unsigned > ElfOSABI[] = {
1086
- {" SystemV" , " UNIX - System V" , ELF::ELFOSABI_NONE},
1087
- {" HPUX" , " UNIX - HP-UX" , ELF::ELFOSABI_HPUX},
1088
- {" NetBSD" , " UNIX - NetBSD" , ELF::ELFOSABI_NETBSD},
1089
- {" GNU/Linux" , " UNIX - GNU" , ELF::ELFOSABI_LINUX},
1090
- {" GNU/Hurd" , " GNU/Hurd" , ELF::ELFOSABI_HURD},
1091
- {" Solaris" , " UNIX - Solaris" , ELF::ELFOSABI_SOLARIS},
1092
- {" AIX" , " UNIX - AIX" , ELF::ELFOSABI_AIX},
1093
- {" IRIX" , " UNIX - IRIX" , ELF::ELFOSABI_IRIX},
1094
- {" FreeBSD" , " UNIX - FreeBSD" , ELF::ELFOSABI_FREEBSD},
1095
- {" TRU64" , " UNIX - TRU64" , ELF::ELFOSABI_TRU64},
1096
- {" Modesto" , " Novell - Modesto" , ELF::ELFOSABI_MODESTO},
1097
- {" OpenBSD" , " UNIX - OpenBSD" , ELF::ELFOSABI_OPENBSD},
1098
- {" OpenVMS" , " VMS - OpenVMS" , ELF::ELFOSABI_OPENVMS},
1099
- {" NSK" , " HP - Non-Stop Kernel" , ELF::ELFOSABI_NSK},
1100
- {" AROS" , " AROS" , ELF::ELFOSABI_AROS},
1101
- {" FenixOS" , " FenixOS" , ELF::ELFOSABI_FENIXOS},
1102
- {" CloudABI" , " CloudABI" , ELF::ELFOSABI_CLOUDABI},
1103
- {" CUDA" , " NVIDIA - CUDA" , ELF::ELFOSABI_CUDA},
1104
- { " Standalone " , " Standalone App " , ELF::ELFOSABI_STANDALONE}
1105
- };
1086
+ {" SystemV" , " UNIX - System V" , ELF::ELFOSABI_NONE},
1087
+ {" HPUX" , " UNIX - HP-UX" , ELF::ELFOSABI_HPUX},
1088
+ {" NetBSD" , " UNIX - NetBSD" , ELF::ELFOSABI_NETBSD},
1089
+ {" GNU/Linux" , " UNIX - GNU" , ELF::ELFOSABI_LINUX},
1090
+ {" GNU/Hurd" , " GNU/Hurd" , ELF::ELFOSABI_HURD},
1091
+ {" Solaris" , " UNIX - Solaris" , ELF::ELFOSABI_SOLARIS},
1092
+ {" AIX" , " UNIX - AIX" , ELF::ELFOSABI_AIX},
1093
+ {" IRIX" , " UNIX - IRIX" , ELF::ELFOSABI_IRIX},
1094
+ {" FreeBSD" , " UNIX - FreeBSD" , ELF::ELFOSABI_FREEBSD},
1095
+ {" TRU64" , " UNIX - TRU64" , ELF::ELFOSABI_TRU64},
1096
+ {" Modesto" , " Novell - Modesto" , ELF::ELFOSABI_MODESTO},
1097
+ {" OpenBSD" , " UNIX - OpenBSD" , ELF::ELFOSABI_OPENBSD},
1098
+ {" OpenVMS" , " VMS - OpenVMS" , ELF::ELFOSABI_OPENVMS},
1099
+ {" NSK" , " HP - Non-Stop Kernel" , ELF::ELFOSABI_NSK},
1100
+ {" AROS" , " AROS" , ELF::ELFOSABI_AROS},
1101
+ {" FenixOS" , " FenixOS" , ELF::ELFOSABI_FENIXOS},
1102
+ {" CloudABI" , " CloudABI" , ELF::ELFOSABI_CLOUDABI},
1103
+ {" CUDA" , " NVIDIA - CUDA" , ELF::ELFOSABI_CUDA},
1104
+ { " CUDA " , " NVIDIA - CUDA " , ELF::ELFOSABI_CUDA_V2},
1105
+ { " Standalone " , " Standalone App " , ELF::ELFOSABI_STANDALONE} };
1106
1106
1107
1107
const EnumEntry<unsigned > AMDGPUElfOSABI[] = {
1108
1108
{" AMDGPU_HSA" , " AMDGPU - HSA" , ELF::ELFOSABI_AMDGPU_HSA},
@@ -1666,16 +1666,60 @@ const EnumEntry<unsigned> ElfHeaderAMDGPUFlagsABIVersion4[] = {
1666
1666
};
1667
1667
1668
1668
const EnumEntry<unsigned > ElfHeaderNVPTXFlags[] = {
1669
- ENUM_ENT (EF_CUDA_SM20, " sm_20" ), ENUM_ENT (EF_CUDA_SM21, " sm_21" ),
1670
- ENUM_ENT (EF_CUDA_SM30, " sm_30" ), ENUM_ENT (EF_CUDA_SM32, " sm_32" ),
1671
- ENUM_ENT (EF_CUDA_SM35, " sm_35" ), ENUM_ENT (EF_CUDA_SM37, " sm_37" ),
1672
- ENUM_ENT (EF_CUDA_SM50, " sm_50" ), ENUM_ENT (EF_CUDA_SM52, " sm_52" ),
1673
- ENUM_ENT (EF_CUDA_SM53, " sm_53" ), ENUM_ENT (EF_CUDA_SM60, " sm_60" ),
1674
- ENUM_ENT (EF_CUDA_SM61, " sm_61" ), ENUM_ENT (EF_CUDA_SM62, " sm_62" ),
1675
- ENUM_ENT (EF_CUDA_SM70, " sm_70" ), ENUM_ENT (EF_CUDA_SM72, " sm_72" ),
1676
- ENUM_ENT (EF_CUDA_SM75, " sm_75" ), ENUM_ENT (EF_CUDA_SM80, " sm_80" ),
1677
- ENUM_ENT (EF_CUDA_SM86, " sm_86" ), ENUM_ENT (EF_CUDA_SM87, " sm_87" ),
1678
- ENUM_ENT (EF_CUDA_SM89, " sm_89" ), ENUM_ENT (EF_CUDA_SM90, " sm_90" ),
1669
+ ENUM_ENT (EF_CUDA_SM20, " sm_20" ),
1670
+ ENUM_ENT (EF_CUDA_SM21, " sm_21" ),
1671
+ ENUM_ENT (EF_CUDA_SM30, " sm_30" ),
1672
+ ENUM_ENT (EF_CUDA_SM32, " sm_32" ),
1673
+ ENUM_ENT (EF_CUDA_SM35, " sm_35" ),
1674
+ ENUM_ENT (EF_CUDA_SM37, " sm_37" ),
1675
+ ENUM_ENT (EF_CUDA_SM50, " sm_50" ),
1676
+ ENUM_ENT (EF_CUDA_SM52, " sm_52" ),
1677
+ ENUM_ENT (EF_CUDA_SM53, " sm_53" ),
1678
+ ENUM_ENT (EF_CUDA_SM60, " sm_60" ),
1679
+ ENUM_ENT (EF_CUDA_SM61, " sm_61" ),
1680
+ ENUM_ENT (EF_CUDA_SM62, " sm_62" ),
1681
+ ENUM_ENT (EF_CUDA_SM70, " sm_70" ),
1682
+ ENUM_ENT (EF_CUDA_SM72, " sm_72" ),
1683
+ ENUM_ENT (EF_CUDA_SM75, " sm_75" ),
1684
+ ENUM_ENT (EF_CUDA_SM80, " sm_80" ),
1685
+ ENUM_ENT (EF_CUDA_SM86, " sm_86" ),
1686
+ ENUM_ENT (EF_CUDA_SM87, " sm_87" ),
1687
+ ENUM_ENT (EF_CUDA_SM88, " sm_88" ),
1688
+ ENUM_ENT (EF_CUDA_SM89, " sm_89" ),
1689
+ ENUM_ENT (EF_CUDA_SM90, " sm_90" ),
1690
+ ENUM_ENT (EF_CUDA_SM100, " sm_100" ),
1691
+ ENUM_ENT (EF_CUDA_SM101, " sm_101" ),
1692
+ ENUM_ENT (EF_CUDA_SM103, " sm_103" ),
1693
+ ENUM_ENT (EF_CUDA_SM110, " sm_110" ),
1694
+ ENUM_ENT (EF_CUDA_SM120, " sm_120" ),
1695
+ ENUM_ENT (EF_CUDA_SM121, " sm_121" ),
1696
+ ENUM_ENT (EF_CUDA_SM20 << EF_CUDA_SM_OFFSET, " sm_20" ),
1697
+ ENUM_ENT (EF_CUDA_SM21 << EF_CUDA_SM_OFFSET, " sm_21" ),
1698
+ ENUM_ENT (EF_CUDA_SM30 << EF_CUDA_SM_OFFSET, " sm_30" ),
1699
+ ENUM_ENT (EF_CUDA_SM32 << EF_CUDA_SM_OFFSET, " sm_32" ),
1700
+ ENUM_ENT (EF_CUDA_SM35 << EF_CUDA_SM_OFFSET, " sm_35" ),
1701
+ ENUM_ENT (EF_CUDA_SM37 << EF_CUDA_SM_OFFSET, " sm_37" ),
1702
+ ENUM_ENT (EF_CUDA_SM50 << EF_CUDA_SM_OFFSET, " sm_50" ),
1703
+ ENUM_ENT (EF_CUDA_SM52 << EF_CUDA_SM_OFFSET, " sm_52" ),
1704
+ ENUM_ENT (EF_CUDA_SM53 << EF_CUDA_SM_OFFSET, " sm_53" ),
1705
+ ENUM_ENT (EF_CUDA_SM60 << EF_CUDA_SM_OFFSET, " sm_60" ),
1706
+ ENUM_ENT (EF_CUDA_SM61 << EF_CUDA_SM_OFFSET, " sm_61" ),
1707
+ ENUM_ENT (EF_CUDA_SM62 << EF_CUDA_SM_OFFSET, " sm_62" ),
1708
+ ENUM_ENT (EF_CUDA_SM70 << EF_CUDA_SM_OFFSET, " sm_70" ),
1709
+ ENUM_ENT (EF_CUDA_SM72 << EF_CUDA_SM_OFFSET, " sm_72" ),
1710
+ ENUM_ENT (EF_CUDA_SM75 << EF_CUDA_SM_OFFSET, " sm_75" ),
1711
+ ENUM_ENT (EF_CUDA_SM80 << EF_CUDA_SM_OFFSET, " sm_80" ),
1712
+ ENUM_ENT (EF_CUDA_SM86 << EF_CUDA_SM_OFFSET, " sm_86" ),
1713
+ ENUM_ENT (EF_CUDA_SM87 << EF_CUDA_SM_OFFSET, " sm_87" ),
1714
+ ENUM_ENT (EF_CUDA_SM88 << EF_CUDA_SM_OFFSET, " sm_88" ),
1715
+ ENUM_ENT (EF_CUDA_SM89 << EF_CUDA_SM_OFFSET, " sm_89" ),
1716
+ ENUM_ENT (EF_CUDA_SM90 << EF_CUDA_SM_OFFSET, " sm_90" ),
1717
+ ENUM_ENT (EF_CUDA_SM100 << EF_CUDA_SM_OFFSET, " sm_100" ),
1718
+ ENUM_ENT (EF_CUDA_SM101 << EF_CUDA_SM_OFFSET, " sm_101" ),
1719
+ ENUM_ENT (EF_CUDA_SM103 << EF_CUDA_SM_OFFSET, " sm_103" ),
1720
+ ENUM_ENT (EF_CUDA_SM110 << EF_CUDA_SM_OFFSET, " sm_110" ),
1721
+ ENUM_ENT (EF_CUDA_SM120 << EF_CUDA_SM_OFFSET, " sm_120" ),
1722
+ ENUM_ENT (EF_CUDA_SM121 << EF_CUDA_SM_OFFSET, " sm_121" ),
1679
1723
};
1680
1724
1681
1725
const EnumEntry<unsigned > ElfHeaderRISCVFlags[] = {
@@ -3650,10 +3694,16 @@ template <class ELFT> void GNUELFDumper<ELFT>::printFileHeaders() {
3650
3694
else if (e.e_machine == EM_XTENSA)
3651
3695
ElfFlags = printFlags (e.e_flags , ArrayRef (ElfHeaderXtensaFlags),
3652
3696
unsigned (ELF::EF_XTENSA_MACH));
3653
- else if (e.e_machine == EM_CUDA)
3697
+ else if (e.e_machine == EM_CUDA) {
3654
3698
ElfFlags = printFlags (e.e_flags , ArrayRef (ElfHeaderNVPTXFlags),
3655
3699
unsigned (ELF::EF_CUDA_SM));
3656
- else if (e.e_machine == EM_AMDGPU) {
3700
+ if (e.e_ident [ELF::EI_ABIVERSION] == ELF::ELFABIVERSION_CUDA_V1 &&
3701
+ (e.e_flags & ELF::EF_CUDA_ACCELERATORS_V1))
3702
+ ElfFlags += " a" ;
3703
+ else if (e.e_ident [ELF::EI_ABIVERSION] == ELF::ELFABIVERSION_CUDA_V2 &&
3704
+ (e.e_flags & ELF::EF_CUDA_ACCELERATORS))
3705
+ ElfFlags += " a" ;
3706
+ } else if (e.e_machine == EM_AMDGPU) {
3657
3707
switch (e.e_ident [ELF::EI_ABIVERSION]) {
3658
3708
default :
3659
3709
break ;
0 commit comments