59 lines
2.6 KiB
C
59 lines
2.6 KiB
C
/* 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));
|