[PATCH v2 2/4] Add AMDGPU generic targets
Simon Marchi
simon.marchi@efficios.com
Thu May 7 19:43:58 GMT 2026
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 <simon.marchi@efficios.com>
---
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 5d5abdb30e71..8cfc81eebb96 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 066aea12bbf4..54d2e746a8ff 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 527a3b9c6d14..a1c691a51b1a 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 b2084df5b818..8b565f085e5a 100644
--- a/binutils/readelf.c
+++ b/binutils/readelf.c
@@ -5319,6 +5319,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 23ce145a1180..747a15c417d1 100644
--- a/include/elf/amdgpu.h
+++ b/include/elf/amdgpu.h
@@ -80,6 +80,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. */
--
2.54.0
More information about the Binutils
mailing list