[binutils-gdb] Update list of supported AMDGPU architectures
Simon Marchi via Binutils-cvs <[email protected]>
| Newsgroups | gmane.comp.gnu.binutils.cvs |
|---|---|
| Message-ID | <[email protected]> |
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=f48d94eab1447c83bee92f3f232f92378c3439b7 commit f48d94eab1447c83bee92f3f232f92378c3439b7 Author: Lancelot Six <[email protected]> Date: Fri Oct 31 17:54:09 2025 +0000 Update list of supported AMDGPU architectures This patch updates the list of supported AMDGPU architectures in bfd/ binutils/ and include/elf/. The following architectures have been added: - gfx942 - gfx950 - gfx1150 - gfx1151 - gfx1152 - gfx1153 - gfx1200 - gfx1201 - gfx1250 The canonical source for these numbers is: https://llvm.org/docs/AMDGPUUsage.html#amdgpu-ef-amdgpu-mach-table Co-Authored-By: Laurent Morichetti <[email protected]> Co-Authored-By: Simon Marchi <[email protected]> Co-Authored-By: Olu Ogunbowale <[email protected]> Co-Authored-By: Shahab Vahedi <[email protected]> Co-Authored-By: Anurag Kumar <[email protected]> Change-Id: I80e76c8ec98b725937fe445883fae707097ec2b7 Diff: --- bfd/archures.c | 37 +++++++++++++++++++++++-------------- bfd/bfd-in2.h | 39 ++++++++++++++++++++++++--------------- bfd/cpu-amdgcn.c | 27 ++++++++++++++++++--------- binutils/readelf.c | 9 +++++++++ include/elf/amdgpu.h | 9 +++++++++ 5 files changed, 83 insertions(+), 38 deletions(-) diff --git a/bfd/archures.c b/bfd/archures.c index 34c832bcdd1..5d5abdb30e7 100644 --- a/bfd/archures.c +++ b/bfd/archures.c @@ -560,20 +560,29 @@ DESCRIPTION .#define bfd_mach_loongarch64 2 . bfd_arch_amdgcn, {* AMDGCN *} .#define bfd_mach_amdgcn_unknown 0x000 -.#define bfd_mach_amdgcn_gfx900 0x02c -.#define bfd_mach_amdgcn_gfx904 0x02e -.#define bfd_mach_amdgcn_gfx906 0x02f -.#define bfd_mach_amdgcn_gfx908 0x030 -.#define bfd_mach_amdgcn_gfx90a 0x03f -.#define bfd_mach_amdgcn_gfx1010 0x033 -.#define bfd_mach_amdgcn_gfx1011 0x034 -.#define bfd_mach_amdgcn_gfx1012 0x035 -.#define bfd_mach_amdgcn_gfx1030 0x036 -.#define bfd_mach_amdgcn_gfx1031 0x037 -.#define bfd_mach_amdgcn_gfx1032 0x038 -.#define bfd_mach_amdgcn_gfx1100 0x041 -.#define bfd_mach_amdgcn_gfx1101 0x046 -.#define bfd_mach_amdgcn_gfx1102 0x047 +.#define bfd_mach_amdgcn_gfx900 0x02c +.#define bfd_mach_amdgcn_gfx904 0x02e +.#define bfd_mach_amdgcn_gfx906 0x02f +.#define bfd_mach_amdgcn_gfx908 0x030 +.#define bfd_mach_amdgcn_gfx90a 0x03f +.#define bfd_mach_amdgcn_gfx942 0x04c +.#define bfd_mach_amdgcn_gfx950 0x04f +.#define bfd_mach_amdgcn_gfx1010 0x033 +.#define bfd_mach_amdgcn_gfx1011 0x034 +.#define bfd_mach_amdgcn_gfx1012 0x035 +.#define bfd_mach_amdgcn_gfx1030 0x036 +.#define bfd_mach_amdgcn_gfx1031 0x037 +.#define bfd_mach_amdgcn_gfx1032 0x038 +.#define bfd_mach_amdgcn_gfx1100 0x041 +.#define bfd_mach_amdgcn_gfx1101 0x046 +.#define bfd_mach_amdgcn_gfx1102 0x047 +.#define bfd_mach_amdgcn_gfx1150 0x043 +.#define bfd_mach_amdgcn_gfx1151 0x04a +.#define bfd_mach_amdgcn_gfx1152 0x055 +.#define bfd_mach_amdgcn_gfx1153 0x058 +.#define bfd_mach_amdgcn_gfx1200 0x048 +.#define bfd_mach_amdgcn_gfx1201 0x04e +.#define bfd_mach_amdgcn_gfx1250 0x049 . bfd_arch_last . }; */ diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h index c3257e2a7e4..066aea12bbf 100644 --- a/bfd/bfd-in2.h +++ b/bfd/bfd-in2.h @@ -1803,21 +1803,30 @@ enum bfd_architecture #define bfd_mach_loongarch32 1 #define bfd_mach_loongarch64 2 bfd_arch_amdgcn, /* AMDGCN */ -#define bfd_mach_amdgcn_unknown 0x000 -#define bfd_mach_amdgcn_gfx900 0x02c -#define bfd_mach_amdgcn_gfx904 0x02e -#define bfd_mach_amdgcn_gfx906 0x02f -#define bfd_mach_amdgcn_gfx908 0x030 -#define bfd_mach_amdgcn_gfx90a 0x03f -#define bfd_mach_amdgcn_gfx1010 0x033 -#define bfd_mach_amdgcn_gfx1011 0x034 -#define bfd_mach_amdgcn_gfx1012 0x035 -#define bfd_mach_amdgcn_gfx1030 0x036 -#define bfd_mach_amdgcn_gfx1031 0x037 -#define bfd_mach_amdgcn_gfx1032 0x038 -#define bfd_mach_amdgcn_gfx1100 0x041 -#define bfd_mach_amdgcn_gfx1101 0x046 -#define bfd_mach_amdgcn_gfx1102 0x047 +#define bfd_mach_amdgcn_unknown 0x000 +#define bfd_mach_amdgcn_gfx900 0x02c +#define bfd_mach_amdgcn_gfx904 0x02e +#define bfd_mach_amdgcn_gfx906 0x02f +#define bfd_mach_amdgcn_gfx908 0x030 +#define bfd_mach_amdgcn_gfx90a 0x03f +#define bfd_mach_amdgcn_gfx942 0x04c +#define bfd_mach_amdgcn_gfx950 0x04f +#define bfd_mach_amdgcn_gfx1010 0x033 +#define bfd_mach_amdgcn_gfx1011 0x034 +#define bfd_mach_amdgcn_gfx1012 0x035 +#define bfd_mach_amdgcn_gfx1030 0x036 +#define bfd_mach_amdgcn_gfx1031 0x037 +#define bfd_mach_amdgcn_gfx1032 0x038 +#define bfd_mach_amdgcn_gfx1100 0x041 +#define bfd_mach_amdgcn_gfx1101 0x046 +#define bfd_mach_amdgcn_gfx1102 0x047 +#define bfd_mach_amdgcn_gfx1150 0x043 +#define bfd_mach_amdgcn_gfx1151 0x04a +#define bfd_mach_amdgcn_gfx1152 0x055 +#define bfd_mach_amdgcn_gfx1153 0x058 +#define bfd_mach_amdgcn_gfx1200 0x048 +#define bfd_mach_amdgcn_gfx1201 0x04e +#define bfd_mach_amdgcn_gfx1250 0x049 bfd_arch_last }; diff --git a/bfd/cpu-amdgcn.c b/bfd/cpu-amdgcn.c index d2a0f69a4fc..527a3b9c6d1 100644 --- a/bfd/cpu-amdgcn.c +++ b/bfd/cpu-amdgcn.c @@ -47,15 +47,24 @@ static const bfd_arch_info_type arch_info_struct[] = N (bfd_mach_amdgcn_gfx906, "amdgcn:gfx906", false, NN (2)), N (bfd_mach_amdgcn_gfx908, "amdgcn:gfx908", false, NN (3)), N (bfd_mach_amdgcn_gfx90a, "amdgcn:gfx90a", false, NN (4)), - N (bfd_mach_amdgcn_gfx1010, "amdgcn:gfx1010", false, NN (5)), - N (bfd_mach_amdgcn_gfx1011, "amdgcn:gfx1011", false, NN (6)), - N (bfd_mach_amdgcn_gfx1012, "amdgcn:gfx1012", false, NN (7)), - N (bfd_mach_amdgcn_gfx1030, "amdgcn:gfx1030", false, NN (8)), - N (bfd_mach_amdgcn_gfx1031, "amdgcn:gfx1031", false, NN (9)), - N (bfd_mach_amdgcn_gfx1032, "amdgcn:gfx1032", false, NN (10)), - N (bfd_mach_amdgcn_gfx1100, "amdgcn:gfx1100", false, NN (11)), - N (bfd_mach_amdgcn_gfx1101, "amdgcn:gfx1101", false, NN (12)), - N (bfd_mach_amdgcn_gfx1102, "amdgcn:gfx1102", false, NULL) + N (bfd_mach_amdgcn_gfx942, "amdgcn:gfx942", false, NN (5)), + N (bfd_mach_amdgcn_gfx950, "amdgcn:gfx950", false, NN (6)), + N (bfd_mach_amdgcn_gfx1010, "amdgcn:gfx1010", false, NN (7)), + N (bfd_mach_amdgcn_gfx1011, "amdgcn:gfx1011", false, NN (8)), + N (bfd_mach_amdgcn_gfx1012, "amdgcn:gfx1012", false, NN (9)), + N (bfd_mach_amdgcn_gfx1030, "amdgcn:gfx1030", false, NN (10)), + N (bfd_mach_amdgcn_gfx1031, "amdgcn:gfx1031", false, NN (11)), + N (bfd_mach_amdgcn_gfx1032, "amdgcn:gfx1032", false, NN (12)), + N (bfd_mach_amdgcn_gfx1100, "amdgcn:gfx1100", false, NN (13)), + N (bfd_mach_amdgcn_gfx1101, "amdgcn:gfx1101", false, NN (14)), + N (bfd_mach_amdgcn_gfx1102, "amdgcn:gfx1102", false, NN (15)), + N (bfd_mach_amdgcn_gfx1150, "amdgcn:gfx1150", false, NN (16)), + N (bfd_mach_amdgcn_gfx1151, "amdgcn:gfx1151", false, NN (17)), + N (bfd_mach_amdgcn_gfx1152, "amdgcn:gfx1152", false, NN (18)), + N (bfd_mach_amdgcn_gfx1153, "amdgcn:gfx1153", false, NN (19)), + N (bfd_mach_amdgcn_gfx1200, "amdgcn:gfx1200", false, NN (20)), + N (bfd_mach_amdgcn_gfx1201, "amdgcn:gfx1201", false, NN (21)), + N (bfd_mach_amdgcn_gfx1250, "amdgcn:gfx1250", false, NULL), }; const bfd_arch_info_type bfd_amdgcn_arch = diff --git a/binutils/readelf.c b/binutils/readelf.c index 7b2c1c9ae88..73370f3cd16 100644 --- a/binutils/readelf.c +++ b/binutils/readelf.c @@ -5302,6 +5302,13 @@ decode_AMDGPU_machine_flags (char *out, unsigned int e_flags, Filedata *filedata AMDGPU_CASE (EF_AMDGPU_MACH_AMDGCN_GFX1100, "gfx1100") AMDGPU_CASE (EF_AMDGPU_MACH_AMDGCN_GFX1101, "gfx1101") AMDGPU_CASE (EF_AMDGPU_MACH_AMDGCN_GFX1102, "gfx1102") + AMDGPU_CASE (EF_AMDGPU_MACH_AMDGCN_GFX1150, "gfx1150") + AMDGPU_CASE (EF_AMDGPU_MACH_AMDGCN_GFX1151, "gfx1151") + AMDGPU_CASE (EF_AMDGPU_MACH_AMDGCN_GFX1152, "gfx1152") + AMDGPU_CASE (EF_AMDGPU_MACH_AMDGCN_GFX1153, "gfx1153") + AMDGPU_CASE (EF_AMDGPU_MACH_AMDGCN_GFX1200, "gfx1200") + AMDGPU_CASE (EF_AMDGPU_MACH_AMDGCN_GFX1201, "gfx1201") + AMDGPU_CASE (EF_AMDGPU_MACH_AMDGCN_GFX1250, "gfx1250") AMDGPU_CASE (EF_AMDGPU_MACH_AMDGCN_GFX602, "gfx602") AMDGPU_CASE (EF_AMDGPU_MACH_AMDGCN_GFX705, "gfx705") AMDGPU_CASE (EF_AMDGPU_MACH_AMDGCN_GFX805, "gfx805") @@ -5309,6 +5316,8 @@ decode_AMDGPU_machine_flags (char *out, unsigned int e_flags, Filedata *filedata AMDGPU_CASE (EF_AMDGPU_MACH_AMDGCN_GFX1034, "gfx1034") AMDGPU_CASE (EF_AMDGPU_MACH_AMDGCN_GFX90A, "gfx90a") AMDGPU_CASE (EF_AMDGPU_MACH_AMDGCN_GFX940, "gfx940") + AMDGPU_CASE (EF_AMDGPU_MACH_AMDGCN_GFX942, "gfx942") + AMDGPU_CASE (EF_AMDGPU_MACH_AMDGCN_GFX950, "gfx950") AMDGPU_CASE (EF_AMDGPU_MACH_AMDGCN_GFX1013, "gfx1013") AMDGPU_CASE (EF_AMDGPU_MACH_AMDGCN_GFX1036, "gfx1036") default: diff --git a/include/elf/amdgpu.h b/include/elf/amdgpu.h index 5bf6019c840..f95404b7261 100644 --- a/include/elf/amdgpu.h +++ b/include/elf/amdgpu.h @@ -72,6 +72,15 @@ #define EF_AMDGPU_MACH_AMDGCN_GFX1036 0x045 #define EF_AMDGPU_MACH_AMDGCN_GFX1101 0x046 #define EF_AMDGPU_MACH_AMDGCN_GFX1102 0x047 +#define EF_AMDGPU_MACH_AMDGCN_GFX1150 0x043 +#define EF_AMDGPU_MACH_AMDGCN_GFX1151 0x04a +#define EF_AMDGPU_MACH_AMDGCN_GFX1152 0x055 +#define EF_AMDGPU_MACH_AMDGCN_GFX1153 0x058 +#define EF_AMDGPU_MACH_AMDGCN_GFX1200 0x048 +#define EF_AMDGPU_MACH_AMDGCN_GFX1250 0x049 +#define EF_AMDGPU_MACH_AMDGCN_GFX942 0x04c +#define EF_AMDGPU_MACH_AMDGCN_GFX1201 0x04e +#define EF_AMDGPU_MACH_AMDGCN_GFX950 0x04f /* Code object v3 machine flags. */