* elf64-alpha.c (struct alpha_elf_link_hash_entry): Remove
[deliverable/binutils-gdb.git] / gas / config / tc-w65.c
index 82f39f865c9f2c3d64e6fa35be1eae3c9c32561a..c666d56c65ef9f9c7443e6dc8c1874430cae0f0a 100644 (file)
@@ -1,5 +1,6 @@
 /* tc-w65.c -- Assemble code for the W65816
-   Copyright 1995, 1998, 2000, 2001, 2002 Free Software Foundation, Inc.
+   Copyright 1995, 1998, 2000, 2001, 2002, 2005
+   Free Software Foundation, Inc.
 
    This file is part of GAS, the GNU Assembler.
 
@@ -15,8 +16,8 @@
 
    You should have received a copy of the GNU General Public License
    along with GAS; see the file COPYING.  If not, write to the Free
-   Software Foundation, 59 Temple Place - Suite 330, Boston, MA
-   02111-1307, USA.  */
+   Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA
+   02110-1301, USA.  */
 
 /* Written By Steve Chamberlain <sac@cygnus.com>.  */
 
 #define DEFINE_TABLE
 #include "../opcodes/w65-opc.h"
 
-const char comment_chars[] = "!";
+const char comment_chars[]        = "!";
 const char line_separator_chars[] = ";";
-const char line_comment_chars[] = "!#";
+const char line_comment_chars[]   = "!#";
 
 /* This table describes all the machine specific pseudo-ops the assembler
    has to support.  The fields are:
 
    pseudo-op name without dot
    function to call to execute this pseudo-op
-   Integer arg to pass to the function  */
+   Integer arg to pass to the function.  */
 
 #define OP_BCC 0x90
 #define OP_BCS 0xB0
@@ -49,14 +50,37 @@ const char line_comment_chars[] = "!#";
 #define OP_BVC 0x50
 #define OP_BVS 0x70
 
-static void s_longa PARAMS ((int));
-static char *parse_exp PARAMS ((char *));
-static char *get_operands PARAMS ((const struct opinfo *, char *));
-static const struct opinfo *get_specific PARAMS ((const struct opinfo *));
-static void build_Mytes PARAMS ((const struct opinfo *));
+static int M;                          /* M flag.  */
+static int X;                          /* X flag.  */
 
+/* This function is called once, at assembler startup time.  This
+   should set up all the tables, etc that the MD part of the assembler
+   needs.  */
+
+static void
+s_longa (int xmode)
+{
+  int *p = xmode ? &X : &M;
+
+  while (*input_line_pointer == ' ')
+    input_line_pointer++;
+  if (strncmp (input_line_pointer, "on", 2) == 0)
+    {
+      input_line_pointer += 2;
+      *p = 0;
+    }
+  else if (strncmp (input_line_pointer, "off", 3) == 0)
+    {
+      *p = 1;
+      input_line_pointer += 3;
+    }
+  else
+    as_bad (_("need on or off."));
+  demand_empty_rest_of_line ();
+}
 
-const pseudo_typeS md_pseudo_table[] = {
+const pseudo_typeS md_pseudo_table[] =
+{
   {"int", cons, 2},
   {"word", cons, 2},
   {"longa", s_longa, 0},
@@ -64,10 +88,6 @@ const pseudo_typeS md_pseudo_table[] = {
   {0, 0, 0}
 };
 
-#if 0
-int md_reloc_size;
-#endif
-
 const char EXP_CHARS[] = "eE";
 
 /* Chars that mean this number is a floating point constant.  */
@@ -78,29 +98,26 @@ const char FLT_CHARS[] = "rRsSfFdDxXpP";
 /* Opcode mnemonics */
 static struct hash_control *opcode_hash_control;
 
-int M;                         /* M flag */
-int X;                         /* X flag */
-
-#define C(a,b) ENCODE_RELAX(a,b)
-#define ENCODE_RELAX(what,length) (((what) << 2) + (length))
+#define C(a, b)                    ENCODE_RELAX(a,b)
+#define ENCODE_RELAX(what, length) (((what) << 2) + (length))
 
-#define GET_WHAT(x) ((x>>2))
+#define GET_WHAT(x) (((x) >> 2))
 
-#define BYTE_DISP 1
-#define WORD_DISP 2
+#define BYTE_DISP       1
+#define WORD_DISP       2
 #define UNDEF_BYTE_DISP 0
 #define UNDEF_WORD_DISP 3
-
 #define COND_BRANCH    1
 #define UNCOND_BRANCH   2
-#define END    3
+#define END            3
 
-#define BYTE_F 127             /* How far we can branch forwards */
-#define BYTE_B -126            /* How far we can branch backwards */
+#define BYTE_F 127     /* How far we can branch forwards.  */
+#define BYTE_B -126    /* How far we can branch backwards.  */
 #define WORD_F 32767
 #define WORD_B 32768
 
-relax_typeS md_relax_table[C (END, 0)] = {
+relax_typeS md_relax_table[C (END, 0)] =
+{
   { 0, 0, 0, 0 },
   { 0, 0, 0, 0 },
   { 0, 0, 0, 0 },
@@ -117,37 +134,10 @@ relax_typeS md_relax_table[C (END, 0)] = {
   { BYTE_F,  BYTE_B,  2,  C (UNCOND_BRANCH, WORD_DISP) }, /* BYTE_DISP */
   { WORD_F,  WORD_B,  3,  0 },                           /* WORD_DISP */
   { 0,       0,       3,  0 }                            /* UNDEF_WORD_DISP */
-
 };
 
-/* This function is called once, at assembler startup time.  This
-   should set up all the tables, etc that the MD part of the assembler
-   needs.  */
-
-static void
-s_longa (xmode)
-     int xmode;
-{
-  int *p = xmode ? &X : &M;
-  while (*input_line_pointer == ' ')
-    input_line_pointer++;
-  if (strncmp (input_line_pointer, "on", 2) == 0)
-    {
-      input_line_pointer += 2;
-      *p = 0;
-    }
-  else if (strncmp (input_line_pointer, "off", 3) == 0)
-    {
-      *p = 1;
-      input_line_pointer += 3;
-    }
-  else
-    as_bad (_("need on or off."));
-  demand_empty_rest_of_line ();
-}
-
 void
-md_begin ()
+md_begin (void)
 {
   const struct opinfo *opcode;
   char *prev_name = "";
@@ -167,15 +157,14 @@ md_begin ()
   flag_signed_overflow_ok = 1;
 }
 
-static expressionS immediate;  /* absolute expression */
-static expressionS immediate1; /* absolute expression */
+static expressionS immediate;  /* Absolute expression.  */
+static expressionS immediate1; /* Absolute expression.  */
 int expr_size;
 int expr_shift;
 int tc_cons_reloc;
 
 void
-w65_expression (dest)
-     expressionS *dest;
+w65_expression (expressionS *dest)
 {
   expr_size = 0;
   expr_shift = 0;
@@ -205,8 +194,7 @@ w65_expression (dest)
 int amode;
 
 static char *
-parse_exp (s)
-     char *s;
+parse_exp (char *s)
 {
   char *save;
   char *new;
@@ -222,12 +210,10 @@ parse_exp (s)
 }
 
 static char *
-get_operands (info, ptr)
-     const struct opinfo *info;
-     char *ptr;
+get_operands (const struct opinfo *info, char *ptr)
 {
-  register int override_len = 0;
-  register int bytes = 0;
+  int override_len = 0;
+  int bytes = 0;
 
   while (*ptr == ' ')
     ptr++;
@@ -277,9 +263,7 @@ get_operands (info, ptr)
              ptr += 2;
            }
          else
-           {
-             as_bad (_("syntax error after <exp"));
-           }
+           as_bad (_("syntax error after <exp"));
        }
       else
        {
@@ -320,9 +304,7 @@ get_operands (info, ptr)
              bytes = 2;
            }
          else
-           {
-             as_bad (_("syntax error after <exp"));
-           }
+           as_bad (_("syntax error after <exp"));
        }
       else
        {
@@ -331,9 +313,7 @@ get_operands (info, ptr)
        }
     }
   else if (ptr[0] == 'a')
-    {
-      amode = ADDR_ACC;
-    }
+    amode = ADDR_ACC;
   else if (ptr[0] == '(')
     {
       /* Look for (exp),y
@@ -366,9 +346,8 @@ get_operands (info, ptr)
          ptr++;
        }
       else
-       {
-         override_len = 0;
-       }
+       override_len = 0;
+
       ptr = parse_exp (ptr);
 
       if (ptr[0] == ',')
@@ -418,13 +397,13 @@ get_operands (info, ptr)
                  bytes = 2;
                }
              ptr++;
-
            }
        }
     }
   else if (ptr[0] == '[')
     {
       ptr = parse_exp (ptr + 1);
+
       if (ptr[0] == ']')
        {
          ptr++;
@@ -569,24 +548,21 @@ get_operands (info, ptr)
    provided.  */
 
 static const struct opinfo *
-get_specific (opcode)
-     const struct opinfo *opcode;
+get_specific (const struct opinfo *opcode)
 {
   int ocode = opcode->code;
 
   for (; opcode->code == ocode; opcode++)
-    {
-      if (opcode->amode == amode)
-       return opcode;
-    }
+    if (opcode->amode == amode)
+      return opcode;
+
   return 0;
 }
 
 /* Now we know what sort of opcodes it is, let's build the bytes.  */
 
 static void
-build_Mytes (opcode)
-     const struct opinfo *opcode;
+build_Mytes (const struct opinfo *opcode)
 {
   int size;
   int type;
@@ -594,9 +570,8 @@ build_Mytes (opcode)
   char *output;
 
   if (opcode->amode == ADDR_IMPLIED)
-    {
-      output = frag_more (1);
-    }
+    output = frag_more (1);
+
   else if (opcode->amode == ADDR_PC_REL)
     {
       int type;
@@ -666,8 +641,7 @@ build_Mytes (opcode)
    the frags/bytes it assembles to.  */
 
 void
-md_assemble (str)
-     char *str;
+md_assemble (char *str)
 {
   const struct opinfo *opcode;
   char name[20];
@@ -676,7 +650,7 @@ md_assemble (str)
   while (*str == ' ')
     str++;
 
-  /* all opcodes are three letters */
+  /* All opcodes are three letters.  */
   name[0] = str[0];
   name[1] = str[1];
   name[2] = str[2];
@@ -715,8 +689,7 @@ md_assemble (str)
 }
 
 symbolS *
-md_undefined_symbol (name)
-     char *name ATTRIBUTE_UNUSED;
+md_undefined_symbol (char *name ATTRIBUTE_UNUSED)
 {
   return 0;
 }
@@ -731,10 +704,7 @@ md_undefined_symbol (name)
    returned, or NULL on OK.  */
 
 char *
-md_atof (type, litP, sizeP)
-     char type;
-     char *litP;
-     int *sizeP;
+md_atof (int type, char *litP, int *sizeP)
 {
   int prec;
   LITTLENUM_TYPE words[MAX_LITTLENUMS];
@@ -785,9 +755,7 @@ md_atof (type, litP, sizeP)
 }
 
 int
-md_parse_option (c, a)
-     int c ATTRIBUTE_UNUSED;
-     char *a ATTRIBUTE_UNUSED;
+md_parse_option (int c ATTRIBUTE_UNUSED, char *a ATTRIBUTE_UNUSED)
 {
   return 0;
 }
@@ -796,10 +764,9 @@ md_parse_option (c, a)
    are.  */
 
 void
-md_convert_frag (headers, seg, fragP)
-     object_headers *headers ATTRIBUTE_UNUSED;
-     segT seg ATTRIBUTE_UNUSED;
-     fragS *fragP;
+md_convert_frag (object_headers *headers ATTRIBUTE_UNUSED,
+                segT seg ATTRIBUTE_UNUSED,
+                fragS *fragP)
 {
   int disp_size = 0;
   int inst_size = 0;
@@ -826,9 +793,9 @@ md_convert_frag (headers, seg, fragP)
        case OP_BPL:
        case OP_BVS:
        case OP_BVC:
-         /* Invert the sense of the test */
+         /* Invert the sense of the test */
          buffer[0] ^= 0x20;
-         buffer[1] = 3;        /* Jump over following brl */
+         buffer[1] = 3;        /* Jump over following brl */
          buffer[2] = OP_BRL;
          buffer[3] = 0;
          buffer[4] = 0;
@@ -855,7 +822,7 @@ md_convert_frag (headers, seg, fragP)
       break;
       /* Got to create a branch over a reloc here.  */
     case C (COND_BRANCH, UNDEF_WORD_DISP):
-      buffer[0] ^= 0x20;       /* invert test */
+      buffer[0] ^= 0x20;       /* Invert test.  */
       buffer[1] = 3;
       buffer[2] = OP_BRL;
       buffer[3] = 0;
@@ -898,26 +865,21 @@ md_convert_frag (headers, seg, fragP)
                       fragP->fr_offset);
       int disp = targ_addr - next_inst;
 
-      md_number_to_chars (buffer + inst_size, disp, disp_size);
+      md_number_to_chars ((char *) buffer + inst_size, disp, disp_size);
       fragP->fr_fix += disp_size + inst_size;
       fragP->fr_var = 0;
     }
 }
 
 valueT
-md_section_align (seg, size)
-     segT seg;
-     valueT size;
+md_section_align (segT seg, valueT size)
 {
   return ((size + (1 << section_alignment[(int) seg]) - 1)
          & (-1 << section_alignment[(int) seg]));
 }
 
 void
-md_apply_fix3 (fixP, valP, seg)
-     fixS *fixP;
-     valueT * valP;
-     segT seg ATTRIBUTE_UNUSED;
+md_apply_fix3 (fixS *fixP, valueT * valP, segT seg ATTRIBUTE_UNUSED)
 {
   long val = * (long *) valP;
   char *buf = fixP->fx_where + fixP->fx_frag->fr_literal;
@@ -976,40 +938,33 @@ md_apply_fix3 (fixP, valP, seg)
 /* Put number into target byte order.  */
 
 void
-md_number_to_chars (ptr, use, nbytes)
-     char *ptr;
-     valueT use;
-     int nbytes;
+md_number_to_chars (char *ptr, valueT use, int nbytes)
 {
   number_to_chars_littleendian (ptr, use, nbytes);
 }
 
 long
-md_pcrel_from (fixP)
-     fixS *fixP;
+md_pcrel_from (fixS *fixP)
 {
   int gap = fixP->fx_size + fixP->fx_where + fixP->fx_frag->fr_address - 1;
   return gap;
 }
 
 void
-tc_coff_symbol_emit_hook (x)
-     symbolS *x ATTRIBUTE_UNUSED;
+tc_coff_symbol_emit_hook (symbolS *x ATTRIBUTE_UNUSED)
 {
 }
 
 short
-tc_coff_fix2rtype (fix_ptr)
-     fixS *fix_ptr;
+tc_coff_fix2rtype (fixS *fix_ptr)
 {
   return fix_ptr->fx_r_type;
 }
 
 void
-tc_reloc_mangle (fix_ptr, intr, base)
-     fixS *fix_ptr;
-     struct internal_reloc *intr;
-     bfd_vma base;
+tc_reloc_mangle (fixS *fix_ptr,
+                struct internal_reloc *intr,
+                bfd_vma base)
 
 {
   symbolS *symbol_ptr;
@@ -1020,8 +975,7 @@ tc_reloc_mangle (fix_ptr, intr, base)
      to output it */
   if (fix_ptr->fx_r_type == RELOC_32)
     {
-      /* cons likes to create reloc32's whatever the size of the reloc..
-       */
+      /* Cons likes to create reloc32's whatever the size of the reloc.  */
       switch (fix_ptr->fx_size)
        {
        case 2:
@@ -1057,19 +1011,14 @@ tc_reloc_mangle (fix_ptr, intr, base)
          intr->r_symndx = dot->sy_number;
        }
       else
-       {
-         intr->r_symndx = symbol_ptr->sy_number;
-       }
+       intr->r_symndx = symbol_ptr->sy_number;
     }
   else
-    {
-      intr->r_symndx = -1;
-    }
+    intr->r_symndx = -1;
 }
 
 int
-tc_coff_sizemachdep (frag)
-     fragS *frag;
+tc_coff_sizemachdep (fragS *frag)
 {
   return md_relax_table[frag->fr_subtype].rlx_length;
 }
@@ -1078,9 +1027,7 @@ tc_coff_sizemachdep (frag)
    fragment must grow to reach it's destination.  */
 
 int
-md_estimate_size_before_relax (fragP, segment_type)
-     register fragS *fragP;
-     register segT segment_type;
+md_estimate_size_before_relax (fragS *fragP, segT segment_type)
 {
   int what;
 
@@ -1094,17 +1041,13 @@ md_estimate_size_before_relax (fragP, segment_type)
       what = GET_WHAT (fragP->fr_subtype);
       /* Used to be a branch to somewhere which was unknown.  */
       if (S_GET_SEGMENT (fragP->fr_symbol) == segment_type)
-       {
-         /* Got a symbol and it's defined in this segment, become byte
-            sized - maybe it will fix up.  */
-         fragP->fr_subtype = C (what, BYTE_DISP);
-       }
+       /* Got a symbol and it's defined in this segment, become byte
+          sized - maybe it will fix up.  */
+       fragP->fr_subtype = C (what, BYTE_DISP);
       else
-       {
-         /* Its got a segment, but its not ours, so it will always be
-             long.  */
-         fragP->fr_subtype = C (what, UNDEF_WORD_DISP);
-       }
+       /* Its got a segment, but its not ours, so it will always be
+          long.  */
+       fragP->fr_subtype = C (what, UNDEF_WORD_DISP);
       break;
 
     case C (COND_BRANCH, BYTE_DISP):
@@ -1123,14 +1066,14 @@ md_estimate_size_before_relax (fragP, segment_type)
 }
 
 const char *md_shortopts = "";
-struct option md_longopts[] = {
+struct option md_longopts[] =
+{
 #define OPTION_RELAX (OPTION_MD_BASE)
   {NULL, no_argument, NULL, 0}
 };
 
 void
-md_show_usage (stream)
-     FILE *stream ATTRIBUTE_UNUSED;
+md_show_usage (FILE *stream ATTRIBUTE_UNUSED)
 {
 }
 
This page took 0.030501 seconds and 4 git commands to generate.