]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blobdiff - gas/config/tc-mt.c
Update year range in copyright notice of binutils files
[thirdparty/binutils-gdb.git] / gas / config / tc-mt.c
index 6613d54bf3852d37c384cc348e7c33ef5c262bce..5338b3c36e2ec04dbb15fa50f218597bf5ac2e7a 100644 (file)
@@ -1,5 +1,5 @@
 /* tc-mt.c -- Assembler for the Morpho Technologies mt .
-   Copyright (C) 2005-2015 Free Software Foundation, Inc.
+   Copyright (C) 2005-2021 Free Software Foundation, Inc.
 
    This file is part of GAS, the GNU Assembler.
 
    GNU General Public License for more details.
 
    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.  */
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+   MA 02110-1301, USA.  */
 
 #include "as.h"
 #include "dwarf2dbg.h"
-#include "subsegs.h"     
+#include "subsegs.h"
 #include "symcat.h"
 #include "opcodes/mt-desc.h"
 #include "opcodes/mt-opc.h"
 #include "cgen.h"
 #include "elf/common.h"
 #include "elf/mt.h"
-#include "libbfd.h"
 
 /* Structure to hold all of the different components
    describing an individual instruction.  */
@@ -54,14 +53,14 @@ mt_insn;
 
 const char comment_chars[]        = ";";
 const char line_comment_chars[]   = "#";
-const char line_separator_chars[] = ""; 
+const char line_separator_chars[] = "";
 const char EXP_CHARS[]            = "eE";
 const char FLT_CHARS[]            = "dD";
 
 /* The target specific pseudo-ops which we support.  */
 const pseudo_typeS md_pseudo_table[] =
 {
-    { "word",   cons,                   4 }, 
+    { "word",   cons,                   4 },
     { NULL,    NULL,                   0 }
 };
 
@@ -69,7 +68,7 @@ const pseudo_typeS md_pseudo_table[] =
 
 static int no_scheduling_restrictions = 0;
 
-struct option md_longopts[] = 
+struct option md_longopts[] =
 {
 #define OPTION_NO_SCHED_REST   (OPTION_MD_BASE)
   { "nosched",    no_argument, NULL, OPTION_NO_SCHED_REST },
@@ -101,7 +100,7 @@ enum mt_architectures
 static enum mt_architectures mt_arch = ms1_16_002;
 
 int
-md_parse_option (int c ATTRIBUTE_UNUSED, char * arg)
+md_parse_option (int c ATTRIBUTE_UNUSED, const char * arg)
 {
   switch (c)
     {
@@ -134,6 +133,7 @@ md_parse_option (int c ATTRIBUTE_UNUSED, char * arg)
          mt_mach_bitmask = 1 << MACH_MS2;
          mt_arch = ms2;
        }
+      break;
     case OPTION_NO_SCHED_REST:
       no_scheduling_restrictions = 1;
       break;
@@ -161,7 +161,7 @@ void
 md_begin (void)
 {
   /* Initialize the `cgen' interface.  */
-  
+
   /* Set the machine number and endian.  */
   gas_cgen_cpu_desc = mt_cgen_cpu_open (CGEN_CPU_OPEN_MACHS, mt_mach_bitmask,
                                        CGEN_CPU_OPEN_ENDIAN,
@@ -178,6 +178,8 @@ md_begin (void)
 
   /* Set the machine type.  */
   bfd_default_set_arch_mach (stdoutput, bfd_arch_mt, mt_mach);
+
+  literal_prefix_dollar_hex = TRUE;
 }
 
 void
@@ -267,7 +269,7 @@ md_assemble (char * str)
            as_warn (_("operand references R%ld of instruction before previous."),
                     prev_delayed_load_register);
        }
-      
+
       /* Detect data dependency between conditional branch instruction
          and an immediately preceding arithmetic or logical instruction.  */
       if (last_insn_was_arithmetic_or_logic
@@ -310,30 +312,30 @@ md_assemble (char * str)
 
   last_insn_was_branch_insn =
     CGEN_INSN_ATTR_VALUE (insn.insn, CGEN_INSN_BR_INSN);
-  
+
   last_insn_was_conditional_branch_insn =
   CGEN_INSN_ATTR_VALUE (insn.insn, CGEN_INSN_BR_INSN)
     && CGEN_INSN_ATTR_VALUE (insn.insn, CGEN_INSN_USES_FRSR2);
-  
+
   prev_delayed_load_register = delayed_load_register;
-  
+
   if (CGEN_INSN_ATTR_VALUE (insn.insn, CGEN_INSN_USES_FRDR))
-     delayed_load_register = insn.fields.f_dr; 
+     delayed_load_register = insn.fields.f_dr;
   else if (CGEN_INSN_ATTR_VALUE (insn.insn, CGEN_INSN_USES_FRDRRR))
-     delayed_load_register = insn.fields.f_drrr; 
+     delayed_load_register = insn.fields.f_drrr;
   else  /* Insns has no destination register.  */
-     delayed_load_register = 0; 
+     delayed_load_register = 0;
 
   /* Generate dwarf2 line numbers.  */
-  dwarf2_emit_insn (4); 
+  dwarf2_emit_insn (4);
 }
 
 valueT
 md_section_align (segT segment, valueT size)
 {
-  int align = bfd_get_section_alignment (stdoutput, segment);
+  int align = bfd_section_alignment (segment);
 
-  return ((size + (1 << align) - 1) & (-1 << align));
+  return ((size + (1 << align) - 1) & -(1 << align));
 }
 
 symbolS *
@@ -348,7 +350,7 @@ md_estimate_size_before_relax (fragS * fragP ATTRIBUTE_UNUSED,
 {
   as_fatal (_("md_estimate_size_before_relax\n"));
   return 1;
-} 
+}
 
 /* *fragP has been relaxed to its final size, and now needs to have
    the bytes inside it modified to conform to the new size.
@@ -433,7 +435,7 @@ md_number_to_chars (char * buf, valueT val, int n)
   number_to_chars_bigendian (buf, val, n);
 }
 
-char *
+const char *
 md_atof (int type, char * litP, int * sizeP)
 {
   return ieee_md_atof (type, litP, sizeP, FALSE);
@@ -471,13 +473,13 @@ mt_fix_adjustable (fixS * fixP)
 
   if (fixP->fx_addsy == NULL)
     return TRUE;
-  
+
   /* Prevent all adjustments to global symbols.  */
   if (S_IS_EXTERNAL (fixP->fx_addsy))
     return FALSE;
-  
+
   if (S_IS_WEAK (fixP->fx_addsy))
     return FALSE;
-  
+
   return 1;
 }