Coverage Report

Created: 2026-07-12 09:22

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/binutils-gdb/bfd/ecoffswap.h
Line
Count
Source
1
/* Generic ECOFF swapping routines, for BFD.
2
   Copyright (C) 1992-2026 Free Software Foundation, Inc.
3
   Written by 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 3 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., 51 Franklin Street - Fifth Floor, Boston,
20
   MA 02110-1301, USA.  */
21
22
23
/* NOTE: This is a header file, but it contains executable routines.
24
   This is done this way because these routines are substantially
25
   similar, but are not identical, for all ECOFF targets.
26
27
   These are routines to swap the ECOFF symbolic information in and
28
   out.  The routines are defined statically.  You can set breakpoints
29
   on them in gdb by naming the including source file; e.g.,
30
   'coff-mips.c':ecoff_swap_hdr_in.
31
32
   Before including this header file, one of ECOFF_32, ECOFF_64,
33
   ECOFF_SIGNED_32 or ECOFF_SIGNED_64 must be defined.  These are
34
   checked when swapping information that depends upon the target
35
   size.  This code works for 32 bit and 64 bit ECOFF, but may need to
36
   be generalized in the future.
37
38
   Some header file which defines the external forms of these
39
   structures must also be included before including this header file.
40
   Currently this is either coff/mips.h or coff/alpha.h.
41
42
   If the symbol TEST is defined when this file is compiled, a
43
   comparison is made to ensure that, in fact, the output is
44
   bit-for-bit the same as the input.  Of course, this symbol should
45
   only be defined when deliberately testing the code on a machine
46
   with the proper byte sex and such.  */
47
48
#ifdef ECOFF_32
49
139k
#define ECOFF_GET_OFF H_GET_32
50
0
#define ECOFF_PUT_OFF H_PUT_32
51
#endif
52
#ifdef ECOFF_64
53
25.8k
#define ECOFF_GET_OFF H_GET_64
54
0
#define ECOFF_PUT_OFF H_PUT_64
55
#endif
56
#ifdef ECOFF_SIGNED_32
57
0
#define ECOFF_GET_OFF H_GET_S32
58
0
#define ECOFF_PUT_OFF H_PUT_S32
59
#endif
60
#ifdef ECOFF_SIGNED_64
61
272k
#define ECOFF_GET_OFF H_GET_S64
62
0
#define ECOFF_PUT_OFF H_PUT_S64
63
#endif
64
65
/* ECOFF auxiliary information swapping routines.  These are the same
66
   for all ECOFF targets, so they are defined in ecofflink.c.  */
67
68
extern void _bfd_ecoff_swap_tir_in
69
  (int, const struct tir_ext *, TIR *);
70
extern void _bfd_ecoff_swap_tir_out
71
  (int, const TIR *, struct tir_ext *);
72
extern void _bfd_ecoff_swap_rndx_in
73
  (int, const struct rndx_ext *, RNDXR *);
74
extern void _bfd_ecoff_swap_rndx_out
75
  (int, const RNDXR *, struct rndx_ext *);
76
77
/* Prototypes for functions defined in this file.  */
78
79
static void ecoff_swap_hdr_in (bfd *, void *, HDRR *);
80
static void ecoff_swap_hdr_out (bfd *, const HDRR *, void *);
81
static void ecoff_swap_fdr_in (bfd *, void *, FDR *);
82
static void ecoff_swap_fdr_out (bfd *, const FDR *, void *);
83
static void ecoff_swap_pdr_in (bfd *, void *, PDR *);
84
static void ecoff_swap_pdr_out (bfd *, const PDR *, void *);
85
static void ecoff_swap_sym_in (bfd *, void *, SYMR *);
86
static void ecoff_swap_sym_out (bfd *, const SYMR *, void *);
87
static void ecoff_swap_ext_in (bfd *, void *, EXTR *);
88
static void ecoff_swap_ext_out (bfd *, const EXTR *, void *);
89
static void ecoff_swap_rfd_in (bfd *, void *, RFDT *);
90
static void ecoff_swap_rfd_out (bfd *, const RFDT *, void *);
91
static void ecoff_swap_opt_in (bfd *, void *, OPTR *);
92
static void ecoff_swap_opt_out (bfd *, const OPTR *, void *);
93
static void ecoff_swap_dnr_in (bfd *, void *, DNR *);
94
static void ecoff_swap_dnr_out (bfd *, const DNR *, void *);
95
96
/* Swap in the symbolic header.  */
97
98
static void
99
ecoff_swap_hdr_in (bfd *abfd, void * ext_copy, HDRR *intern)
100
6.35k
{
101
6.35k
  struct hdr_ext ext[1];
102
103
6.35k
  *ext = *(struct hdr_ext *) ext_copy;
104
105
6.35k
  intern->magic   = H_GET_S16  (abfd, ext->h_magic);
106
6.35k
  intern->vstamp  = H_GET_S16  (abfd, ext->h_vstamp);
107
6.35k
  intern->ilineMax  = H_GET_32  (abfd, ext->h_ilineMax);
108
6.35k
  intern->cbLine  = ECOFF_GET_OFF (abfd, ext->h_cbLine);
109
6.35k
  intern->cbLineOffset  = ECOFF_GET_OFF (abfd, ext->h_cbLineOffset);
110
6.35k
  intern->idnMax  = H_GET_32  (abfd, ext->h_idnMax);
111
6.35k
  intern->cbDnOffset  = ECOFF_GET_OFF (abfd, ext->h_cbDnOffset);
112
6.35k
  intern->ipdMax  = H_GET_32  (abfd, ext->h_ipdMax);
113
6.35k
  intern->cbPdOffset  = ECOFF_GET_OFF (abfd, ext->h_cbPdOffset);
114
6.35k
  intern->isymMax = H_GET_32  (abfd, ext->h_isymMax);
115
6.35k
  intern->cbSymOffset = ECOFF_GET_OFF (abfd, ext->h_cbSymOffset);
116
6.35k
  intern->ioptMax = H_GET_32  (abfd, ext->h_ioptMax);
117
6.35k
  intern->cbOptOffset = ECOFF_GET_OFF (abfd, ext->h_cbOptOffset);
118
6.35k
  intern->iauxMax = H_GET_32  (abfd, ext->h_iauxMax);
119
6.35k
  intern->cbAuxOffset = ECOFF_GET_OFF (abfd, ext->h_cbAuxOffset);
120
6.35k
  intern->issMax  = H_GET_32  (abfd, ext->h_issMax);
121
6.35k
  intern->cbSsOffset  = ECOFF_GET_OFF (abfd, ext->h_cbSsOffset);
122
6.35k
  intern->issExtMax = H_GET_32  (abfd, ext->h_issExtMax);
123
6.35k
  intern->cbSsExtOffset = ECOFF_GET_OFF (abfd, ext->h_cbSsExtOffset);
124
6.35k
  intern->ifdMax  = H_GET_32  (abfd, ext->h_ifdMax);
125
6.35k
  intern->cbFdOffset  = ECOFF_GET_OFF (abfd, ext->h_cbFdOffset);
126
6.35k
  intern->crfd    = H_GET_32  (abfd, ext->h_crfd);
127
6.35k
  intern->cbRfdOffset = ECOFF_GET_OFF (abfd, ext->h_cbRfdOffset);
128
6.35k
  intern->iextMax = H_GET_32  (abfd, ext->h_iextMax);
129
6.35k
  intern->cbExtOffset = ECOFF_GET_OFF (abfd, ext->h_cbExtOffset);
130
131
#ifdef TEST
132
  if (memcmp ((char *) ext, (char *) intern, sizeof (*intern)) != 0)
133
    abort ();
134
#endif
135
6.35k
}
coff-alpha.c:ecoff_swap_hdr_in
Line
Count
Source
100
2.06k
{
101
2.06k
  struct hdr_ext ext[1];
102
103
2.06k
  *ext = *(struct hdr_ext *) ext_copy;
104
105
2.06k
  intern->magic   = H_GET_S16  (abfd, ext->h_magic);
106
2.06k
  intern->vstamp  = H_GET_S16  (abfd, ext->h_vstamp);
107
2.06k
  intern->ilineMax  = H_GET_32  (abfd, ext->h_ilineMax);
108
2.06k
  intern->cbLine  = ECOFF_GET_OFF (abfd, ext->h_cbLine);
109
2.06k
  intern->cbLineOffset  = ECOFF_GET_OFF (abfd, ext->h_cbLineOffset);
110
2.06k
  intern->idnMax  = H_GET_32  (abfd, ext->h_idnMax);
111
2.06k
  intern->cbDnOffset  = ECOFF_GET_OFF (abfd, ext->h_cbDnOffset);
112
2.06k
  intern->ipdMax  = H_GET_32  (abfd, ext->h_ipdMax);
113
2.06k
  intern->cbPdOffset  = ECOFF_GET_OFF (abfd, ext->h_cbPdOffset);
114
2.06k
  intern->isymMax = H_GET_32  (abfd, ext->h_isymMax);
115
2.06k
  intern->cbSymOffset = ECOFF_GET_OFF (abfd, ext->h_cbSymOffset);
116
2.06k
  intern->ioptMax = H_GET_32  (abfd, ext->h_ioptMax);
117
2.06k
  intern->cbOptOffset = ECOFF_GET_OFF (abfd, ext->h_cbOptOffset);
118
2.06k
  intern->iauxMax = H_GET_32  (abfd, ext->h_iauxMax);
119
2.06k
  intern->cbAuxOffset = ECOFF_GET_OFF (abfd, ext->h_cbAuxOffset);
120
2.06k
  intern->issMax  = H_GET_32  (abfd, ext->h_issMax);
121
2.06k
  intern->cbSsOffset  = ECOFF_GET_OFF (abfd, ext->h_cbSsOffset);
122
2.06k
  intern->issExtMax = H_GET_32  (abfd, ext->h_issExtMax);
123
2.06k
  intern->cbSsExtOffset = ECOFF_GET_OFF (abfd, ext->h_cbSsExtOffset);
124
2.06k
  intern->ifdMax  = H_GET_32  (abfd, ext->h_ifdMax);
125
2.06k
  intern->cbFdOffset  = ECOFF_GET_OFF (abfd, ext->h_cbFdOffset);
126
2.06k
  intern->crfd    = H_GET_32  (abfd, ext->h_crfd);
127
2.06k
  intern->cbRfdOffset = ECOFF_GET_OFF (abfd, ext->h_cbRfdOffset);
128
2.06k
  intern->iextMax = H_GET_32  (abfd, ext->h_iextMax);
129
2.06k
  intern->cbExtOffset = ECOFF_GET_OFF (abfd, ext->h_cbExtOffset);
130
131
#ifdef TEST
132
  if (memcmp ((char *) ext, (char *) intern, sizeof (*intern)) != 0)
133
    abort ();
134
#endif
135
2.06k
}
Unexecuted instantiation: elf32-mips.c:ecoff_swap_hdr_in
Unexecuted instantiation: elf64-alpha.c:ecoff_swap_hdr_in
elf64-mips.c:ecoff_swap_hdr_in
Line
Count
Source
100
3.32k
{
101
3.32k
  struct hdr_ext ext[1];
102
103
3.32k
  *ext = *(struct hdr_ext *) ext_copy;
104
105
3.32k
  intern->magic   = H_GET_S16  (abfd, ext->h_magic);
106
3.32k
  intern->vstamp  = H_GET_S16  (abfd, ext->h_vstamp);
107
3.32k
  intern->ilineMax  = H_GET_32  (abfd, ext->h_ilineMax);
108
3.32k
  intern->cbLine  = ECOFF_GET_OFF (abfd, ext->h_cbLine);
109
3.32k
  intern->cbLineOffset  = ECOFF_GET_OFF (abfd, ext->h_cbLineOffset);
110
3.32k
  intern->idnMax  = H_GET_32  (abfd, ext->h_idnMax);
111
3.32k
  intern->cbDnOffset  = ECOFF_GET_OFF (abfd, ext->h_cbDnOffset);
112
3.32k
  intern->ipdMax  = H_GET_32  (abfd, ext->h_ipdMax);
113
3.32k
  intern->cbPdOffset  = ECOFF_GET_OFF (abfd, ext->h_cbPdOffset);
114
3.32k
  intern->isymMax = H_GET_32  (abfd, ext->h_isymMax);
115
3.32k
  intern->cbSymOffset = ECOFF_GET_OFF (abfd, ext->h_cbSymOffset);
116
3.32k
  intern->ioptMax = H_GET_32  (abfd, ext->h_ioptMax);
117
3.32k
  intern->cbOptOffset = ECOFF_GET_OFF (abfd, ext->h_cbOptOffset);
118
3.32k
  intern->iauxMax = H_GET_32  (abfd, ext->h_iauxMax);
119
3.32k
  intern->cbAuxOffset = ECOFF_GET_OFF (abfd, ext->h_cbAuxOffset);
120
3.32k
  intern->issMax  = H_GET_32  (abfd, ext->h_issMax);
121
3.32k
  intern->cbSsOffset  = ECOFF_GET_OFF (abfd, ext->h_cbSsOffset);
122
3.32k
  intern->issExtMax = H_GET_32  (abfd, ext->h_issExtMax);
123
3.32k
  intern->cbSsExtOffset = ECOFF_GET_OFF (abfd, ext->h_cbSsExtOffset);
124
3.32k
  intern->ifdMax  = H_GET_32  (abfd, ext->h_ifdMax);
125
3.32k
  intern->cbFdOffset  = ECOFF_GET_OFF (abfd, ext->h_cbFdOffset);
126
3.32k
  intern->crfd    = H_GET_32  (abfd, ext->h_crfd);
127
3.32k
  intern->cbRfdOffset = ECOFF_GET_OFF (abfd, ext->h_cbRfdOffset);
128
3.32k
  intern->iextMax = H_GET_32  (abfd, ext->h_iextMax);
129
3.32k
  intern->cbExtOffset = ECOFF_GET_OFF (abfd, ext->h_cbExtOffset);
130
131
#ifdef TEST
132
  if (memcmp ((char *) ext, (char *) intern, sizeof (*intern)) != 0)
133
    abort ();
134
#endif
135
3.32k
}
Unexecuted instantiation: elfn32-mips.c:ecoff_swap_hdr_in
coff-mips.c:ecoff_swap_hdr_in
Line
Count
Source
100
964
{
101
964
  struct hdr_ext ext[1];
102
103
964
  *ext = *(struct hdr_ext *) ext_copy;
104
105
964
  intern->magic   = H_GET_S16  (abfd, ext->h_magic);
106
964
  intern->vstamp  = H_GET_S16  (abfd, ext->h_vstamp);
107
964
  intern->ilineMax  = H_GET_32  (abfd, ext->h_ilineMax);
108
964
  intern->cbLine  = ECOFF_GET_OFF (abfd, ext->h_cbLine);
109
964
  intern->cbLineOffset  = ECOFF_GET_OFF (abfd, ext->h_cbLineOffset);
110
964
  intern->idnMax  = H_GET_32  (abfd, ext->h_idnMax);
111
964
  intern->cbDnOffset  = ECOFF_GET_OFF (abfd, ext->h_cbDnOffset);
112
964
  intern->ipdMax  = H_GET_32  (abfd, ext->h_ipdMax);
113
964
  intern->cbPdOffset  = ECOFF_GET_OFF (abfd, ext->h_cbPdOffset);
114
964
  intern->isymMax = H_GET_32  (abfd, ext->h_isymMax);
115
964
  intern->cbSymOffset = ECOFF_GET_OFF (abfd, ext->h_cbSymOffset);
116
964
  intern->ioptMax = H_GET_32  (abfd, ext->h_ioptMax);
117
964
  intern->cbOptOffset = ECOFF_GET_OFF (abfd, ext->h_cbOptOffset);
118
964
  intern->iauxMax = H_GET_32  (abfd, ext->h_iauxMax);
119
964
  intern->cbAuxOffset = ECOFF_GET_OFF (abfd, ext->h_cbAuxOffset);
120
964
  intern->issMax  = H_GET_32  (abfd, ext->h_issMax);
121
964
  intern->cbSsOffset  = ECOFF_GET_OFF (abfd, ext->h_cbSsOffset);
122
964
  intern->issExtMax = H_GET_32  (abfd, ext->h_issExtMax);
123
964
  intern->cbSsExtOffset = ECOFF_GET_OFF (abfd, ext->h_cbSsExtOffset);
124
964
  intern->ifdMax  = H_GET_32  (abfd, ext->h_ifdMax);
125
964
  intern->cbFdOffset  = ECOFF_GET_OFF (abfd, ext->h_cbFdOffset);
126
964
  intern->crfd    = H_GET_32  (abfd, ext->h_crfd);
127
964
  intern->cbRfdOffset = ECOFF_GET_OFF (abfd, ext->h_cbRfdOffset);
128
964
  intern->iextMax = H_GET_32  (abfd, ext->h_iextMax);
129
964
  intern->cbExtOffset = ECOFF_GET_OFF (abfd, ext->h_cbExtOffset);
130
131
#ifdef TEST
132
  if (memcmp ((char *) ext, (char *) intern, sizeof (*intern)) != 0)
133
    abort ();
134
#endif
135
964
}
136
137
/* Swap out the symbolic header.  */
138
139
static void
140
ecoff_swap_hdr_out (bfd *abfd, const HDRR *intern_copy, void * ext_ptr)
141
0
{
142
0
  struct hdr_ext *ext = (struct hdr_ext *) ext_ptr;
143
0
  HDRR intern[1];
144
145
0
  *intern = *intern_copy;
146
147
0
  H_PUT_S16  (abfd, intern->magic,       ext->h_magic);
148
0
  H_PUT_S16  (abfd, intern->vstamp,        ext->h_vstamp);
149
0
  H_PUT_32  (abfd, intern->ilineMax,      ext->h_ilineMax);
150
0
  ECOFF_PUT_OFF (abfd, intern->cbLine,       ext->h_cbLine);
151
0
  ECOFF_PUT_OFF (abfd, intern->cbLineOffset,  ext->h_cbLineOffset);
152
0
  H_PUT_32  (abfd, intern->idnMax,        ext->h_idnMax);
153
0
  ECOFF_PUT_OFF (abfd, intern->cbDnOffset,    ext->h_cbDnOffset);
154
0
  H_PUT_32  (abfd, intern->ipdMax,        ext->h_ipdMax);
155
0
  ECOFF_PUT_OFF (abfd, intern->cbPdOffset,    ext->h_cbPdOffset);
156
0
  H_PUT_32  (abfd, intern->isymMax,       ext->h_isymMax);
157
0
  ECOFF_PUT_OFF (abfd, intern->cbSymOffset,   ext->h_cbSymOffset);
158
0
  H_PUT_32  (abfd, intern->ioptMax,       ext->h_ioptMax);
159
0
  ECOFF_PUT_OFF (abfd, intern->cbOptOffset,   ext->h_cbOptOffset);
160
0
  H_PUT_32  (abfd, intern->iauxMax,       ext->h_iauxMax);
161
0
  ECOFF_PUT_OFF (abfd, intern->cbAuxOffset,   ext->h_cbAuxOffset);
162
0
  H_PUT_32  (abfd, intern->issMax,        ext->h_issMax);
163
0
  ECOFF_PUT_OFF (abfd, intern->cbSsOffset,    ext->h_cbSsOffset);
164
0
  H_PUT_32  (abfd, intern->issExtMax,     ext->h_issExtMax);
165
0
  ECOFF_PUT_OFF (abfd, intern->cbSsExtOffset, ext->h_cbSsExtOffset);
166
0
  H_PUT_32  (abfd, intern->ifdMax,        ext->h_ifdMax);
167
0
  ECOFF_PUT_OFF (abfd, intern->cbFdOffset,    ext->h_cbFdOffset);
168
0
  H_PUT_32  (abfd, intern->crfd,        ext->h_crfd);
169
0
  ECOFF_PUT_OFF (abfd, intern->cbRfdOffset,   ext->h_cbRfdOffset);
170
0
  H_PUT_32  (abfd, intern->iextMax,       ext->h_iextMax);
171
0
  ECOFF_PUT_OFF (abfd, intern->cbExtOffset,   ext->h_cbExtOffset);
172
173
#ifdef TEST
174
  if (memcmp ((char *) ext, (char *) intern, sizeof (*intern)) != 0)
175
    abort ();
176
#endif
177
0
}
Unexecuted instantiation: coff-alpha.c:ecoff_swap_hdr_out
Unexecuted instantiation: elf32-mips.c:ecoff_swap_hdr_out
Unexecuted instantiation: elf64-alpha.c:ecoff_swap_hdr_out
Unexecuted instantiation: elf64-mips.c:ecoff_swap_hdr_out
Unexecuted instantiation: elfn32-mips.c:ecoff_swap_hdr_out
Unexecuted instantiation: coff-mips.c:ecoff_swap_hdr_out
178
179
/* Swap in the file descriptor record.  */
180
181
static void
182
ecoff_swap_fdr_in (bfd *abfd, void * ext_copy, FDR *intern)
183
26.0k
{
184
26.0k
  struct fdr_ext ext[1];
185
186
26.0k
  *ext = *(struct fdr_ext *) ext_copy;
187
188
26.0k
  intern->adr   = ECOFF_GET_OFF (abfd, ext->f_adr);
189
26.0k
  intern->rss   = H_GET_32 (abfd, ext->f_rss);
190
#if defined (ECOFF_64) || defined (ECOFF_SIGNED_64)
191
20.5k
  if (intern->rss == (signed long) 0xffffffff)
192
1.29k
    intern->rss = -1;
193
#endif
194
26.0k
  intern->issBase = H_GET_32 (abfd, ext->f_issBase);
195
26.0k
  intern->cbSs    = ECOFF_GET_OFF (abfd, ext->f_cbSs);
196
26.0k
  intern->isymBase  = H_GET_32 (abfd, ext->f_isymBase);
197
26.0k
  intern->csym    = H_GET_32 (abfd, ext->f_csym);
198
26.0k
  intern->ilineBase = H_GET_32 (abfd, ext->f_ilineBase);
199
26.0k
  intern->cline   = H_GET_32 (abfd, ext->f_cline);
200
26.0k
  intern->ioptBase  = H_GET_32 (abfd, ext->f_ioptBase);
201
26.0k
  intern->copt    = H_GET_32 (abfd, ext->f_copt);
202
#if defined (ECOFF_32) || defined (ECOFF_SIGNED_32)
203
5.42k
  intern->ipdFirst  = H_GET_16 (abfd, ext->f_ipdFirst);
204
5.42k
  intern->cpd   = H_GET_16 (abfd, ext->f_cpd);
205
#endif
206
#if defined (ECOFF_64) || defined (ECOFF_SIGNED_64)
207
20.5k
  intern->ipdFirst  = H_GET_32 (abfd, ext->f_ipdFirst);
208
20.5k
  intern->cpd   = H_GET_32 (abfd, ext->f_cpd);
209
#endif
210
26.0k
  intern->iauxBase  = H_GET_32 (abfd, ext->f_iauxBase);
211
26.0k
  intern->caux    = H_GET_32 (abfd, ext->f_caux);
212
26.0k
  intern->rfdBase = H_GET_32 (abfd, ext->f_rfdBase);
213
26.0k
  intern->crfd    = H_GET_32 (abfd, ext->f_crfd);
214
215
  /* Now the fun stuff...  */
216
26.0k
  if (bfd_header_big_endian (abfd))
217
0
    {
218
0
      intern->lang       = ((ext->f_bits1[0] & FDR_BITS1_LANG_BIG)
219
0
          >> FDR_BITS1_LANG_SH_BIG);
220
0
      intern->fMerge     = 0 != (ext->f_bits1[0] & FDR_BITS1_FMERGE_BIG);
221
0
      intern->fReadin    = 0 != (ext->f_bits1[0] & FDR_BITS1_FREADIN_BIG);
222
0
      intern->fBigendian = 0 != (ext->f_bits1[0] & FDR_BITS1_FBIGENDIAN_BIG);
223
0
      intern->glevel     = ((ext->f_bits2[0] & FDR_BITS2_GLEVEL_BIG)
224
0
          >> FDR_BITS2_GLEVEL_SH_BIG);
225
0
    }
226
26.0k
  else
227
26.0k
    {
228
26.0k
      intern->lang       = ((ext->f_bits1[0] & FDR_BITS1_LANG_LITTLE)
229
26.0k
          >> FDR_BITS1_LANG_SH_LITTLE);
230
26.0k
      intern->fMerge     = 0 != (ext->f_bits1[0] & FDR_BITS1_FMERGE_LITTLE);
231
26.0k
      intern->fReadin    = 0 != (ext->f_bits1[0] & FDR_BITS1_FREADIN_LITTLE);
232
26.0k
      intern->fBigendian = 0 != (ext->f_bits1[0] & FDR_BITS1_FBIGENDIAN_LITTLE);
233
26.0k
      intern->glevel     = ((ext->f_bits2[0] & FDR_BITS2_GLEVEL_LITTLE)
234
26.0k
          >> FDR_BITS2_GLEVEL_SH_LITTLE);
235
26.0k
    }
236
26.0k
  intern->reserved = 0;
237
238
26.0k
  intern->cbLineOffset  = ECOFF_GET_OFF (abfd, ext->f_cbLineOffset);
239
26.0k
  intern->cbLine  = ECOFF_GET_OFF (abfd, ext->f_cbLine);
240
241
#ifdef TEST
242
  if (memcmp ((char *) ext, (char *) intern, sizeof (*intern)) != 0)
243
    abort ();
244
#endif
245
26.0k
}
coff-alpha.c:ecoff_swap_fdr_in
Line
Count
Source
183
259
{
184
259
  struct fdr_ext ext[1];
185
186
259
  *ext = *(struct fdr_ext *) ext_copy;
187
188
259
  intern->adr   = ECOFF_GET_OFF (abfd, ext->f_adr);
189
259
  intern->rss   = H_GET_32 (abfd, ext->f_rss);
190
259
#if defined (ECOFF_64) || defined (ECOFF_SIGNED_64)
191
259
  if (intern->rss == (signed long) 0xffffffff)
192
61
    intern->rss = -1;
193
259
#endif
194
259
  intern->issBase = H_GET_32 (abfd, ext->f_issBase);
195
259
  intern->cbSs    = ECOFF_GET_OFF (abfd, ext->f_cbSs);
196
259
  intern->isymBase  = H_GET_32 (abfd, ext->f_isymBase);
197
259
  intern->csym    = H_GET_32 (abfd, ext->f_csym);
198
259
  intern->ilineBase = H_GET_32 (abfd, ext->f_ilineBase);
199
259
  intern->cline   = H_GET_32 (abfd, ext->f_cline);
200
259
  intern->ioptBase  = H_GET_32 (abfd, ext->f_ioptBase);
201
259
  intern->copt    = H_GET_32 (abfd, ext->f_copt);
202
#if defined (ECOFF_32) || defined (ECOFF_SIGNED_32)
203
  intern->ipdFirst  = H_GET_16 (abfd, ext->f_ipdFirst);
204
  intern->cpd   = H_GET_16 (abfd, ext->f_cpd);
205
#endif
206
259
#if defined (ECOFF_64) || defined (ECOFF_SIGNED_64)
207
259
  intern->ipdFirst  = H_GET_32 (abfd, ext->f_ipdFirst);
208
259
  intern->cpd   = H_GET_32 (abfd, ext->f_cpd);
209
259
#endif
210
259
  intern->iauxBase  = H_GET_32 (abfd, ext->f_iauxBase);
211
259
  intern->caux    = H_GET_32 (abfd, ext->f_caux);
212
259
  intern->rfdBase = H_GET_32 (abfd, ext->f_rfdBase);
213
259
  intern->crfd    = H_GET_32 (abfd, ext->f_crfd);
214
215
  /* Now the fun stuff...  */
216
259
  if (bfd_header_big_endian (abfd))
217
0
    {
218
0
      intern->lang       = ((ext->f_bits1[0] & FDR_BITS1_LANG_BIG)
219
0
          >> FDR_BITS1_LANG_SH_BIG);
220
0
      intern->fMerge     = 0 != (ext->f_bits1[0] & FDR_BITS1_FMERGE_BIG);
221
0
      intern->fReadin    = 0 != (ext->f_bits1[0] & FDR_BITS1_FREADIN_BIG);
222
0
      intern->fBigendian = 0 != (ext->f_bits1[0] & FDR_BITS1_FBIGENDIAN_BIG);
223
0
      intern->glevel     = ((ext->f_bits2[0] & FDR_BITS2_GLEVEL_BIG)
224
0
          >> FDR_BITS2_GLEVEL_SH_BIG);
225
0
    }
226
259
  else
227
259
    {
228
259
      intern->lang       = ((ext->f_bits1[0] & FDR_BITS1_LANG_LITTLE)
229
259
          >> FDR_BITS1_LANG_SH_LITTLE);
230
259
      intern->fMerge     = 0 != (ext->f_bits1[0] & FDR_BITS1_FMERGE_LITTLE);
231
259
      intern->fReadin    = 0 != (ext->f_bits1[0] & FDR_BITS1_FREADIN_LITTLE);
232
259
      intern->fBigendian = 0 != (ext->f_bits1[0] & FDR_BITS1_FBIGENDIAN_LITTLE);
233
259
      intern->glevel     = ((ext->f_bits2[0] & FDR_BITS2_GLEVEL_LITTLE)
234
259
          >> FDR_BITS2_GLEVEL_SH_LITTLE);
235
259
    }
236
259
  intern->reserved = 0;
237
238
259
  intern->cbLineOffset  = ECOFF_GET_OFF (abfd, ext->f_cbLineOffset);
239
259
  intern->cbLine  = ECOFF_GET_OFF (abfd, ext->f_cbLine);
240
241
#ifdef TEST
242
  if (memcmp ((char *) ext, (char *) intern, sizeof (*intern)) != 0)
243
    abort ();
244
#endif
245
259
}
Unexecuted instantiation: elf32-mips.c:ecoff_swap_fdr_in
Unexecuted instantiation: elf64-alpha.c:ecoff_swap_fdr_in
elf64-mips.c:ecoff_swap_fdr_in
Line
Count
Source
183
20.3k
{
184
20.3k
  struct fdr_ext ext[1];
185
186
20.3k
  *ext = *(struct fdr_ext *) ext_copy;
187
188
20.3k
  intern->adr   = ECOFF_GET_OFF (abfd, ext->f_adr);
189
20.3k
  intern->rss   = H_GET_32 (abfd, ext->f_rss);
190
20.3k
#if defined (ECOFF_64) || defined (ECOFF_SIGNED_64)
191
20.3k
  if (intern->rss == (signed long) 0xffffffff)
192
1.23k
    intern->rss = -1;
193
20.3k
#endif
194
20.3k
  intern->issBase = H_GET_32 (abfd, ext->f_issBase);
195
20.3k
  intern->cbSs    = ECOFF_GET_OFF (abfd, ext->f_cbSs);
196
20.3k
  intern->isymBase  = H_GET_32 (abfd, ext->f_isymBase);
197
20.3k
  intern->csym    = H_GET_32 (abfd, ext->f_csym);
198
20.3k
  intern->ilineBase = H_GET_32 (abfd, ext->f_ilineBase);
199
20.3k
  intern->cline   = H_GET_32 (abfd, ext->f_cline);
200
20.3k
  intern->ioptBase  = H_GET_32 (abfd, ext->f_ioptBase);
201
20.3k
  intern->copt    = H_GET_32 (abfd, ext->f_copt);
202
#if defined (ECOFF_32) || defined (ECOFF_SIGNED_32)
203
  intern->ipdFirst  = H_GET_16 (abfd, ext->f_ipdFirst);
204
  intern->cpd   = H_GET_16 (abfd, ext->f_cpd);
205
#endif
206
20.3k
#if defined (ECOFF_64) || defined (ECOFF_SIGNED_64)
207
20.3k
  intern->ipdFirst  = H_GET_32 (abfd, ext->f_ipdFirst);
208
20.3k
  intern->cpd   = H_GET_32 (abfd, ext->f_cpd);
209
20.3k
#endif
210
20.3k
  intern->iauxBase  = H_GET_32 (abfd, ext->f_iauxBase);
211
20.3k
  intern->caux    = H_GET_32 (abfd, ext->f_caux);
212
20.3k
  intern->rfdBase = H_GET_32 (abfd, ext->f_rfdBase);
213
20.3k
  intern->crfd    = H_GET_32 (abfd, ext->f_crfd);
214
215
  /* Now the fun stuff...  */
216
20.3k
  if (bfd_header_big_endian (abfd))
217
0
    {
218
0
      intern->lang       = ((ext->f_bits1[0] & FDR_BITS1_LANG_BIG)
219
0
          >> FDR_BITS1_LANG_SH_BIG);
220
0
      intern->fMerge     = 0 != (ext->f_bits1[0] & FDR_BITS1_FMERGE_BIG);
221
0
      intern->fReadin    = 0 != (ext->f_bits1[0] & FDR_BITS1_FREADIN_BIG);
222
0
      intern->fBigendian = 0 != (ext->f_bits1[0] & FDR_BITS1_FBIGENDIAN_BIG);
223
0
      intern->glevel     = ((ext->f_bits2[0] & FDR_BITS2_GLEVEL_BIG)
224
0
          >> FDR_BITS2_GLEVEL_SH_BIG);
225
0
    }
226
20.3k
  else
227
20.3k
    {
228
20.3k
      intern->lang       = ((ext->f_bits1[0] & FDR_BITS1_LANG_LITTLE)
229
20.3k
          >> FDR_BITS1_LANG_SH_LITTLE);
230
20.3k
      intern->fMerge     = 0 != (ext->f_bits1[0] & FDR_BITS1_FMERGE_LITTLE);
231
20.3k
      intern->fReadin    = 0 != (ext->f_bits1[0] & FDR_BITS1_FREADIN_LITTLE);
232
20.3k
      intern->fBigendian = 0 != (ext->f_bits1[0] & FDR_BITS1_FBIGENDIAN_LITTLE);
233
20.3k
      intern->glevel     = ((ext->f_bits2[0] & FDR_BITS2_GLEVEL_LITTLE)
234
20.3k
          >> FDR_BITS2_GLEVEL_SH_LITTLE);
235
20.3k
    }
236
20.3k
  intern->reserved = 0;
237
238
20.3k
  intern->cbLineOffset  = ECOFF_GET_OFF (abfd, ext->f_cbLineOffset);
239
20.3k
  intern->cbLine  = ECOFF_GET_OFF (abfd, ext->f_cbLine);
240
241
#ifdef TEST
242
  if (memcmp ((char *) ext, (char *) intern, sizeof (*intern)) != 0)
243
    abort ();
244
#endif
245
20.3k
}
Unexecuted instantiation: elfn32-mips.c:ecoff_swap_fdr_in
coff-mips.c:ecoff_swap_fdr_in
Line
Count
Source
183
5.42k
{
184
5.42k
  struct fdr_ext ext[1];
185
186
5.42k
  *ext = *(struct fdr_ext *) ext_copy;
187
188
5.42k
  intern->adr   = ECOFF_GET_OFF (abfd, ext->f_adr);
189
5.42k
  intern->rss   = H_GET_32 (abfd, ext->f_rss);
190
#if defined (ECOFF_64) || defined (ECOFF_SIGNED_64)
191
  if (intern->rss == (signed long) 0xffffffff)
192
    intern->rss = -1;
193
#endif
194
5.42k
  intern->issBase = H_GET_32 (abfd, ext->f_issBase);
195
5.42k
  intern->cbSs    = ECOFF_GET_OFF (abfd, ext->f_cbSs);
196
5.42k
  intern->isymBase  = H_GET_32 (abfd, ext->f_isymBase);
197
5.42k
  intern->csym    = H_GET_32 (abfd, ext->f_csym);
198
5.42k
  intern->ilineBase = H_GET_32 (abfd, ext->f_ilineBase);
199
5.42k
  intern->cline   = H_GET_32 (abfd, ext->f_cline);
200
5.42k
  intern->ioptBase  = H_GET_32 (abfd, ext->f_ioptBase);
201
5.42k
  intern->copt    = H_GET_32 (abfd, ext->f_copt);
202
5.42k
#if defined (ECOFF_32) || defined (ECOFF_SIGNED_32)
203
5.42k
  intern->ipdFirst  = H_GET_16 (abfd, ext->f_ipdFirst);
204
5.42k
  intern->cpd   = H_GET_16 (abfd, ext->f_cpd);
205
5.42k
#endif
206
#if defined (ECOFF_64) || defined (ECOFF_SIGNED_64)
207
  intern->ipdFirst  = H_GET_32 (abfd, ext->f_ipdFirst);
208
  intern->cpd   = H_GET_32 (abfd, ext->f_cpd);
209
#endif
210
5.42k
  intern->iauxBase  = H_GET_32 (abfd, ext->f_iauxBase);
211
5.42k
  intern->caux    = H_GET_32 (abfd, ext->f_caux);
212
5.42k
  intern->rfdBase = H_GET_32 (abfd, ext->f_rfdBase);
213
5.42k
  intern->crfd    = H_GET_32 (abfd, ext->f_crfd);
214
215
  /* Now the fun stuff...  */
216
5.42k
  if (bfd_header_big_endian (abfd))
217
0
    {
218
0
      intern->lang       = ((ext->f_bits1[0] & FDR_BITS1_LANG_BIG)
219
0
          >> FDR_BITS1_LANG_SH_BIG);
220
0
      intern->fMerge     = 0 != (ext->f_bits1[0] & FDR_BITS1_FMERGE_BIG);
221
0
      intern->fReadin    = 0 != (ext->f_bits1[0] & FDR_BITS1_FREADIN_BIG);
222
0
      intern->fBigendian = 0 != (ext->f_bits1[0] & FDR_BITS1_FBIGENDIAN_BIG);
223
0
      intern->glevel     = ((ext->f_bits2[0] & FDR_BITS2_GLEVEL_BIG)
224
0
          >> FDR_BITS2_GLEVEL_SH_BIG);
225
0
    }
226
5.42k
  else
227
5.42k
    {
228
5.42k
      intern->lang       = ((ext->f_bits1[0] & FDR_BITS1_LANG_LITTLE)
229
5.42k
          >> FDR_BITS1_LANG_SH_LITTLE);
230
5.42k
      intern->fMerge     = 0 != (ext->f_bits1[0] & FDR_BITS1_FMERGE_LITTLE);
231
5.42k
      intern->fReadin    = 0 != (ext->f_bits1[0] & FDR_BITS1_FREADIN_LITTLE);
232
5.42k
      intern->fBigendian = 0 != (ext->f_bits1[0] & FDR_BITS1_FBIGENDIAN_LITTLE);
233
5.42k
      intern->glevel     = ((ext->f_bits2[0] & FDR_BITS2_GLEVEL_LITTLE)
234
5.42k
          >> FDR_BITS2_GLEVEL_SH_LITTLE);
235
5.42k
    }
236
5.42k
  intern->reserved = 0;
237
238
5.42k
  intern->cbLineOffset  = ECOFF_GET_OFF (abfd, ext->f_cbLineOffset);
239
5.42k
  intern->cbLine  = ECOFF_GET_OFF (abfd, ext->f_cbLine);
240
241
#ifdef TEST
242
  if (memcmp ((char *) ext, (char *) intern, sizeof (*intern)) != 0)
243
    abort ();
244
#endif
245
5.42k
}
246
247
/* Swap out the file descriptor record.  */
248
249
static void
250
ecoff_swap_fdr_out (bfd *abfd, const FDR *intern_copy, void * ext_ptr)
251
0
{
252
0
  struct fdr_ext *ext = (struct fdr_ext *) ext_ptr;
253
0
  FDR intern[1];
254
255
  /* Make it reasonable to do in-place.  */
256
0
  *intern = *intern_copy;
257
258
0
  ECOFF_PUT_OFF (abfd, intern->adr,       ext->f_adr);
259
0
  H_PUT_32      (abfd, intern->rss,       ext->f_rss);
260
0
  H_PUT_32      (abfd, intern->issBase,   ext->f_issBase);
261
0
  ECOFF_PUT_OFF (abfd, intern->cbSs,      ext->f_cbSs);
262
0
  H_PUT_32      (abfd, intern->isymBase,  ext->f_isymBase);
263
0
  H_PUT_32      (abfd, intern->csym,      ext->f_csym);
264
0
  H_PUT_32      (abfd, intern->ilineBase, ext->f_ilineBase);
265
0
  H_PUT_32      (abfd, intern->cline,     ext->f_cline);
266
0
  H_PUT_32      (abfd, intern->ioptBase,  ext->f_ioptBase);
267
0
  H_PUT_32      (abfd, intern->copt,      ext->f_copt);
268
#if defined (ECOFF_32) || defined (ECOFF_SIGNED_32)
269
0
  H_PUT_16      (abfd, intern->ipdFirst,  ext->f_ipdFirst);
270
0
  H_PUT_16      (abfd, intern->cpd,       ext->f_cpd);
271
#endif
272
#if defined (ECOFF_64) || defined (ECOFF_SIGNED_64)
273
0
  H_PUT_32      (abfd, intern->ipdFirst,  ext->f_ipdFirst);
274
0
  H_PUT_32      (abfd, intern->cpd,       ext->f_cpd);
275
#endif
276
0
  H_PUT_32      (abfd, intern->iauxBase,  ext->f_iauxBase);
277
0
  H_PUT_32      (abfd, intern->caux,      ext->f_caux);
278
0
  H_PUT_32      (abfd, intern->rfdBase,   ext->f_rfdBase);
279
0
  H_PUT_32      (abfd, intern->crfd,      ext->f_crfd);
280
281
  /* Now the fun stuff...  */
282
0
  if (bfd_header_big_endian (abfd))
283
0
    {
284
0
      ext->f_bits1[0] = (((intern->lang << FDR_BITS1_LANG_SH_BIG)
285
0
        & FDR_BITS1_LANG_BIG)
286
0
       | (intern->fMerge ? FDR_BITS1_FMERGE_BIG : 0)
287
0
       | (intern->fReadin ? FDR_BITS1_FREADIN_BIG : 0)
288
0
       | (intern->fBigendian ? FDR_BITS1_FBIGENDIAN_BIG : 0));
289
0
      ext->f_bits2[0] = ((intern->glevel << FDR_BITS2_GLEVEL_SH_BIG)
290
0
       & FDR_BITS2_GLEVEL_BIG);
291
0
      ext->f_bits2[1] = 0;
292
0
      ext->f_bits2[2] = 0;
293
0
    }
294
0
  else
295
0
    {
296
0
      ext->f_bits1[0] = (((intern->lang << FDR_BITS1_LANG_SH_LITTLE)
297
0
        & FDR_BITS1_LANG_LITTLE)
298
0
       | (intern->fMerge ? FDR_BITS1_FMERGE_LITTLE : 0)
299
0
       | (intern->fReadin ? FDR_BITS1_FREADIN_LITTLE : 0)
300
0
       | (intern->fBigendian ? FDR_BITS1_FBIGENDIAN_LITTLE : 0));
301
0
      ext->f_bits2[0] = ((intern->glevel << FDR_BITS2_GLEVEL_SH_LITTLE)
302
0
       & FDR_BITS2_GLEVEL_LITTLE);
303
0
      ext->f_bits2[1] = 0;
304
0
      ext->f_bits2[2] = 0;
305
0
    }
306
307
0
  ECOFF_PUT_OFF (abfd, intern->cbLineOffset, ext->f_cbLineOffset);
308
0
  ECOFF_PUT_OFF (abfd, intern->cbLine, ext->f_cbLine);
309
310
#ifdef TEST
311
  if (memcmp ((char *) ext, (char *) intern, sizeof (*intern)) != 0)
312
    abort ();
313
#endif
314
0
}
Unexecuted instantiation: coff-alpha.c:ecoff_swap_fdr_out
Unexecuted instantiation: elf32-mips.c:ecoff_swap_fdr_out
Unexecuted instantiation: elf64-alpha.c:ecoff_swap_fdr_out
Unexecuted instantiation: elf64-mips.c:ecoff_swap_fdr_out
Unexecuted instantiation: elfn32-mips.c:ecoff_swap_fdr_out
Unexecuted instantiation: coff-mips.c:ecoff_swap_fdr_out
315
316
/* Swap in the procedure descriptor record.  */
317
318
static void
319
ecoff_swap_pdr_in (bfd *abfd, void * ext_copy, PDR *intern)
320
121k
{
321
121k
  struct pdr_ext ext[1];
322
323
121k
  *ext = *(struct pdr_ext *) ext_copy;
324
325
121k
  memset ((void *) intern, 0, sizeof (*intern));
326
327
121k
  intern->adr   = ECOFF_GET_OFF (abfd, ext->p_adr);
328
121k
  intern->isym    = H_GET_32 (abfd, ext->p_isym);
329
121k
  intern->iline   = H_GET_32 (abfd, ext->p_iline);
330
121k
  intern->regmask = H_GET_32 (abfd, ext->p_regmask);
331
121k
  intern->regoffset = H_GET_S32 (abfd, ext->p_regoffset);
332
121k
  intern->iopt    = H_GET_S32 (abfd, ext->p_iopt);
333
121k
  intern->fregmask  = H_GET_32 (abfd, ext->p_fregmask);
334
121k
  intern->fregoffset  = H_GET_S32 (abfd, ext->p_fregoffset);
335
121k
  intern->frameoffset = H_GET_S32 (abfd, ext->p_frameoffset);
336
121k
  intern->framereg  = H_GET_16 (abfd, ext->p_framereg);
337
121k
  intern->pcreg   = H_GET_16 (abfd, ext->p_pcreg);
338
121k
  intern->lnLow   = H_GET_32 (abfd, ext->p_lnLow);
339
121k
  intern->lnHigh  = H_GET_32 (abfd, ext->p_lnHigh);
340
121k
  intern->cbLineOffset  = ECOFF_GET_OFF (abfd, ext->p_cbLineOffset);
341
342
#if defined (ECOFF_64) || defined (ECOFF_SIGNED_64)
343
75.0k
  if (intern->isym == (signed long) 0xffffffff)
344
2.88k
    intern->isym = -1;
345
75.0k
  if (intern->iline == (signed long) 0xffffffff)
346
2.23k
    intern->iline = -1;
347
348
75.0k
  intern->gp_prologue = H_GET_8 (abfd, ext->p_gp_prologue);
349
75.0k
  if (bfd_header_big_endian (abfd))
350
0
    {
351
0
      intern->gp_used = 0 != (ext->p_bits1[0] & PDR_BITS1_GP_USED_BIG);
352
0
      intern->reg_frame = 0 != (ext->p_bits1[0] & PDR_BITS1_REG_FRAME_BIG);
353
0
      intern->prof = 0 != (ext->p_bits1[0] & PDR_BITS1_PROF_BIG);
354
0
      intern->reserved = (((ext->p_bits1[0] & PDR_BITS1_RESERVED_BIG)
355
0
         << PDR_BITS1_RESERVED_SH_LEFT_BIG)
356
0
        | ((ext->p_bits2[0] & PDR_BITS2_RESERVED_BIG)
357
0
           >> PDR_BITS2_RESERVED_SH_BIG));
358
0
    }
359
75.0k
  else
360
75.0k
    {
361
75.0k
      intern->gp_used = 0 != (ext->p_bits1[0] & PDR_BITS1_GP_USED_LITTLE);
362
75.0k
      intern->reg_frame = 0 != (ext->p_bits1[0] & PDR_BITS1_REG_FRAME_LITTLE);
363
75.0k
      intern->prof = 0 != (ext->p_bits1[0] & PDR_BITS1_PROF_LITTLE);
364
75.0k
      intern->reserved = (((ext->p_bits1[0] & PDR_BITS1_RESERVED_LITTLE)
365
75.0k
         >> PDR_BITS1_RESERVED_SH_LITTLE)
366
75.0k
        | ((ext->p_bits2[0] & PDR_BITS2_RESERVED_LITTLE)
367
75.0k
           << PDR_BITS2_RESERVED_SH_LEFT_LITTLE));
368
75.0k
    }
369
75.0k
  intern->localoff = H_GET_8 (abfd, ext->p_localoff);
370
#endif
371
372
#ifdef TEST
373
  if (memcmp ((char *) ext, (char *) intern, sizeof (*intern)) != 0)
374
    abort ();
375
#endif
376
121k
}
Unexecuted instantiation: coff-alpha.c:ecoff_swap_pdr_in
Unexecuted instantiation: elf32-mips.c:ecoff_swap_pdr_in
Unexecuted instantiation: elf64-alpha.c:ecoff_swap_pdr_in
elf64-mips.c:ecoff_swap_pdr_in
Line
Count
Source
320
75.0k
{
321
75.0k
  struct pdr_ext ext[1];
322
323
75.0k
  *ext = *(struct pdr_ext *) ext_copy;
324
325
75.0k
  memset ((void *) intern, 0, sizeof (*intern));
326
327
75.0k
  intern->adr   = ECOFF_GET_OFF (abfd, ext->p_adr);
328
75.0k
  intern->isym    = H_GET_32 (abfd, ext->p_isym);
329
75.0k
  intern->iline   = H_GET_32 (abfd, ext->p_iline);
330
75.0k
  intern->regmask = H_GET_32 (abfd, ext->p_regmask);
331
75.0k
  intern->regoffset = H_GET_S32 (abfd, ext->p_regoffset);
332
75.0k
  intern->iopt    = H_GET_S32 (abfd, ext->p_iopt);
333
75.0k
  intern->fregmask  = H_GET_32 (abfd, ext->p_fregmask);
334
75.0k
  intern->fregoffset  = H_GET_S32 (abfd, ext->p_fregoffset);
335
75.0k
  intern->frameoffset = H_GET_S32 (abfd, ext->p_frameoffset);
336
75.0k
  intern->framereg  = H_GET_16 (abfd, ext->p_framereg);
337
75.0k
  intern->pcreg   = H_GET_16 (abfd, ext->p_pcreg);
338
75.0k
  intern->lnLow   = H_GET_32 (abfd, ext->p_lnLow);
339
75.0k
  intern->lnHigh  = H_GET_32 (abfd, ext->p_lnHigh);
340
75.0k
  intern->cbLineOffset  = ECOFF_GET_OFF (abfd, ext->p_cbLineOffset);
341
342
75.0k
#if defined (ECOFF_64) || defined (ECOFF_SIGNED_64)
343
75.0k
  if (intern->isym == (signed long) 0xffffffff)
344
2.88k
    intern->isym = -1;
345
75.0k
  if (intern->iline == (signed long) 0xffffffff)
346
2.23k
    intern->iline = -1;
347
348
75.0k
  intern->gp_prologue = H_GET_8 (abfd, ext->p_gp_prologue);
349
75.0k
  if (bfd_header_big_endian (abfd))
350
0
    {
351
0
      intern->gp_used = 0 != (ext->p_bits1[0] & PDR_BITS1_GP_USED_BIG);
352
0
      intern->reg_frame = 0 != (ext->p_bits1[0] & PDR_BITS1_REG_FRAME_BIG);
353
0
      intern->prof = 0 != (ext->p_bits1[0] & PDR_BITS1_PROF_BIG);
354
0
      intern->reserved = (((ext->p_bits1[0] & PDR_BITS1_RESERVED_BIG)
355
0
         << PDR_BITS1_RESERVED_SH_LEFT_BIG)
356
0
        | ((ext->p_bits2[0] & PDR_BITS2_RESERVED_BIG)
357
0
           >> PDR_BITS2_RESERVED_SH_BIG));
358
0
    }
359
75.0k
  else
360
75.0k
    {
361
75.0k
      intern->gp_used = 0 != (ext->p_bits1[0] & PDR_BITS1_GP_USED_LITTLE);
362
75.0k
      intern->reg_frame = 0 != (ext->p_bits1[0] & PDR_BITS1_REG_FRAME_LITTLE);
363
75.0k
      intern->prof = 0 != (ext->p_bits1[0] & PDR_BITS1_PROF_LITTLE);
364
75.0k
      intern->reserved = (((ext->p_bits1[0] & PDR_BITS1_RESERVED_LITTLE)
365
75.0k
         >> PDR_BITS1_RESERVED_SH_LITTLE)
366
75.0k
        | ((ext->p_bits2[0] & PDR_BITS2_RESERVED_LITTLE)
367
75.0k
           << PDR_BITS2_RESERVED_SH_LEFT_LITTLE));
368
75.0k
    }
369
75.0k
  intern->localoff = H_GET_8 (abfd, ext->p_localoff);
370
75.0k
#endif
371
372
#ifdef TEST
373
  if (memcmp ((char *) ext, (char *) intern, sizeof (*intern)) != 0)
374
    abort ();
375
#endif
376
75.0k
}
Unexecuted instantiation: elfn32-mips.c:ecoff_swap_pdr_in
coff-mips.c:ecoff_swap_pdr_in
Line
Count
Source
320
46.9k
{
321
46.9k
  struct pdr_ext ext[1];
322
323
46.9k
  *ext = *(struct pdr_ext *) ext_copy;
324
325
46.9k
  memset ((void *) intern, 0, sizeof (*intern));
326
327
46.9k
  intern->adr   = ECOFF_GET_OFF (abfd, ext->p_adr);
328
46.9k
  intern->isym    = H_GET_32 (abfd, ext->p_isym);
329
46.9k
  intern->iline   = H_GET_32 (abfd, ext->p_iline);
330
46.9k
  intern->regmask = H_GET_32 (abfd, ext->p_regmask);
331
46.9k
  intern->regoffset = H_GET_S32 (abfd, ext->p_regoffset);
332
46.9k
  intern->iopt    = H_GET_S32 (abfd, ext->p_iopt);
333
46.9k
  intern->fregmask  = H_GET_32 (abfd, ext->p_fregmask);
334
46.9k
  intern->fregoffset  = H_GET_S32 (abfd, ext->p_fregoffset);
335
46.9k
  intern->frameoffset = H_GET_S32 (abfd, ext->p_frameoffset);
336
46.9k
  intern->framereg  = H_GET_16 (abfd, ext->p_framereg);
337
46.9k
  intern->pcreg   = H_GET_16 (abfd, ext->p_pcreg);
338
46.9k
  intern->lnLow   = H_GET_32 (abfd, ext->p_lnLow);
339
46.9k
  intern->lnHigh  = H_GET_32 (abfd, ext->p_lnHigh);
340
46.9k
  intern->cbLineOffset  = ECOFF_GET_OFF (abfd, ext->p_cbLineOffset);
341
342
#if defined (ECOFF_64) || defined (ECOFF_SIGNED_64)
343
  if (intern->isym == (signed long) 0xffffffff)
344
    intern->isym = -1;
345
  if (intern->iline == (signed long) 0xffffffff)
346
    intern->iline = -1;
347
348
  intern->gp_prologue = H_GET_8 (abfd, ext->p_gp_prologue);
349
  if (bfd_header_big_endian (abfd))
350
    {
351
      intern->gp_used = 0 != (ext->p_bits1[0] & PDR_BITS1_GP_USED_BIG);
352
      intern->reg_frame = 0 != (ext->p_bits1[0] & PDR_BITS1_REG_FRAME_BIG);
353
      intern->prof = 0 != (ext->p_bits1[0] & PDR_BITS1_PROF_BIG);
354
      intern->reserved = (((ext->p_bits1[0] & PDR_BITS1_RESERVED_BIG)
355
         << PDR_BITS1_RESERVED_SH_LEFT_BIG)
356
        | ((ext->p_bits2[0] & PDR_BITS2_RESERVED_BIG)
357
           >> PDR_BITS2_RESERVED_SH_BIG));
358
    }
359
  else
360
    {
361
      intern->gp_used = 0 != (ext->p_bits1[0] & PDR_BITS1_GP_USED_LITTLE);
362
      intern->reg_frame = 0 != (ext->p_bits1[0] & PDR_BITS1_REG_FRAME_LITTLE);
363
      intern->prof = 0 != (ext->p_bits1[0] & PDR_BITS1_PROF_LITTLE);
364
      intern->reserved = (((ext->p_bits1[0] & PDR_BITS1_RESERVED_LITTLE)
365
         >> PDR_BITS1_RESERVED_SH_LITTLE)
366
        | ((ext->p_bits2[0] & PDR_BITS2_RESERVED_LITTLE)
367
           << PDR_BITS2_RESERVED_SH_LEFT_LITTLE));
368
    }
369
  intern->localoff = H_GET_8 (abfd, ext->p_localoff);
370
#endif
371
372
#ifdef TEST
373
  if (memcmp ((char *) ext, (char *) intern, sizeof (*intern)) != 0)
374
    abort ();
375
#endif
376
46.9k
}
377
378
/* Swap out the procedure descriptor record.  */
379
380
static void
381
ecoff_swap_pdr_out (bfd *abfd, const PDR *intern_copy, void * ext_ptr)
382
0
{
383
0
  struct pdr_ext *ext = (struct pdr_ext *) ext_ptr;
384
0
  PDR intern[1];
385
386
  /* Make it reasonable to do in-place.  */
387
0
  *intern = *intern_copy;
388
389
0
  ECOFF_PUT_OFF (abfd, intern->adr,       ext->p_adr);
390
0
  H_PUT_32  (abfd, intern->isym,       ext->p_isym);
391
0
  H_PUT_32  (abfd, intern->iline,      ext->p_iline);
392
0
  H_PUT_32  (abfd, intern->regmask,      ext->p_regmask);
393
0
  H_PUT_32  (abfd, intern->regoffset,    ext->p_regoffset);
394
0
  H_PUT_32  (abfd, intern->iopt,       ext->p_iopt);
395
0
  H_PUT_32  (abfd, intern->fregmask,     ext->p_fregmask);
396
0
  H_PUT_32  (abfd, intern->fregoffset,   ext->p_fregoffset);
397
0
  H_PUT_32  (abfd, intern->frameoffset,  ext->p_frameoffset);
398
0
  H_PUT_16  (abfd, intern->framereg,     ext->p_framereg);
399
0
  H_PUT_16  (abfd, intern->pcreg,      ext->p_pcreg);
400
0
  H_PUT_32  (abfd, intern->lnLow,      ext->p_lnLow);
401
0
  H_PUT_32  (abfd, intern->lnHigh,       ext->p_lnHigh);
402
0
  ECOFF_PUT_OFF (abfd, intern->cbLineOffset, ext->p_cbLineOffset);
403
404
#if defined (ECOFF_64) || defined (ECOFF_SIGNED_64)
405
0
  H_PUT_8       (abfd, intern->gp_prologue,  ext->p_gp_prologue);
406
407
0
  if (bfd_header_big_endian (abfd))
408
0
    {
409
0
      ext->p_bits1[0] = ((intern->gp_used ? PDR_BITS1_GP_USED_BIG : 0)
410
0
       | (intern->reg_frame ? PDR_BITS1_REG_FRAME_BIG : 0)
411
0
       | (intern->prof ? PDR_BITS1_PROF_BIG : 0)
412
0
       | ((intern->reserved
413
0
           >> PDR_BITS1_RESERVED_SH_LEFT_BIG)
414
0
          & PDR_BITS1_RESERVED_BIG));
415
0
      ext->p_bits2[0] = ((intern->reserved << PDR_BITS2_RESERVED_SH_BIG)
416
0
       & PDR_BITS2_RESERVED_BIG);
417
0
    }
418
0
  else
419
0
    {
420
0
      ext->p_bits1[0] = ((intern->gp_used ? PDR_BITS1_GP_USED_LITTLE : 0)
421
0
       | (intern->reg_frame ? PDR_BITS1_REG_FRAME_LITTLE : 0)
422
0
       | (intern->prof ? PDR_BITS1_PROF_LITTLE : 0)
423
0
       | ((intern->reserved << PDR_BITS1_RESERVED_SH_LITTLE)
424
0
          & PDR_BITS1_RESERVED_LITTLE));
425
0
      ext->p_bits2[0] = ((intern->reserved >>
426
0
        PDR_BITS2_RESERVED_SH_LEFT_LITTLE)
427
0
       & PDR_BITS2_RESERVED_LITTLE);
428
0
    }
429
0
  H_PUT_8 (abfd, intern->localoff, ext->p_localoff);
430
#endif
431
432
#ifdef TEST
433
  if (memcmp ((char *) ext, (char *) intern, sizeof (*intern)) != 0)
434
    abort ();
435
#endif
436
0
}
Unexecuted instantiation: coff-alpha.c:ecoff_swap_pdr_out
Unexecuted instantiation: elf32-mips.c:ecoff_swap_pdr_out
Unexecuted instantiation: elf64-alpha.c:ecoff_swap_pdr_out
Unexecuted instantiation: elf64-mips.c:ecoff_swap_pdr_out
Unexecuted instantiation: elfn32-mips.c:ecoff_swap_pdr_out
Unexecuted instantiation: coff-mips.c:ecoff_swap_pdr_out
437
438
/* Swap in a symbol record.  */
439
440
static void
441
ecoff_swap_sym_in (bfd *abfd, void * ext_copy, SYMR *intern)
442
13.5k
{
443
13.5k
  struct sym_ext ext[1];
444
445
13.5k
  *ext = *(struct sym_ext *) ext_copy;
446
447
13.5k
  intern->iss   = H_GET_32 (abfd, ext->s_iss);
448
13.5k
  intern->value   = ECOFF_GET_OFF (abfd, ext->s_value);
449
450
#if defined (ECOFF_64) || defined (ECOFF_SIGNED_64)
451
1.35k
  if (intern->iss == (signed long) 0xffffffff)
452
293
    intern->iss = -1;
453
#endif
454
455
  /* Now the fun stuff...  */
456
13.5k
  if (bfd_header_big_endian (abfd))
457
0
    {
458
0
      intern->st    =  (ext->s_bits1[0] & SYM_BITS1_ST_BIG)
459
0
               >> SYM_BITS1_ST_SH_BIG;
460
0
      intern->sc    = ((ext->s_bits1[0] & SYM_BITS1_SC_BIG)
461
0
               << SYM_BITS1_SC_SH_LEFT_BIG)
462
0
        | ((ext->s_bits2[0] & SYM_BITS2_SC_BIG)
463
0
               >> SYM_BITS2_SC_SH_BIG);
464
0
      intern->reserved    = 0 != (ext->s_bits2[0] & SYM_BITS2_RESERVED_BIG);
465
0
      intern->index   = ((ext->s_bits2[0] & SYM_BITS2_INDEX_BIG)
466
0
               << SYM_BITS2_INDEX_SH_LEFT_BIG)
467
0
        | (ext->s_bits3[0] << SYM_BITS3_INDEX_SH_LEFT_BIG)
468
0
        | (ext->s_bits4[0] << SYM_BITS4_INDEX_SH_LEFT_BIG);
469
0
    }
470
13.5k
  else
471
13.5k
    {
472
13.5k
      intern->st    =  (ext->s_bits1[0] & SYM_BITS1_ST_LITTLE)
473
13.5k
               >> SYM_BITS1_ST_SH_LITTLE;
474
13.5k
      intern->sc    = ((ext->s_bits1[0] & SYM_BITS1_SC_LITTLE)
475
13.5k
               >> SYM_BITS1_SC_SH_LITTLE)
476
13.5k
        | ((ext->s_bits2[0] & SYM_BITS2_SC_LITTLE)
477
13.5k
               << SYM_BITS2_SC_SH_LEFT_LITTLE);
478
13.5k
      intern->reserved    = 0 != (ext->s_bits2[0] & SYM_BITS2_RESERVED_LITTLE);
479
13.5k
      intern->index   = ((ext->s_bits2[0] & SYM_BITS2_INDEX_LITTLE)
480
13.5k
               >> SYM_BITS2_INDEX_SH_LITTLE)
481
13.5k
        | (ext->s_bits3[0] << SYM_BITS3_INDEX_SH_LEFT_LITTLE)
482
13.5k
        | ((unsigned int) ext->s_bits4[0]
483
13.5k
           << SYM_BITS4_INDEX_SH_LEFT_LITTLE);
484
13.5k
    }
485
486
#ifdef TEST
487
  if (memcmp ((char *) ext, (char *) intern, sizeof (*intern)) != 0)
488
    abort ();
489
#endif
490
13.5k
}
coff-alpha.c:ecoff_swap_sym_in
Line
Count
Source
442
12
{
443
12
  struct sym_ext ext[1];
444
445
12
  *ext = *(struct sym_ext *) ext_copy;
446
447
12
  intern->iss   = H_GET_32 (abfd, ext->s_iss);
448
12
  intern->value   = ECOFF_GET_OFF (abfd, ext->s_value);
449
450
12
#if defined (ECOFF_64) || defined (ECOFF_SIGNED_64)
451
12
  if (intern->iss == (signed long) 0xffffffff)
452
4
    intern->iss = -1;
453
12
#endif
454
455
  /* Now the fun stuff...  */
456
12
  if (bfd_header_big_endian (abfd))
457
0
    {
458
0
      intern->st    =  (ext->s_bits1[0] & SYM_BITS1_ST_BIG)
459
0
               >> SYM_BITS1_ST_SH_BIG;
460
0
      intern->sc    = ((ext->s_bits1[0] & SYM_BITS1_SC_BIG)
461
0
               << SYM_BITS1_SC_SH_LEFT_BIG)
462
0
        | ((ext->s_bits2[0] & SYM_BITS2_SC_BIG)
463
0
               >> SYM_BITS2_SC_SH_BIG);
464
0
      intern->reserved    = 0 != (ext->s_bits2[0] & SYM_BITS2_RESERVED_BIG);
465
0
      intern->index   = ((ext->s_bits2[0] & SYM_BITS2_INDEX_BIG)
466
0
               << SYM_BITS2_INDEX_SH_LEFT_BIG)
467
0
        | (ext->s_bits3[0] << SYM_BITS3_INDEX_SH_LEFT_BIG)
468
0
        | (ext->s_bits4[0] << SYM_BITS4_INDEX_SH_LEFT_BIG);
469
0
    }
470
12
  else
471
12
    {
472
12
      intern->st    =  (ext->s_bits1[0] & SYM_BITS1_ST_LITTLE)
473
12
               >> SYM_BITS1_ST_SH_LITTLE;
474
12
      intern->sc    = ((ext->s_bits1[0] & SYM_BITS1_SC_LITTLE)
475
12
               >> SYM_BITS1_SC_SH_LITTLE)
476
12
        | ((ext->s_bits2[0] & SYM_BITS2_SC_LITTLE)
477
12
               << SYM_BITS2_SC_SH_LEFT_LITTLE);
478
12
      intern->reserved    = 0 != (ext->s_bits2[0] & SYM_BITS2_RESERVED_LITTLE);
479
12
      intern->index   = ((ext->s_bits2[0] & SYM_BITS2_INDEX_LITTLE)
480
12
               >> SYM_BITS2_INDEX_SH_LITTLE)
481
12
        | (ext->s_bits3[0] << SYM_BITS3_INDEX_SH_LEFT_LITTLE)
482
12
        | ((unsigned int) ext->s_bits4[0]
483
12
           << SYM_BITS4_INDEX_SH_LEFT_LITTLE);
484
12
    }
485
486
#ifdef TEST
487
  if (memcmp ((char *) ext, (char *) intern, sizeof (*intern)) != 0)
488
    abort ();
489
#endif
490
12
}
Unexecuted instantiation: elf32-mips.c:ecoff_swap_sym_in
Unexecuted instantiation: elf64-alpha.c:ecoff_swap_sym_in
elf64-mips.c:ecoff_swap_sym_in
Line
Count
Source
442
1.33k
{
443
1.33k
  struct sym_ext ext[1];
444
445
1.33k
  *ext = *(struct sym_ext *) ext_copy;
446
447
1.33k
  intern->iss   = H_GET_32 (abfd, ext->s_iss);
448
1.33k
  intern->value   = ECOFF_GET_OFF (abfd, ext->s_value);
449
450
1.33k
#if defined (ECOFF_64) || defined (ECOFF_SIGNED_64)
451
1.33k
  if (intern->iss == (signed long) 0xffffffff)
452
289
    intern->iss = -1;
453
1.33k
#endif
454
455
  /* Now the fun stuff...  */
456
1.33k
  if (bfd_header_big_endian (abfd))
457
0
    {
458
0
      intern->st    =  (ext->s_bits1[0] & SYM_BITS1_ST_BIG)
459
0
               >> SYM_BITS1_ST_SH_BIG;
460
0
      intern->sc    = ((ext->s_bits1[0] & SYM_BITS1_SC_BIG)
461
0
               << SYM_BITS1_SC_SH_LEFT_BIG)
462
0
        | ((ext->s_bits2[0] & SYM_BITS2_SC_BIG)
463
0
               >> SYM_BITS2_SC_SH_BIG);
464
0
      intern->reserved    = 0 != (ext->s_bits2[0] & SYM_BITS2_RESERVED_BIG);
465
0
      intern->index   = ((ext->s_bits2[0] & SYM_BITS2_INDEX_BIG)
466
0
               << SYM_BITS2_INDEX_SH_LEFT_BIG)
467
0
        | (ext->s_bits3[0] << SYM_BITS3_INDEX_SH_LEFT_BIG)
468
0
        | (ext->s_bits4[0] << SYM_BITS4_INDEX_SH_LEFT_BIG);
469
0
    }
470
1.33k
  else
471
1.33k
    {
472
1.33k
      intern->st    =  (ext->s_bits1[0] & SYM_BITS1_ST_LITTLE)
473
1.33k
               >> SYM_BITS1_ST_SH_LITTLE;
474
1.33k
      intern->sc    = ((ext->s_bits1[0] & SYM_BITS1_SC_LITTLE)
475
1.33k
               >> SYM_BITS1_SC_SH_LITTLE)
476
1.33k
        | ((ext->s_bits2[0] & SYM_BITS2_SC_LITTLE)
477
1.33k
               << SYM_BITS2_SC_SH_LEFT_LITTLE);
478
1.33k
      intern->reserved    = 0 != (ext->s_bits2[0] & SYM_BITS2_RESERVED_LITTLE);
479
1.33k
      intern->index   = ((ext->s_bits2[0] & SYM_BITS2_INDEX_LITTLE)
480
1.33k
               >> SYM_BITS2_INDEX_SH_LITTLE)
481
1.33k
        | (ext->s_bits3[0] << SYM_BITS3_INDEX_SH_LEFT_LITTLE)
482
1.33k
        | ((unsigned int) ext->s_bits4[0]
483
1.33k
           << SYM_BITS4_INDEX_SH_LEFT_LITTLE);
484
1.33k
    }
485
486
#ifdef TEST
487
  if (memcmp ((char *) ext, (char *) intern, sizeof (*intern)) != 0)
488
    abort ();
489
#endif
490
1.33k
}
Unexecuted instantiation: elfn32-mips.c:ecoff_swap_sym_in
coff-mips.c:ecoff_swap_sym_in
Line
Count
Source
442
12.1k
{
443
12.1k
  struct sym_ext ext[1];
444
445
12.1k
  *ext = *(struct sym_ext *) ext_copy;
446
447
12.1k
  intern->iss   = H_GET_32 (abfd, ext->s_iss);
448
12.1k
  intern->value   = ECOFF_GET_OFF (abfd, ext->s_value);
449
450
#if defined (ECOFF_64) || defined (ECOFF_SIGNED_64)
451
  if (intern->iss == (signed long) 0xffffffff)
452
    intern->iss = -1;
453
#endif
454
455
  /* Now the fun stuff...  */
456
12.1k
  if (bfd_header_big_endian (abfd))
457
0
    {
458
0
      intern->st    =  (ext->s_bits1[0] & SYM_BITS1_ST_BIG)
459
0
               >> SYM_BITS1_ST_SH_BIG;
460
0
      intern->sc    = ((ext->s_bits1[0] & SYM_BITS1_SC_BIG)
461
0
               << SYM_BITS1_SC_SH_LEFT_BIG)
462
0
        | ((ext->s_bits2[0] & SYM_BITS2_SC_BIG)
463
0
               >> SYM_BITS2_SC_SH_BIG);
464
0
      intern->reserved    = 0 != (ext->s_bits2[0] & SYM_BITS2_RESERVED_BIG);
465
0
      intern->index   = ((ext->s_bits2[0] & SYM_BITS2_INDEX_BIG)
466
0
               << SYM_BITS2_INDEX_SH_LEFT_BIG)
467
0
        | (ext->s_bits3[0] << SYM_BITS3_INDEX_SH_LEFT_BIG)
468
0
        | (ext->s_bits4[0] << SYM_BITS4_INDEX_SH_LEFT_BIG);
469
0
    }
470
12.1k
  else
471
12.1k
    {
472
12.1k
      intern->st    =  (ext->s_bits1[0] & SYM_BITS1_ST_LITTLE)
473
12.1k
               >> SYM_BITS1_ST_SH_LITTLE;
474
12.1k
      intern->sc    = ((ext->s_bits1[0] & SYM_BITS1_SC_LITTLE)
475
12.1k
               >> SYM_BITS1_SC_SH_LITTLE)
476
12.1k
        | ((ext->s_bits2[0] & SYM_BITS2_SC_LITTLE)
477
12.1k
               << SYM_BITS2_SC_SH_LEFT_LITTLE);
478
12.1k
      intern->reserved    = 0 != (ext->s_bits2[0] & SYM_BITS2_RESERVED_LITTLE);
479
12.1k
      intern->index   = ((ext->s_bits2[0] & SYM_BITS2_INDEX_LITTLE)
480
12.1k
               >> SYM_BITS2_INDEX_SH_LITTLE)
481
12.1k
        | (ext->s_bits3[0] << SYM_BITS3_INDEX_SH_LEFT_LITTLE)
482
12.1k
        | ((unsigned int) ext->s_bits4[0]
483
12.1k
           << SYM_BITS4_INDEX_SH_LEFT_LITTLE);
484
12.1k
    }
485
486
#ifdef TEST
487
  if (memcmp ((char *) ext, (char *) intern, sizeof (*intern)) != 0)
488
    abort ();
489
#endif
490
12.1k
}
491
492
/* Swap out a symbol record.  */
493
494
static void
495
ecoff_swap_sym_out (bfd *abfd, const SYMR *intern_copy, void * ext_ptr)
496
0
{
497
0
  struct sym_ext *ext = (struct sym_ext *) ext_ptr;
498
0
  SYMR intern[1];
499
500
  /* Make it reasonable to do in-place.  */
501
0
  *intern = *intern_copy;
502
503
0
  H_PUT_32 (abfd, intern->iss, ext->s_iss);
504
0
  ECOFF_PUT_OFF (abfd, intern->value, ext->s_value);
505
506
  /* Now the fun stuff...  */
507
0
  if (bfd_header_big_endian (abfd))
508
0
    {
509
0
      ext->s_bits1[0] = (((intern->st << SYM_BITS1_ST_SH_BIG)
510
0
        & SYM_BITS1_ST_BIG)
511
0
       | ((intern->sc >> SYM_BITS1_SC_SH_LEFT_BIG)
512
0
          & SYM_BITS1_SC_BIG));
513
0
      ext->s_bits2[0] = (((intern->sc << SYM_BITS2_SC_SH_BIG)
514
0
        & SYM_BITS2_SC_BIG)
515
0
       | (intern->reserved ? SYM_BITS2_RESERVED_BIG : 0)
516
0
       | ((intern->index >> SYM_BITS2_INDEX_SH_LEFT_BIG)
517
0
          & SYM_BITS2_INDEX_BIG));
518
0
      ext->s_bits3[0] = (intern->index >> SYM_BITS3_INDEX_SH_LEFT_BIG) & 0xff;
519
0
      ext->s_bits4[0] = (intern->index >> SYM_BITS4_INDEX_SH_LEFT_BIG) & 0xff;
520
0
    }
521
0
  else
522
0
    {
523
0
      ext->s_bits1[0] = (((intern->st << SYM_BITS1_ST_SH_LITTLE)
524
0
        & SYM_BITS1_ST_LITTLE)
525
0
       | ((intern->sc << SYM_BITS1_SC_SH_LITTLE)
526
0
          & SYM_BITS1_SC_LITTLE));
527
0
      ext->s_bits2[0] = (((intern->sc >> SYM_BITS2_SC_SH_LEFT_LITTLE)
528
0
        & SYM_BITS2_SC_LITTLE)
529
0
       | (intern->reserved ? SYM_BITS2_RESERVED_LITTLE : 0)
530
0
       | ((intern->index << SYM_BITS2_INDEX_SH_LITTLE)
531
0
          & SYM_BITS2_INDEX_LITTLE));
532
0
      ext->s_bits3[0] = (intern->index >> SYM_BITS3_INDEX_SH_LEFT_LITTLE) & 0xff;
533
0
      ext->s_bits4[0] = (intern->index >> SYM_BITS4_INDEX_SH_LEFT_LITTLE) & 0xff;
534
0
    }
535
536
#ifdef TEST
537
  if (memcmp ((char *) ext, (char *) intern, sizeof (*intern)) != 0)
538
    abort ();
539
#endif
540
0
}
Unexecuted instantiation: coff-alpha.c:ecoff_swap_sym_out
Unexecuted instantiation: elf32-mips.c:ecoff_swap_sym_out
Unexecuted instantiation: elf64-alpha.c:ecoff_swap_sym_out
Unexecuted instantiation: elf64-mips.c:ecoff_swap_sym_out
Unexecuted instantiation: elfn32-mips.c:ecoff_swap_sym_out
Unexecuted instantiation: coff-mips.c:ecoff_swap_sym_out
541
542
/* Swap in an external symbol record.  */
543
544
static void
545
ecoff_swap_ext_in (bfd *abfd, void * ext_copy, EXTR *intern)
546
11.5k
{
547
11.5k
  struct ext_ext ext[1];
548
549
11.5k
  *ext = *(struct ext_ext *) ext_copy;
550
551
  /* Now the fun stuff...  */
552
11.5k
  if (bfd_header_big_endian (abfd))
553
0
    {
554
0
      intern->jmptbl      = 0 != (ext->es_bits1[0] & EXT_BITS1_JMPTBL_BIG);
555
0
      intern->cobol_main  = 0 != (ext->es_bits1[0] & EXT_BITS1_COBOL_MAIN_BIG);
556
0
      intern->weakext     = 0 != (ext->es_bits1[0] & EXT_BITS1_WEAKEXT_BIG);
557
0
    }
558
11.5k
  else
559
11.5k
    {
560
11.5k
      intern->jmptbl      = 0 != (ext->es_bits1[0] & EXT_BITS1_JMPTBL_LITTLE);
561
11.5k
      intern->cobol_main  = 0 != (ext->es_bits1[0] & EXT_BITS1_COBOL_MAIN_LITTLE);
562
11.5k
      intern->weakext     = 0 != (ext->es_bits1[0] & EXT_BITS1_WEAKEXT_LITTLE);
563
11.5k
    }
564
11.5k
  intern->reserved = 0;
565
566
#if defined (ECOFF_32) || defined (ECOFF_SIGNED_32)
567
11.4k
  intern->ifd = H_GET_S16 (abfd, ext->es_ifd);
568
#endif
569
#if defined (ECOFF_64) || defined (ECOFF_SIGNED_64)
570
62
  intern->ifd = H_GET_S32 (abfd, ext->es_ifd);
571
#endif
572
573
11.5k
  ecoff_swap_sym_in (abfd, &ext->es_asym, &intern->asym);
574
575
#ifdef TEST
576
  if (memcmp ((char *) ext, (char *) intern, sizeof (*intern)) != 0)
577
    abort ();
578
#endif
579
11.5k
}
coff-alpha.c:ecoff_swap_ext_in
Line
Count
Source
546
6
{
547
6
  struct ext_ext ext[1];
548
549
6
  *ext = *(struct ext_ext *) ext_copy;
550
551
  /* Now the fun stuff...  */
552
6
  if (bfd_header_big_endian (abfd))
553
0
    {
554
0
      intern->jmptbl      = 0 != (ext->es_bits1[0] & EXT_BITS1_JMPTBL_BIG);
555
0
      intern->cobol_main  = 0 != (ext->es_bits1[0] & EXT_BITS1_COBOL_MAIN_BIG);
556
0
      intern->weakext     = 0 != (ext->es_bits1[0] & EXT_BITS1_WEAKEXT_BIG);
557
0
    }
558
6
  else
559
6
    {
560
6
      intern->jmptbl      = 0 != (ext->es_bits1[0] & EXT_BITS1_JMPTBL_LITTLE);
561
6
      intern->cobol_main  = 0 != (ext->es_bits1[0] & EXT_BITS1_COBOL_MAIN_LITTLE);
562
6
      intern->weakext     = 0 != (ext->es_bits1[0] & EXT_BITS1_WEAKEXT_LITTLE);
563
6
    }
564
6
  intern->reserved = 0;
565
566
#if defined (ECOFF_32) || defined (ECOFF_SIGNED_32)
567
  intern->ifd = H_GET_S16 (abfd, ext->es_ifd);
568
#endif
569
6
#if defined (ECOFF_64) || defined (ECOFF_SIGNED_64)
570
6
  intern->ifd = H_GET_S32 (abfd, ext->es_ifd);
571
6
#endif
572
573
6
  ecoff_swap_sym_in (abfd, &ext->es_asym, &intern->asym);
574
575
#ifdef TEST
576
  if (memcmp ((char *) ext, (char *) intern, sizeof (*intern)) != 0)
577
    abort ();
578
#endif
579
6
}
Unexecuted instantiation: elf32-mips.c:ecoff_swap_ext_in
Unexecuted instantiation: elf64-alpha.c:ecoff_swap_ext_in
elf64-mips.c:ecoff_swap_ext_in
Line
Count
Source
546
56
{
547
56
  struct ext_ext ext[1];
548
549
56
  *ext = *(struct ext_ext *) ext_copy;
550
551
  /* Now the fun stuff...  */
552
56
  if (bfd_header_big_endian (abfd))
553
0
    {
554
0
      intern->jmptbl      = 0 != (ext->es_bits1[0] & EXT_BITS1_JMPTBL_BIG);
555
0
      intern->cobol_main  = 0 != (ext->es_bits1[0] & EXT_BITS1_COBOL_MAIN_BIG);
556
0
      intern->weakext     = 0 != (ext->es_bits1[0] & EXT_BITS1_WEAKEXT_BIG);
557
0
    }
558
56
  else
559
56
    {
560
56
      intern->jmptbl      = 0 != (ext->es_bits1[0] & EXT_BITS1_JMPTBL_LITTLE);
561
56
      intern->cobol_main  = 0 != (ext->es_bits1[0] & EXT_BITS1_COBOL_MAIN_LITTLE);
562
56
      intern->weakext     = 0 != (ext->es_bits1[0] & EXT_BITS1_WEAKEXT_LITTLE);
563
56
    }
564
56
  intern->reserved = 0;
565
566
#if defined (ECOFF_32) || defined (ECOFF_SIGNED_32)
567
  intern->ifd = H_GET_S16 (abfd, ext->es_ifd);
568
#endif
569
56
#if defined (ECOFF_64) || defined (ECOFF_SIGNED_64)
570
56
  intern->ifd = H_GET_S32 (abfd, ext->es_ifd);
571
56
#endif
572
573
56
  ecoff_swap_sym_in (abfd, &ext->es_asym, &intern->asym);
574
575
#ifdef TEST
576
  if (memcmp ((char *) ext, (char *) intern, sizeof (*intern)) != 0)
577
    abort ();
578
#endif
579
56
}
Unexecuted instantiation: elfn32-mips.c:ecoff_swap_ext_in
coff-mips.c:ecoff_swap_ext_in
Line
Count
Source
546
11.4k
{
547
11.4k
  struct ext_ext ext[1];
548
549
11.4k
  *ext = *(struct ext_ext *) ext_copy;
550
551
  /* Now the fun stuff...  */
552
11.4k
  if (bfd_header_big_endian (abfd))
553
0
    {
554
0
      intern->jmptbl      = 0 != (ext->es_bits1[0] & EXT_BITS1_JMPTBL_BIG);
555
0
      intern->cobol_main  = 0 != (ext->es_bits1[0] & EXT_BITS1_COBOL_MAIN_BIG);
556
0
      intern->weakext     = 0 != (ext->es_bits1[0] & EXT_BITS1_WEAKEXT_BIG);
557
0
    }
558
11.4k
  else
559
11.4k
    {
560
11.4k
      intern->jmptbl      = 0 != (ext->es_bits1[0] & EXT_BITS1_JMPTBL_LITTLE);
561
11.4k
      intern->cobol_main  = 0 != (ext->es_bits1[0] & EXT_BITS1_COBOL_MAIN_LITTLE);
562
11.4k
      intern->weakext     = 0 != (ext->es_bits1[0] & EXT_BITS1_WEAKEXT_LITTLE);
563
11.4k
    }
564
11.4k
  intern->reserved = 0;
565
566
11.4k
#if defined (ECOFF_32) || defined (ECOFF_SIGNED_32)
567
11.4k
  intern->ifd = H_GET_S16 (abfd, ext->es_ifd);
568
11.4k
#endif
569
#if defined (ECOFF_64) || defined (ECOFF_SIGNED_64)
570
  intern->ifd = H_GET_S32 (abfd, ext->es_ifd);
571
#endif
572
573
11.4k
  ecoff_swap_sym_in (abfd, &ext->es_asym, &intern->asym);
574
575
#ifdef TEST
576
  if (memcmp ((char *) ext, (char *) intern, sizeof (*intern)) != 0)
577
    abort ();
578
#endif
579
11.4k
}
580
581
/* Swap out an external symbol record.  */
582
583
static void
584
ecoff_swap_ext_out (bfd *abfd, const EXTR *intern_copy, void * ext_ptr)
585
0
{
586
0
  struct ext_ext *ext = (struct ext_ext *) ext_ptr;
587
0
  EXTR intern[1];
588
589
  /* Make it reasonable to do in-place.  */
590
0
  *intern = *intern_copy;
591
592
  /* Now the fun stuff...  */
593
0
  if (bfd_header_big_endian (abfd))
594
0
    {
595
0
      ext->es_bits1[0] = ((intern->jmptbl ? EXT_BITS1_JMPTBL_BIG : 0)
596
0
        | (intern->cobol_main ? EXT_BITS1_COBOL_MAIN_BIG : 0)
597
0
        | (intern->weakext ? EXT_BITS1_WEAKEXT_BIG : 0));
598
0
      ext->es_bits2[0] = 0;
599
#if defined (ECOFF_64) || defined (ECOFF_SIGNED_64)
600
      ext->es_bits2[1] = 0;
601
      ext->es_bits2[2] = 0;
602
#endif
603
0
    }
604
0
  else
605
0
    {
606
0
      ext->es_bits1[0] = ((intern->jmptbl ? EXT_BITS1_JMPTBL_LITTLE : 0)
607
0
        | (intern->cobol_main ? EXT_BITS1_COBOL_MAIN_LITTLE : 0)
608
0
        | (intern->weakext ? EXT_BITS1_WEAKEXT_LITTLE : 0));
609
0
      ext->es_bits2[0] = 0;
610
#if defined (ECOFF_64) || defined (ECOFF_SIGNED_64)
611
      ext->es_bits2[1] = 0;
612
      ext->es_bits2[2] = 0;
613
#endif
614
0
    }
615
616
#if defined (ECOFF_32) || defined (ECOFF_SIGNED_32)
617
0
  H_PUT_S16 (abfd, intern->ifd, ext->es_ifd);
618
#endif
619
#if defined (ECOFF_64) || defined (ECOFF_SIGNED_64)
620
0
  H_PUT_S32 (abfd, intern->ifd, ext->es_ifd);
621
#endif
622
623
0
  ecoff_swap_sym_out (abfd, &intern->asym, &ext->es_asym);
624
625
#ifdef TEST
626
  if (memcmp ((char *) ext, (char *) intern, sizeof (*intern)) != 0)
627
    abort ();
628
#endif
629
0
}
Unexecuted instantiation: coff-alpha.c:ecoff_swap_ext_out
Unexecuted instantiation: elf32-mips.c:ecoff_swap_ext_out
Unexecuted instantiation: elf64-alpha.c:ecoff_swap_ext_out
Unexecuted instantiation: elf64-mips.c:ecoff_swap_ext_out
Unexecuted instantiation: elfn32-mips.c:ecoff_swap_ext_out
Unexecuted instantiation: coff-mips.c:ecoff_swap_ext_out
630
631
/* Swap in a relative file descriptor.  */
632
633
static void
634
ecoff_swap_rfd_in (bfd *abfd, void * ext_ptr, RFDT *intern)
635
0
{
636
0
  struct rfd_ext *ext = (struct rfd_ext *) ext_ptr;
637
638
0
  *intern = H_GET_32 (abfd, ext->rfd);
639
640
#ifdef TEST
641
  if (memcmp ((char *) ext, (char *) intern, sizeof (*intern)) != 0)
642
    abort ();
643
#endif
644
0
}
Unexecuted instantiation: coff-alpha.c:ecoff_swap_rfd_in
Unexecuted instantiation: elf32-mips.c:ecoff_swap_rfd_in
Unexecuted instantiation: elf64-alpha.c:ecoff_swap_rfd_in
Unexecuted instantiation: elf64-mips.c:ecoff_swap_rfd_in
Unexecuted instantiation: elfn32-mips.c:ecoff_swap_rfd_in
Unexecuted instantiation: coff-mips.c:ecoff_swap_rfd_in
645
646
/* Swap out a relative file descriptor.  */
647
648
static void
649
ecoff_swap_rfd_out (bfd *abfd, const RFDT *intern, void * ext_ptr)
650
0
{
651
0
  struct rfd_ext *ext = (struct rfd_ext *) ext_ptr;
652
653
0
  H_PUT_32 (abfd, *intern, ext->rfd);
654
655
#ifdef TEST
656
  if (memcmp ((char *) ext, (char *) intern, sizeof (*intern)) != 0)
657
    abort ();
658
#endif
659
0
}
Unexecuted instantiation: coff-alpha.c:ecoff_swap_rfd_out
Unexecuted instantiation: elf32-mips.c:ecoff_swap_rfd_out
Unexecuted instantiation: elf64-alpha.c:ecoff_swap_rfd_out
Unexecuted instantiation: elf64-mips.c:ecoff_swap_rfd_out
Unexecuted instantiation: elfn32-mips.c:ecoff_swap_rfd_out
Unexecuted instantiation: coff-mips.c:ecoff_swap_rfd_out
660
661
/* Swap in an optimization symbol.  */
662
663
static void
664
ecoff_swap_opt_in (bfd *abfd, void * ext_copy, OPTR * intern)
665
0
{
666
0
  struct opt_ext ext[1];
667
668
0
  *ext = *(struct opt_ext *) ext_copy;
669
670
0
  if (bfd_header_big_endian (abfd))
671
0
    {
672
0
      intern->ot = ext->o_bits1[0];
673
0
      intern->value = (((unsigned int) ext->o_bits2[0]
674
0
      << OPT_BITS2_VALUE_SH_LEFT_BIG)
675
0
           | ((unsigned int) ext->o_bits3[0]
676
0
        << OPT_BITS2_VALUE_SH_LEFT_BIG)
677
0
           | ((unsigned int) ext->o_bits4[0]
678
0
        << OPT_BITS2_VALUE_SH_LEFT_BIG));
679
0
    }
680
0
  else
681
0
    {
682
0
      intern->ot = ext->o_bits1[0];
683
0
      intern->value = ((ext->o_bits2[0] << OPT_BITS2_VALUE_SH_LEFT_LITTLE)
684
0
           | (ext->o_bits3[0] << OPT_BITS2_VALUE_SH_LEFT_LITTLE)
685
0
           | (ext->o_bits4[0] << OPT_BITS2_VALUE_SH_LEFT_LITTLE));
686
0
    }
687
688
0
  _bfd_ecoff_swap_rndx_in (bfd_header_big_endian (abfd),
689
0
         &ext->o_rndx, &intern->rndx);
690
691
0
  intern->offset = H_GET_32 (abfd, ext->o_offset);
692
693
#ifdef TEST
694
  if (memcmp ((char *) ext, (char *) intern, sizeof (*intern)) != 0)
695
    abort ();
696
#endif
697
0
}
Unexecuted instantiation: coff-alpha.c:ecoff_swap_opt_in
Unexecuted instantiation: elf32-mips.c:ecoff_swap_opt_in
Unexecuted instantiation: elf64-alpha.c:ecoff_swap_opt_in
Unexecuted instantiation: elf64-mips.c:ecoff_swap_opt_in
Unexecuted instantiation: elfn32-mips.c:ecoff_swap_opt_in
Unexecuted instantiation: coff-mips.c:ecoff_swap_opt_in
698
699
/* Swap out an optimization symbol.  */
700
701
static void
702
ecoff_swap_opt_out (bfd *abfd, const OPTR *intern_copy, void * ext_ptr)
703
0
{
704
0
  struct opt_ext *ext = (struct opt_ext *) ext_ptr;
705
0
  OPTR intern[1];
706
707
  /* Make it reasonable to do in-place.  */
708
0
  *intern = *intern_copy;
709
710
0
  if (bfd_header_big_endian (abfd))
711
0
    {
712
0
      ext->o_bits1[0] = intern->ot;
713
0
      ext->o_bits2[0] = intern->value >> OPT_BITS2_VALUE_SH_LEFT_BIG;
714
0
      ext->o_bits3[0] = intern->value >> OPT_BITS3_VALUE_SH_LEFT_BIG;
715
0
      ext->o_bits4[0] = intern->value >> OPT_BITS4_VALUE_SH_LEFT_BIG;
716
0
    }
717
0
  else
718
0
    {
719
0
      ext->o_bits1[0] = intern->ot;
720
0
      ext->o_bits2[0] = intern->value >> OPT_BITS2_VALUE_SH_LEFT_LITTLE;
721
0
      ext->o_bits3[0] = intern->value >> OPT_BITS3_VALUE_SH_LEFT_LITTLE;
722
0
      ext->o_bits4[0] = intern->value >> OPT_BITS4_VALUE_SH_LEFT_LITTLE;
723
0
    }
724
725
0
  _bfd_ecoff_swap_rndx_out (bfd_header_big_endian (abfd),
726
0
          &intern->rndx, &ext->o_rndx);
727
728
0
  H_PUT_32 (abfd, intern->value, ext->o_offset);
729
730
#ifdef TEST
731
  if (memcmp ((char *) ext, (char *) intern, sizeof (*intern)) != 0)
732
    abort ();
733
#endif
734
0
}
Unexecuted instantiation: coff-alpha.c:ecoff_swap_opt_out
Unexecuted instantiation: elf32-mips.c:ecoff_swap_opt_out
Unexecuted instantiation: elf64-alpha.c:ecoff_swap_opt_out
Unexecuted instantiation: elf64-mips.c:ecoff_swap_opt_out
Unexecuted instantiation: elfn32-mips.c:ecoff_swap_opt_out
Unexecuted instantiation: coff-mips.c:ecoff_swap_opt_out
735
736
/* Swap in a dense number.  */
737
738
static void
739
ecoff_swap_dnr_in (bfd *abfd, void * ext_copy, DNR *intern)
740
0
{
741
0
  struct dnr_ext ext[1];
742
743
0
  *ext = *(struct dnr_ext *) ext_copy;
744
745
0
  intern->rfd = H_GET_32 (abfd, ext->d_rfd);
746
0
  intern->index = H_GET_32 (abfd, ext->d_index);
747
748
#ifdef TEST
749
  if (memcmp ((char *) ext, (char *) intern, sizeof (*intern)) != 0)
750
    abort ();
751
#endif
752
0
}
Unexecuted instantiation: coff-alpha.c:ecoff_swap_dnr_in
Unexecuted instantiation: elf32-mips.c:ecoff_swap_dnr_in
Unexecuted instantiation: elf64-alpha.c:ecoff_swap_dnr_in
Unexecuted instantiation: elf64-mips.c:ecoff_swap_dnr_in
Unexecuted instantiation: elfn32-mips.c:ecoff_swap_dnr_in
Unexecuted instantiation: coff-mips.c:ecoff_swap_dnr_in
753
754
/* Swap out a dense number.  */
755
756
static void
757
ecoff_swap_dnr_out (bfd *abfd, const DNR *intern_copy, void * ext_ptr)
758
0
{
759
0
  struct dnr_ext *ext = (struct dnr_ext *) ext_ptr;
760
0
  DNR intern[1];
761
762
  /* Make it reasonable to do in-place.  */
763
0
  *intern = *intern_copy;
764
765
0
  H_PUT_32 (abfd, intern->rfd, ext->d_rfd);
766
0
  H_PUT_32 (abfd, intern->index, ext->d_index);
767
768
#ifdef TEST
769
  if (memcmp ((char *) ext, (char *) intern, sizeof (*intern)) != 0)
770
    abort ();
771
#endif
772
0
}
Unexecuted instantiation: coff-alpha.c:ecoff_swap_dnr_out
Unexecuted instantiation: elf32-mips.c:ecoff_swap_dnr_out
Unexecuted instantiation: elf64-alpha.c:ecoff_swap_dnr_out
Unexecuted instantiation: elf64-mips.c:ecoff_swap_dnr_out
Unexecuted instantiation: elfn32-mips.c:ecoff_swap_dnr_out
Unexecuted instantiation: coff-mips.c:ecoff_swap_dnr_out