PR ld/14357
[deliverable/binutils-gdb.git] / bfd / cpu-tic4x.c
CommitLineData
026df7c5 1/* bfd back-end for TMS320C[34]x support
aa820537 2 Copyright 1996, 1997, 2002, 2003, 2005, 2007 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
be33c5dd 27static bfd_boolean tic4x_scan
a6588c30
AM
28 PARAMS ((const struct bfd_arch_info *, const char * ));
29
30
b34976b6 31static bfd_boolean
be33c5dd 32tic4x_scan (info, string)
026df7c5
NC
33 const struct bfd_arch_info *info;
34 const char *string;
35{
36 /* Allow strings of form [ti][Cc][34][0-9], let's not be too picky
37 about strange numbered machines in C3x or C4x series. */
38 if (string[0] == 't' && string[1] == 'i')
39 string += 2;
40 if (*string == 'C' || *string == 'c')
41 string++;
42 if (string[1] < '0' && string[1] > '9')
b34976b6 43 return FALSE;
026df7c5
NC
44
45 if (*string == '3')
be33c5dd 46 return (info->mach == bfd_mach_tic3x);
026df7c5 47 else if (*string == '4')
be33c5dd 48 return info->mach == bfd_mach_tic4x;
026df7c5 49
b34976b6 50 return FALSE;
026df7c5
NC
51}
52
53
54const bfd_arch_info_type bfd_tic3x_arch =
55 {
56 32, /* 32 bits in a word. */
57 32, /* 32 bits in an address. */
58 32, /* 32 bits in a byte. */
59 bfd_arch_tic4x,
be33c5dd
SS
60 bfd_mach_tic3x, /* Machine number. */
61 "tic3x", /* Architecture name. */
026df7c5
NC
62 "tms320c3x", /* Printable name. */
63 0, /* Alignment power. */
b34976b6
AM
64 FALSE, /* Not the default architecture. */
65 bfd_default_compatible,
be33c5dd 66 tic4x_scan,
b7761f11 67 bfd_arch_default_fill,
026df7c5
NC
68 0
69 };
70
71const bfd_arch_info_type bfd_tic4x_arch =
72 {
73 32, /* 32 bits in a word. */
74 32, /* 32 bits in an address. */
75 32, /* 32 bits in a byte. */
76 bfd_arch_tic4x,
be33c5dd
SS
77 bfd_mach_tic4x, /* Machine number. */
78 "tic4x", /* Architecture name. */
026df7c5
NC
79 "tms320c4x", /* Printable name. */
80 0, /* Alignment power. */
b34976b6
AM
81 TRUE, /* The default architecture. */
82 bfd_default_compatible,
be33c5dd 83 tic4x_scan,
b7761f11 84 bfd_arch_default_fill,
026df7c5
NC
85 &bfd_tic3x_arch,
86 };
87
88
This page took 0.793209 seconds and 4 git commands to generate.