]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blobdiff - gas/config/tc-iq2000.c
Update year range in copyright notice of binutils files
[thirdparty/binutils-gdb.git] / gas / config / tc-iq2000.c
index e8ed21d6be91422358ee76469486ee572d917786..9c6fb252fe88bdf31e51fc8d5531213382c13ace 100644 (file)
@@ -1,6 +1,5 @@
 /* tc-iq2000.c -- Assembler for the Sitera IQ2000.
-   Copyright (C) 2003, 2004, 2005, 2006, 2007, 2009, 2010
-   Free Software Foundation. Inc.
+   Copyright (C) 2003-2021 Free Software Foundation, Inc.
 
    This file is part of GAS, the GNU Assembler.
 
@@ -28,7 +27,6 @@
 #include "cgen.h"
 #include "elf/common.h"
 #include "elf/iq2000.h"
-#include "libbfd.h"
 #include "sb.h"
 #include "macro.h"
 
@@ -108,7 +106,7 @@ struct iq2000_hi_fixup
 static struct iq2000_hi_fixup * iq2000_hi_fixup_list;
 
 /* Macro hash table, which we will add to.  */
-extern struct hash_control *macro_hash;
+extern struct htab *macro_hash;
 \f
 const char *md_shortopts = "";
 struct option md_longopts[] =
@@ -119,7 +117,7 @@ size_t md_longopts_size = sizeof (md_longopts);
 
 int
 md_parse_option (int c ATTRIBUTE_UNUSED,
-                char * arg ATTRIBUTE_UNUSED)
+                const char * arg ATTRIBUTE_UNUSED)
 {
   return 0;
 }
@@ -234,7 +232,7 @@ iq2000_add_macro (const char *  name,
   sb macro_name;
   const char *namestr;
 
-  macro = xmalloc (sizeof (macro_entry));
+  macro = XNEW (macro_entry);
   sb_new (& macro->sub);
   sb_new (& macro_name);
 
@@ -248,13 +246,16 @@ iq2000_add_macro (const char *  name,
       formal_entry ** p = &macro->formals;
 
       macro->formal_count = 0;
-      macro->formal_hash = hash_new ();
+      macro->formal_hash = htab_create_alloc (7, hash_formal_entry,
+                                             eq_formal_entry,
+                                             NULL, xcalloc, free);
+
 
       while (*arguments != NULL)
        {
          formal_entry *formal;
 
-         formal = xmalloc (sizeof (formal_entry));
+         formal = XNEW (formal_entry);
 
          sb_new (& formal->name);
          sb_new (& formal->def);
@@ -274,8 +275,10 @@ iq2000_add_macro (const char *  name,
            sb_add_string (& formal->name, *arguments);
 
          /* Add to macro's hash table.  */
-         hash_jam (macro->formal_hash, sb_terminate (& formal->name), formal);
-
+         htab_insert (macro->formal_hash,
+                      formal_entry_alloc (sb_terminate (& formal->name),
+                                          formal),
+                      1);
          formal->index = macro->formal_count;
          macro->formal_count++;
          *p = formal;
@@ -287,7 +290,7 @@ iq2000_add_macro (const char *  name,
 
   sb_add_string (&macro_name, name);
   namestr = sb_terminate (&macro_name);
-  hash_jam (macro_hash, namestr, macro);
+  htab_insert (macro_hash, macro_entry_alloc (namestr, macro), 1);
 
   macro_defined = 1;
 }
@@ -432,8 +435,8 @@ md_assemble (char * str)
 valueT
 md_section_align (segT segment, valueT size)
 {
-  int align = bfd_get_section_alignment (stdoutput, segment);
-  return ((size + (1 << align) - 1) & (-1 << align));
+  int align = bfd_section_alignment (segment);
+  return ((size + (1 << align) - 1) & -(1 << align));
 }
 
 symbolS *
@@ -536,7 +539,7 @@ iq2000_record_hi16 (int    reloc_type,
 
   gas_assert (reloc_type == BFD_RELOC_HI16);
 
-  hi_fixup = xmalloc (sizeof * hi_fixup);
+  hi_fixup = XNEW (struct iq2000_hi_fixup);
   hi_fixup->fixp = fixP;
   hi_fixup->seg  = now_seg;
   hi_fixup->next = iq2000_hi_fixup_list;
@@ -725,7 +728,7 @@ md_operand (expressionS * exp)
     gas_cgen_md_operand (exp);
 }
 
-char *
+const char *
 md_atof (int type, char * litP, int * sizeP)
 {
   return ieee_md_atof (type, litP, sizeP, TRUE);
@@ -797,10 +800,9 @@ get_symbol (void)
   char *name;
   symbolS *p;
 
-  name = input_line_pointer;
-  c = get_symbol_end ();
+  c = get_symbol_name (&name);
   p = (symbolS *) symbol_find_or_make (name);
-  *input_line_pointer = c;
+  (void) restore_line_pointer (c);
   return p;
 }
 
@@ -820,7 +822,7 @@ s_iq2000_end (int x ATTRIBUTE_UNUSED)
   else
     p = NULL;
 
-  if ((bfd_get_section_flags (stdoutput, now_seg) & SEC_CODE) != 0)
+  if ((bfd_section_flags (now_seg) & SEC_CODE) != 0)
     maybe_text = 1;
   else
     maybe_text = 0;
@@ -919,7 +921,7 @@ s_iq2000_ent (int aent)
   if (ISDIGIT (*input_line_pointer) || *input_line_pointer == '-')
     get_number ();
 
-  if ((bfd_get_section_flags (stdoutput, now_seg) & SEC_CODE) != 0)
+  if ((bfd_section_flags (now_seg) & SEC_CODE) != 0)
     maybe_text = 1;
   else
     maybe_text = 0;