@@ -1083,26 +1083,26 @@ const EnumEntry<unsigned> ElfObjectFileType[] = {
10831083};
10841084
10851085const 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} };
11061106
11071107const EnumEntry<unsigned > AMDGPUElfOSABI[] = {
11081108 {" AMDGPU_HSA" , " AMDGPU - HSA" , ELF::ELFOSABI_AMDGPU_HSA},
@@ -1666,16 +1666,60 @@ const EnumEntry<unsigned> ElfHeaderAMDGPUFlagsABIVersion4[] = {
16661666};
16671667
16681668const 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" ),
16791723};
16801724
16811725const EnumEntry<unsigned > ElfHeaderRISCVFlags[] = {
@@ -3650,10 +3694,16 @@ template <class ELFT> void GNUELFDumper<ELFT>::printFileHeaders() {
36503694 else if (e.e_machine == EM_XTENSA)
36513695 ElfFlags = printFlags (e.e_flags , ArrayRef (ElfHeaderXtensaFlags),
36523696 unsigned (ELF::EF_XTENSA_MACH));
3653- else if (e.e_machine == EM_CUDA)
3697+ else if (e.e_machine == EM_CUDA) {
36543698 ElfFlags = printFlags (e.e_flags , ArrayRef (ElfHeaderNVPTXFlags),
36553699 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) {
36573707 switch (e.e_ident [ELF::EI_ABIVERSION]) {
36583708 default :
36593709 break ;
0 commit comments