2001-03-20 Michael Chastain <chastain@redhat.com>
[deliverable/binutils-gdb.git] / bfd / pe-mips.c
index 9b89369b37b60e0911c62489581f7a014cd47e82..62395ce956b6fdf2c6a9e1dace956ef20e2b3b3e 100644 (file)
@@ -1,5 +1,6 @@
 /* BFD back-end for MIPS PE COFF files.
-   Copyright (C) 1990, 91, 92, 93, 94, 95, 96, 97, 98, 99, 2000 Free Software Foundation, Inc.
+   Copyright 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+   2000, 2001 Free Software Foundation, Inc.
    Modified from coff-i386.c by DJ Delorie, dj@cygnus.com
 
 This file is part of BFD, the Binary File Descriptor library.
@@ -34,7 +35,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 #include "libcoff.h"
 
-static bfd_reloc_status_type coff_mips_reloc 
+static bfd_reloc_status_type coff_mips_reloc
   PARAMS ((bfd *, arelent *, asymbol *, PTR, asection *, bfd *, char **));
 static reloc_howto_type *coff_mips_rtype_to_howto
   PARAMS ((bfd *, asection *, struct internal_reloc *,
@@ -166,21 +167,21 @@ coff_mips_reloc (abfd, reloc_entry, symbol, data, input_section, output_bfd,
 
 #ifdef COFF_WITH_PE
 /* Return true if this relocation should
-   appear in the output .reloc section. */
+   appear in the output .reloc section.  */
 
 static boolean in_reloc_p(abfd, howto)
      bfd * abfd ATTRIBUTE_UNUSED;
      reloc_howto_type *howto;
 {
   return ! howto->pc_relative && howto->type != MIPS_R_RVA;
-}     
+}
 #endif
 
 #ifndef PCRELOFFSET
 #define PCRELOFFSET false
 #endif
 
-static reloc_howto_type howto_table[] = 
+static reloc_howto_type howto_table[] =
 {
   /* Reloc type 0 is ignored.  The reloc reading code ensures that
      this is a reference to the .abs section, which will cause
@@ -336,33 +337,33 @@ static reloc_howto_type howto_table[] =
   EMPTY_HOWTO (31),
   EMPTY_HOWTO (32),
   EMPTY_HOWTO (33),
-  HOWTO (MIPS_R_RVA,            /* type */                                 
-        0,                     /* rightshift */                           
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */ 
-        32,                    /* bitsize */                   
-        false,                 /* pc_relative */                          
-        0,                     /* bitpos */                               
+  HOWTO (MIPS_R_RVA,            /* type */
+        0,                     /* rightshift */
+        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        32,                    /* bitsize */
+        false,                 /* pc_relative */
+        0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
-        coff_mips_reloc,       /* special_function */                     
-        "rva32",               /* name */                                 
-        true,                  /* partial_inplace */                      
-        0xffffffff,            /* src_mask */                             
-        0xffffffff,            /* dst_mask */                             
+        coff_mips_reloc,       /* special_function */
+        "rva32",               /* name */
+        true,                  /* partial_inplace */
+        0xffffffff,            /* src_mask */
+        0xffffffff,            /* dst_mask */
         false),                /* pcrel_offset */
   EMPTY_HOWTO (35),
   EMPTY_HOWTO (36),
-  HOWTO (MIPS_R_PAIR,           /* type */                                 
-        0,                     /* rightshift */                           
-        2,                     /* size (0 = byte, 1 = short, 2 = long) */ 
-        32,                    /* bitsize */                   
-        false,                 /* pc_relative */                          
-        0,                     /* bitpos */                               
+  HOWTO (MIPS_R_PAIR,           /* type */
+        0,                     /* rightshift */
+        2,                     /* size (0 = byte, 1 = short, 2 = long) */
+        32,                    /* bitsize */
+        false,                 /* pc_relative */
+        0,                     /* bitpos */
         complain_overflow_bitfield, /* complain_on_overflow */
-        coff_mips_reloc,       /* special_function */                     
-        "PAIR",                /* name */                                 
-        true,                  /* partial_inplace */                      
-        0xffffffff,            /* src_mask */                             
-        0xffffffff,            /* dst_mask */                             
+        coff_mips_reloc,       /* special_function */
+        "PAIR",                /* name */
+        true,                  /* partial_inplace */
+        0xffffffff,            /* src_mask */
+        0xffffffff,            /* dst_mask */
         false),                /* pcrel_offset */
 };
 
@@ -408,7 +409,6 @@ static reloc_howto_type howto_table[] =
       cache_ptr->addend += asect->vma;                         \
   }
 
-
 /* Convert an rtype to howto for the COFF backend linker.  */
 
 static reloc_howto_type *
@@ -439,7 +439,7 @@ coff_mips_rtype_to_howto (abfd, sec, rel, h, sym, addendp)
         function will be adding in the final value of the symbol.  We
         need to subtract out the current size in order to get the
         correct result.  */
+
       BFD_ASSERT (h != NULL);
 
 #ifndef COFF_WITH_PE
@@ -458,7 +458,7 @@ coff_mips_rtype_to_howto (abfd, sec, rel, h, sym, addendp)
   /* If the output symbol is common (in which case this must be a
      relocateable link), we need to add in the final size of the
      common symbol.  */
-  if (h != NULL && h->root.type == bfd_link_hash_common) 
+  if (h != NULL && h->root.type == bfd_link_hash_common)
     *addendp += h->root.u.c.size;
 #endif
 
@@ -488,11 +488,8 @@ coff_mips_rtype_to_howto (abfd, sec, rel, h, sym, addendp)
 
 #define coff_rtype_to_howto coff_mips_rtype_to_howto
 
-
 #define coff_bfd_reloc_type_lookup coff_mips_reloc_type_lookup
 
-
-
 /* Get the howto structure for a generic reloc type.  */
 
 static reloc_howto_type *
@@ -577,7 +574,7 @@ mips_swap_reloc_in (abfd, src, dst)
     reloc_dst->r_offset = reloc_dst->r_symndx;
     if (reloc_dst->r_offset & 0x8000)
       reloc_dst->r_offset -= 0x10000;
-    /*printf("dj: pair offset is %08x\n", reloc_dst->r_offset);*/
+    /*printf ("dj: pair offset is %08x\n", reloc_dst->r_offset);*/
     reloc_dst->r_symndx = pair_prev.r_symndx;
     break;
   }
@@ -654,7 +651,7 @@ coff_pe_mips_relocate_section (output_bfd, info, input_bfd,
 
   if (info->relocateable)
   {
-    (*_bfd_error_handler)(_("\
+    (*_bfd_error_handler) (_("\
 %s: `ld -r' not supported with PE MIPS objects\n"),
                          bfd_get_filename (input_bfd));
     bfd_set_error (bfd_error_bad_value);
@@ -665,7 +662,7 @@ coff_pe_mips_relocate_section (output_bfd, info, input_bfd,
              == output_bfd->xvec->byteorder);
 
 #if 0
-  printf("dj: relocate %s(%s) %08x\n",
+  printf ("dj: relocate %s(%s) %08x\n",
         input_bfd->filename, input_section->name,
         input_section->output_section->vma + input_section->output_offset);
 #endif
@@ -700,7 +697,7 @@ coff_pe_mips_relocate_section (output_bfd, info, input_bfd,
          sym = NULL;
        }
       else
-       {    
+       {
          h = obj_coff_sym_hashes (input_bfd)[symndx];
          sym = syms + symndx;
        }
@@ -715,7 +712,6 @@ coff_pe_mips_relocate_section (output_bfd, info, input_bfd,
       else
        addend = 0;
 
-
       howto = bfd_coff_rtype_to_howto (input_bfd, input_section, rel, h,
                                       sym, &addend);
       if (howto == NULL)
@@ -779,7 +775,7 @@ coff_pe_mips_relocate_section (output_bfd, info, input_bfd,
       src = rel->r_vaddr + input_section->output_section->vma
        + input_section->output_offset;
 #if 0
-      printf("dj: reloc %02x %-8s a=%08x/%08x(%08x) v=%08x+%08x %s\n",
+      printf ("dj: reloc %02x %-8s a=%08x/%08x(%08x) v=%08x+%08x %s\n",
             rel->r_type, howto_table[rel->r_type].name,
             src, rel->r_vaddr, *(unsigned long *)mem, val, rel->r_offset,
             h?h->root.root.string:"(none)");
@@ -791,7 +787,7 @@ coff_pe_mips_relocate_section (output_bfd, info, input_bfd,
           val = VMA of what we need to refer to
       */
 
-#define UI(x) (*_bfd_error_handler)(_("%s: unimplemented %s\n"), \
+#define UI(x) (*_bfd_error_handler) (_("%s: unimplemented %s\n"), \
                                    bfd_get_filename (input_bfd), x); \
              bfd_set_error (bfd_error_bad_value);
 
@@ -807,7 +803,7 @@ coff_pe_mips_relocate_section (output_bfd, info, input_bfd,
 
        case MIPS_R_REFWORD:
          tmp = bfd_get_32(input_bfd, mem);
-         /* printf("refword: src=%08x targ=%08x+%08x\n", src, tmp, val); */
+         /* printf ("refword: src=%08x targ=%08x+%08x\n", src, tmp, val); */
          tmp += val;
          bfd_put_32(input_bfd, tmp, mem);
          break;
@@ -817,7 +813,7 @@ coff_pe_mips_relocate_section (output_bfd, info, input_bfd,
          targ = val + (tmp&0x03ffffff)*4;
          if ((src & 0xf0000000) != (targ & 0xf0000000))
            {
-             (*_bfd_error_handler)(_("%s: jump too far away\n"),
+             (*_bfd_error_handler) (_("%s: jump too far away\n"),
                                    bfd_get_filename (input_bfd));
              bfd_set_error (bfd_error_bad_value);
              return false;
@@ -844,7 +840,7 @@ coff_pe_mips_relocate_section (output_bfd, info, input_bfd,
              targ = val + low + ((tmp & 0xffff) << 16);
              break;
            default:
-             (*_bfd_error_handler)(_("%s: bad pair/reflo after refhi\n"),
+             (*_bfd_error_handler) (_("%s: bad pair/reflo after refhi\n"),
                                    bfd_get_filename (input_bfd));
              bfd_set_error (bfd_error_bad_value);
              return false;
@@ -857,7 +853,7 @@ coff_pe_mips_relocate_section (output_bfd, info, input_bfd,
        case MIPS_R_REFLO:
          tmp = bfd_get_32(input_bfd, mem);
          targ = val + (tmp & 0xffff);
-         /* printf("refword: src=%08x targ=%08x\n", src, targ); */
+         /* printf ("refword: src=%08x targ=%08x\n", src, targ); */
          tmp &= 0xffff0000;
          tmp |= targ & 0xffff;
          bfd_put_32(input_bfd, tmp, mem);
@@ -886,7 +882,7 @@ coff_pe_mips_relocate_section (output_bfd, info, input_bfd,
 
        case MIPS_R_RVA:
          tmp = bfd_get_32 (input_bfd, mem);
-         /* printf("rva: src=%08x targ=%08x+%08x\n", src, tmp, val); */
+         /* printf ("rva: src=%08x targ=%08x+%08x\n", src, tmp, val); */
          tmp += val
            - pe_data (input_section->output_section->owner)->pe_opthdr.ImageBase;
          bfd_put_32 (input_bfd, tmp, mem);
@@ -974,7 +970,7 @@ const bfd_target
      bfd_getl32, bfd_getl_signed_32, bfd_putl32,
      bfd_getl16, bfd_getl_signed_16, bfd_putl16, /* hdrs */
 
-/* Note that we allow an object file to be treated as a core file as well. */
+/* Note that we allow an object file to be treated as a core file as well.  */
     {_bfd_dummy_target, coff_object_p, /* bfd_check_format */
        bfd_generic_archive_p, coff_object_p},
     {bfd_false, coff_mkobject, _bfd_generic_mkarchive, /* bfd_set_format */
@@ -993,6 +989,6 @@ const bfd_target
      BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic),
 
   NULL,
-  
+
   COFF_SWAP_TABLE
 };
This page took 0.029081 seconds and 4 git commands to generate.