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

Subversion Repositories open8_urisc

[/] [open8_urisc/] [trunk/] [gnu/] [binutils/] [bfd/] [cpu-i386.c] - Blame information for rev 161

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 14 khays
/* BFD support for the Intel 386 architecture.
2
   Copyright 1992, 1994, 1995, 1996, 1998, 2000, 2001, 2002, 2004, 2005,
3
   2007, 2009, 2010, 2011
4
   Free Software Foundation, Inc.
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
10
   the Free Software Foundation; either version 3 of the License, or
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
20
   Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
21
   MA 02110-1301, USA.  */
22
 
23
#include "sysdep.h"
24
#include "bfd.h"
25
#include "libbfd.h"
26
 
27
static const bfd_arch_info_type *
28
bfd_i386_compatible (const bfd_arch_info_type *a,
29
                     const bfd_arch_info_type *b)
30
{
31
  const bfd_arch_info_type *compat = bfd_default_compatible (a, b);
32
 
33
  /* Don't allow mixing x64_32 with x86_64.  */
34 161 khays
  if (compat
35
      && (a->mach & bfd_mach_x64_32) != (b->mach & bfd_mach_x64_32))
36 14 khays
    compat = NULL;
37
 
38
  return compat;
39
}
40
 
41
static const bfd_arch_info_type bfd_x64_32_arch_intel_syntax =
42
{
43
  64, /* 64 bits in a word */
44 161 khays
  64, /* 64 bits in an address */
45 14 khays
  8,  /* 8 bits in a byte */
46
  bfd_arch_i386,
47
  bfd_mach_x64_32_intel_syntax,
48
  "i386:intel",
49
  "i386:x64-32:intel",
50
  3,
51
  FALSE,
52
  bfd_i386_compatible,
53
  bfd_default_scan,
54
 
55
};
56
 
57
static const bfd_arch_info_type bfd_x86_64_arch_intel_syntax =
58
{
59
  64, /* 64 bits in a word */
60
  64, /* 64 bits in an address */
61
  8,  /* 8 bits in a byte */
62
  bfd_arch_i386,
63
  bfd_mach_x86_64_intel_syntax,
64
  "i386:intel",
65
  "i386:x86-64:intel",
66
  3,
67
  FALSE,
68
  bfd_i386_compatible,
69
  bfd_default_scan,
70
  &bfd_x64_32_arch_intel_syntax,
71
};
72
 
73
static const bfd_arch_info_type bfd_i386_arch_intel_syntax =
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_i386,
79
  bfd_mach_i386_i386_intel_syntax,
80
  "i386:intel",
81
  "i386:intel",
82
  3,
83
  TRUE,
84
  bfd_i386_compatible,
85
  bfd_default_scan,
86
  &bfd_x86_64_arch_intel_syntax
87
};
88
 
89
static const bfd_arch_info_type i8086_arch =
90
{
91
  32,   /* 32 bits in a word */
92
  32,   /* 32 bits in an address (well, not really) */
93
  8,    /* 8 bits in a byte */
94
  bfd_arch_i386,
95
  bfd_mach_i386_i8086,
96
  "i8086",
97
  "i8086",
98
  3,
99
  FALSE,
100
  bfd_i386_compatible,
101
  bfd_default_scan,
102
  &bfd_i386_arch_intel_syntax
103
};
104
 
105
static const bfd_arch_info_type bfd_x64_32_arch =
106
{
107
  64, /* 64 bits in a word */
108 161 khays
  64, /* 64 bits in an address */
109 14 khays
  8,  /* 8 bits in a byte */
110
  bfd_arch_i386,
111
  bfd_mach_x64_32,
112
  "i386",
113
  "i386:x64-32",
114
  3,
115
  FALSE,
116
  bfd_i386_compatible,
117
  bfd_default_scan,
118
  &i8086_arch
119
};
120
 
121
static const bfd_arch_info_type bfd_x86_64_arch =
122
{
123
  64, /* 64 bits in a word */
124
  64, /* 64 bits in an address */
125
  8,  /* 8 bits in a byte */
126
  bfd_arch_i386,
127
  bfd_mach_x86_64,
128
  "i386",
129
  "i386:x86-64",
130
  3,
131
  FALSE,
132
  bfd_i386_compatible,
133
  bfd_default_scan,
134
  &bfd_x64_32_arch
135
};
136
 
137
const bfd_arch_info_type bfd_i386_arch =
138
{
139
  32,   /* 32 bits in a word */
140
  32,   /* 32 bits in an address */
141
  8,    /* 8 bits in a byte */
142
  bfd_arch_i386,
143
  bfd_mach_i386_i386,
144
  "i386",
145
  "i386",
146
  3,
147
  TRUE,
148
  bfd_i386_compatible,
149
  bfd_default_scan,
150
  &bfd_x86_64_arch
151
};

powered by: WebSVN 2.1.0

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