]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blame - bfd/cpu-tic4x.c
[PATCH] fix windmc typedef bug
[thirdparty/binutils-gdb.git] / bfd / cpu-tic4x.c
CommitLineData
026df7c5 1/* bfd back-end for TMS320C[34]x support
b3adc24a 2 Copyright (C) 1996-2020 Free Software Foundation, Inc.
026df7c5
NC
3
4 Contributed by Michael Hayes (m.hayes@elec.canterbury.ac.nz)
5
6 This file is part of BFD, the Binary File Descriptor library.
7
8 This program is free software; you can redistribute it and/or modify
9 it under the terms of the GNU General Public License as published by
cd123cb7 10 the Free Software Foundation; either version 3 of the License, or
026df7c5
NC
11 (at your option) any later version.
12
13 This program is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
17
18 You should have received a copy of the GNU General Public License
19 along with this program; if not, write to the Free Software
cd123cb7
NC
20 Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
21 MA 02110-1301, USA. */
026df7c5 22
026df7c5 23#include "sysdep.h"
3db64b00 24#include "bfd.h"
026df7c5
NC
25#include "libbfd.h"
26
b34976b6 27static bfd_boolean
2c3fc389
NC
28tic4x_scan (const struct bfd_arch_info *info,
29 const char *string)
026df7c5
NC
30{
31 /* Allow strings of form [ti][Cc][34][0-9], let's not be too picky
32 about strange numbered machines in C3x or C4x series. */
33 if (string[0] == 't' && string[1] == 'i')
34 string += 2;
35 if (*string == 'C' || *string == 'c')
36 string++;
37 if (string[1] < '0' && string[1] > '9')
b34976b6 38 return FALSE;
026df7c5
NC
39
40 if (*string == '3')
be33c5dd 41 return (info->mach == bfd_mach_tic3x);
026df7c5 42 else if (*string == '4')
be33c5dd 43 return info->mach == bfd_mach_tic4x;
026df7c5 44
b34976b6 45 return FALSE;
026df7c5
NC
46}
47
aebcfb76
NC
48#define N(NUMBER, NAME, PRINT, DEFAULT, NEXT) \
49 { \
50 32, /* Bits in a word. */ \
51 32, /* Bits in an address. */ \
52 32, /* Bits in a byte. */ \
53 bfd_arch_tic4x, \
54 NUMBER, \
55 NAME, \
56 PRINT, \
57 0, /* Section alignment power. */ \
58 DEFAULT, \
59 bfd_default_compatible, \
60 tic4x_scan, \
61 bfd_arch_default_fill, \
62 NEXT, \
63 0 /* Maximum offset of a reloc from the start of an insn. */ \
64 }
026df7c5
NC
65
66const bfd_arch_info_type bfd_tic3x_arch =
aebcfb76 67 N (bfd_mach_tic3x, "tic3x", "tms320c3x", FALSE, NULL);
026df7c5
NC
68
69const bfd_arch_info_type bfd_tic4x_arch =
aebcfb76 70 N (bfd_mach_tic4x, "tic4x", "tms320c4x", TRUE, &bfd_tic3x_arch);