Regenerate configure
[deliverable/binutils-gdb.git] / gas / config / tc-sh64.c
index 7964579268db3906bf1540c55993b122bafb806b..eb1c287478f3249d8d1ea5f734106fd98bdecb66 100644 (file)
@@ -1,11 +1,11 @@
 /* tc-sh64.c -- Assemble code for the SuperH SH SHcompact and SHmedia.
-   Copyright 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation.
+   Copyright (C) 2000-2016 Free Software Foundation, Inc.
 
    This file is part of GAS, the GNU Assembler.
 
    GAS 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, or (at your option)
+   the Free Software Foundation; either version 3, or (at your option)
    any later version.
 
    GAS is distributed in the hope that it will be useful,
@@ -25,7 +25,6 @@
 
 #define HAVE_SH64
 
-#include <stdio.h>
 #include "as.h"
 #include "safe-ctype.h"
 #include "opcodes/sh64-opc.h"
@@ -1533,7 +1532,7 @@ shmedia_check_limits (offsetT *valp, bfd_reloc_code_real_type reloc,
 
     case BFD_RELOC_SH_IMMU16:
       if (val < 0 || val > (1 << 16) - 1)
-       msg = _("invalid operand, not an 16-bit unsigned value: %d");
+       msg = _("invalid operand, not a 16-bit unsigned value: %d");
       break;
 
     case BFD_RELOC_SH_PT_16:
@@ -2021,7 +2020,7 @@ shmedia_md_estimate_size_before_relax (fragS *fragP,
          offsetT value = fragP->fr_offset
            + (fragP->fr_symbol == NULL ? 0 : S_GET_VALUE (fragP->fr_symbol));
 
-         if (value >= ((offsetT) -1 << 15) && value < ((offsetT) 1 << 15))
+         if (value >= (-((offsetT) 1 << 15)) && value < ((offsetT) 1 << 15))
            {
              /* Fits in 16-bit signed number.  */
              int what = GET_WHAT (fragP->fr_subtype);
@@ -2204,16 +2203,16 @@ static char *
 shmedia_parse_exp (char *s, shmedia_operand_info *op)
 {
   char *save;
-  char *new;
+  char *new_pointer;
 
   save = input_line_pointer;
   input_line_pointer = s;
   expression (&op->immediate);
   if (op->immediate.X_op == O_absent)
     as_bad (_("missing operand"));
-  new = input_line_pointer;
+  new_pointer = input_line_pointer;
   input_line_pointer = save;
-  return new;
+  return new_pointer;
 }
 
 /* Parse an operand.  Store pointer to next character in *PTR.  */
@@ -2678,7 +2677,7 @@ shmedia_build_Mytes (shmedia_opcode_info *opcode,
            /* Don't allow complex expressions here.  */
            if (opjp->immediate.X_op_symbol != NULL)
              {
-               as_bad(_("invalid operand: expression in PT target"));
+               as_bad (_("invalid operand: expression in PT target"));
                return 0;
              }
 
@@ -2718,7 +2717,7 @@ shmedia_build_Mytes (shmedia_opcode_info *opcode,
            /* Don't allow complex expressions here.  */
            if (opjp->immediate.X_op_symbol != NULL)
              {
-               as_bad(_("invalid operand: expression in PT target"));
+               as_bad (_("invalid operand: expression in PT target"));
                return 0;
              }
 
@@ -3035,8 +3034,6 @@ sh64_target_mach (void)
 valueT
 shmedia_md_pcrel_from_section (struct fix *fixP, segT sec ATTRIBUTE_UNUSED)
 {
-  know (fixP->fx_frag->fr_type == rs_machine_dependent);
-
   /* Use the ISA for the instruction to decide which offset to use.  We
      can glean it from the fisup type.  */
   switch (fixP->fx_r_type)
@@ -3066,8 +3063,7 @@ shmedia_md_pcrel_from_section (struct fix *fixP, segT sec ATTRIBUTE_UNUSED)
 
     case BFD_RELOC_64:
     case BFD_RELOC_64_PCREL:
-      know (0 /* Shouldn't get here.  */);
-      break;
+      /* Fall through.  */
 
     default:
       /* If section was SHcompact, use its function.  */
@@ -3244,8 +3240,9 @@ sh64_frob_label (symbolS *symp)
    symbol hook.  */
 
 int
-sh64_consume_datalabel (const char *name, expressionS *exp, char *cp,
-                       segT (*operandf) (expressionS *))
+sh64_consume_datalabel (const char *name, expressionS *exp,
+                       enum expr_mode mode, char *cp,
+                       segT (*operandf) (expressionS *, enum expr_mode))
 {
   static int parsing_datalabel = 0;
 
@@ -3258,7 +3255,7 @@ sh64_consume_datalabel (const char *name, expressionS *exp, char *cp,
 
       *input_line_pointer = *cp;
       parsing_datalabel = 1;
-      (*operandf) (exp);
+      (*operandf) (exp, expr_normal);
       parsing_datalabel = save_parsing_datalabel;
 
       if (exp->X_op == O_symbol || exp->X_op == O_PIC_reloc)
@@ -3275,9 +3272,9 @@ sh64_consume_datalabel (const char *name, expressionS *exp, char *cp,
          else
            {
              symbolS *dl_symp;
-             const char *name = S_GET_NAME (symp);
+             const char * sname = S_GET_NAME (symp);
              char *dl_name
-               = xmalloc (strlen (name) + sizeof (DATALABEL_SUFFIX));
+               = xmalloc (strlen (sname) + sizeof (DATALABEL_SUFFIX));
 
              /* Now we copy the datalabel-qualified symbol into a symbol
                 with the same name, but with " DL" appended.  We mark the
@@ -3285,13 +3282,13 @@ sh64_consume_datalabel (const char *name, expressionS *exp, char *cp,
                 the main symbol, so we don't have to inspect all symbol
                 names.  Note that use of "datalabel" is not expected to
                 be a common case.  */
-             strcpy (dl_name, name);
+             strcpy (dl_name, sname);
              strcat (dl_name, DATALABEL_SUFFIX);
 
              /* A FAKE_LABEL_NAME marks "$" or ".".  There can be any
                 number of them and all have the same (faked) name; we
                 must make a new one each time.  */
-             if (strcmp (name, FAKE_LABEL_NAME) == 0)
+             if (strcmp (sname, FAKE_LABEL_NAME) == 0)
                dl_symp = symbol_make (dl_name);
              else
                dl_symp = symbol_find_or_make (dl_name);
@@ -3331,7 +3328,7 @@ sh64_consume_datalabel (const char *name, expressionS *exp, char *cp,
       return 1;
     }
 
-  return sh_parse_name (name, exp, cp);
+  return sh_parse_name (name, exp, mode, cp);
 }
 
 /* This function is called just before symbols are being output.  It
This page took 0.038869 seconds and 4 git commands to generate.