diff options
Diffstat (limited to 'bfd/cpu-amdgcn.c')
-rw-r--r-- | bfd/cpu-amdgcn.c | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/bfd/cpu-amdgcn.c b/bfd/cpu-amdgcn.c new file mode 100644 index 0000000..ef51e66 --- /dev/null +++ b/bfd/cpu-amdgcn.c @@ -0,0 +1,59 @@ +/* BFD support for the AMDGCN GPU architecture. + + Copyright (C) 2019-2022 Free Software Foundation, Inc. + + This file is part of BFD, the Binary File Descriptor library. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <http://www.gnu.org/licenses/>. */ + +#include "sysdep.h" +#include "bfd.h" +#include "libbfd.h" + +#define N(MACHINE, PRINTABLE_NAME, DEFAULT, NEXT) \ + { \ + 32, /* 32 bits in a word */ \ + 64, /* 64 bits in an address */ \ + 8, /* 8 bits in a byte */ \ + bfd_arch_amdgcn, \ + MACHINE, \ + "amdgcn", \ + PRINTABLE_NAME, \ + 3, /* section align power */ \ + DEFAULT, \ + bfd_default_compatible, \ + bfd_default_scan, \ + bfd_arch_default_fill, \ + NEXT, \ + 0 \ + } + +#define NN(index) (&arch_info_struct[index]) + +static const bfd_arch_info_type arch_info_struct[] = +{ + N (bfd_mach_amdgcn_gfx904, "amdgcn:gfx904", false, NN (1)), + 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, NULL) +}; + +const bfd_arch_info_type bfd_amdgcn_arch = + N (bfd_mach_amdgcn_gfx900, "amdgcn:gfx900", true, NN (0)); |