Changeset 609 for branches/GNU/src/binutils/bfd/ecoffswap.h
- Timestamp:
- Aug 16, 2003, 6:59:22 PM (22 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/GNU/src/binutils/bfd/ecoffswap.h
-
Property cvs2svn:cvs-rev
changed from
1.1
to1.1.1.2
r608 r609 1 1 /* Generic ECOFF swapping routines, for BFD. 2 Copyright 1992, 1993, 1994, 1995, 1996, 2000, 2001 2 Copyright 1992, 1993, 1994, 1995, 1996, 2000, 2001, 2002 3 3 Free Software Foundation, Inc. 4 4 Written by Cygnus Support. 5 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 modify9 it under the terms of the GNU General Public License as published by10 the Free Software Foundation; either version 2 of the License, or11 (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 of15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the16 GNU General Public License for more details.17 18 You should have received a copy of the GNU General Public License19 along with this program; if not, write to the Free Software20 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */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 2 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ 21 21 22 22 /* NOTE: This is a header file, but it contains executable routines. … … 46 46 47 47 #ifdef ECOFF_32 48 #define ecoff_get_off bfd_h_get_3249 #define ecoff_put_off bfd_h_put_3248 #define ECOFF_GET_OFF H_GET_32 49 #define ECOFF_PUT_OFF H_PUT_32 50 50 #endif 51 51 #ifdef ECOFF_64 52 #define ecoff_get_off bfd_h_get_6453 #define ecoff_put_off bfd_h_put_6452 #define ECOFF_GET_OFF H_GET_64 53 #define ECOFF_PUT_OFF H_PUT_64 54 54 #endif 55 55 #ifdef ECOFF_SIGNED_32 56 #define ecoff_get_off bfd_h_get_signed_3257 #define ecoff_put_off bfd_h_put_signed_3256 #define ECOFF_GET_OFF H_GET_S32 57 #define ECOFF_PUT_OFF H_PUT_S32 58 58 #endif 59 59 #ifdef ECOFF_SIGNED_64 60 #define ecoff_get_off bfd_h_get_signed_6461 #define ecoff_put_off bfd_h_put_signed_6460 #define ECOFF_GET_OFF H_GET_S64 61 #define ECOFF_PUT_OFF H_PUT_S64 62 62 #endif 63 63 … … 105 105 *ext = *(struct hdr_ext *) ext_copy; 106 106 107 intern->magic = bfd_h_get_signed_16 (abfd, (bfd_byte *)ext->h_magic);108 intern->vstamp = bfd_h_get_signed_16 (abfd, (bfd_byte *)ext->h_vstamp);109 intern->ilineMax = bfd_h_get_32 (abfd, (bfd_byte *)ext->h_ilineMax);110 intern->cbLine = ecoff_get_off (abfd, (bfd_byte *)ext->h_cbLine);111 intern->cbLineOffset = ecoff_get_off (abfd, (bfd_byte *)ext->h_cbLineOffset);112 intern->idnMax = bfd_h_get_32 (abfd, (bfd_byte *)ext->h_idnMax);113 intern->cbDnOffset = ecoff_get_off (abfd, (bfd_byte *)ext->h_cbDnOffset);114 intern->ipdMax = bfd_h_get_32 (abfd, (bfd_byte *)ext->h_ipdMax);115 intern->cbPdOffset = ecoff_get_off (abfd, (bfd_byte *)ext->h_cbPdOffset);116 intern->isymMax = bfd_h_get_32 (abfd, (bfd_byte *)ext->h_isymMax);117 intern->cbSymOffset = ecoff_get_off (abfd, (bfd_byte *)ext->h_cbSymOffset);118 intern->ioptMax = bfd_h_get_32 (abfd, (bfd_byte *)ext->h_ioptMax);119 intern->cbOptOffset = ecoff_get_off (abfd, (bfd_byte *)ext->h_cbOptOffset);120 intern->iauxMax = bfd_h_get_32 (abfd, (bfd_byte *)ext->h_iauxMax);121 intern->cbAuxOffset = ecoff_get_off (abfd, (bfd_byte *)ext->h_cbAuxOffset);122 intern->issMax = bfd_h_get_32 (abfd, (bfd_byte *)ext->h_issMax);123 intern->cbSsOffset = ecoff_get_off (abfd, (bfd_byte *)ext->h_cbSsOffset);124 intern->issExtMax = bfd_h_get_32 (abfd, (bfd_byte *)ext->h_issExtMax);125 intern->cbSsExtOffset = ecoff_get_off (abfd, (bfd_byte *)ext->h_cbSsExtOffset);126 intern->ifdMax = bfd_h_get_32 (abfd, (bfd_byte *)ext->h_ifdMax);127 intern->cbFdOffset = ecoff_get_off (abfd, (bfd_byte *)ext->h_cbFdOffset);128 intern->crfd = bfd_h_get_32 (abfd, (bfd_byte *)ext->h_crfd);129 intern->cbRfdOffset = ecoff_get_off (abfd, (bfd_byte *)ext->h_cbRfdOffset);130 intern->iextMax = bfd_h_get_32 (abfd, (bfd_byte *)ext->h_iextMax);131 intern->cbExtOffset = ecoff_get_off (abfd, (bfd_byte *)ext->h_cbExtOffset);107 intern->magic = H_GET_S16 (abfd, ext->h_magic); 108 intern->vstamp = H_GET_S16 (abfd, ext->h_vstamp); 109 intern->ilineMax = H_GET_32 (abfd, ext->h_ilineMax); 110 intern->cbLine = ECOFF_GET_OFF (abfd, ext->h_cbLine); 111 intern->cbLineOffset = ECOFF_GET_OFF (abfd, ext->h_cbLineOffset); 112 intern->idnMax = H_GET_32 (abfd, ext->h_idnMax); 113 intern->cbDnOffset = ECOFF_GET_OFF (abfd, ext->h_cbDnOffset); 114 intern->ipdMax = H_GET_32 (abfd, ext->h_ipdMax); 115 intern->cbPdOffset = ECOFF_GET_OFF (abfd, ext->h_cbPdOffset); 116 intern->isymMax = H_GET_32 (abfd, ext->h_isymMax); 117 intern->cbSymOffset = ECOFF_GET_OFF (abfd, ext->h_cbSymOffset); 118 intern->ioptMax = H_GET_32 (abfd, ext->h_ioptMax); 119 intern->cbOptOffset = ECOFF_GET_OFF (abfd, ext->h_cbOptOffset); 120 intern->iauxMax = H_GET_32 (abfd, ext->h_iauxMax); 121 intern->cbAuxOffset = ECOFF_GET_OFF (abfd, ext->h_cbAuxOffset); 122 intern->issMax = H_GET_32 (abfd, ext->h_issMax); 123 intern->cbSsOffset = ECOFF_GET_OFF (abfd, ext->h_cbSsOffset); 124 intern->issExtMax = H_GET_32 (abfd, ext->h_issExtMax); 125 intern->cbSsExtOffset = ECOFF_GET_OFF (abfd, ext->h_cbSsExtOffset); 126 intern->ifdMax = H_GET_32 (abfd, ext->h_ifdMax); 127 intern->cbFdOffset = ECOFF_GET_OFF (abfd, ext->h_cbFdOffset); 128 intern->crfd = H_GET_32 (abfd, ext->h_crfd); 129 intern->cbRfdOffset = ECOFF_GET_OFF (abfd, ext->h_cbRfdOffset); 130 intern->iextMax = H_GET_32 (abfd, ext->h_iextMax); 131 intern->cbExtOffset = ECOFF_GET_OFF (abfd, ext->h_cbExtOffset); 132 132 133 133 #ifdef TEST … … 150 150 *intern = *intern_copy; 151 151 152 bfd_h_put_signed_16 (abfd, intern->magic, (bfd_byte *)ext->h_magic);153 bfd_h_put_signed_16 (abfd, intern->vstamp, (bfd_byte *)ext->h_vstamp);154 bfd_h_put_32 (abfd, intern->ilineMax, (bfd_byte *)ext->h_ilineMax);155 ecoff_put_off (abfd, intern->cbLine, (bfd_byte *)ext->h_cbLine);156 ecoff_put_off (abfd, intern->cbLineOffset, (bfd_byte *)ext->h_cbLineOffset);157 bfd_h_put_32 (abfd, intern->idnMax, (bfd_byte *)ext->h_idnMax);158 ecoff_put_off (abfd, intern->cbDnOffset, (bfd_byte *)ext->h_cbDnOffset);159 bfd_h_put_32 (abfd, intern->ipdMax, (bfd_byte *)ext->h_ipdMax);160 ecoff_put_off (abfd, intern->cbPdOffset, (bfd_byte *)ext->h_cbPdOffset);161 bfd_h_put_32 (abfd, intern->isymMax, (bfd_byte *)ext->h_isymMax);162 ecoff_put_off (abfd, intern->cbSymOffset, (bfd_byte *)ext->h_cbSymOffset);163 bfd_h_put_32 (abfd, intern->ioptMax, (bfd_byte *)ext->h_ioptMax);164 ecoff_put_off (abfd, intern->cbOptOffset, (bfd_byte *)ext->h_cbOptOffset);165 bfd_h_put_32 (abfd, intern->iauxMax, (bfd_byte *)ext->h_iauxMax);166 ecoff_put_off (abfd, intern->cbAuxOffset, (bfd_byte *)ext->h_cbAuxOffset);167 bfd_h_put_32 (abfd, intern->issMax, (bfd_byte *)ext->h_issMax);168 ecoff_put_off (abfd, intern->cbSsOffset, (bfd_byte *)ext->h_cbSsOffset);169 bfd_h_put_32 (abfd, intern->issExtMax, (bfd_byte *)ext->h_issExtMax);170 ecoff_put_off (abfd, intern->cbSsExtOffset, (bfd_byte *)ext->h_cbSsExtOffset);171 bfd_h_put_32 (abfd, intern->ifdMax, (bfd_byte *)ext->h_ifdMax);172 ecoff_put_off (abfd, intern->cbFdOffset, (bfd_byte *)ext->h_cbFdOffset);173 bfd_h_put_32 (abfd, intern->crfd, (bfd_byte *)ext->h_crfd);174 ecoff_put_off (abfd, intern->cbRfdOffset, (bfd_byte *)ext->h_cbRfdOffset);175 bfd_h_put_32 (abfd, intern->iextMax, (bfd_byte *)ext->h_iextMax);176 ecoff_put_off (abfd, intern->cbExtOffset, (bfd_byte *)ext->h_cbExtOffset);177 178 #ifdef TEST 179 if (memcmp ((char *) ext, (char *)intern, sizeof (*intern)) != 0)152 H_PUT_S16 (abfd, intern->magic, ext->h_magic); 153 H_PUT_S16 (abfd, intern->vstamp, ext->h_vstamp); 154 H_PUT_32 (abfd, intern->ilineMax, ext->h_ilineMax); 155 ECOFF_PUT_OFF (abfd, intern->cbLine, ext->h_cbLine); 156 ECOFF_PUT_OFF (abfd, intern->cbLineOffset, ext->h_cbLineOffset); 157 H_PUT_32 (abfd, intern->idnMax, ext->h_idnMax); 158 ECOFF_PUT_OFF (abfd, intern->cbDnOffset, ext->h_cbDnOffset); 159 H_PUT_32 (abfd, intern->ipdMax, ext->h_ipdMax); 160 ECOFF_PUT_OFF (abfd, intern->cbPdOffset, ext->h_cbPdOffset); 161 H_PUT_32 (abfd, intern->isymMax, ext->h_isymMax); 162 ECOFF_PUT_OFF (abfd, intern->cbSymOffset, ext->h_cbSymOffset); 163 H_PUT_32 (abfd, intern->ioptMax, ext->h_ioptMax); 164 ECOFF_PUT_OFF (abfd, intern->cbOptOffset, ext->h_cbOptOffset); 165 H_PUT_32 (abfd, intern->iauxMax, ext->h_iauxMax); 166 ECOFF_PUT_OFF (abfd, intern->cbAuxOffset, ext->h_cbAuxOffset); 167 H_PUT_32 (abfd, intern->issMax, ext->h_issMax); 168 ECOFF_PUT_OFF (abfd, intern->cbSsOffset, ext->h_cbSsOffset); 169 H_PUT_32 (abfd, intern->issExtMax, ext->h_issExtMax); 170 ECOFF_PUT_OFF (abfd, intern->cbSsExtOffset, ext->h_cbSsExtOffset); 171 H_PUT_32 (abfd, intern->ifdMax, ext->h_ifdMax); 172 ECOFF_PUT_OFF (abfd, intern->cbFdOffset, ext->h_cbFdOffset); 173 H_PUT_32 (abfd, intern->crfd, ext->h_crfd); 174 ECOFF_PUT_OFF (abfd, intern->cbRfdOffset, ext->h_cbRfdOffset); 175 H_PUT_32 (abfd, intern->iextMax, ext->h_iextMax); 176 ECOFF_PUT_OFF (abfd, intern->cbExtOffset, ext->h_cbExtOffset); 177 178 #ifdef TEST 179 if (memcmp ((char *) ext, (char *) intern, sizeof (*intern)) != 0) 180 180 abort (); 181 181 #endif … … 194 194 *ext = *(struct fdr_ext *) ext_copy; 195 195 196 intern->adr = ecoff_get_off (abfd, (bfd_byte *)ext->f_adr);197 intern->rss = bfd_h_get_32 (abfd, (bfd_byte *)ext->f_rss);196 intern->adr = ECOFF_GET_OFF (abfd, ext->f_adr); 197 intern->rss = H_GET_32 (abfd, ext->f_rss); 198 198 #if defined (ECOFF_64) || defined (ECOFF_SIGNED_64) 199 199 if (intern->rss == (signed long) 0xffffffff) 200 200 intern->rss = -1; 201 201 #endif 202 intern->issBase = bfd_h_get_32 (abfd, (bfd_byte *)ext->f_issBase);203 intern->cbSs = ecoff_get_off (abfd, (bfd_byte *)ext->f_cbSs);204 intern->isymBase = bfd_h_get_32 (abfd, (bfd_byte *)ext->f_isymBase);205 intern->csym = bfd_h_get_32 (abfd, (bfd_byte *)ext->f_csym);206 intern->ilineBase = bfd_h_get_32 (abfd, (bfd_byte *)ext->f_ilineBase);207 intern->cline = bfd_h_get_32 (abfd, (bfd_byte *)ext->f_cline);208 intern->ioptBase = bfd_h_get_32 (abfd, (bfd_byte *)ext->f_ioptBase);209 intern->copt = bfd_h_get_32 (abfd, (bfd_byte *)ext->f_copt);202 intern->issBase = H_GET_32 (abfd, ext->f_issBase); 203 intern->cbSs = ECOFF_GET_OFF (abfd, ext->f_cbSs); 204 intern->isymBase = H_GET_32 (abfd, ext->f_isymBase); 205 intern->csym = H_GET_32 (abfd, ext->f_csym); 206 intern->ilineBase = H_GET_32 (abfd, ext->f_ilineBase); 207 intern->cline = H_GET_32 (abfd, ext->f_cline); 208 intern->ioptBase = H_GET_32 (abfd, ext->f_ioptBase); 209 intern->copt = H_GET_32 (abfd, ext->f_copt); 210 210 #if defined (ECOFF_32) || defined (ECOFF_SIGNED_32) 211 intern->ipdFirst = bfd_h_get_16 (abfd, (bfd_byte *)ext->f_ipdFirst); 212 intern->cpd = bfd_h_get_16 (abfd, (bfd_byte *)ext->f_cpd); 213 #endif 214 #if defined (ECOFF_64) || defined (ECOFF_SIGNED_64) 215 intern->ipdFirst = bfd_h_get_32 (abfd, (bfd_byte *)ext->f_ipdFirst); 216 intern->cpd = bfd_h_get_32 (abfd, (bfd_byte *)ext->f_cpd); 217 #endif 218 intern->iauxBase = bfd_h_get_32 (abfd, (bfd_byte *)ext->f_iauxBase); 219 intern->caux = bfd_h_get_32 (abfd, (bfd_byte *)ext->f_caux); 220 intern->rfdBase = bfd_h_get_32 (abfd, (bfd_byte *)ext->f_rfdBase); 221 intern->crfd = bfd_h_get_32 (abfd, (bfd_byte *)ext->f_crfd); 222 223 /* now the fun stuff... */ 224 if (bfd_header_big_endian (abfd)) { 225 intern->lang = (ext->f_bits1[0] & FDR_BITS1_LANG_BIG) 226 >> FDR_BITS1_LANG_SH_BIG; 227 intern->fMerge = 0 != (ext->f_bits1[0] & FDR_BITS1_FMERGE_BIG); 228 intern->fReadin = 0 != (ext->f_bits1[0] & FDR_BITS1_FREADIN_BIG); 229 intern->fBigendian = 0 != (ext->f_bits1[0] & FDR_BITS1_FBIGENDIAN_BIG); 230 intern->glevel = (ext->f_bits2[0] & FDR_BITS2_GLEVEL_BIG) 231 >> FDR_BITS2_GLEVEL_SH_BIG; 232 } else { 233 intern->lang = (ext->f_bits1[0] & FDR_BITS1_LANG_LITTLE) 234 >> FDR_BITS1_LANG_SH_LITTLE; 235 intern->fMerge = 0 != (ext->f_bits1[0] & FDR_BITS1_FMERGE_LITTLE); 236 intern->fReadin = 0 != (ext->f_bits1[0] & FDR_BITS1_FREADIN_LITTLE); 237 intern->fBigendian = 0 != (ext->f_bits1[0] & FDR_BITS1_FBIGENDIAN_LITTLE); 238 intern->glevel = (ext->f_bits2[0] & FDR_BITS2_GLEVEL_LITTLE) 239 >> FDR_BITS2_GLEVEL_SH_LITTLE; 240 } 211 intern->ipdFirst = H_GET_16 (abfd, ext->f_ipdFirst); 212 intern->cpd = H_GET_16 (abfd, ext->f_cpd); 213 #endif 214 #if defined (ECOFF_64) || defined (ECOFF_SIGNED_64) 215 intern->ipdFirst = H_GET_32 (abfd, ext->f_ipdFirst); 216 intern->cpd = H_GET_32 (abfd, ext->f_cpd); 217 #endif 218 intern->iauxBase = H_GET_32 (abfd, ext->f_iauxBase); 219 intern->caux = H_GET_32 (abfd, ext->f_caux); 220 intern->rfdBase = H_GET_32 (abfd, ext->f_rfdBase); 221 intern->crfd = H_GET_32 (abfd, ext->f_crfd); 222 223 /* Now the fun stuff... */ 224 if (bfd_header_big_endian (abfd)) 225 { 226 intern->lang = ((ext->f_bits1[0] & FDR_BITS1_LANG_BIG) 227 >> FDR_BITS1_LANG_SH_BIG); 228 intern->fMerge = 0 != (ext->f_bits1[0] & FDR_BITS1_FMERGE_BIG); 229 intern->fReadin = 0 != (ext->f_bits1[0] & FDR_BITS1_FREADIN_BIG); 230 intern->fBigendian = 0 != (ext->f_bits1[0] & FDR_BITS1_FBIGENDIAN_BIG); 231 intern->glevel = ((ext->f_bits2[0] & FDR_BITS2_GLEVEL_BIG) 232 >> FDR_BITS2_GLEVEL_SH_BIG); 233 } 234 else 235 { 236 intern->lang = ((ext->f_bits1[0] & FDR_BITS1_LANG_LITTLE) 237 >> FDR_BITS1_LANG_SH_LITTLE); 238 intern->fMerge = 0 != (ext->f_bits1[0] & FDR_BITS1_FMERGE_LITTLE); 239 intern->fReadin = 0 != (ext->f_bits1[0] & FDR_BITS1_FREADIN_LITTLE); 240 intern->fBigendian = 0 != (ext->f_bits1[0] & FDR_BITS1_FBIGENDIAN_LITTLE); 241 intern->glevel = ((ext->f_bits2[0] & FDR_BITS2_GLEVEL_LITTLE) 242 >> FDR_BITS2_GLEVEL_SH_LITTLE); 243 } 241 244 intern->reserved = 0; 242 245 243 intern->cbLineOffset = ecoff_get_off (abfd, (bfd_byte *)ext->f_cbLineOffset);244 intern->cbLine = ecoff_get_off (abfd, (bfd_byte *)ext->f_cbLine);246 intern->cbLineOffset = ECOFF_GET_OFF (abfd, ext->f_cbLineOffset); 247 intern->cbLine = ECOFF_GET_OFF (abfd, ext->f_cbLine); 245 248 246 249 #ifdef TEST … … 261 264 FDR intern[1]; 262 265 263 *intern = *intern_copy; /* Make it reasonable to do in-place. */ 264 265 ecoff_put_off (abfd, intern->adr, (bfd_byte *)ext->f_adr); 266 bfd_h_put_32 (abfd, intern->rss, (bfd_byte *)ext->f_rss); 267 bfd_h_put_32 (abfd, intern->issBase, (bfd_byte *)ext->f_issBase); 268 ecoff_put_off (abfd, intern->cbSs, (bfd_byte *)ext->f_cbSs); 269 bfd_h_put_32 (abfd, intern->isymBase, (bfd_byte *)ext->f_isymBase); 270 bfd_h_put_32 (abfd, intern->csym, (bfd_byte *)ext->f_csym); 271 bfd_h_put_32 (abfd, intern->ilineBase, (bfd_byte *)ext->f_ilineBase); 272 bfd_h_put_32 (abfd, intern->cline, (bfd_byte *)ext->f_cline); 273 bfd_h_put_32 (abfd, intern->ioptBase, (bfd_byte *)ext->f_ioptBase); 274 bfd_h_put_32 (abfd, intern->copt, (bfd_byte *)ext->f_copt); 266 /* Make it reasonable to do in-place. */ 267 *intern = *intern_copy; 268 269 ECOFF_PUT_OFF (abfd, intern->adr, ext->f_adr); 270 H_PUT_32 (abfd, intern->rss, ext->f_rss); 271 H_PUT_32 (abfd, intern->issBase, ext->f_issBase); 272 ECOFF_PUT_OFF (abfd, intern->cbSs, ext->f_cbSs); 273 H_PUT_32 (abfd, intern->isymBase, ext->f_isymBase); 274 H_PUT_32 (abfd, intern->csym, ext->f_csym); 275 H_PUT_32 (abfd, intern->ilineBase, ext->f_ilineBase); 276 H_PUT_32 (abfd, intern->cline, ext->f_cline); 277 H_PUT_32 (abfd, intern->ioptBase, ext->f_ioptBase); 278 H_PUT_32 (abfd, intern->copt, ext->f_copt); 275 279 #if defined (ECOFF_32) || defined (ECOFF_SIGNED_32) 276 bfd_h_put_16 (abfd, intern->ipdFirst, (bfd_byte *)ext->f_ipdFirst); 277 bfd_h_put_16 (abfd, intern->cpd, (bfd_byte *)ext->f_cpd); 278 #endif 279 #if defined (ECOFF_64) || defined (ECOFF_SIGNED_64) 280 bfd_h_put_32 (abfd, intern->ipdFirst, (bfd_byte *)ext->f_ipdFirst); 281 bfd_h_put_32 (abfd, intern->cpd, (bfd_byte *)ext->f_cpd); 282 #endif 283 bfd_h_put_32 (abfd, intern->iauxBase, (bfd_byte *)ext->f_iauxBase); 284 bfd_h_put_32 (abfd, intern->caux, (bfd_byte *)ext->f_caux); 285 bfd_h_put_32 (abfd, intern->rfdBase, (bfd_byte *)ext->f_rfdBase); 286 bfd_h_put_32 (abfd, intern->crfd, (bfd_byte *)ext->f_crfd); 287 288 /* now the fun stuff... */ 289 if (bfd_header_big_endian (abfd)) { 290 ext->f_bits1[0] = (((intern->lang << FDR_BITS1_LANG_SH_BIG) 291 & FDR_BITS1_LANG_BIG) 292 | (intern->fMerge ? FDR_BITS1_FMERGE_BIG : 0) 293 | (intern->fReadin ? FDR_BITS1_FREADIN_BIG : 0) 294 | (intern->fBigendian ? FDR_BITS1_FBIGENDIAN_BIG : 0)); 295 ext->f_bits2[0] = ((intern->glevel << FDR_BITS2_GLEVEL_SH_BIG) 296 & FDR_BITS2_GLEVEL_BIG); 297 ext->f_bits2[1] = 0; 298 ext->f_bits2[2] = 0; 299 } else { 300 ext->f_bits1[0] = (((intern->lang << FDR_BITS1_LANG_SH_LITTLE) 301 & FDR_BITS1_LANG_LITTLE) 302 | (intern->fMerge ? FDR_BITS1_FMERGE_LITTLE : 0) 303 | (intern->fReadin ? FDR_BITS1_FREADIN_LITTLE : 0) 304 | (intern->fBigendian ? FDR_BITS1_FBIGENDIAN_LITTLE : 0)); 305 ext->f_bits2[0] = ((intern->glevel << FDR_BITS2_GLEVEL_SH_LITTLE) 306 & FDR_BITS2_GLEVEL_LITTLE); 307 ext->f_bits2[1] = 0; 308 ext->f_bits2[2] = 0; 309 } 310 311 ecoff_put_off (abfd, intern->cbLineOffset, (bfd_byte *)ext->f_cbLineOffset); 312 ecoff_put_off (abfd, intern->cbLine, (bfd_byte *)ext->f_cbLine); 280 H_PUT_16 (abfd, intern->ipdFirst, ext->f_ipdFirst); 281 H_PUT_16 (abfd, intern->cpd, ext->f_cpd); 282 #endif 283 #if defined (ECOFF_64) || defined (ECOFF_SIGNED_64) 284 H_PUT_32 (abfd, intern->ipdFirst, ext->f_ipdFirst); 285 H_PUT_32 (abfd, intern->cpd, ext->f_cpd); 286 #endif 287 H_PUT_32 (abfd, intern->iauxBase, ext->f_iauxBase); 288 H_PUT_32 (abfd, intern->caux, ext->f_caux); 289 H_PUT_32 (abfd, intern->rfdBase, ext->f_rfdBase); 290 H_PUT_32 (abfd, intern->crfd, ext->f_crfd); 291 292 /* Now the fun stuff... */ 293 if (bfd_header_big_endian (abfd)) 294 { 295 ext->f_bits1[0] = (((intern->lang << FDR_BITS1_LANG_SH_BIG) 296 & FDR_BITS1_LANG_BIG) 297 | (intern->fMerge ? FDR_BITS1_FMERGE_BIG : 0) 298 | (intern->fReadin ? FDR_BITS1_FREADIN_BIG : 0) 299 | (intern->fBigendian ? FDR_BITS1_FBIGENDIAN_BIG : 0)); 300 ext->f_bits2[0] = ((intern->glevel << FDR_BITS2_GLEVEL_SH_BIG) 301 & FDR_BITS2_GLEVEL_BIG); 302 ext->f_bits2[1] = 0; 303 ext->f_bits2[2] = 0; 304 } 305 else 306 { 307 ext->f_bits1[0] = (((intern->lang << FDR_BITS1_LANG_SH_LITTLE) 308 & FDR_BITS1_LANG_LITTLE) 309 | (intern->fMerge ? FDR_BITS1_FMERGE_LITTLE : 0) 310 | (intern->fReadin ? FDR_BITS1_FREADIN_LITTLE : 0) 311 | (intern->fBigendian ? FDR_BITS1_FBIGENDIAN_LITTLE : 0)); 312 ext->f_bits2[0] = ((intern->glevel << FDR_BITS2_GLEVEL_SH_LITTLE) 313 & FDR_BITS2_GLEVEL_LITTLE); 314 ext->f_bits2[1] = 0; 315 ext->f_bits2[2] = 0; 316 } 317 318 ECOFF_PUT_OFF (abfd, intern->cbLineOffset, ext->f_cbLineOffset); 319 ECOFF_PUT_OFF (abfd, intern->cbLine, ext->f_cbLine); 313 320 314 321 #ifdef TEST … … 334 341 memset ((PTR) intern, 0, sizeof (*intern)); 335 342 336 intern->adr = ecoff_get_off (abfd, (bfd_byte *)ext->p_adr); 337 intern->isym = bfd_h_get_32 (abfd, (bfd_byte *)ext->p_isym); 338 intern->iline = bfd_h_get_32 (abfd, (bfd_byte *)ext->p_iline); 339 intern->regmask = bfd_h_get_32 (abfd, (bfd_byte *)ext->p_regmask); 340 intern->regoffset = bfd_h_get_signed_32 (abfd, 341 (bfd_byte *)ext->p_regoffset); 342 intern->iopt = bfd_h_get_signed_32 (abfd, (bfd_byte *)ext->p_iopt); 343 intern->fregmask = bfd_h_get_32 (abfd, (bfd_byte *)ext->p_fregmask); 344 intern->fregoffset = bfd_h_get_signed_32 (abfd, 345 (bfd_byte *)ext->p_fregoffset); 346 intern->frameoffset = bfd_h_get_signed_32 (abfd, 347 (bfd_byte *)ext->p_frameoffset); 348 intern->framereg = bfd_h_get_16 (abfd, (bfd_byte *)ext->p_framereg); 349 intern->pcreg = bfd_h_get_16 (abfd, (bfd_byte *)ext->p_pcreg); 350 intern->lnLow = bfd_h_get_32 (abfd, (bfd_byte *)ext->p_lnLow); 351 intern->lnHigh = bfd_h_get_32 (abfd, (bfd_byte *)ext->p_lnHigh); 352 intern->cbLineOffset = ecoff_get_off (abfd, (bfd_byte *)ext->p_cbLineOffset); 353 354 #if defined (ECOFF_64) || defined (ECOFF_SIGNED_64) 355 intern->gp_prologue = bfd_h_get_8 (abfd, (bfd_byte *) ext->p_gp_prologue); 343 intern->adr = ECOFF_GET_OFF (abfd, ext->p_adr); 344 intern->isym = H_GET_32 (abfd, ext->p_isym); 345 intern->iline = H_GET_32 (abfd, ext->p_iline); 346 intern->regmask = H_GET_32 (abfd, ext->p_regmask); 347 intern->regoffset = H_GET_S32 (abfd, ext->p_regoffset); 348 intern->iopt = H_GET_S32 (abfd, ext->p_iopt); 349 intern->fregmask = H_GET_32 (abfd, ext->p_fregmask); 350 intern->fregoffset = H_GET_S32 (abfd, ext->p_fregoffset); 351 intern->frameoffset = H_GET_S32 (abfd, ext->p_frameoffset); 352 intern->framereg = H_GET_16 (abfd, ext->p_framereg); 353 intern->pcreg = H_GET_16 (abfd, ext->p_pcreg); 354 intern->lnLow = H_GET_32 (abfd, ext->p_lnLow); 355 intern->lnHigh = H_GET_32 (abfd, ext->p_lnHigh); 356 intern->cbLineOffset = ECOFF_GET_OFF (abfd, ext->p_cbLineOffset); 357 358 #if defined (ECOFF_64) || defined (ECOFF_SIGNED_64) 359 if (intern->isym == (signed long) 0xffffffff) 360 intern->isym = -1; 361 if (intern->iline == (signed long) 0xffffffff) 362 intern->iline = -1; 363 364 intern->gp_prologue = H_GET_8 (abfd, ext->p_gp_prologue); 356 365 if (bfd_header_big_endian (abfd)) 357 366 { … … 374 383 << PDR_BITS2_RESERVED_SH_LEFT_LITTLE)); 375 384 } 376 intern->localoff = bfd_h_get_8 (abfd, (bfd_byte *)ext->p_localoff);385 intern->localoff = H_GET_8 (abfd, ext->p_localoff); 377 386 #endif 378 387 … … 394 403 PDR intern[1]; 395 404 396 *intern = *intern_copy; /* Make it reasonable to do in-place. */ 397 398 ecoff_put_off (abfd, intern->adr, (bfd_byte *)ext->p_adr); 399 bfd_h_put_32 (abfd, intern->isym, (bfd_byte *)ext->p_isym); 400 bfd_h_put_32 (abfd, intern->iline, (bfd_byte *)ext->p_iline); 401 bfd_h_put_32 (abfd, intern->regmask, (bfd_byte *)ext->p_regmask); 402 bfd_h_put_32 (abfd, intern->regoffset, (bfd_byte *)ext->p_regoffset); 403 bfd_h_put_32 (abfd, intern->iopt, (bfd_byte *)ext->p_iopt); 404 bfd_h_put_32 (abfd, intern->fregmask, (bfd_byte *)ext->p_fregmask); 405 bfd_h_put_32 (abfd, intern->fregoffset, (bfd_byte *)ext->p_fregoffset); 406 bfd_h_put_32 (abfd, intern->frameoffset, (bfd_byte *)ext->p_frameoffset); 407 bfd_h_put_16 (abfd, intern->framereg, (bfd_byte *)ext->p_framereg); 408 bfd_h_put_16 (abfd, intern->pcreg, (bfd_byte *)ext->p_pcreg); 409 bfd_h_put_32 (abfd, intern->lnLow, (bfd_byte *)ext->p_lnLow); 410 bfd_h_put_32 (abfd, intern->lnHigh, (bfd_byte *)ext->p_lnHigh); 411 ecoff_put_off (abfd, intern->cbLineOffset, (bfd_byte *)ext->p_cbLineOffset); 412 413 #if defined (ECOFF_64) || defined (ECOFF_SIGNED_64) 414 bfd_h_put_8 (abfd, intern->gp_prologue, (bfd_byte *) ext->p_gp_prologue); 405 /* Make it reasonable to do in-place. */ 406 *intern = *intern_copy; 407 408 ECOFF_PUT_OFF (abfd, intern->adr, ext->p_adr); 409 H_PUT_32 (abfd, intern->isym, ext->p_isym); 410 H_PUT_32 (abfd, intern->iline, ext->p_iline); 411 H_PUT_32 (abfd, intern->regmask, ext->p_regmask); 412 H_PUT_32 (abfd, intern->regoffset, ext->p_regoffset); 413 H_PUT_32 (abfd, intern->iopt, ext->p_iopt); 414 H_PUT_32 (abfd, intern->fregmask, ext->p_fregmask); 415 H_PUT_32 (abfd, intern->fregoffset, ext->p_fregoffset); 416 H_PUT_32 (abfd, intern->frameoffset, ext->p_frameoffset); 417 H_PUT_16 (abfd, intern->framereg, ext->p_framereg); 418 H_PUT_16 (abfd, intern->pcreg, ext->p_pcreg); 419 H_PUT_32 (abfd, intern->lnLow, ext->p_lnLow); 420 H_PUT_32 (abfd, intern->lnHigh, ext->p_lnHigh); 421 ECOFF_PUT_OFF (abfd, intern->cbLineOffset, ext->p_cbLineOffset); 422 423 #if defined (ECOFF_64) || defined (ECOFF_SIGNED_64) 424 H_PUT_8 (abfd, intern->gp_prologue, ext->p_gp_prologue); 425 415 426 if (bfd_header_big_endian (abfd)) 416 427 { … … 435 446 & PDR_BITS2_RESERVED_LITTLE); 436 447 } 437 bfd_h_put_8 (abfd, intern->localoff, (bfd_byte *)ext->p_localoff);448 H_PUT_8 (abfd, intern->localoff, ext->p_localoff); 438 449 #endif 439 450 … … 459 470 *ext = *(struct pdr_ext *) ext_copy; 460 471 461 intern->adr = ecoff_get_off (abfd, (bfd_byte *)ext->p_adr); 462 intern->isym = bfd_h_get_32 (abfd, (bfd_byte *)ext->p_isym); 463 intern->iline = bfd_h_get_32 (abfd, (bfd_byte *)ext->p_iline); 464 intern->regmask = bfd_h_get_32 (abfd, (bfd_byte *)ext->p_regmask); 465 intern->regoffset = bfd_h_get_signed_32 (abfd, 466 (bfd_byte *)ext->p_regoffset); 467 intern->iopt = bfd_h_get_signed_32 (abfd, (bfd_byte *)ext->p_iopt); 468 intern->fregmask = bfd_h_get_32 (abfd, (bfd_byte *)ext->p_fregmask); 469 intern->fregoffset = bfd_h_get_signed_32 (abfd, 470 (bfd_byte *)ext->p_fregoffset); 471 intern->frameoffset = bfd_h_get_signed_32 (abfd, 472 (bfd_byte *)ext->p_frameoffset); 473 intern->framereg = bfd_h_get_16 (abfd, (bfd_byte *)ext->p_framereg); 474 intern->pcreg = bfd_h_get_16 (abfd, (bfd_byte *)ext->p_pcreg); 475 intern->lnLow = bfd_h_get_32 (abfd, (bfd_byte *)ext->p_lnLow); 476 intern->lnHigh = bfd_h_get_32 (abfd, (bfd_byte *)ext->p_lnHigh); 477 intern->cbLineOffset = ecoff_get_off (abfd, (bfd_byte *)ext->p_cbLineOffset); 472 intern->adr = ECOFF_GET_OFF (abfd, ext->p_adr); 473 intern->isym = H_GET_32 (abfd, ext->p_isym); 474 intern->iline = H_GET_32 (abfd, ext->p_iline); 475 intern->regmask = H_GET_32 (abfd, ext->p_regmask); 476 intern->regoffset = H_GET_S32 (abfd, ext->p_regoffset); 477 intern->iopt = H_GET_S32 (abfd, ext->p_iopt); 478 intern->fregmask = H_GET_32 (abfd, ext->p_fregmask); 479 intern->fregoffset = H_GET_S32 (abfd, ext->p_fregoffset); 480 intern->frameoffset = H_GET_S32 (abfd, ext->p_frameoffset); 481 intern->framereg = H_GET_16 (abfd, ext->p_framereg); 482 intern->pcreg = H_GET_16 (abfd, ext->p_pcreg); 483 intern->lnLow = H_GET_32 (abfd, ext->p_lnLow); 484 intern->lnHigh = H_GET_32 (abfd, ext->p_lnHigh); 485 intern->cbLineOffset = ECOFF_GET_OFF (abfd, ext->p_cbLineOffset); 478 486 479 487 #ifdef TEST … … 494 502 PDR intern[1]; 495 503 496 *intern = *intern_copy; /* Make it reasonable to do in-place. */ 497 498 ecoff_put_off (abfd, intern->adr, (bfd_byte *)ext->p_adr); 499 bfd_h_put_32 (abfd, intern->isym, (bfd_byte *)ext->p_isym); 500 bfd_h_put_32 (abfd, intern->iline, (bfd_byte *)ext->p_iline); 501 bfd_h_put_32 (abfd, intern->regmask, (bfd_byte *)ext->p_regmask); 502 bfd_h_put_32 (abfd, intern->regoffset, (bfd_byte *)ext->p_regoffset); 503 bfd_h_put_32 (abfd, intern->iopt, (bfd_byte *)ext->p_iopt); 504 bfd_h_put_32 (abfd, intern->fregmask, (bfd_byte *)ext->p_fregmask); 505 bfd_h_put_32 (abfd, intern->fregoffset, (bfd_byte *)ext->p_fregoffset); 506 bfd_h_put_32 (abfd, intern->frameoffset, (bfd_byte *)ext->p_frameoffset); 507 bfd_h_put_16 (abfd, intern->framereg, (bfd_byte *)ext->p_framereg); 508 bfd_h_put_16 (abfd, intern->pcreg, (bfd_byte *)ext->p_pcreg); 509 bfd_h_put_32 (abfd, intern->lnLow, (bfd_byte *)ext->p_lnLow); 510 bfd_h_put_32 (abfd, intern->lnHigh, (bfd_byte *)ext->p_lnHigh); 511 ecoff_put_off (abfd, intern->cbLineOffset, (bfd_byte *)ext->p_cbLineOffset); 504 /* Make it reasonable to do in-place. */ 505 *intern = *intern_copy; 506 507 ECOFF_PUT_OFF (abfd, intern->adr, ext->p_adr); 508 H_PUT_32 (abfd, intern->isym, ext->p_isym); 509 H_PUT_32 (abfd, intern->iline, ext->p_iline); 510 H_PUT_32 (abfd, intern->regmask, ext->p_regmask); 511 H_PUT_32 (abfd, intern->regoffset, ext->p_regoffset); 512 H_PUT_32 (abfd, intern->iopt, ext->p_iopt); 513 H_PUT_32 (abfd, intern->fregmask, ext->p_fregmask); 514 H_PUT_32 (abfd, intern->fregoffset, ext->p_fregoffset); 515 H_PUT_32 (abfd, intern->frameoffset, ext->p_frameoffset); 516 H_PUT_16 (abfd, intern->framereg, ext->p_framereg); 517 H_PUT_16 (abfd, intern->pcreg, ext->p_pcreg); 518 H_PUT_32 (abfd, intern->lnLow, ext->p_lnLow); 519 H_PUT_32 (abfd, intern->lnHigh, ext->p_lnHigh); 520 ECOFF_PUT_OFF (abfd, intern->cbLineOffset, ext->p_cbLineOffset); 512 521 513 522 #ifdef TEST … … 530 539 *ext = *(struct sym_ext *) ext_copy; 531 540 532 intern->iss = bfd_h_get_32 (abfd, (bfd_byte *)ext->s_iss); 533 intern->value = ecoff_get_off (abfd, (bfd_byte *)ext->s_value); 534 535 /* now the fun stuff... */ 536 if (bfd_header_big_endian (abfd)) { 537 intern->st = (ext->s_bits1[0] & SYM_BITS1_ST_BIG) 538 >> SYM_BITS1_ST_SH_BIG; 539 intern->sc = ((ext->s_bits1[0] & SYM_BITS1_SC_BIG) 540 << SYM_BITS1_SC_SH_LEFT_BIG) 541 | ((ext->s_bits2[0] & SYM_BITS2_SC_BIG) 542 >> SYM_BITS2_SC_SH_BIG); 543 intern->reserved = 0 != (ext->s_bits2[0] & SYM_BITS2_RESERVED_BIG); 544 intern->index = ((ext->s_bits2[0] & SYM_BITS2_INDEX_BIG) 545 << SYM_BITS2_INDEX_SH_LEFT_BIG) 546 | (ext->s_bits3[0] << SYM_BITS3_INDEX_SH_LEFT_BIG) 547 | (ext->s_bits4[0] << SYM_BITS4_INDEX_SH_LEFT_BIG); 548 } else { 549 intern->st = (ext->s_bits1[0] & SYM_BITS1_ST_LITTLE) 550 >> SYM_BITS1_ST_SH_LITTLE; 551 intern->sc = ((ext->s_bits1[0] & SYM_BITS1_SC_LITTLE) 552 >> SYM_BITS1_SC_SH_LITTLE) 553 | ((ext->s_bits2[0] & SYM_BITS2_SC_LITTLE) 554 << SYM_BITS2_SC_SH_LEFT_LITTLE); 555 intern->reserved = 0 != (ext->s_bits2[0] & SYM_BITS2_RESERVED_LITTLE); 556 intern->index = ((ext->s_bits2[0] & SYM_BITS2_INDEX_LITTLE) 557 >> SYM_BITS2_INDEX_SH_LITTLE) 558 | (ext->s_bits3[0] << SYM_BITS3_INDEX_SH_LEFT_LITTLE) 559 | ((unsigned int) ext->s_bits4[0] 560 << SYM_BITS4_INDEX_SH_LEFT_LITTLE); 561 } 541 intern->iss = H_GET_32 (abfd, ext->s_iss); 542 intern->value = ECOFF_GET_OFF (abfd, ext->s_value); 543 544 #if defined (ECOFF_64) || defined (ECOFF_SIGNED_64) 545 if (intern->iss == (signed long) 0xffffffff) 546 intern->iss = -1; 547 #endif 548 549 /* Now the fun stuff... */ 550 if (bfd_header_big_endian (abfd)) 551 { 552 intern->st = (ext->s_bits1[0] & SYM_BITS1_ST_BIG) 553 >> SYM_BITS1_ST_SH_BIG; 554 intern->sc = ((ext->s_bits1[0] & SYM_BITS1_SC_BIG) 555 << SYM_BITS1_SC_SH_LEFT_BIG) 556 | ((ext->s_bits2[0] & SYM_BITS2_SC_BIG) 557 >> SYM_BITS2_SC_SH_BIG); 558 intern->reserved = 0 != (ext->s_bits2[0] & SYM_BITS2_RESERVED_BIG); 559 intern->index = ((ext->s_bits2[0] & SYM_BITS2_INDEX_BIG) 560 << SYM_BITS2_INDEX_SH_LEFT_BIG) 561 | (ext->s_bits3[0] << SYM_BITS3_INDEX_SH_LEFT_BIG) 562 | (ext->s_bits4[0] << SYM_BITS4_INDEX_SH_LEFT_BIG); 563 } 564 else 565 { 566 intern->st = (ext->s_bits1[0] & SYM_BITS1_ST_LITTLE) 567 >> SYM_BITS1_ST_SH_LITTLE; 568 intern->sc = ((ext->s_bits1[0] & SYM_BITS1_SC_LITTLE) 569 >> SYM_BITS1_SC_SH_LITTLE) 570 | ((ext->s_bits2[0] & SYM_BITS2_SC_LITTLE) 571 << SYM_BITS2_SC_SH_LEFT_LITTLE); 572 intern->reserved = 0 != (ext->s_bits2[0] & SYM_BITS2_RESERVED_LITTLE); 573 intern->index = ((ext->s_bits2[0] & SYM_BITS2_INDEX_LITTLE) 574 >> SYM_BITS2_INDEX_SH_LITTLE) 575 | (ext->s_bits3[0] << SYM_BITS3_INDEX_SH_LEFT_LITTLE) 576 | ((unsigned int) ext->s_bits4[0] 577 << SYM_BITS4_INDEX_SH_LEFT_LITTLE); 578 } 562 579 563 580 #ifdef TEST … … 578 595 SYMR intern[1]; 579 596 580 *intern = *intern_copy; /* Make it reasonable to do in-place. */ 581 582 bfd_h_put_32 (abfd, intern->iss, (bfd_byte *)ext->s_iss); 583 ecoff_put_off (abfd, intern->value, (bfd_byte *)ext->s_value); 584 585 /* now the fun stuff... */ 586 if (bfd_header_big_endian (abfd)) { 587 ext->s_bits1[0] = (((intern->st << SYM_BITS1_ST_SH_BIG) 588 & SYM_BITS1_ST_BIG) 589 | ((intern->sc >> SYM_BITS1_SC_SH_LEFT_BIG) 590 & SYM_BITS1_SC_BIG)); 591 ext->s_bits2[0] = (((intern->sc << SYM_BITS2_SC_SH_BIG) 592 & SYM_BITS2_SC_BIG) 593 | (intern->reserved ? SYM_BITS2_RESERVED_BIG : 0) 594 | ((intern->index >> SYM_BITS2_INDEX_SH_LEFT_BIG) 595 & SYM_BITS2_INDEX_BIG)); 596 ext->s_bits3[0] = (intern->index >> SYM_BITS3_INDEX_SH_LEFT_BIG) & 0xff; 597 ext->s_bits4[0] = (intern->index >> SYM_BITS4_INDEX_SH_LEFT_BIG) & 0xff; 598 } else { 599 ext->s_bits1[0] = (((intern->st << SYM_BITS1_ST_SH_LITTLE) 600 & SYM_BITS1_ST_LITTLE) 601 | ((intern->sc << SYM_BITS1_SC_SH_LITTLE) 602 & SYM_BITS1_SC_LITTLE)); 603 ext->s_bits2[0] = (((intern->sc >> SYM_BITS2_SC_SH_LEFT_LITTLE) 604 & SYM_BITS2_SC_LITTLE) 605 | (intern->reserved ? SYM_BITS2_RESERVED_LITTLE : 0) 606 | ((intern->index << SYM_BITS2_INDEX_SH_LITTLE) 607 & SYM_BITS2_INDEX_LITTLE)); 608 ext->s_bits3[0] = (intern->index >> SYM_BITS3_INDEX_SH_LEFT_LITTLE) & 0xff; 609 ext->s_bits4[0] = (intern->index >> SYM_BITS4_INDEX_SH_LEFT_LITTLE) & 0xff; 610 } 597 /* Make it reasonable to do in-place. */ 598 *intern = *intern_copy; 599 600 H_PUT_32 (abfd, intern->iss, ext->s_iss); 601 ECOFF_PUT_OFF (abfd, intern->value, ext->s_value); 602 603 /* Now the fun stuff... */ 604 if (bfd_header_big_endian (abfd)) 605 { 606 ext->s_bits1[0] = (((intern->st << SYM_BITS1_ST_SH_BIG) 607 & SYM_BITS1_ST_BIG) 608 | ((intern->sc >> SYM_BITS1_SC_SH_LEFT_BIG) 609 & SYM_BITS1_SC_BIG)); 610 ext->s_bits2[0] = (((intern->sc << SYM_BITS2_SC_SH_BIG) 611 & SYM_BITS2_SC_BIG) 612 | (intern->reserved ? SYM_BITS2_RESERVED_BIG : 0) 613 | ((intern->index >> SYM_BITS2_INDEX_SH_LEFT_BIG) 614 & SYM_BITS2_INDEX_BIG)); 615 ext->s_bits3[0] = (intern->index >> SYM_BITS3_INDEX_SH_LEFT_BIG) & 0xff; 616 ext->s_bits4[0] = (intern->index >> SYM_BITS4_INDEX_SH_LEFT_BIG) & 0xff; 617 } 618 else 619 { 620 ext->s_bits1[0] = (((intern->st << SYM_BITS1_ST_SH_LITTLE) 621 & SYM_BITS1_ST_LITTLE) 622 | ((intern->sc << SYM_BITS1_SC_SH_LITTLE) 623 & SYM_BITS1_SC_LITTLE)); 624 ext->s_bits2[0] = (((intern->sc >> SYM_BITS2_SC_SH_LEFT_LITTLE) 625 & SYM_BITS2_SC_LITTLE) 626 | (intern->reserved ? SYM_BITS2_RESERVED_LITTLE : 0) 627 | ((intern->index << SYM_BITS2_INDEX_SH_LITTLE) 628 & SYM_BITS2_INDEX_LITTLE)); 629 ext->s_bits3[0] = (intern->index >> SYM_BITS3_INDEX_SH_LEFT_LITTLE) & 0xff; 630 ext->s_bits4[0] = (intern->index >> SYM_BITS4_INDEX_SH_LEFT_LITTLE) & 0xff; 631 } 611 632 612 633 #ifdef TEST … … 628 649 *ext = *(struct ext_ext *) ext_copy; 629 650 630 /* now the fun stuff... */ 631 if (bfd_header_big_endian (abfd)) { 632 intern->jmptbl = 0 != (ext->es_bits1[0] & EXT_BITS1_JMPTBL_BIG); 633 intern->cobol_main = 0 != (ext->es_bits1[0] & EXT_BITS1_COBOL_MAIN_BIG); 634 intern->weakext = 0 != (ext->es_bits1[0] & EXT_BITS1_WEAKEXT_BIG); 635 } else { 636 intern->jmptbl = 0 != (ext->es_bits1[0] & EXT_BITS1_JMPTBL_LITTLE); 637 intern->cobol_main = 0 != (ext->es_bits1[0] & EXT_BITS1_COBOL_MAIN_LITTLE); 638 intern->weakext = 0 != (ext->es_bits1[0] & EXT_BITS1_WEAKEXT_LITTLE); 639 } 651 /* Now the fun stuff... */ 652 if (bfd_header_big_endian (abfd)) 653 { 654 intern->jmptbl = 0 != (ext->es_bits1[0] & EXT_BITS1_JMPTBL_BIG); 655 intern->cobol_main = 0 != (ext->es_bits1[0] & EXT_BITS1_COBOL_MAIN_BIG); 656 intern->weakext = 0 != (ext->es_bits1[0] & EXT_BITS1_WEAKEXT_BIG); 657 } 658 else 659 { 660 intern->jmptbl = 0 != (ext->es_bits1[0] & EXT_BITS1_JMPTBL_LITTLE); 661 intern->cobol_main = 0 != (ext->es_bits1[0] & EXT_BITS1_COBOL_MAIN_LITTLE); 662 intern->weakext = 0 != (ext->es_bits1[0] & EXT_BITS1_WEAKEXT_LITTLE); 663 } 640 664 intern->reserved = 0; 641 665 642 666 #if defined (ECOFF_32) || defined (ECOFF_SIGNED_32) 643 intern->ifd = bfd_h_get_signed_16 (abfd, (bfd_byte *)ext->es_ifd);644 #endif 645 #if defined (ECOFF_64) || defined (ECOFF_SIGNED_64) 646 intern->ifd = bfd_h_get_signed_32 (abfd, (bfd_byte *)ext->es_ifd);667 intern->ifd = H_GET_S16 (abfd, ext->es_ifd); 668 #endif 669 #if defined (ECOFF_64) || defined (ECOFF_SIGNED_64) 670 intern->ifd = H_GET_S32 (abfd, ext->es_ifd); 647 671 #endif 648 672 … … 666 690 EXTR intern[1]; 667 691 668 *intern = *intern_copy; /* Make it reasonable to do in-place. */ 669 670 /* now the fun stuff... */ 671 if (bfd_header_big_endian (abfd)) { 672 ext->es_bits1[0] = ((intern->jmptbl ? EXT_BITS1_JMPTBL_BIG : 0) 673 | (intern->cobol_main ? EXT_BITS1_COBOL_MAIN_BIG : 0) 674 | (intern->weakext ? EXT_BITS1_WEAKEXT_BIG : 0)); 675 ext->es_bits2[0] = 0; 676 #if defined (ECOFF_64) || defined (ECOFF_SIGNED_64) 677 ext->es_bits2[1] = 0; 678 ext->es_bits2[2] = 0; 679 #endif 680 } else { 681 ext->es_bits1[0] = ((intern->jmptbl ? EXT_BITS1_JMPTBL_LITTLE : 0) 682 | (intern->cobol_main ? EXT_BITS1_COBOL_MAIN_LITTLE : 0) 683 | (intern->weakext ? EXT_BITS1_WEAKEXT_LITTLE : 0)); 684 ext->es_bits2[0] = 0; 685 #if defined (ECOFF_64) || defined (ECOFF_SIGNED_64) 686 ext->es_bits2[1] = 0; 687 ext->es_bits2[2] = 0; 688 #endif 689 } 692 /* Make it reasonable to do in-place. */ 693 *intern = *intern_copy; 694 695 /* Now the fun stuff... */ 696 if (bfd_header_big_endian (abfd)) 697 { 698 ext->es_bits1[0] = ((intern->jmptbl ? EXT_BITS1_JMPTBL_BIG : 0) 699 | (intern->cobol_main ? EXT_BITS1_COBOL_MAIN_BIG : 0) 700 | (intern->weakext ? EXT_BITS1_WEAKEXT_BIG : 0)); 701 ext->es_bits2[0] = 0; 702 #if defined (ECOFF_64) || defined (ECOFF_SIGNED_64) 703 ext->es_bits2[1] = 0; 704 ext->es_bits2[2] = 0; 705 #endif 706 } 707 else 708 { 709 ext->es_bits1[0] = ((intern->jmptbl ? EXT_BITS1_JMPTBL_LITTLE : 0) 710 | (intern->cobol_main ? EXT_BITS1_COBOL_MAIN_LITTLE : 0) 711 | (intern->weakext ? EXT_BITS1_WEAKEXT_LITTLE : 0)); 712 ext->es_bits2[0] = 0; 713 #if defined (ECOFF_64) || defined (ECOFF_SIGNED_64) 714 ext->es_bits2[1] = 0; 715 ext->es_bits2[2] = 0; 716 #endif 717 } 690 718 691 719 #if defined (ECOFF_32) || defined (ECOFF_SIGNED_32) 692 bfd_h_put_signed_16 (abfd, intern->ifd, (bfd_byte *)ext->es_ifd);693 #endif 694 #if defined (ECOFF_64) || defined (ECOFF_SIGNED_64) 695 bfd_h_put_signed_32 (abfd, intern->ifd, (bfd_byte *)ext->es_ifd);720 H_PUT_S16 (abfd, intern->ifd, ext->es_ifd); 721 #endif 722 #if defined (ECOFF_64) || defined (ECOFF_SIGNED_64) 723 H_PUT_S32 (abfd, intern->ifd, ext->es_ifd); 696 724 #endif 697 725 … … 714 742 struct rfd_ext *ext = (struct rfd_ext *) ext_ptr; 715 743 716 *intern = bfd_h_get_32 (abfd, (bfd_byte *)ext->rfd);744 *intern = H_GET_32 (abfd, ext->rfd); 717 745 718 746 #ifdef TEST … … 732 760 struct rfd_ext *ext = (struct rfd_ext *) ext_ptr; 733 761 734 bfd_h_put_32 (abfd, *intern, (bfd_byte *)ext->rfd);762 H_PUT_32 (abfd, *intern, ext->rfd); 735 763 736 764 #ifdef TEST … … 773 801 &ext->o_rndx, &intern->rndx); 774 802 775 intern->offset = bfd_h_get_32 (abfd, (bfd_byte *)ext->o_offset);803 intern->offset = H_GET_32 (abfd, ext->o_offset); 776 804 777 805 #ifdef TEST … … 792 820 OPTR intern[1]; 793 821 794 *intern = *intern_copy; /* Make it reasonable to do in-place. */ 822 /* Make it reasonable to do in-place. */ 823 *intern = *intern_copy; 795 824 796 825 if (bfd_header_big_endian (abfd)) … … 812 841 &intern->rndx, &ext->o_rndx); 813 842 814 bfd_h_put_32 (abfd, intern->value, (bfd_byte *)ext->o_offset);843 H_PUT_32 (abfd, intern->value, ext->o_offset); 815 844 816 845 #ifdef TEST … … 832 861 *ext = *(struct dnr_ext *) ext_copy; 833 862 834 intern->rfd = bfd_h_get_32 (abfd, (bfd_byte *)ext->d_rfd);835 intern->index = bfd_h_get_32 (abfd, (bfd_byte *)ext->d_index);863 intern->rfd = H_GET_32 (abfd, ext->d_rfd); 864 intern->index = H_GET_32 (abfd, ext->d_index); 836 865 837 866 #ifdef TEST … … 852 881 DNR intern[1]; 853 882 854 *intern = *intern_copy; /* Make it reasonable to do in-place. */ 855 856 bfd_h_put_32 (abfd, intern->rfd, (bfd_byte *) ext->d_rfd); 857 bfd_h_put_32 (abfd, intern->index, (bfd_byte *) ext->d_index); 858 859 #ifdef TEST 860 if (memcmp ((char *)ext, (char *)intern, sizeof (*intern)) != 0) 861 abort (); 862 #endif 863 } 883 /* Make it reasonable to do in-place. */ 884 *intern = *intern_copy; 885 886 H_PUT_32 (abfd, intern->rfd, ext->d_rfd); 887 H_PUT_32 (abfd, intern->index, ext->d_index); 888 889 #ifdef TEST 890 if (memcmp ((char *)ext, (char *)intern, sizeof (*intern)) != 0) 891 abort (); 892 #endif 893 } -
Property cvs2svn:cvs-rev
changed from
Note:
See TracChangeset
for help on using the changeset viewer.