[PATCH 2/3] Add AMDGPU generic targets
Luis Machado
luis.machado@amd.com
Fri Oct 31 17:54:10 GMT 2025
From: Lancelot Six <lancelot.six@amd.com>
Add the following generic AMDGPU architectures:
- gfx9-generic
- gfx9-4-generic
- gfx10-1-generic
- gfx10-3-generic
- gfx11-generic
- gfx12-generic
---
bfd/archures.c | 6 ++++++
bfd/bfd-in2.h | 6 ++++++
bfd/cpu-amdgcn.c | 8 +++++++-
binutils/readelf.c | 6 ++++++
include/elf/amdgpu.h | 6 ++++++
5 files changed, 31 insertions(+), 1 deletion(-)
diff --git a/bfd/archures.c b/bfd/archures.c
index ceeda23ad11..fd784e40099 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,6 +585,7 @@ 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
. bfd_arch_last
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h
index 339219cd326..5254d084b9d 100644
--- a/bfd/bfd-in2.h
+++ b/bfd/bfd-in2.h
@@ -1796,19 +1796,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
@@ -1816,6 +1821,7 @@ 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
bfd_arch_last
diff --git a/bfd/cpu-amdgcn.c b/bfd/cpu-amdgcn.c
index 2b336f2507a..4b93344a98f 100644
--- a/bfd/cpu-amdgcn.c
+++ b/bfd/cpu-amdgcn.c
@@ -63,7 +63,13 @@ static const bfd_arch_info_type arch_info_struct[] =
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, NULL),
+ N (bfd_mach_amdgcn_gfx1201, "amdgcn:gfx1201", false, NN (21)),
+ N (bfd_mach_amdgcn_gfx9_generic, "amdgcn:gfx9-generic", false, NN (22)),
+ N (bfd_mach_amdgcn_gfx9_4_generic, "amdgcn:gfx9-4-generic", false, NN (23)),
+ N (bfd_mach_amdgcn_gfx10_1_generic, "amdgcn:gfx10-1-generic", false, NN (24)),
+ N (bfd_mach_amdgcn_gfx10_3_generic, "amdgcn:gfx10-3-generic", false, NN (25)),
+ N (bfd_mach_amdgcn_gfx11_generic, "amdgcn:gfx11-generic", false, NN (26)),
+ N (bfd_mach_amdgcn_gfx12_generic, "amdgcn:gfx12-generic", false, NULL),
};
const bfd_arch_info_type bfd_amdgcn_arch =
diff --git a/binutils/readelf.c b/binutils/readelf.c
index 9d16ccd1a63..44d23261cc8 100644
--- a/binutils/readelf.c
+++ b/binutils/readelf.c
@@ -5272,6 +5272,12 @@ 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")
default:
out += sprintf (out, _(", <unknown AMDGPU GPU type: %#x>"), mach);
break;
diff --git a/include/elf/amdgpu.h b/include/elf/amdgpu.h
index 43e34c10f08..7db66c0c08b 100644
--- a/include/elf/amdgpu.h
+++ b/include/elf/amdgpu.h
@@ -79,6 +79,12 @@
#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_GFX9_4_GENERIC 0x05f
/* Code object v3 machine flags. */
--
2.43.0
More information about the Binutils
mailing list