[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.  */
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.