[BINUTILS, AARCH64, 7/8] Add system registers for Memory Tagging Extension
[deliverable/binutils-gdb.git] / gas / expr.c
index 3e28af6c2fd78e2fe1b0515a99822c469cc32210..bacfa4e9e8220c9dd72a70267a08712de303d31f 100644 (file)
@@ -1302,48 +1302,6 @@ operand (expressionS *expressionP, enum expr_mode mode)
            }
 #endif
 
-#ifdef TC_I960
-         /* The MRI i960 assembler permits
-                lda sizeof code,g13
-            FIXME: This should use md_parse_name.  */
-         if (flag_mri
-             && (strcasecmp (name, "sizeof") == 0
-                 || strcasecmp (name, "startof") == 0))
-           {
-             int start;
-             char *buf;
-
-             start = (name[1] == 't'
-                      || name[1] == 'T');
-
-             *input_line_pointer = c;
-             SKIP_WHITESPACE_AFTER_NAME ();
-
-             c = get_symbol_name (& name);
-             if (! *name)
-               {
-                 as_bad (_("expected symbol name"));
-                 expressionP->X_op = O_absent;
-                 (void) restore_line_pointer (c);
-                 ignore_rest_of_line ();
-                 break;
-               }
-
-             buf = concat (start ? ".startof." : ".sizeof.", name,
-                           (char *) NULL);
-             symbolP = symbol_make (buf);
-             free (buf);
-
-             expressionP->X_op = O_symbol;
-             expressionP->X_add_symbol = symbolP;
-             expressionP->X_add_number = 0;
-
-             *input_line_pointer = c;
-             SKIP_WHITESPACE_AFTER_NAME ();
-             break;
-           }
-#endif
-
          symbolP = symbol_find_or_make (name);
 
          /* If we have an absolute symbol or a reg, then we know its
@@ -1880,6 +1838,13 @@ expr (int rankarg,               /* Larger # is higher rank.  */
          right.X_op_symbol = NULL;
        }
 
+      if (mode == expr_defer
+         && ((resultP->X_add_symbol != NULL
+              && S_IS_FORWARD_REF (resultP->X_add_symbol))
+             || (right.X_add_symbol != NULL
+                 && S_IS_FORWARD_REF (right.X_add_symbol))))
+       goto general;
+
       /* Optimize common cases.  */
 #ifdef md_optimize_expr
       if (md_optimize_expr (resultP, op_left, &right))
This page took 0.023315 seconds and 4 git commands to generate.