[binutils-gdb] Add AMDGPU generic targets

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=7a3178707fde9e3210ba049e08ccc796d9b280f5

commit 7a3178707fde9e3210ba049e08ccc796d9b280f5
Author: Simon Marchi <[email protected]>
Date:   Thu May 7 12:01:22 2026 -0400

    Add AMDGPU generic targets
    
    Add the following generic AMDGPU architectures:
    
      - gfx9-generic
      - gfx9-4-generic
      - gfx10-1-generic
      - gfx10-3-generic
      - gfx11-generic
      - gfx12-generic
      - gfx12-5-generic
    
    Change-Id: Ibf600d7c70ba8499f8ef75d8d57a71929f1cd4d4
    Co-Authored-By: Simon Marchi <[email protected]>

Diff:
---
 bfd/archures.c       | 7 +++++++
 bfd/bfd-in2.h        | 7 +++++++
 bfd/cpu-amdgcn.c     | 9 ++++++++-
 binutils/readelf.c   | 7 +++++++
 include/elf/amdgpu.h | 7 +++++++
 5 files changed, 36 insertions(+), 1 deletion(-)

diff --git a/bfd/archures.c b/bfd/archures.c
index 5d5abdb30e7..8cfc81eebb9 100644
--- a/bfd/archures.c
+++ b/bfd/archures.c
@@ -560,19 +560,24 @@ DESCRIPTION
 .#define bfd_mach_loongarch64	2
 .  bfd_arch_amdgcn,     {* AMDGCN *}
 .#define bfd_mach_amdgcn_unknown 0x000
+.#define bfd_mach_amdgcn_gfx9_generic    0x051
 .#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_gfx9_4_generic  0x05f
 .#define bfd_mach_amdgcn_gfx942          0x04c
 .#define bfd_mach_amdgcn_gfx950          0x04f
+.#define bfd_mach_amdgcn_gfx10_1_generic 0x052
 .#define bfd_mach_amdgcn_gfx1010         0x033
 .#define bfd_mach_amdgcn_gfx1011         0x034
 .#define bfd_mach_amdgcn_gfx1012         0x035
+.#define bfd_mach_amdgcn_gfx10_3_generic 0x053
 .#define bfd_mach_amdgcn_gfx1030         0x036
 .#define bfd_mach_amdgcn_gfx1031         0x037
 .#define bfd_mach_amdgcn_gfx1032         0x038
+.#define bfd_mach_amdgcn_gfx11_generic   0x054
 .#define bfd_mach_amdgcn_gfx1100         0x041
 .#define bfd_mach_amdgcn_gfx1101         0x046
 .#define bfd_mach_amdgcn_gfx1102         0x047
@@ -580,8 +585,10 @@ DESCRIPTION
 .#define bfd_mach_amdgcn_gfx1151         0x04a
 .#define bfd_mach_amdgcn_gfx1152         0x055
 .#define bfd_mach_amdgcn_gfx1153         0x058
+.#define bfd_mach_amdgcn_gfx12_generic   0x059
 .#define bfd_mach_amdgcn_gfx1200         0x048
 .#define bfd_mach_amdgcn_gfx1201         0x04e
+.#define bfd_mach_amdgcn_gfx12_5_generic 0x05b
 .#define bfd_mach_amdgcn_gfx1250         0x049
 .  bfd_arch_last
 .  };
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index 066aea12bbf..54d2e746a8f 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -1804,19 +1804,24 @@ enum bfd_architecture
 #define bfd_mach_loongarch64   2
   bfd_arch_amdgcn,     /* AMDGCN */
 #define bfd_mach_amdgcn_unknown         0x000
+#define bfd_mach_amdgcn_gfx9_generic    0x051
 #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_gfx9_4_generic  0x05f
 #define bfd_mach_amdgcn_gfx942          0x04c
 #define bfd_mach_amdgcn_gfx950          0x04f
+#define bfd_mach_amdgcn_gfx10_1_generic 0x052
 #define bfd_mach_amdgcn_gfx1010         0x033
 #define bfd_mach_amdgcn_gfx1011         0x034
 #define bfd_mach_amdgcn_gfx1012         0x035
+#define bfd_mach_amdgcn_gfx10_3_generic 0x053
 #define bfd_mach_amdgcn_gfx1030         0x036
 #define bfd_mach_amdgcn_gfx1031         0x037
 #define bfd_mach_amdgcn_gfx1032         0x038
+#define bfd_mach_amdgcn_gfx11_generic   0x054
 #define bfd_mach_amdgcn_gfx1100         0x041
 #define bfd_mach_amdgcn_gfx1101         0x046
 #define bfd_mach_amdgcn_gfx1102         0x047
@@ -1824,8 +1829,10 @@ enum bfd_architecture
 #define bfd_mach_amdgcn_gfx1151         0x04a
 #define bfd_mach_amdgcn_gfx1152         0x055
 #define bfd_mach_amdgcn_gfx1153         0x058
+#define bfd_mach_amdgcn_gfx12_generic   0x059
 #define bfd_mach_amdgcn_gfx1200         0x048
 #define bfd_mach_amdgcn_gfx1201         0x04e
+#define bfd_mach_amdgcn_gfx12_5_generic 0x05b
 #define bfd_mach_amdgcn_gfx1250         0x049
   bfd_arch_last
   };
diff --git a/bfd/cpu-amdgcn.c b/bfd/cpu-amdgcn.c
index 527a3b9c6d1..a1c691a51b1 100644
--- a/bfd/cpu-amdgcn.c
+++ b/bfd/cpu-amdgcn.c
@@ -64,7 +64,14 @@ static const bfd_arch_info_type arch_info_struct[] =
   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),
+  N (bfd_mach_amdgcn_gfx1250, "amdgcn:gfx1250", false, NN (22)),
+  N (bfd_mach_amdgcn_gfx9_generic, "amdgcn:gfx9-generic", false, NN (23)),
+  N (bfd_mach_amdgcn_gfx9_4_generic, "amdgcn:gfx9-4-generic", false, NN (24)),
+  N (bfd_mach_amdgcn_gfx10_1_generic, "amdgcn:gfx10-1-generic", false, NN (25)),
+  N (bfd_mach_amdgcn_gfx10_3_generic, "amdgcn:gfx10-3-generic", false, NN (26)),
+  N (bfd_mach_amdgcn_gfx11_generic, "amdgcn:gfx11-generic", false, NN (27)),
+  N (bfd_mach_amdgcn_gfx12_generic, "amdgcn:gfx12-generic", false, NN (28)),
+  N (bfd_mach_amdgcn_gfx12_5_generic, "amdgcn:gfx12-5-generic", false, NULL),
 };
 
 const bfd_arch_info_type bfd_amdgcn_arch =
diff --git a/binutils/readelf.c b/binutils/readelf.c
index 73370f3cd16..205adae1eea 100644
--- a/binutils/readelf.c
+++ b/binutils/readelf.c
@@ -5320,6 +5320,13 @@ decode_AMDGPU_machine_flags (char *out, unsigned int e_flags, Filedata *filedata
     AMDGPU_CASE (EF_AMDGPU_MACH_AMDGCN_GFX950, "gfx950")
     AMDGPU_CASE (EF_AMDGPU_MACH_AMDGCN_GFX1013, "gfx1013")
     AMDGPU_CASE (EF_AMDGPU_MACH_AMDGCN_GFX1036, "gfx1036")
+    AMDGPU_CASE (EF_AMDGPU_MACH_AMDGCN_GFX9_GENERIC, "gfx9-generic")
+    AMDGPU_CASE (EF_AMDGPU_MACH_AMDGCN_GFX10_1_GENERIC, "gfx10-1-generic")
+    AMDGPU_CASE (EF_AMDGPU_MACH_AMDGCN_GFX10_3_GENERIC, "gfx10-3-generic")
+    AMDGPU_CASE (EF_AMDGPU_MACH_AMDGCN_GFX11_GENERIC, "gfx11-generic")
+    AMDGPU_CASE (EF_AMDGPU_MACH_AMDGCN_GFX9_4_GENERIC, "gfx9-4-generic")
+    AMDGPU_CASE (EF_AMDGPU_MACH_AMDGCN_GFX12_GENERIC, "gfx12-generic")
+    AMDGPU_CASE (EF_AMDGPU_MACH_AMDGCN_GFX12_5_GENERIC, "gfx12-5-generic")
     default:
       out += sprintf (out, _(", <unknown AMDGPU GPU type: %#x>"), mach);
       break;
diff --git a/include/elf/amdgpu.h b/include/elf/amdgpu.h
index f95404b7261..f5b974ca124 100644
--- a/include/elf/amdgpu.h
+++ b/include/elf/amdgpu.h
@@ -81,6 +81,13 @@
 #define EF_AMDGPU_MACH_AMDGCN_GFX942  0x04c
 #define EF_AMDGPU_MACH_AMDGCN_GFX1201 0x04e
 #define EF_AMDGPU_MACH_AMDGCN_GFX950  0x04f
+#define EF_AMDGPU_MACH_AMDGCN_GFX9_GENERIC 0x051
+#define EF_AMDGPU_MACH_AMDGCN_GFX10_1_GENERIC 0x052
+#define EF_AMDGPU_MACH_AMDGCN_GFX10_3_GENERIC 0x053
+#define EF_AMDGPU_MACH_AMDGCN_GFX11_GENERIC 0x054
+#define EF_AMDGPU_MACH_AMDGCN_GFX12_GENERIC 0x059
+#define EF_AMDGPU_MACH_AMDGCN_GFX12_5_GENERIC 0x05b
+#define EF_AMDGPU_MACH_AMDGCN_GFX9_4_GENERIC 0x05f
 
 /* 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.