OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [insight/] [bfd/] [cpu-sh.c] - Blame information for rev 1765

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 578 markom
/* BFD library support routines for the Hitachi-SH architecture.
2
   Copyright 1993, 1994, 1997, 1998, 2000 Free Software Foundation, Inc.
3
   Hacked by Steve Chamberlain of Cygnus Support.
4
 
5
This file is part of BFD, the Binary File Descriptor library.
6
 
7
This program is free software; you can redistribute it and/or modify
8
it under the terms of the GNU General Public License as published by
9
the Free Software Foundation; either version 2 of the License, or
10
(at your option) any later version.
11
 
12
This program is distributed in the hope that it will be useful,
13
but WITHOUT ANY WARRANTY; without even the implied warranty of
14
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15
GNU General Public License for more details.
16
 
17
You should have received a copy of the GNU General Public License
18
along with this program; if not, write to the Free Software
19
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
20
 
21
#include "bfd.h"
22
#include "sysdep.h"
23
#include "libbfd.h"
24
 
25
static boolean
26
scan_mach (info, string)
27
     const struct bfd_arch_info *info;
28
     const char *string;
29
{
30
  if (strcasecmp (info->printable_name, string) == 0)
31
    return true;
32
  return false;
33
}
34
 
35
#if 0
36
/* This routine is provided two arch_infos and returns whether
37
   they'd be compatible */
38
 
39
static const bfd_arch_info_type *
40
compatible (a,b)
41
     const bfd_arch_info_type *a;
42
     const bfd_arch_info_type *b;
43
{
44
  if (a->arch != b->arch || a->mach != b->mach)
45
   return NULL;
46
  return a;
47
}
48
#endif
49
 
50
#define SH_NEXT      &arch_info_struct[0]
51
#define SH2_NEXT     &arch_info_struct[1]
52
#define SH_DSP_NEXT  &arch_info_struct[2]
53
#define SH3_NEXT     &arch_info_struct[3]
54
#define SH3_DSP_NEXT &arch_info_struct[4]
55
#define SH3E_NEXT    &arch_info_struct[5]
56
#define SH4_NEXT     NULL
57
 
58
static const bfd_arch_info_type arch_info_struct[] =
59
{
60
  {
61
    32,                         /* 32 bits in a word */
62
    32,                         /* 32 bits in an address */
63
    8,                          /* 8 bits in a byte */
64
    bfd_arch_sh,
65
    bfd_mach_sh2,
66
    "sh",                       /* arch_name  */
67
    "sh2",                      /* printable name */
68
    1,
69
    false,                      /* not the default */
70
    bfd_default_compatible,
71
    scan_mach,
72
    SH2_NEXT
73
  },
74
  {
75
    32,                         /* 32 bits in a word */
76
    32,                         /* 32 bits in an address */
77
    8,                          /* 8 bits in a byte */
78
    bfd_arch_sh,
79
    bfd_mach_sh_dsp,
80
    "sh",                       /* arch_name  */
81
    "sh-dsp",                   /* printable name */
82
    1,
83
    false,                      /* not the default */
84
    bfd_default_compatible,
85
    scan_mach,
86
    SH_DSP_NEXT
87
  },
88
  {
89
    32,                         /* 32 bits in a word */
90
    32,                         /* 32 bits in an address */
91
    8,                          /* 8 bits in a byte */
92
    bfd_arch_sh,
93
    bfd_mach_sh3,
94
    "sh",                       /* arch_name  */
95
    "sh3",                      /* printable name */
96
    1,
97
    false,                      /* not the default */
98
    bfd_default_compatible,
99
    scan_mach,
100
    SH3_NEXT
101
  },
102
  {
103
    32,                         /* 32 bits in a word */
104
    32,                         /* 32 bits in an address */
105
    8,                          /* 8 bits in a byte */
106
    bfd_arch_sh,
107
    bfd_mach_sh3_dsp,
108
    "sh",                       /* arch_name  */
109
    "sh3-dsp",                  /* printable name */
110
    1,
111
    false,                      /* not the default */
112
    bfd_default_compatible,
113
    scan_mach,
114
    SH3_DSP_NEXT
115
  },
116
  {
117
    32,                         /* 32 bits in a word */
118
    32,                         /* 32 bits in an address */
119
    8,                          /* 8 bits in a byte */
120
    bfd_arch_sh,
121
    bfd_mach_sh3e,
122
    "sh",                       /* arch_name  */
123
    "sh3e",                     /* printable name */
124
    1,
125
    false,                      /* not the default */
126
    bfd_default_compatible,
127
    scan_mach,
128
    SH3E_NEXT
129
  },
130
  {
131
    32,                         /* 32 bits in a word */
132
    32,                         /* 32 bits in an address */
133
    8,                          /* 8 bits in a byte */
134
    bfd_arch_sh,
135
    bfd_mach_sh4,
136
    "sh",                       /* arch_name  */
137
    "sh4",                      /* printable name */
138
    1,
139
    false,                      /* not the default */
140
    bfd_default_compatible,
141
    scan_mach,
142
    SH4_NEXT
143
  },
144
};
145
 
146
const bfd_arch_info_type bfd_sh_arch =
147
{
148
  32,                           /* 32 bits in a word */
149
  32,                           /* 32 bits in an address */
150
  8,                            /* 8 bits in a byte */
151
  bfd_arch_sh,
152
  bfd_mach_sh,
153
  "sh",                         /* arch_name  */
154
  "sh",                         /* printable name */
155
  1,
156
  true,                         /* the default machine */
157
  bfd_default_compatible,
158
  scan_mach,
159
  SH_NEXT
160
};

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.