* config/tc-m68k.c: Convert to C90. Remove redundant
[deliverable/binutils-gdb.git] / gas / config / tc-fr30.c
index c61a8affedd5d9f23ed82dfa6ec46eb256d3a1c2..b47903e4486a18dba717fb88e520c5f18d453622 100644 (file)
@@ -1,5 +1,6 @@
 /* tc-fr30.c -- Assembler for the Fujitsu FR30.
-   Copyright (C) 1998, 1999, 2000 Free Software Foundation.
+   Copyright 1998, 1999, 2000, 2001, 2002, 2003
+   Free Software Foundation, Inc.
 
    This file is part of GAS, the GNU Assembler.
 
@@ -19,8 +20,8 @@
    Boston, MA 02111-1307, USA.  */
 
 #include <stdio.h>
-#include <ctype.h>
 #include "as.h"
+#include "safe-ctype.h"
 #include "subsegs.h"
 #include "symcat.h"
 #include "opcodes/fr30-desc.h"
@@ -66,8 +67,8 @@ size_t md_longopts_size = sizeof (md_longopts);
 
 int
 md_parse_option (c, arg)
-     int    c;
-     char * arg;
+     int c ATTRIBUTE_UNUSED;
+     char *arg ATTRIBUTE_UNUSED;
 {
   switch (c)
     {
@@ -95,10 +96,6 @@ const pseudo_typeS md_pseudo_table[] =
 void
 md_begin ()
 {
-  flagword applicable;
-  segT     seg;
-  subsegT  subseg;
-
   /* Initialize the `cgen' interface.  */
 
   /* Set the machine number and endian.  */
@@ -114,12 +111,11 @@ md_begin ()
 
 void
 md_assemble (str)
-     char * str;
+     char *str;
 {
   static int last_insn_had_delay_slot = 0;
   fr30_insn insn;
-  char *    errmsg;
-  char *    str2 = NULL;
+  char *errmsg;
 
   /* Initialize GAS's cgen interface for a new instruction.  */
   gas_cgen_init_parse ();
@@ -172,7 +168,7 @@ md_section_align (segment, size)
 
 symbolS *
 md_undefined_symbol (name)
-  char * name;
+  char *name ATTRIBUTE_UNUSED;
 {
   return 0;
 }
@@ -207,8 +203,10 @@ const relax_typeS md_relax_table[] =
   {0x2000000 - 1 - 2, -0x2000000 - 2, 4, 0 }
 };
 
+#if 0
 long
-fr30_relax_frag (fragP, stretch)
+fr30_relax_frag (segment, fragP, stretch)
+     segT    segment;
      fragS * fragP;
      long    stretch;
 {
@@ -235,7 +233,7 @@ fr30_relax_frag (fragP, stretch)
     }
   else
     {
-      growth = relax_frag (fragP, stretch);
+      growth = relax_frag (segment, fragP, stretch);
 
       /* Long jump on odd halfword boundary?  */
       if (fragP->fr_subtype == 2 && (address & 3) != 0)
@@ -247,6 +245,7 @@ fr30_relax_frag (fragP, stretch)
 
   return growth;
 }
+#endif
 
 /* Return an initial guess of the length by which a fragment must grow to
    hold a branch to reach its destination.
@@ -264,8 +263,6 @@ md_estimate_size_before_relax (fragP, segment)
      fragS * fragP;
      segT    segment;
 {
-  int    old_fr_fix = fragP->fr_fix;
-
   /* The only thing we have to handle here are symbols outside of the
      current segment.  They may be undefined or in a different segment in
      which case linker scripts may place them anywhere.
@@ -274,6 +271,10 @@ md_estimate_size_before_relax (fragP, segment)
 
   if (S_GET_SEGMENT (fragP->fr_symbol) != segment)
     {
+#if 0
+      int    old_fr_fix = fragP->fr_fix;
+#endif
+
       /* The symbol is undefined in this segment.
         Change the relaxation subtype to the max allowable and leave
         all further handling to md_convert_frag.  */
@@ -296,6 +297,7 @@ md_estimate_size_before_relax (fragP, segment)
 
       /* Mark this fragment as finished.  */
       frag_wane (fragP);
+      return fragP->fr_fix - old_fr_fix;
 #else
       {
        const CGEN_INSN * insn;
@@ -310,7 +312,7 @@ md_estimate_size_before_relax (fragP, segment)
            if ((strcmp (CGEN_INSN_MNEMONIC (insn),
                         CGEN_INSN_MNEMONIC (fragP->fr_cgen.insn))
                 == 0)
-               && CGEN_INSN_ATTR_VALUE (insn, CGEN_INSN_RELAX))
+               && CGEN_INSN_ATTR_VALUE (insn, CGEN_INSN_RELAXED))
              break;
          }
        if (i == 4)
@@ -322,7 +324,8 @@ md_estimate_size_before_relax (fragP, segment)
 #endif
     }
 
-  return (fragP->fr_var + fragP->fr_fix - old_fr_fix);
+  /* Return the size of the variable part of the frag.  */
+  return md_relax_table[fragP->fr_subtype].rlx_length;
 }
 
 /* *fragP has been relaxed to its final size, and now needs to have
@@ -334,9 +337,9 @@ md_estimate_size_before_relax (fragP, segment)
 
 void
 md_convert_frag (abfd, sec, fragP)
-  bfd *   abfd;
-  segT    sec;
-  fragS * fragP;
+  bfd *abfd ATTRIBUTE_UNUSED;
+  segT sec ATTRIBUTE_UNUSED;
+  fragS *fragP ATTRIBUTE_UNUSED;
 {
 #if 0
   char * opcode;
@@ -384,7 +387,6 @@ md_convert_frag (abfd, sec, fragP)
     {
       /* Address we want to reach in file space.  */
       target_address = S_GET_VALUE (fragP->fr_symbol) + fragP->fr_offset;
-      target_address += symbol_get_frag (fragP->fr_symbol)->fr_address;
       addend = (target_address - (opcode_address & -4)) >> 2;
     }
 
@@ -447,9 +449,9 @@ md_pcrel_from_section (fixP, sec)
 
 bfd_reloc_code_real_type
 md_cgen_lookup_reloc (insn, operand, fixP)
-     const CGEN_INSN *    insn;
-     const CGEN_OPERAND * operand;
-     fixS *               fixP;
+     const CGEN_INSN *insn ATTRIBUTE_UNUSED;
+     const CGEN_OPERAND *operand;
+     fixS *fixP;
 {
   switch (operand->type)
     {
@@ -468,21 +470,6 @@ md_cgen_lookup_reloc (insn, operand, fixP)
 
   return BFD_RELOC_NONE;
 }
-
-/* See whether we need to force a relocation into the output file.
-   This is used to force out switch and PC relative relocations when
-   relaxing.  */
-
-int
-fr30_force_relocation (fix)
-     fixS * fix;
-{
-  if (   fix->fx_r_type == BFD_RELOC_VTABLE_INHERIT
-      || fix->fx_r_type == BFD_RELOC_VTABLE_ENTRY)
-    return 1;
-
-  return 0;
-}
 \f
 /* Write a value out to the object file, using the appropriate endianness.  */
 
@@ -513,7 +500,6 @@ md_atof (type, litP, sizeP)
   int              prec;
   LITTLENUM_TYPE   words [MAX_LITTLENUMS];
   char *           t;
-  char *           atof_ieee ();
 
   switch (type)
     {
@@ -554,6 +540,8 @@ md_atof (type, litP, sizeP)
 }
 
 /* Worker function for fr30_is_colon_insn().  */
+static char restore_colon PARAMS ((int));
+
 static char
 restore_colon (advance_i_l_p_by)
      int advance_i_l_p_by;
@@ -612,7 +600,7 @@ fr30_is_colon_insn (start)
                continue;
 
              while (len --)
-               if (tolower (start [len]) != insn [len])
+               if (TOLOWER (start [len]) != insn [len])
                  break;
 
              if (len == -1)
@@ -639,24 +627,12 @@ fr30_is_colon_insn (start)
   return 0;
 }
 
-boolean
+bfd_boolean
 fr30_fix_adjustable (fixP)
    fixS * fixP;
 {
-  if (fixP->fx_addsy == NULL)
-    return 1;
-
-#if 0
-  /* Prevent all adjustments to global symbols.  */
-  if (S_IS_EXTERN (fixP->fx_addsy))
-    return 0;
-
-  if (S_IS_WEAK (fixP->fx_addsy))
-    return 0;
-#endif
-
   /* We need the symbol name for the VTABLE entries */
-  if (   fixP->fx_r_type == BFD_RELOC_VTABLE_INHERIT
+  if (fixP->fx_r_type == BFD_RELOC_VTABLE_INHERIT
       || fixP->fx_r_type == BFD_RELOC_VTABLE_ENTRY)
     return 0;
 
This page took 0.026044 seconds and 4 git commands to generate.