1 #include "get_elf_mach_gfx_name.h" 2 3 // This header conflicts with the system elf.h (macros vs enums of the same 4 // identifier) and contains more up to date values for the enum checked here. 5 // rtl.cpp uses the system elf.h. 6 #include "llvm/BinaryFormat/ELF.h" 7 8 const char *get_elf_mach_gfx_name(uint32_t EFlags) { 9 using namespace llvm::ELF; 10 uint32_t Gfx = (EFlags & EF_AMDGPU_MACH); 11 switch (Gfx) { 12 case EF_AMDGPU_MACH_AMDGCN_GFX801: 13 return "gfx801"; 14 case EF_AMDGPU_MACH_AMDGCN_GFX802: 15 return "gfx802"; 16 case EF_AMDGPU_MACH_AMDGCN_GFX803: 17 return "gfx803"; 18 case EF_AMDGPU_MACH_AMDGCN_GFX805: 19 return "gfx805"; 20 case EF_AMDGPU_MACH_AMDGCN_GFX810: 21 return "gfx810"; 22 case EF_AMDGPU_MACH_AMDGCN_GFX900: 23 return "gfx900"; 24 case EF_AMDGPU_MACH_AMDGCN_GFX902: 25 return "gfx902"; 26 case EF_AMDGPU_MACH_AMDGCN_GFX904: 27 return "gfx904"; 28 case EF_AMDGPU_MACH_AMDGCN_GFX906: 29 return "gfx906"; 30 case EF_AMDGPU_MACH_AMDGCN_GFX908: 31 return "gfx908"; 32 case EF_AMDGPU_MACH_AMDGCN_GFX909: 33 return "gfx909"; 34 case EF_AMDGPU_MACH_AMDGCN_GFX90C: 35 return "gfx90c"; 36 case EF_AMDGPU_MACH_AMDGCN_GFX1010: 37 return "gfx1010"; 38 case EF_AMDGPU_MACH_AMDGCN_GFX1011: 39 return "gfx1011"; 40 case EF_AMDGPU_MACH_AMDGCN_GFX1012: 41 return "gfx1012"; 42 case EF_AMDGPU_MACH_AMDGCN_GFX1030: 43 return "gfx1030"; 44 case EF_AMDGPU_MACH_AMDGCN_GFX1031: 45 return "gfx1031"; 46 case EF_AMDGPU_MACH_AMDGCN_GFX1032: 47 return "gfx1032"; 48 case EF_AMDGPU_MACH_AMDGCN_GFX1033: 49 return "gfx1033"; 50 default: 51 return "--unknown gfx"; 52 } 53 } 54