diff options
author | Dale Rahn <drahn@cvs.openbsd.org> | 2004-05-17 21:54:57 +0000 |
---|---|---|
committer | Dale Rahn <drahn@cvs.openbsd.org> | 2004-05-17 21:54:57 +0000 |
commit | 631eeff208608ed7b44459bd6c8ae905bcd7e8b6 (patch) | |
tree | 7be124105a0929655708fbbc134f9c2e3189c3f3 /gnu/usr.bin/binutils/bfd/ecoffswap.h | |
parent | a7c8e0ae4a4b349099d02bc9d56bcf1979c0f0c3 (diff) |
Resolve merge conflicts, adjust method of W^X handing (.sh files)
remove testsuites (not useable) remove mmalloc (not part of new binutils).
Diffstat (limited to 'gnu/usr.bin/binutils/bfd/ecoffswap.h')
-rw-r--r-- | gnu/usr.bin/binutils/bfd/ecoffswap.h | 694 |
1 files changed, 362 insertions, 332 deletions
diff --git a/gnu/usr.bin/binutils/bfd/ecoffswap.h b/gnu/usr.bin/binutils/bfd/ecoffswap.h index dd6fa6f32a0..7ea03943bb0 100644 --- a/gnu/usr.bin/binutils/bfd/ecoffswap.h +++ b/gnu/usr.bin/binutils/bfd/ecoffswap.h @@ -1,23 +1,23 @@ /* Generic ECOFF swapping routines, for BFD. - Copyright 1992, 1993, 1994, 1995, 1996, 2000, 2001 + Copyright 1992, 1993, 1994, 1995, 1996, 2000, 2001, 2002 Free Software Foundation, Inc. Written by Cygnus Support. -This file is part of BFD, the Binary File Descriptor library. + This file is part of BFD, the Binary File Descriptor library. -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2 of the License, or -(at your option) any later version. + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* NOTE: This is a header file, but it contains executable routines. This is done this way because these routines are substantially @@ -45,20 +45,20 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ with the proper byte sex and such. */ #ifdef ECOFF_32 -#define ecoff_get_off bfd_h_get_32 -#define ecoff_put_off bfd_h_put_32 +#define ECOFF_GET_OFF H_GET_32 +#define ECOFF_PUT_OFF H_PUT_32 #endif #ifdef ECOFF_64 -#define ecoff_get_off bfd_h_get_64 -#define ecoff_put_off bfd_h_put_64 +#define ECOFF_GET_OFF H_GET_64 +#define ECOFF_PUT_OFF H_PUT_64 #endif #ifdef ECOFF_SIGNED_32 -#define ecoff_get_off bfd_h_get_signed_32 -#define ecoff_put_off bfd_h_put_signed_32 +#define ECOFF_GET_OFF H_GET_S32 +#define ECOFF_PUT_OFF H_PUT_S32 #endif #ifdef ECOFF_SIGNED_64 -#define ecoff_get_off bfd_h_get_signed_64 -#define ecoff_put_off bfd_h_put_signed_64 +#define ECOFF_GET_OFF H_GET_S64 +#define ECOFF_PUT_OFF H_PUT_S64 #endif /* ECOFF auxiliary information swapping routines. These are the same @@ -104,31 +104,31 @@ ecoff_swap_hdr_in (abfd, ext_copy, intern) *ext = *(struct hdr_ext *) ext_copy; - intern->magic = bfd_h_get_signed_16 (abfd, (bfd_byte *)ext->h_magic); - intern->vstamp = bfd_h_get_signed_16 (abfd, (bfd_byte *)ext->h_vstamp); - intern->ilineMax = bfd_h_get_32 (abfd, (bfd_byte *)ext->h_ilineMax); - intern->cbLine = ecoff_get_off (abfd, (bfd_byte *)ext->h_cbLine); - intern->cbLineOffset = ecoff_get_off (abfd, (bfd_byte *)ext->h_cbLineOffset); - intern->idnMax = bfd_h_get_32 (abfd, (bfd_byte *)ext->h_idnMax); - intern->cbDnOffset = ecoff_get_off (abfd, (bfd_byte *)ext->h_cbDnOffset); - intern->ipdMax = bfd_h_get_32 (abfd, (bfd_byte *)ext->h_ipdMax); - intern->cbPdOffset = ecoff_get_off (abfd, (bfd_byte *)ext->h_cbPdOffset); - intern->isymMax = bfd_h_get_32 (abfd, (bfd_byte *)ext->h_isymMax); - intern->cbSymOffset = ecoff_get_off (abfd, (bfd_byte *)ext->h_cbSymOffset); - intern->ioptMax = bfd_h_get_32 (abfd, (bfd_byte *)ext->h_ioptMax); - intern->cbOptOffset = ecoff_get_off (abfd, (bfd_byte *)ext->h_cbOptOffset); - intern->iauxMax = bfd_h_get_32 (abfd, (bfd_byte *)ext->h_iauxMax); - intern->cbAuxOffset = ecoff_get_off (abfd, (bfd_byte *)ext->h_cbAuxOffset); - intern->issMax = bfd_h_get_32 (abfd, (bfd_byte *)ext->h_issMax); - intern->cbSsOffset = ecoff_get_off (abfd, (bfd_byte *)ext->h_cbSsOffset); - intern->issExtMax = bfd_h_get_32 (abfd, (bfd_byte *)ext->h_issExtMax); - intern->cbSsExtOffset = ecoff_get_off (abfd, (bfd_byte *)ext->h_cbSsExtOffset); - intern->ifdMax = bfd_h_get_32 (abfd, (bfd_byte *)ext->h_ifdMax); - intern->cbFdOffset = ecoff_get_off (abfd, (bfd_byte *)ext->h_cbFdOffset); - intern->crfd = bfd_h_get_32 (abfd, (bfd_byte *)ext->h_crfd); - intern->cbRfdOffset = ecoff_get_off (abfd, (bfd_byte *)ext->h_cbRfdOffset); - intern->iextMax = bfd_h_get_32 (abfd, (bfd_byte *)ext->h_iextMax); - intern->cbExtOffset = ecoff_get_off (abfd, (bfd_byte *)ext->h_cbExtOffset); + intern->magic = H_GET_S16 (abfd, ext->h_magic); + intern->vstamp = H_GET_S16 (abfd, ext->h_vstamp); + intern->ilineMax = H_GET_32 (abfd, ext->h_ilineMax); + intern->cbLine = ECOFF_GET_OFF (abfd, ext->h_cbLine); + intern->cbLineOffset = ECOFF_GET_OFF (abfd, ext->h_cbLineOffset); + intern->idnMax = H_GET_32 (abfd, ext->h_idnMax); + intern->cbDnOffset = ECOFF_GET_OFF (abfd, ext->h_cbDnOffset); + intern->ipdMax = H_GET_32 (abfd, ext->h_ipdMax); + intern->cbPdOffset = ECOFF_GET_OFF (abfd, ext->h_cbPdOffset); + intern->isymMax = H_GET_32 (abfd, ext->h_isymMax); + intern->cbSymOffset = ECOFF_GET_OFF (abfd, ext->h_cbSymOffset); + intern->ioptMax = H_GET_32 (abfd, ext->h_ioptMax); + intern->cbOptOffset = ECOFF_GET_OFF (abfd, ext->h_cbOptOffset); + intern->iauxMax = H_GET_32 (abfd, ext->h_iauxMax); + intern->cbAuxOffset = ECOFF_GET_OFF (abfd, ext->h_cbAuxOffset); + intern->issMax = H_GET_32 (abfd, ext->h_issMax); + intern->cbSsOffset = ECOFF_GET_OFF (abfd, ext->h_cbSsOffset); + intern->issExtMax = H_GET_32 (abfd, ext->h_issExtMax); + intern->cbSsExtOffset = ECOFF_GET_OFF (abfd, ext->h_cbSsExtOffset); + intern->ifdMax = H_GET_32 (abfd, ext->h_ifdMax); + intern->cbFdOffset = ECOFF_GET_OFF (abfd, ext->h_cbFdOffset); + intern->crfd = H_GET_32 (abfd, ext->h_crfd); + intern->cbRfdOffset = ECOFF_GET_OFF (abfd, ext->h_cbRfdOffset); + intern->iextMax = H_GET_32 (abfd, ext->h_iextMax); + intern->cbExtOffset = ECOFF_GET_OFF (abfd, ext->h_cbExtOffset); #ifdef TEST if (memcmp ((char *)ext, (char *)intern, sizeof (*intern)) != 0) @@ -149,34 +149,34 @@ ecoff_swap_hdr_out (abfd, intern_copy, ext_ptr) *intern = *intern_copy; - bfd_h_put_signed_16 (abfd, intern->magic, (bfd_byte *)ext->h_magic); - bfd_h_put_signed_16 (abfd, intern->vstamp, (bfd_byte *)ext->h_vstamp); - bfd_h_put_32 (abfd, intern->ilineMax, (bfd_byte *)ext->h_ilineMax); - ecoff_put_off (abfd, intern->cbLine, (bfd_byte *)ext->h_cbLine); - ecoff_put_off (abfd, intern->cbLineOffset, (bfd_byte *)ext->h_cbLineOffset); - bfd_h_put_32 (abfd, intern->idnMax, (bfd_byte *)ext->h_idnMax); - ecoff_put_off (abfd, intern->cbDnOffset, (bfd_byte *)ext->h_cbDnOffset); - bfd_h_put_32 (abfd, intern->ipdMax, (bfd_byte *)ext->h_ipdMax); - ecoff_put_off (abfd, intern->cbPdOffset, (bfd_byte *)ext->h_cbPdOffset); - bfd_h_put_32 (abfd, intern->isymMax, (bfd_byte *)ext->h_isymMax); - ecoff_put_off (abfd, intern->cbSymOffset, (bfd_byte *)ext->h_cbSymOffset); - bfd_h_put_32 (abfd, intern->ioptMax, (bfd_byte *)ext->h_ioptMax); - ecoff_put_off (abfd, intern->cbOptOffset, (bfd_byte *)ext->h_cbOptOffset); - bfd_h_put_32 (abfd, intern->iauxMax, (bfd_byte *)ext->h_iauxMax); - ecoff_put_off (abfd, intern->cbAuxOffset, (bfd_byte *)ext->h_cbAuxOffset); - bfd_h_put_32 (abfd, intern->issMax, (bfd_byte *)ext->h_issMax); - ecoff_put_off (abfd, intern->cbSsOffset, (bfd_byte *)ext->h_cbSsOffset); - bfd_h_put_32 (abfd, intern->issExtMax, (bfd_byte *)ext->h_issExtMax); - ecoff_put_off (abfd, intern->cbSsExtOffset, (bfd_byte *)ext->h_cbSsExtOffset); - bfd_h_put_32 (abfd, intern->ifdMax, (bfd_byte *)ext->h_ifdMax); - ecoff_put_off (abfd, intern->cbFdOffset, (bfd_byte *)ext->h_cbFdOffset); - bfd_h_put_32 (abfd, intern->crfd, (bfd_byte *)ext->h_crfd); - ecoff_put_off (abfd, intern->cbRfdOffset, (bfd_byte *)ext->h_cbRfdOffset); - bfd_h_put_32 (abfd, intern->iextMax, (bfd_byte *)ext->h_iextMax); - ecoff_put_off (abfd, intern->cbExtOffset, (bfd_byte *)ext->h_cbExtOffset); + H_PUT_S16 (abfd, intern->magic, ext->h_magic); + H_PUT_S16 (abfd, intern->vstamp, ext->h_vstamp); + H_PUT_32 (abfd, intern->ilineMax, ext->h_ilineMax); + ECOFF_PUT_OFF (abfd, intern->cbLine, ext->h_cbLine); + ECOFF_PUT_OFF (abfd, intern->cbLineOffset, ext->h_cbLineOffset); + H_PUT_32 (abfd, intern->idnMax, ext->h_idnMax); + ECOFF_PUT_OFF (abfd, intern->cbDnOffset, ext->h_cbDnOffset); + H_PUT_32 (abfd, intern->ipdMax, ext->h_ipdMax); + ECOFF_PUT_OFF (abfd, intern->cbPdOffset, ext->h_cbPdOffset); + H_PUT_32 (abfd, intern->isymMax, ext->h_isymMax); + ECOFF_PUT_OFF (abfd, intern->cbSymOffset, ext->h_cbSymOffset); + H_PUT_32 (abfd, intern->ioptMax, ext->h_ioptMax); + ECOFF_PUT_OFF (abfd, intern->cbOptOffset, ext->h_cbOptOffset); + H_PUT_32 (abfd, intern->iauxMax, ext->h_iauxMax); + ECOFF_PUT_OFF (abfd, intern->cbAuxOffset, ext->h_cbAuxOffset); + H_PUT_32 (abfd, intern->issMax, ext->h_issMax); + ECOFF_PUT_OFF (abfd, intern->cbSsOffset, ext->h_cbSsOffset); + H_PUT_32 (abfd, intern->issExtMax, ext->h_issExtMax); + ECOFF_PUT_OFF (abfd, intern->cbSsExtOffset, ext->h_cbSsExtOffset); + H_PUT_32 (abfd, intern->ifdMax, ext->h_ifdMax); + ECOFF_PUT_OFF (abfd, intern->cbFdOffset, ext->h_cbFdOffset); + H_PUT_32 (abfd, intern->crfd, ext->h_crfd); + ECOFF_PUT_OFF (abfd, intern->cbRfdOffset, ext->h_cbRfdOffset); + H_PUT_32 (abfd, intern->iextMax, ext->h_iextMax); + ECOFF_PUT_OFF (abfd, intern->cbExtOffset, ext->h_cbExtOffset); #ifdef TEST - if (memcmp ((char *)ext, (char *)intern, sizeof (*intern)) != 0) + if (memcmp ((char *) ext, (char *) intern, sizeof (*intern)) != 0) abort (); #endif } @@ -193,55 +193,58 @@ ecoff_swap_fdr_in (abfd, ext_copy, intern) *ext = *(struct fdr_ext *) ext_copy; - intern->adr = ecoff_get_off (abfd, (bfd_byte *)ext->f_adr); - intern->rss = bfd_h_get_32 (abfd, (bfd_byte *)ext->f_rss); + intern->adr = ECOFF_GET_OFF (abfd, ext->f_adr); + intern->rss = H_GET_32 (abfd, ext->f_rss); #if defined (ECOFF_64) || defined (ECOFF_SIGNED_64) if (intern->rss == (signed long) 0xffffffff) intern->rss = -1; #endif - intern->issBase = bfd_h_get_32 (abfd, (bfd_byte *)ext->f_issBase); - intern->cbSs = ecoff_get_off (abfd, (bfd_byte *)ext->f_cbSs); - intern->isymBase = bfd_h_get_32 (abfd, (bfd_byte *)ext->f_isymBase); - intern->csym = bfd_h_get_32 (abfd, (bfd_byte *)ext->f_csym); - intern->ilineBase = bfd_h_get_32 (abfd, (bfd_byte *)ext->f_ilineBase); - intern->cline = bfd_h_get_32 (abfd, (bfd_byte *)ext->f_cline); - intern->ioptBase = bfd_h_get_32 (abfd, (bfd_byte *)ext->f_ioptBase); - intern->copt = bfd_h_get_32 (abfd, (bfd_byte *)ext->f_copt); + intern->issBase = H_GET_32 (abfd, ext->f_issBase); + intern->cbSs = ECOFF_GET_OFF (abfd, ext->f_cbSs); + intern->isymBase = H_GET_32 (abfd, ext->f_isymBase); + intern->csym = H_GET_32 (abfd, ext->f_csym); + intern->ilineBase = H_GET_32 (abfd, ext->f_ilineBase); + intern->cline = H_GET_32 (abfd, ext->f_cline); + intern->ioptBase = H_GET_32 (abfd, ext->f_ioptBase); + intern->copt = H_GET_32 (abfd, ext->f_copt); #if defined (ECOFF_32) || defined (ECOFF_SIGNED_32) - intern->ipdFirst = bfd_h_get_16 (abfd, (bfd_byte *)ext->f_ipdFirst); - intern->cpd = bfd_h_get_16 (abfd, (bfd_byte *)ext->f_cpd); + intern->ipdFirst = H_GET_16 (abfd, ext->f_ipdFirst); + intern->cpd = H_GET_16 (abfd, ext->f_cpd); #endif #if defined (ECOFF_64) || defined (ECOFF_SIGNED_64) - intern->ipdFirst = bfd_h_get_32 (abfd, (bfd_byte *)ext->f_ipdFirst); - intern->cpd = bfd_h_get_32 (abfd, (bfd_byte *)ext->f_cpd); -#endif - intern->iauxBase = bfd_h_get_32 (abfd, (bfd_byte *)ext->f_iauxBase); - intern->caux = bfd_h_get_32 (abfd, (bfd_byte *)ext->f_caux); - intern->rfdBase = bfd_h_get_32 (abfd, (bfd_byte *)ext->f_rfdBase); - intern->crfd = bfd_h_get_32 (abfd, (bfd_byte *)ext->f_crfd); - - /* now the fun stuff... */ - if (bfd_header_big_endian (abfd)) { - intern->lang = (ext->f_bits1[0] & FDR_BITS1_LANG_BIG) - >> FDR_BITS1_LANG_SH_BIG; - intern->fMerge = 0 != (ext->f_bits1[0] & FDR_BITS1_FMERGE_BIG); - intern->fReadin = 0 != (ext->f_bits1[0] & FDR_BITS1_FREADIN_BIG); - intern->fBigendian = 0 != (ext->f_bits1[0] & FDR_BITS1_FBIGENDIAN_BIG); - intern->glevel = (ext->f_bits2[0] & FDR_BITS2_GLEVEL_BIG) - >> FDR_BITS2_GLEVEL_SH_BIG; - } else { - intern->lang = (ext->f_bits1[0] & FDR_BITS1_LANG_LITTLE) - >> FDR_BITS1_LANG_SH_LITTLE; - intern->fMerge = 0 != (ext->f_bits1[0] & FDR_BITS1_FMERGE_LITTLE); - intern->fReadin = 0 != (ext->f_bits1[0] & FDR_BITS1_FREADIN_LITTLE); - intern->fBigendian = 0 != (ext->f_bits1[0] & FDR_BITS1_FBIGENDIAN_LITTLE); - intern->glevel = (ext->f_bits2[0] & FDR_BITS2_GLEVEL_LITTLE) - >> FDR_BITS2_GLEVEL_SH_LITTLE; - } + intern->ipdFirst = H_GET_32 (abfd, ext->f_ipdFirst); + intern->cpd = H_GET_32 (abfd, ext->f_cpd); +#endif + intern->iauxBase = H_GET_32 (abfd, ext->f_iauxBase); + intern->caux = H_GET_32 (abfd, ext->f_caux); + intern->rfdBase = H_GET_32 (abfd, ext->f_rfdBase); + intern->crfd = H_GET_32 (abfd, ext->f_crfd); + + /* Now the fun stuff... */ + if (bfd_header_big_endian (abfd)) + { + intern->lang = ((ext->f_bits1[0] & FDR_BITS1_LANG_BIG) + >> FDR_BITS1_LANG_SH_BIG); + intern->fMerge = 0 != (ext->f_bits1[0] & FDR_BITS1_FMERGE_BIG); + intern->fReadin = 0 != (ext->f_bits1[0] & FDR_BITS1_FREADIN_BIG); + intern->fBigendian = 0 != (ext->f_bits1[0] & FDR_BITS1_FBIGENDIAN_BIG); + intern->glevel = ((ext->f_bits2[0] & FDR_BITS2_GLEVEL_BIG) + >> FDR_BITS2_GLEVEL_SH_BIG); + } + else + { + intern->lang = ((ext->f_bits1[0] & FDR_BITS1_LANG_LITTLE) + >> FDR_BITS1_LANG_SH_LITTLE); + intern->fMerge = 0 != (ext->f_bits1[0] & FDR_BITS1_FMERGE_LITTLE); + intern->fReadin = 0 != (ext->f_bits1[0] & FDR_BITS1_FREADIN_LITTLE); + intern->fBigendian = 0 != (ext->f_bits1[0] & FDR_BITS1_FBIGENDIAN_LITTLE); + intern->glevel = ((ext->f_bits2[0] & FDR_BITS2_GLEVEL_LITTLE) + >> FDR_BITS2_GLEVEL_SH_LITTLE); + } intern->reserved = 0; - intern->cbLineOffset = ecoff_get_off (abfd, (bfd_byte *)ext->f_cbLineOffset); - intern->cbLine = ecoff_get_off (abfd, (bfd_byte *)ext->f_cbLine); + intern->cbLineOffset = ECOFF_GET_OFF (abfd, ext->f_cbLineOffset); + intern->cbLine = ECOFF_GET_OFF (abfd, ext->f_cbLine); #ifdef TEST if (memcmp ((char *)ext, (char *)intern, sizeof (*intern)) != 0) @@ -260,56 +263,60 @@ ecoff_swap_fdr_out (abfd, intern_copy, ext_ptr) struct fdr_ext *ext = (struct fdr_ext *) ext_ptr; FDR intern[1]; - *intern = *intern_copy; /* Make it reasonable to do in-place. */ - - ecoff_put_off (abfd, intern->adr, (bfd_byte *)ext->f_adr); - bfd_h_put_32 (abfd, intern->rss, (bfd_byte *)ext->f_rss); - bfd_h_put_32 (abfd, intern->issBase, (bfd_byte *)ext->f_issBase); - ecoff_put_off (abfd, intern->cbSs, (bfd_byte *)ext->f_cbSs); - bfd_h_put_32 (abfd, intern->isymBase, (bfd_byte *)ext->f_isymBase); - bfd_h_put_32 (abfd, intern->csym, (bfd_byte *)ext->f_csym); - bfd_h_put_32 (abfd, intern->ilineBase, (bfd_byte *)ext->f_ilineBase); - bfd_h_put_32 (abfd, intern->cline, (bfd_byte *)ext->f_cline); - bfd_h_put_32 (abfd, intern->ioptBase, (bfd_byte *)ext->f_ioptBase); - bfd_h_put_32 (abfd, intern->copt, (bfd_byte *)ext->f_copt); + /* Make it reasonable to do in-place. */ + *intern = *intern_copy; + + ECOFF_PUT_OFF (abfd, intern->adr, ext->f_adr); + H_PUT_32 (abfd, intern->rss, ext->f_rss); + H_PUT_32 (abfd, intern->issBase, ext->f_issBase); + ECOFF_PUT_OFF (abfd, intern->cbSs, ext->f_cbSs); + H_PUT_32 (abfd, intern->isymBase, ext->f_isymBase); + H_PUT_32 (abfd, intern->csym, ext->f_csym); + H_PUT_32 (abfd, intern->ilineBase, ext->f_ilineBase); + H_PUT_32 (abfd, intern->cline, ext->f_cline); + H_PUT_32 (abfd, intern->ioptBase, ext->f_ioptBase); + H_PUT_32 (abfd, intern->copt, ext->f_copt); #if defined (ECOFF_32) || defined (ECOFF_SIGNED_32) - bfd_h_put_16 (abfd, intern->ipdFirst, (bfd_byte *)ext->f_ipdFirst); - bfd_h_put_16 (abfd, intern->cpd, (bfd_byte *)ext->f_cpd); + H_PUT_16 (abfd, intern->ipdFirst, ext->f_ipdFirst); + H_PUT_16 (abfd, intern->cpd, ext->f_cpd); #endif #if defined (ECOFF_64) || defined (ECOFF_SIGNED_64) - bfd_h_put_32 (abfd, intern->ipdFirst, (bfd_byte *)ext->f_ipdFirst); - bfd_h_put_32 (abfd, intern->cpd, (bfd_byte *)ext->f_cpd); -#endif - bfd_h_put_32 (abfd, intern->iauxBase, (bfd_byte *)ext->f_iauxBase); - bfd_h_put_32 (abfd, intern->caux, (bfd_byte *)ext->f_caux); - bfd_h_put_32 (abfd, intern->rfdBase, (bfd_byte *)ext->f_rfdBase); - bfd_h_put_32 (abfd, intern->crfd, (bfd_byte *)ext->f_crfd); - - /* now the fun stuff... */ - if (bfd_header_big_endian (abfd)) { - ext->f_bits1[0] = (((intern->lang << FDR_BITS1_LANG_SH_BIG) - & FDR_BITS1_LANG_BIG) - | (intern->fMerge ? FDR_BITS1_FMERGE_BIG : 0) - | (intern->fReadin ? FDR_BITS1_FREADIN_BIG : 0) - | (intern->fBigendian ? FDR_BITS1_FBIGENDIAN_BIG : 0)); - ext->f_bits2[0] = ((intern->glevel << FDR_BITS2_GLEVEL_SH_BIG) - & FDR_BITS2_GLEVEL_BIG); - ext->f_bits2[1] = 0; - ext->f_bits2[2] = 0; - } else { - ext->f_bits1[0] = (((intern->lang << FDR_BITS1_LANG_SH_LITTLE) - & FDR_BITS1_LANG_LITTLE) - | (intern->fMerge ? FDR_BITS1_FMERGE_LITTLE : 0) - | (intern->fReadin ? FDR_BITS1_FREADIN_LITTLE : 0) - | (intern->fBigendian ? FDR_BITS1_FBIGENDIAN_LITTLE : 0)); - ext->f_bits2[0] = ((intern->glevel << FDR_BITS2_GLEVEL_SH_LITTLE) - & FDR_BITS2_GLEVEL_LITTLE); - ext->f_bits2[1] = 0; - ext->f_bits2[2] = 0; - } - - ecoff_put_off (abfd, intern->cbLineOffset, (bfd_byte *)ext->f_cbLineOffset); - ecoff_put_off (abfd, intern->cbLine, (bfd_byte *)ext->f_cbLine); + H_PUT_32 (abfd, intern->ipdFirst, ext->f_ipdFirst); + H_PUT_32 (abfd, intern->cpd, ext->f_cpd); +#endif + H_PUT_32 (abfd, intern->iauxBase, ext->f_iauxBase); + H_PUT_32 (abfd, intern->caux, ext->f_caux); + H_PUT_32 (abfd, intern->rfdBase, ext->f_rfdBase); + H_PUT_32 (abfd, intern->crfd, ext->f_crfd); + + /* Now the fun stuff... */ + if (bfd_header_big_endian (abfd)) + { + ext->f_bits1[0] = (((intern->lang << FDR_BITS1_LANG_SH_BIG) + & FDR_BITS1_LANG_BIG) + | (intern->fMerge ? FDR_BITS1_FMERGE_BIG : 0) + | (intern->fReadin ? FDR_BITS1_FREADIN_BIG : 0) + | (intern->fBigendian ? FDR_BITS1_FBIGENDIAN_BIG : 0)); + ext->f_bits2[0] = ((intern->glevel << FDR_BITS2_GLEVEL_SH_BIG) + & FDR_BITS2_GLEVEL_BIG); + ext->f_bits2[1] = 0; + ext->f_bits2[2] = 0; + } + else + { + ext->f_bits1[0] = (((intern->lang << FDR_BITS1_LANG_SH_LITTLE) + & FDR_BITS1_LANG_LITTLE) + | (intern->fMerge ? FDR_BITS1_FMERGE_LITTLE : 0) + | (intern->fReadin ? FDR_BITS1_FREADIN_LITTLE : 0) + | (intern->fBigendian ? FDR_BITS1_FBIGENDIAN_LITTLE : 0)); + ext->f_bits2[0] = ((intern->glevel << FDR_BITS2_GLEVEL_SH_LITTLE) + & FDR_BITS2_GLEVEL_LITTLE); + ext->f_bits2[1] = 0; + ext->f_bits2[2] = 0; + } + + ECOFF_PUT_OFF (abfd, intern->cbLineOffset, ext->f_cbLineOffset); + ECOFF_PUT_OFF (abfd, intern->cbLine, ext->f_cbLine); #ifdef TEST if (memcmp ((char *)ext, (char *)intern, sizeof (*intern)) != 0) @@ -333,26 +340,28 @@ ecoff_swap_pdr_in (abfd, ext_copy, intern) memset ((PTR) intern, 0, sizeof (*intern)); - intern->adr = ecoff_get_off (abfd, (bfd_byte *)ext->p_adr); - intern->isym = bfd_h_get_32 (abfd, (bfd_byte *)ext->p_isym); - intern->iline = bfd_h_get_32 (abfd, (bfd_byte *)ext->p_iline); - intern->regmask = bfd_h_get_32 (abfd, (bfd_byte *)ext->p_regmask); - intern->regoffset = bfd_h_get_signed_32 (abfd, - (bfd_byte *)ext->p_regoffset); - intern->iopt = bfd_h_get_signed_32 (abfd, (bfd_byte *)ext->p_iopt); - intern->fregmask = bfd_h_get_32 (abfd, (bfd_byte *)ext->p_fregmask); - intern->fregoffset = bfd_h_get_signed_32 (abfd, - (bfd_byte *)ext->p_fregoffset); - intern->frameoffset = bfd_h_get_signed_32 (abfd, - (bfd_byte *)ext->p_frameoffset); - intern->framereg = bfd_h_get_16 (abfd, (bfd_byte *)ext->p_framereg); - intern->pcreg = bfd_h_get_16 (abfd, (bfd_byte *)ext->p_pcreg); - intern->lnLow = bfd_h_get_32 (abfd, (bfd_byte *)ext->p_lnLow); - intern->lnHigh = bfd_h_get_32 (abfd, (bfd_byte *)ext->p_lnHigh); - intern->cbLineOffset = ecoff_get_off (abfd, (bfd_byte *)ext->p_cbLineOffset); + intern->adr = ECOFF_GET_OFF (abfd, ext->p_adr); + intern->isym = H_GET_32 (abfd, ext->p_isym); + intern->iline = H_GET_32 (abfd, ext->p_iline); + intern->regmask = H_GET_32 (abfd, ext->p_regmask); + intern->regoffset = H_GET_S32 (abfd, ext->p_regoffset); + intern->iopt = H_GET_S32 (abfd, ext->p_iopt); + intern->fregmask = H_GET_32 (abfd, ext->p_fregmask); + intern->fregoffset = H_GET_S32 (abfd, ext->p_fregoffset); + intern->frameoffset = H_GET_S32 (abfd, ext->p_frameoffset); + intern->framereg = H_GET_16 (abfd, ext->p_framereg); + intern->pcreg = H_GET_16 (abfd, ext->p_pcreg); + intern->lnLow = H_GET_32 (abfd, ext->p_lnLow); + intern->lnHigh = H_GET_32 (abfd, ext->p_lnHigh); + intern->cbLineOffset = ECOFF_GET_OFF (abfd, ext->p_cbLineOffset); #if defined (ECOFF_64) || defined (ECOFF_SIGNED_64) - intern->gp_prologue = bfd_h_get_8 (abfd, (bfd_byte *) ext->p_gp_prologue); + if (intern->isym == (signed long) 0xffffffff) + intern->isym = -1; + if (intern->iline == (signed long) 0xffffffff) + intern->iline = -1; + + intern->gp_prologue = H_GET_8 (abfd, ext->p_gp_prologue); if (bfd_header_big_endian (abfd)) { intern->gp_used = 0 != (ext->p_bits1[0] & PDR_BITS1_GP_USED_BIG); @@ -373,7 +382,7 @@ ecoff_swap_pdr_in (abfd, ext_copy, intern) | ((ext->p_bits2[0] & PDR_BITS2_RESERVED_LITTLE) << PDR_BITS2_RESERVED_SH_LEFT_LITTLE)); } - intern->localoff = bfd_h_get_8 (abfd, (bfd_byte *) ext->p_localoff); + intern->localoff = H_GET_8 (abfd, ext->p_localoff); #endif #ifdef TEST @@ -393,25 +402,27 @@ ecoff_swap_pdr_out (abfd, intern_copy, ext_ptr) struct pdr_ext *ext = (struct pdr_ext *) ext_ptr; PDR intern[1]; - *intern = *intern_copy; /* Make it reasonable to do in-place. */ - - ecoff_put_off (abfd, intern->adr, (bfd_byte *)ext->p_adr); - bfd_h_put_32 (abfd, intern->isym, (bfd_byte *)ext->p_isym); - bfd_h_put_32 (abfd, intern->iline, (bfd_byte *)ext->p_iline); - bfd_h_put_32 (abfd, intern->regmask, (bfd_byte *)ext->p_regmask); - bfd_h_put_32 (abfd, intern->regoffset, (bfd_byte *)ext->p_regoffset); - bfd_h_put_32 (abfd, intern->iopt, (bfd_byte *)ext->p_iopt); - bfd_h_put_32 (abfd, intern->fregmask, (bfd_byte *)ext->p_fregmask); - bfd_h_put_32 (abfd, intern->fregoffset, (bfd_byte *)ext->p_fregoffset); - bfd_h_put_32 (abfd, intern->frameoffset, (bfd_byte *)ext->p_frameoffset); - bfd_h_put_16 (abfd, intern->framereg, (bfd_byte *)ext->p_framereg); - bfd_h_put_16 (abfd, intern->pcreg, (bfd_byte *)ext->p_pcreg); - bfd_h_put_32 (abfd, intern->lnLow, (bfd_byte *)ext->p_lnLow); - bfd_h_put_32 (abfd, intern->lnHigh, (bfd_byte *)ext->p_lnHigh); - ecoff_put_off (abfd, intern->cbLineOffset, (bfd_byte *)ext->p_cbLineOffset); + /* Make it reasonable to do in-place. */ + *intern = *intern_copy; + + ECOFF_PUT_OFF (abfd, intern->adr, ext->p_adr); + H_PUT_32 (abfd, intern->isym, ext->p_isym); + H_PUT_32 (abfd, intern->iline, ext->p_iline); + H_PUT_32 (abfd, intern->regmask, ext->p_regmask); + H_PUT_32 (abfd, intern->regoffset, ext->p_regoffset); + H_PUT_32 (abfd, intern->iopt, ext->p_iopt); + H_PUT_32 (abfd, intern->fregmask, ext->p_fregmask); + H_PUT_32 (abfd, intern->fregoffset, ext->p_fregoffset); + H_PUT_32 (abfd, intern->frameoffset, ext->p_frameoffset); + H_PUT_16 (abfd, intern->framereg, ext->p_framereg); + H_PUT_16 (abfd, intern->pcreg, ext->p_pcreg); + H_PUT_32 (abfd, intern->lnLow, ext->p_lnLow); + H_PUT_32 (abfd, intern->lnHigh, ext->p_lnHigh); + ECOFF_PUT_OFF (abfd, intern->cbLineOffset, ext->p_cbLineOffset); #if defined (ECOFF_64) || defined (ECOFF_SIGNED_64) - bfd_h_put_8 (abfd, intern->gp_prologue, (bfd_byte *) ext->p_gp_prologue); + H_PUT_8 (abfd, intern->gp_prologue, ext->p_gp_prologue); + if (bfd_header_big_endian (abfd)) { ext->p_bits1[0] = ((intern->gp_used ? PDR_BITS1_GP_USED_BIG : 0) @@ -434,7 +445,7 @@ ecoff_swap_pdr_out (abfd, intern_copy, ext_ptr) PDR_BITS2_RESERVED_SH_LEFT_LITTLE) & PDR_BITS2_RESERVED_LITTLE); } - bfd_h_put_8 (abfd, intern->localoff, (bfd_byte *) ext->p_localoff); + H_PUT_8 (abfd, intern->localoff, ext->p_localoff); #endif #ifdef TEST @@ -458,23 +469,20 @@ ecoff_swap_pdr_in (abfd, ext_copy, intern) *ext = *(struct pdr_ext *) ext_copy; - intern->adr = ecoff_get_off (abfd, (bfd_byte *)ext->p_adr); - intern->isym = bfd_h_get_32 (abfd, (bfd_byte *)ext->p_isym); - intern->iline = bfd_h_get_32 (abfd, (bfd_byte *)ext->p_iline); - intern->regmask = bfd_h_get_32 (abfd, (bfd_byte *)ext->p_regmask); - intern->regoffset = bfd_h_get_signed_32 (abfd, - (bfd_byte *)ext->p_regoffset); - intern->iopt = bfd_h_get_signed_32 (abfd, (bfd_byte *)ext->p_iopt); - intern->fregmask = bfd_h_get_32 (abfd, (bfd_byte *)ext->p_fregmask); - intern->fregoffset = bfd_h_get_signed_32 (abfd, - (bfd_byte *)ext->p_fregoffset); - intern->frameoffset = bfd_h_get_signed_32 (abfd, - (bfd_byte *)ext->p_frameoffset); - intern->framereg = bfd_h_get_16 (abfd, (bfd_byte *)ext->p_framereg); - intern->pcreg = bfd_h_get_16 (abfd, (bfd_byte *)ext->p_pcreg); - intern->lnLow = bfd_h_get_32 (abfd, (bfd_byte *)ext->p_lnLow); - intern->lnHigh = bfd_h_get_32 (abfd, (bfd_byte *)ext->p_lnHigh); - intern->cbLineOffset = ecoff_get_off (abfd, (bfd_byte *)ext->p_cbLineOffset); + intern->adr = ECOFF_GET_OFF (abfd, ext->p_adr); + intern->isym = H_GET_32 (abfd, ext->p_isym); + intern->iline = H_GET_32 (abfd, ext->p_iline); + intern->regmask = H_GET_32 (abfd, ext->p_regmask); + intern->regoffset = H_GET_S32 (abfd, ext->p_regoffset); + intern->iopt = H_GET_S32 (abfd, ext->p_iopt); + intern->fregmask = H_GET_32 (abfd, ext->p_fregmask); + intern->fregoffset = H_GET_S32 (abfd, ext->p_fregoffset); + intern->frameoffset = H_GET_S32 (abfd, ext->p_frameoffset); + intern->framereg = H_GET_16 (abfd, ext->p_framereg); + intern->pcreg = H_GET_16 (abfd, ext->p_pcreg); + intern->lnLow = H_GET_32 (abfd, ext->p_lnLow); + intern->lnHigh = H_GET_32 (abfd, ext->p_lnHigh); + intern->cbLineOffset = ECOFF_GET_OFF (abfd, ext->p_cbLineOffset); #ifdef TEST if (memcmp ((char *)ext, (char *)intern, sizeof (*intern)) != 0) @@ -493,22 +501,23 @@ ecoff_swap_pdr_out (abfd, intern_copy, ext_ptr) struct pdr_ext *ext = (struct pdr_ext *) ext_ptr; PDR intern[1]; - *intern = *intern_copy; /* Make it reasonable to do in-place. */ - - ecoff_put_off (abfd, intern->adr, (bfd_byte *)ext->p_adr); - bfd_h_put_32 (abfd, intern->isym, (bfd_byte *)ext->p_isym); - bfd_h_put_32 (abfd, intern->iline, (bfd_byte *)ext->p_iline); - bfd_h_put_32 (abfd, intern->regmask, (bfd_byte *)ext->p_regmask); - bfd_h_put_32 (abfd, intern->regoffset, (bfd_byte *)ext->p_regoffset); - bfd_h_put_32 (abfd, intern->iopt, (bfd_byte *)ext->p_iopt); - bfd_h_put_32 (abfd, intern->fregmask, (bfd_byte *)ext->p_fregmask); - bfd_h_put_32 (abfd, intern->fregoffset, (bfd_byte *)ext->p_fregoffset); - bfd_h_put_32 (abfd, intern->frameoffset, (bfd_byte *)ext->p_frameoffset); - bfd_h_put_16 (abfd, intern->framereg, (bfd_byte *)ext->p_framereg); - bfd_h_put_16 (abfd, intern->pcreg, (bfd_byte *)ext->p_pcreg); - bfd_h_put_32 (abfd, intern->lnLow, (bfd_byte *)ext->p_lnLow); - bfd_h_put_32 (abfd, intern->lnHigh, (bfd_byte *)ext->p_lnHigh); - ecoff_put_off (abfd, intern->cbLineOffset, (bfd_byte *)ext->p_cbLineOffset); + /* Make it reasonable to do in-place. */ + *intern = *intern_copy; + + ECOFF_PUT_OFF (abfd, intern->adr, ext->p_adr); + H_PUT_32 (abfd, intern->isym, ext->p_isym); + H_PUT_32 (abfd, intern->iline, ext->p_iline); + H_PUT_32 (abfd, intern->regmask, ext->p_regmask); + H_PUT_32 (abfd, intern->regoffset, ext->p_regoffset); + H_PUT_32 (abfd, intern->iopt, ext->p_iopt); + H_PUT_32 (abfd, intern->fregmask, ext->p_fregmask); + H_PUT_32 (abfd, intern->fregoffset, ext->p_fregoffset); + H_PUT_32 (abfd, intern->frameoffset, ext->p_frameoffset); + H_PUT_16 (abfd, intern->framereg, ext->p_framereg); + H_PUT_16 (abfd, intern->pcreg, ext->p_pcreg); + H_PUT_32 (abfd, intern->lnLow, ext->p_lnLow); + H_PUT_32 (abfd, intern->lnHigh, ext->p_lnHigh); + ECOFF_PUT_OFF (abfd, intern->cbLineOffset, ext->p_cbLineOffset); #ifdef TEST if (memcmp ((char *)ext, (char *)intern, sizeof (*intern)) != 0) @@ -529,36 +538,44 @@ ecoff_swap_sym_in (abfd, ext_copy, intern) *ext = *(struct sym_ext *) ext_copy; - intern->iss = bfd_h_get_32 (abfd, (bfd_byte *)ext->s_iss); - intern->value = ecoff_get_off (abfd, (bfd_byte *)ext->s_value); - - /* now the fun stuff... */ - if (bfd_header_big_endian (abfd)) { - intern->st = (ext->s_bits1[0] & SYM_BITS1_ST_BIG) - >> SYM_BITS1_ST_SH_BIG; - intern->sc = ((ext->s_bits1[0] & SYM_BITS1_SC_BIG) - << SYM_BITS1_SC_SH_LEFT_BIG) - | ((ext->s_bits2[0] & SYM_BITS2_SC_BIG) - >> SYM_BITS2_SC_SH_BIG); - intern->reserved = 0 != (ext->s_bits2[0] & SYM_BITS2_RESERVED_BIG); - intern->index = ((ext->s_bits2[0] & SYM_BITS2_INDEX_BIG) - << SYM_BITS2_INDEX_SH_LEFT_BIG) - | (ext->s_bits3[0] << SYM_BITS3_INDEX_SH_LEFT_BIG) - | (ext->s_bits4[0] << SYM_BITS4_INDEX_SH_LEFT_BIG); - } else { - intern->st = (ext->s_bits1[0] & SYM_BITS1_ST_LITTLE) - >> SYM_BITS1_ST_SH_LITTLE; - intern->sc = ((ext->s_bits1[0] & SYM_BITS1_SC_LITTLE) - >> SYM_BITS1_SC_SH_LITTLE) - | ((ext->s_bits2[0] & SYM_BITS2_SC_LITTLE) - << SYM_BITS2_SC_SH_LEFT_LITTLE); - intern->reserved = 0 != (ext->s_bits2[0] & SYM_BITS2_RESERVED_LITTLE); - intern->index = ((ext->s_bits2[0] & SYM_BITS2_INDEX_LITTLE) - >> SYM_BITS2_INDEX_SH_LITTLE) - | (ext->s_bits3[0] << SYM_BITS3_INDEX_SH_LEFT_LITTLE) - | ((unsigned int) ext->s_bits4[0] - << SYM_BITS4_INDEX_SH_LEFT_LITTLE); - } + intern->iss = H_GET_32 (abfd, ext->s_iss); + intern->value = ECOFF_GET_OFF (abfd, ext->s_value); + +#if defined (ECOFF_64) || defined (ECOFF_SIGNED_64) + if (intern->iss == (signed long) 0xffffffff) + intern->iss = -1; +#endif + + /* Now the fun stuff... */ + if (bfd_header_big_endian (abfd)) + { + intern->st = (ext->s_bits1[0] & SYM_BITS1_ST_BIG) + >> SYM_BITS1_ST_SH_BIG; + intern->sc = ((ext->s_bits1[0] & SYM_BITS1_SC_BIG) + << SYM_BITS1_SC_SH_LEFT_BIG) + | ((ext->s_bits2[0] & SYM_BITS2_SC_BIG) + >> SYM_BITS2_SC_SH_BIG); + intern->reserved = 0 != (ext->s_bits2[0] & SYM_BITS2_RESERVED_BIG); + intern->index = ((ext->s_bits2[0] & SYM_BITS2_INDEX_BIG) + << SYM_BITS2_INDEX_SH_LEFT_BIG) + | (ext->s_bits3[0] << SYM_BITS3_INDEX_SH_LEFT_BIG) + | (ext->s_bits4[0] << SYM_BITS4_INDEX_SH_LEFT_BIG); + } + else + { + intern->st = (ext->s_bits1[0] & SYM_BITS1_ST_LITTLE) + >> SYM_BITS1_ST_SH_LITTLE; + intern->sc = ((ext->s_bits1[0] & SYM_BITS1_SC_LITTLE) + >> SYM_BITS1_SC_SH_LITTLE) + | ((ext->s_bits2[0] & SYM_BITS2_SC_LITTLE) + << SYM_BITS2_SC_SH_LEFT_LITTLE); + intern->reserved = 0 != (ext->s_bits2[0] & SYM_BITS2_RESERVED_LITTLE); + intern->index = ((ext->s_bits2[0] & SYM_BITS2_INDEX_LITTLE) + >> SYM_BITS2_INDEX_SH_LITTLE) + | (ext->s_bits3[0] << SYM_BITS3_INDEX_SH_LEFT_LITTLE) + | ((unsigned int) ext->s_bits4[0] + << SYM_BITS4_INDEX_SH_LEFT_LITTLE); + } #ifdef TEST if (memcmp ((char *)ext, (char *)intern, sizeof (*intern)) != 0) @@ -577,37 +594,41 @@ ecoff_swap_sym_out (abfd, intern_copy, ext_ptr) struct sym_ext *ext = (struct sym_ext *) ext_ptr; SYMR intern[1]; - *intern = *intern_copy; /* Make it reasonable to do in-place. */ - - bfd_h_put_32 (abfd, intern->iss, (bfd_byte *)ext->s_iss); - ecoff_put_off (abfd, intern->value, (bfd_byte *)ext->s_value); - - /* now the fun stuff... */ - if (bfd_header_big_endian (abfd)) { - ext->s_bits1[0] = (((intern->st << SYM_BITS1_ST_SH_BIG) - & SYM_BITS1_ST_BIG) - | ((intern->sc >> SYM_BITS1_SC_SH_LEFT_BIG) - & SYM_BITS1_SC_BIG)); - ext->s_bits2[0] = (((intern->sc << SYM_BITS2_SC_SH_BIG) - & SYM_BITS2_SC_BIG) - | (intern->reserved ? SYM_BITS2_RESERVED_BIG : 0) - | ((intern->index >> SYM_BITS2_INDEX_SH_LEFT_BIG) - & SYM_BITS2_INDEX_BIG)); - ext->s_bits3[0] = (intern->index >> SYM_BITS3_INDEX_SH_LEFT_BIG) & 0xff; - ext->s_bits4[0] = (intern->index >> SYM_BITS4_INDEX_SH_LEFT_BIG) & 0xff; - } else { - ext->s_bits1[0] = (((intern->st << SYM_BITS1_ST_SH_LITTLE) - & SYM_BITS1_ST_LITTLE) - | ((intern->sc << SYM_BITS1_SC_SH_LITTLE) - & SYM_BITS1_SC_LITTLE)); - ext->s_bits2[0] = (((intern->sc >> SYM_BITS2_SC_SH_LEFT_LITTLE) - & SYM_BITS2_SC_LITTLE) - | (intern->reserved ? SYM_BITS2_RESERVED_LITTLE : 0) - | ((intern->index << SYM_BITS2_INDEX_SH_LITTLE) - & SYM_BITS2_INDEX_LITTLE)); - ext->s_bits3[0] = (intern->index >> SYM_BITS3_INDEX_SH_LEFT_LITTLE) & 0xff; - ext->s_bits4[0] = (intern->index >> SYM_BITS4_INDEX_SH_LEFT_LITTLE) & 0xff; - } + /* Make it reasonable to do in-place. */ + *intern = *intern_copy; + + H_PUT_32 (abfd, intern->iss, ext->s_iss); + ECOFF_PUT_OFF (abfd, intern->value, ext->s_value); + + /* Now the fun stuff... */ + if (bfd_header_big_endian (abfd)) + { + ext->s_bits1[0] = (((intern->st << SYM_BITS1_ST_SH_BIG) + & SYM_BITS1_ST_BIG) + | ((intern->sc >> SYM_BITS1_SC_SH_LEFT_BIG) + & SYM_BITS1_SC_BIG)); + ext->s_bits2[0] = (((intern->sc << SYM_BITS2_SC_SH_BIG) + & SYM_BITS2_SC_BIG) + | (intern->reserved ? SYM_BITS2_RESERVED_BIG : 0) + | ((intern->index >> SYM_BITS2_INDEX_SH_LEFT_BIG) + & SYM_BITS2_INDEX_BIG)); + ext->s_bits3[0] = (intern->index >> SYM_BITS3_INDEX_SH_LEFT_BIG) & 0xff; + ext->s_bits4[0] = (intern->index >> SYM_BITS4_INDEX_SH_LEFT_BIG) & 0xff; + } + else + { + ext->s_bits1[0] = (((intern->st << SYM_BITS1_ST_SH_LITTLE) + & SYM_BITS1_ST_LITTLE) + | ((intern->sc << SYM_BITS1_SC_SH_LITTLE) + & SYM_BITS1_SC_LITTLE)); + ext->s_bits2[0] = (((intern->sc >> SYM_BITS2_SC_SH_LEFT_LITTLE) + & SYM_BITS2_SC_LITTLE) + | (intern->reserved ? SYM_BITS2_RESERVED_LITTLE : 0) + | ((intern->index << SYM_BITS2_INDEX_SH_LITTLE) + & SYM_BITS2_INDEX_LITTLE)); + ext->s_bits3[0] = (intern->index >> SYM_BITS3_INDEX_SH_LEFT_LITTLE) & 0xff; + ext->s_bits4[0] = (intern->index >> SYM_BITS4_INDEX_SH_LEFT_LITTLE) & 0xff; + } #ifdef TEST if (memcmp ((char *)ext, (char *)intern, sizeof (*intern)) != 0) @@ -627,23 +648,26 @@ ecoff_swap_ext_in (abfd, ext_copy, intern) *ext = *(struct ext_ext *) ext_copy; - /* now the fun stuff... */ - if (bfd_header_big_endian (abfd)) { - intern->jmptbl = 0 != (ext->es_bits1[0] & EXT_BITS1_JMPTBL_BIG); - intern->cobol_main = 0 != (ext->es_bits1[0] & EXT_BITS1_COBOL_MAIN_BIG); - intern->weakext = 0 != (ext->es_bits1[0] & EXT_BITS1_WEAKEXT_BIG); - } else { - intern->jmptbl = 0 != (ext->es_bits1[0] & EXT_BITS1_JMPTBL_LITTLE); - intern->cobol_main = 0 != (ext->es_bits1[0] & EXT_BITS1_COBOL_MAIN_LITTLE); - intern->weakext = 0 != (ext->es_bits1[0] & EXT_BITS1_WEAKEXT_LITTLE); - } + /* Now the fun stuff... */ + if (bfd_header_big_endian (abfd)) + { + intern->jmptbl = 0 != (ext->es_bits1[0] & EXT_BITS1_JMPTBL_BIG); + intern->cobol_main = 0 != (ext->es_bits1[0] & EXT_BITS1_COBOL_MAIN_BIG); + intern->weakext = 0 != (ext->es_bits1[0] & EXT_BITS1_WEAKEXT_BIG); + } + else + { + intern->jmptbl = 0 != (ext->es_bits1[0] & EXT_BITS1_JMPTBL_LITTLE); + intern->cobol_main = 0 != (ext->es_bits1[0] & EXT_BITS1_COBOL_MAIN_LITTLE); + intern->weakext = 0 != (ext->es_bits1[0] & EXT_BITS1_WEAKEXT_LITTLE); + } intern->reserved = 0; #if defined (ECOFF_32) || defined (ECOFF_SIGNED_32) - intern->ifd = bfd_h_get_signed_16 (abfd, (bfd_byte *)ext->es_ifd); + intern->ifd = H_GET_S16 (abfd, ext->es_ifd); #endif #if defined (ECOFF_64) || defined (ECOFF_SIGNED_64) - intern->ifd = bfd_h_get_signed_32 (abfd, (bfd_byte *)ext->es_ifd); + intern->ifd = H_GET_S32 (abfd, ext->es_ifd); #endif ecoff_swap_sym_in (abfd, &ext->es_asym, &intern->asym); @@ -665,34 +689,38 @@ ecoff_swap_ext_out (abfd, intern_copy, ext_ptr) struct ext_ext *ext = (struct ext_ext *) ext_ptr; EXTR intern[1]; - *intern = *intern_copy; /* Make it reasonable to do in-place. */ + /* Make it reasonable to do in-place. */ + *intern = *intern_copy; - /* now the fun stuff... */ - if (bfd_header_big_endian (abfd)) { - ext->es_bits1[0] = ((intern->jmptbl ? EXT_BITS1_JMPTBL_BIG : 0) - | (intern->cobol_main ? EXT_BITS1_COBOL_MAIN_BIG : 0) - | (intern->weakext ? EXT_BITS1_WEAKEXT_BIG : 0)); - ext->es_bits2[0] = 0; + /* Now the fun stuff... */ + if (bfd_header_big_endian (abfd)) + { + ext->es_bits1[0] = ((intern->jmptbl ? EXT_BITS1_JMPTBL_BIG : 0) + | (intern->cobol_main ? EXT_BITS1_COBOL_MAIN_BIG : 0) + | (intern->weakext ? EXT_BITS1_WEAKEXT_BIG : 0)); + ext->es_bits2[0] = 0; #if defined (ECOFF_64) || defined (ECOFF_SIGNED_64) - ext->es_bits2[1] = 0; - ext->es_bits2[2] = 0; -#endif - } else { - ext->es_bits1[0] = ((intern->jmptbl ? EXT_BITS1_JMPTBL_LITTLE : 0) - | (intern->cobol_main ? EXT_BITS1_COBOL_MAIN_LITTLE : 0) - | (intern->weakext ? EXT_BITS1_WEAKEXT_LITTLE : 0)); - ext->es_bits2[0] = 0; + ext->es_bits2[1] = 0; + ext->es_bits2[2] = 0; +#endif + } + else + { + ext->es_bits1[0] = ((intern->jmptbl ? EXT_BITS1_JMPTBL_LITTLE : 0) + | (intern->cobol_main ? EXT_BITS1_COBOL_MAIN_LITTLE : 0) + | (intern->weakext ? EXT_BITS1_WEAKEXT_LITTLE : 0)); + ext->es_bits2[0] = 0; #if defined (ECOFF_64) || defined (ECOFF_SIGNED_64) - ext->es_bits2[1] = 0; - ext->es_bits2[2] = 0; + ext->es_bits2[1] = 0; + ext->es_bits2[2] = 0; #endif - } + } #if defined (ECOFF_32) || defined (ECOFF_SIGNED_32) - bfd_h_put_signed_16 (abfd, intern->ifd, (bfd_byte *)ext->es_ifd); + H_PUT_S16 (abfd, intern->ifd, ext->es_ifd); #endif #if defined (ECOFF_64) || defined (ECOFF_SIGNED_64) - bfd_h_put_signed_32 (abfd, intern->ifd, (bfd_byte *)ext->es_ifd); + H_PUT_S32 (abfd, intern->ifd, ext->es_ifd); #endif ecoff_swap_sym_out (abfd, &intern->asym, &ext->es_asym); @@ -713,7 +741,7 @@ ecoff_swap_rfd_in (abfd, ext_ptr, intern) { struct rfd_ext *ext = (struct rfd_ext *) ext_ptr; - *intern = bfd_h_get_32 (abfd, (bfd_byte *)ext->rfd); + *intern = H_GET_32 (abfd, ext->rfd); #ifdef TEST if (memcmp ((char *)ext, (char *)intern, sizeof (*intern)) != 0) @@ -731,7 +759,7 @@ ecoff_swap_rfd_out (abfd, intern, ext_ptr) { struct rfd_ext *ext = (struct rfd_ext *) ext_ptr; - bfd_h_put_32 (abfd, *intern, (bfd_byte *)ext->rfd); + H_PUT_32 (abfd, *intern, ext->rfd); #ifdef TEST if (memcmp ((char *)ext, (char *)intern, sizeof (*intern)) != 0) @@ -772,7 +800,7 @@ ecoff_swap_opt_in (abfd, ext_copy, intern) _bfd_ecoff_swap_rndx_in (bfd_header_big_endian (abfd), &ext->o_rndx, &intern->rndx); - intern->offset = bfd_h_get_32 (abfd, (bfd_byte *) ext->o_offset); + intern->offset = H_GET_32 (abfd, ext->o_offset); #ifdef TEST if (memcmp ((char *)ext, (char *)intern, sizeof (*intern)) != 0) @@ -791,7 +819,8 @@ ecoff_swap_opt_out (abfd, intern_copy, ext_ptr) struct opt_ext *ext = (struct opt_ext *) ext_ptr; OPTR intern[1]; - *intern = *intern_copy; /* Make it reasonable to do in-place. */ + /* Make it reasonable to do in-place. */ + *intern = *intern_copy; if (bfd_header_big_endian (abfd)) { @@ -811,7 +840,7 @@ ecoff_swap_opt_out (abfd, intern_copy, ext_ptr) _bfd_ecoff_swap_rndx_out (bfd_header_big_endian (abfd), &intern->rndx, &ext->o_rndx); - bfd_h_put_32 (abfd, intern->value, (bfd_byte *) ext->o_offset); + H_PUT_32 (abfd, intern->value, ext->o_offset); #ifdef TEST if (memcmp ((char *)ext, (char *)intern, sizeof (*intern)) != 0) @@ -831,8 +860,8 @@ ecoff_swap_dnr_in (abfd, ext_copy, intern) *ext = *(struct dnr_ext *) ext_copy; - intern->rfd = bfd_h_get_32 (abfd, (bfd_byte *) ext->d_rfd); - intern->index = bfd_h_get_32 (abfd, (bfd_byte *) ext->d_index); + intern->rfd = H_GET_32 (abfd, ext->d_rfd); + intern->index = H_GET_32 (abfd, ext->d_index); #ifdef TEST if (memcmp ((char *)ext, (char *)intern, sizeof (*intern)) != 0) @@ -851,10 +880,11 @@ ecoff_swap_dnr_out (abfd, intern_copy, ext_ptr) struct dnr_ext *ext = (struct dnr_ext *) ext_ptr; DNR intern[1]; - *intern = *intern_copy; /* Make it reasonable to do in-place. */ + /* Make it reasonable to do in-place. */ + *intern = *intern_copy; - bfd_h_put_32 (abfd, intern->rfd, (bfd_byte *) ext->d_rfd); - bfd_h_put_32 (abfd, intern->index, (bfd_byte *) ext->d_index); + H_PUT_32 (abfd, intern->rfd, ext->d_rfd); + H_PUT_32 (abfd, intern->index, ext->d_index); #ifdef TEST if (memcmp ((char *)ext, (char *)intern, sizeof (*intern)) != 0) |