gdb: add target_ops::supports_displaced_step
[deliverable/binutils-gdb.git] / bfd / cpu-score.c
CommitLineData
1c0d3aa6 1/* BFD support for the score processor
b3adc24a 2 Copyright (C) 2006-2020 Free Software Foundation, Inc.
1c0d3aa6 3 Contributed by
c3b7224a 4 Brain.lin (brain.lin@sunplusct.com)
1c0d3aa6 5 Mei Ligang (ligang@sunnorth.com.cn)
c3b7224a 6 Pei-Lin Tsai (pltsai@sunplus.com)
1c0d3aa6
NC
7
8 This file is part of BFD, the Binary File Descriptor library.
9
10 This program is free software; you can redistribute it and/or modify
11 it under the terms of the GNU General Public License as published by
cd123cb7 12 the Free Software Foundation; either version 3 of the License, or
1c0d3aa6
NC
13 (at your option) any later version.
14
15 This program is distributed in the hope that it will be useful,
16 but WITHOUT ANY WARRANTY; without even the implied warranty of
17 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 GNU General Public License for more details.
19
20 You should have received a copy of the GNU General Public License
21 along with this program; if not, write to the Free Software
cd123cb7
NC
22 Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
23 MA 02110-1301, USA. */
1c0d3aa6 24
c3b7224a 25#include "sysdep.h"
691bf19c 26#include "bfd.h"
1c0d3aa6
NC
27#include "libbfd.h"
28
c3b7224a
NC
29/* This routine is provided two arch_infos and works out which Score
30 machine which would be compatible with both and returns a pointer
31 to its info structure. */
32
33static const bfd_arch_info_type *
34compatible (const bfd_arch_info_type * a, const bfd_arch_info_type * b)
1c0d3aa6 35{
c3b7224a
NC
36 /* If a & b are for different architectures we can do nothing. */
37 if (a->arch != b->arch)
38 return NULL;
39
40 if (a->mach != b->mach)
41 return NULL;
42
43 return a;
44}
45
aebcfb76 46#define N(machine, print, default, next) \
c3b7224a 47{ \
aebcfb76 48 32, /* Bits in a word. */ \
c3b7224a 49 32, /* Bits in an address. */ \
aebcfb76 50 8, /* Bits in a byte. */ \
c3b7224a
NC
51 bfd_arch_score, \
52 machine, /* Machine number. */ \
53 "score", /* Architecture name. */ \
54 print, /* Printable name. */ \
55 4, /* Section align power. */ \
56 default, /* The default machine. */ \
57 compatible, \
58 bfd_default_scan, \
b7761f11 59 bfd_arch_default_fill, \
aebcfb76
NC
60 next, \
61 0 /* Maximum offset of a reloc from the start of an insn. */ \
c3b7224a
NC
62}
63
64static const bfd_arch_info_type arch_info_struct[] =
65{
aebcfb76 66 N (bfd_mach_score3, "score3", FALSE, NULL),
1c0d3aa6 67};
c3b7224a
NC
68
69const bfd_arch_info_type bfd_score_arch =
aebcfb76 70 N (bfd_mach_score7, "score7", TRUE, & arch_info_struct[0]);
This page took 0.652543 seconds and 4 git commands to generate.