* config/tc-v850.c (md_assemble): Rough cut at demanding
authorJeff Law <law@redhat.com>
Fri, 23 Aug 1996 20:58:13 +0000 (20:58 +0000)
committerJeff Law <law@redhat.com>
Fri, 23 Aug 1996 20:58:13 +0000 (20:58 +0000)
        "ep" or "r30" in sst and sld instructions.
        (md_apply_fix3): Don't abort.  Just warn that we don't
        have relocs yet.

gas/ChangeLog
gas/config/tc-v850.c

index 1622897..75329b2 100644 (file)
@@ -7,6 +7,11 @@ end-sanitize-d10v
 start-sanitize-v850
 Fri Aug 23 10:41:32 1996  Jeffrey A Law  (law@cygnus.com)
 
+       * config/tc-v850.c (md_assemble): Rough cut at demanding
+       "ep" or "r30" in sst and sld instructions.
+       (md_apply_fix3): Don't abort.  Just warn that we don't
+       have relocs yet.
+
        * config/tc-v850.c (CC_NAME_CNT): Define.
        (cc_name): New function.
        (md_assemble): Handle V850_OPERAND_CC correctly.
index 79bd779..f738a11 100644 (file)
@@ -557,6 +557,27 @@ md_assemble (str)
                  goto error;
                }
            }
+         else if ((operand->flags & V850_OPERAND_EP) != 0)
+           {
+             char *start = input_line_pointer;
+             char c = get_symbol_end ();
+             if (strcmp (start, "ep") != 0
+                 && strcmp (start, "r30") != 0)
+               {
+                 /* Put things back the way we found them.  */
+                 *input_line_pointer = c;
+                 input_line_pointer = start;
+                 errmsg = "expected EP register";
+                 goto error;
+               }
+             *input_line_pointer = c;
+             str = input_line_pointer;
+             input_line_pointer = hold;
+
+             while (*str == ' ' || *str == ',' || *str == '[' || *str == ']')
+               ++str;
+             continue;
+           }
          else if ((operand->flags & V850_OPERAND_CC) != 0) 
            {
              if (!cc_name(&ex))
@@ -756,6 +777,9 @@ md_apply_fix3 (fixp, valuep, seg)
      valueT *valuep;
      segT seg;
 {
+  as_tsktsk ("relocations not supported yet.\n");
+  fixp->fx_done = 1;
+  return 1;
   abort();
 #if 0
   valueT value;