gas: use flag_mri directly in macro processing
authorJan Beulich <jbeulich@suse.com>
Fri, 17 Mar 2023 09:05:57 +0000 (10:05 +0100)
committerJan Beulich <jbeulich@suse.com>
Fri, 17 Mar 2023 09:05:57 +0000 (10:05 +0100)
Again with the removal of gasp about 20 years ago the extra level of
indirection isn't necessary anymore. Drop macro.c's local variable and
use the global flag directly.

gas/as.c
gas/macro.c
gas/macro.h
gas/read.c

index 357c13bf27a0edd47b9519a0c599cb06b6ffcbbf..39873662a9aaf6c49f2df0f4ca537d4772a0fbf2 100644 (file)
--- a/gas/as.c
+++ b/gas/as.c
@@ -1310,7 +1310,7 @@ gas_init (void)
   expr_begin ();
   eh_begin ();
 
-  macro_init (flag_macro_alternate, flag_mri);
+  macro_init (flag_macro_alternate);
 
   dwarf2_init ();
 
index 25ce962a2f2598d747cd953abda4fcab1b686a02..5d3b0f2214186d61b7f3e64fda5b64a9fcd5625c 100644 (file)
@@ -34,7 +34,7 @@
 #define ISSEP(x) \
  ((x) == ' ' || (x) == '\t' || (x) == ',' || (x) == '"' || (x) == ';' \
   || (x) == ')' || (x) == '(' \
-  || ((macro_alternate || macro_mri) && ((x) == '<' || (x) == '>')))
+  || ((macro_alternate || flag_mri) && ((x) == '<' || (x) == '>')))
 
 #define ISBASE(x) \
   ((x) == 'b' || (x) == 'B' \
@@ -54,10 +54,6 @@ int macro_defined;
 
 static int macro_alternate;
 
-/* Whether we are in MRI mode.  */
-
-static int macro_mri;
-
 /* Whether we should strip '@' characters.  */
 
 #define macro_strip_at false
@@ -78,13 +74,12 @@ macro_del_f (void *ent)
 /* Initialize macro processing.  */
 
 void
-macro_init (int alternate, int mri)
+macro_init (int alternate)
 {
   macro_hash = htab_create_alloc (16, hash_string_tuple, eq_string_tuple,
                                  macro_del_f, notes_calloc, NULL);
   macro_defined = 0;
   macro_alternate = alternate;
-  macro_mri = mri;
 }
 
 void
@@ -101,14 +96,6 @@ macro_set_alternate (int alternate)
   macro_alternate = alternate;
 }
 
-/* Switch in and out of MRI mode on the fly.  */
-
-void
-macro_mri_mode (int mri)
-{
-  macro_mri = mri;
-}
-
 /* Read input lines till we get to a TO string.
    Increase nesting depth if we get a FROM string.
    Put the results into sb at PTR.
@@ -205,7 +192,7 @@ buffer_and_nest (const char *from, const char *to, sb *ptr,
 
       if (i < ptr->len && (ptr->ptr[i] == '.'
                           || NO_PSEUDO_DOT
-                          || macro_mri))
+                          || flag_mri))
        {
          if (! flag_m68k_mri && ptr->ptr[i] == '.')
            i++;
@@ -309,7 +296,7 @@ getstring (size_t idx, sb *in, sb *acc)
 {
   while (idx < in->len
         && (in->ptr[idx] == '"'
-            || (in->ptr[idx] == '<' && (macro_alternate || macro_mri))
+            || (in->ptr[idx] == '<' && (macro_alternate || flag_mri))
             || (in->ptr[idx] == '\'' && macro_alternate)))
     {
       if (in->ptr[idx] == '<')
@@ -423,7 +410,7 @@ get_any_string (size_t idx, sb *in, sb *out)
          sb_add_string (out, buf);
        }
       else if (in->ptr[idx] == '"'
-              || (in->ptr[idx] == '<' && (macro_alternate || macro_mri))
+              || (in->ptr[idx] == '<' && (macro_alternate || flag_mri))
               || (macro_alternate && in->ptr[idx] == '\''))
        {
          if (macro_alternate && ! macro_strip_at && in->ptr[idx] != '<')
@@ -450,7 +437,7 @@ get_any_string (size_t idx, sb *in, sb *out)
                         && in->ptr[idx] != '\t'))
                 && in->ptr[idx] != ','
                 && (in->ptr[idx] != '<'
-                    || (! macro_alternate && ! macro_mri)))
+                    || (! macro_alternate && ! flag_mri)))
            {
              char tchar = in->ptr[idx];
 
@@ -553,7 +540,7 @@ do_formals (macro_entry *macro, size_t idx, sb *in)
       idx = sb_skip_white (idx, in);
       /* This is a formal.  */
       name = sb_terminate (&formal->name);
-      if (! macro_mri
+      if (! flag_mri
          && idx < in->len
          && in->ptr[idx] == ':'
          && (! is_name_beginner (':')
@@ -625,7 +612,7 @@ do_formals (macro_entry *macro, size_t idx, sb *in)
        }
     }
 
-  if (macro_mri)
+  if (flag_mri)
     {
       formal_entry *formal = new_formal ();
 
@@ -764,7 +751,7 @@ get_apost_token (size_t idx, sb *in, sb *name, int kind)
   idx = get_token (idx, in, name);
   if (idx < in->len
       && in->ptr[idx] == kind
-      && (! macro_mri || macro_strip_at)
+      && (! flag_mri || macro_strip_at)
       && (! macro_strip_at || kind == '@'))
     idx++;
   return idx;
@@ -838,7 +825,7 @@ macro_expand_body (sb *in, sb *out, formal_entry *formals,
       if (in->ptr[src] == '&')
        {
          sb_reset (&t);
-         if (macro_mri)
+         if (flag_mri)
            {
              if (src + 1 < in->len && in->ptr[src + 1] == '&')
                src = sub_actual (src + 2, in, &t, formal_hash, '\'', out, 1);
@@ -887,7 +874,7 @@ macro_expand_body (sb *in, sb *out, formal_entry *formals,
              sb_add_char (out, '&');
              src++;
            }
-         else if (macro_mri && src < in->len && ISALNUM (in->ptr[src]))
+         else if (flag_mri && src < in->len && ISALNUM (in->ptr[src]))
            {
              int ind;
              formal_entry *f;
@@ -917,7 +904,7 @@ macro_expand_body (sb *in, sb *out, formal_entry *formals,
              src = sub_actual (src, in, &t, formal_hash, '\'', out, 0);
            }
        }
-      else if ((macro_alternate || macro_mri)
+      else if ((macro_alternate || flag_mri)
               && is_name_beginner (in->ptr[src])
               && (! inquote
                   || ! macro_strip_at
@@ -970,7 +957,7 @@ macro_expand_body (sb *in, sb *out, formal_entry *formals,
            }
        }
       else if (in->ptr[src] == '"'
-              || (macro_mri && in->ptr[src] == '\''))
+              || (flag_mri && in->ptr[src] == '\''))
        {
          inquote = !inquote;
          sb_add_char (out, in->ptr[src++]);
@@ -985,7 +972,7 @@ macro_expand_body (sb *in, sb *out, formal_entry *formals,
              ++src;
            }
        }
-      else if (macro_mri
+      else if (flag_mri
               && in->ptr[src] == '='
               && src + 1 < in->len
               && in->ptr[src + 1] == '=')
@@ -1070,7 +1057,7 @@ macro_expand (size_t idx, sb *in, macro_entry *m, sb *out)
   while (f != NULL && f->index < 0)
     f = f->next;
 
-  if (macro_mri)
+  if (flag_mri)
     {
       /* The macro may be called with an optional qualifier, which may
         be referred to in the macro body as \0.  */
@@ -1105,7 +1092,7 @@ macro_expand (size_t idx, sb *in, macro_entry *m, sb *out)
       scan = idx;
       while (scan < in->len
             && !ISSEP (in->ptr[scan])
-            && !(macro_mri && in->ptr[scan] == '\'')
+            && !(flag_mri && in->ptr[scan] == '\'')
             && (!macro_alternate && in->ptr[scan] != '='))
        scan++;
       if (scan < in->len && !macro_alternate && in->ptr[scan] == '=')
@@ -1162,7 +1149,7 @@ macro_expand (size_t idx, sb *in, macro_entry *m, sb *out)
              formal_entry **pf;
              int c;
 
-             if (!macro_mri)
+             if (!flag_mri)
                {
                  err = _("too many positional arguments");
                  break;
@@ -1196,7 +1183,7 @@ macro_expand (size_t idx, sb *in, macro_entry *m, sb *out)
          while (f != NULL && f->index < 0);
        }
 
-      if (! macro_mri)
+      if (! flag_mri)
        idx = sb_skip_comma (idx, in);
       else
        {
@@ -1217,7 +1204,7 @@ macro_expand (size_t idx, sb *in, macro_entry *m, sb *out)
                    m->name);
        }
 
-      if (macro_mri)
+      if (flag_mri)
        {
          ptr = str_hash_find (m->formal_hash,
                               macro_strip_at ? "$NARG" : "NARG");
@@ -1233,7 +1220,7 @@ macro_expand (size_t idx, sb *in, macro_entry *m, sb *out)
     }
 
   /* Discard any unnamed formal arguments.  */
-  if (macro_mri)
+  if (flag_mri)
     {
       formal_entry **pf;
 
@@ -1271,7 +1258,7 @@ check_macro (const char *line, sb *expand,
   sb line_sb;
 
   if (! is_name_beginner (*line)
-      && (! macro_mri || *line != '.'))
+      && (! flag_mri || *line != '.'))
     return 0;
 
   s = line + 1;
index 7354826f53cbf2748fffb172be9f3894a953642b..6386223f7f6c436da288eac48685609368b573f5 100644 (file)
@@ -83,10 +83,9 @@ extern htab_t macro_hash;
 
 extern int buffer_and_nest (const char *, const char *, sb *,
                            size_t (*) (sb *));
-extern void macro_init (int, int);
+extern void macro_init (int);
 extern void macro_end (void);
 extern void macro_set_alternate (int);
-extern void macro_mri_mode (int);
 extern macro_entry *define_macro (sb *, sb *, size_t (*) (sb *));
 extern int check_macro (const char *, sb *, const char **, macro_entry **);
 extern void delete_macro (const char *);
index 0320d0248e7307c2bb99a1505cf729a956a066e0..11ceafb12dafdc73044528d446001add0fdb8094 100644 (file)
@@ -2784,7 +2784,6 @@ s_mri (int ignore ATTRIBUTE_UNUSED)
 #ifdef TC_M68K
       flag_m68k_mri = 1;
 #endif
-      macro_mri_mode (1);
     }
   else
     {
@@ -2792,7 +2791,6 @@ s_mri (int ignore ATTRIBUTE_UNUSED)
 #ifdef TC_M68K
       flag_m68k_mri = 0;
 #endif
-      macro_mri_mode (0);
     }
 
   /* Operator precedence changes in m68k MRI mode, so we need to