]> Git Repo - binutils.git/blobdiff - gas/config/tc-hppa.c
* config/tc-hppa.c (pa_ip): Handle 'B' operand.
[binutils.git] / gas / config / tc-hppa.c
index c17fbd9e8bd247414f61e56b86b0b0c629cb2b27..36722bb2fc940a3dcbc1f76c62276ec51d2273ca 100644 (file)
@@ -1463,14 +1463,15 @@ md_assemble (str)
     {
       bfd_vma addr;
 
-      /* I haven't got a clue why the -8 is necessary, but this
-        seems to work.  Someone should really document what all
-        the frag nonsense does and more precisely what the dwarf2
-        code needs.  */
+      /* First update the notion of the current source line.  */
+      dwarf2_where (&debug_line);
+
+      /* We want the offset of the start of this instruction within the
+        the current frag.  */
+      addr = frag_now->fr_address + frag_now_fix () - 4;
 
-      addr = frag_now->fr_address + frag_now_fix () - 8;
+      /* And record the information.  */
       dwarf2_gen_line_info (addr, &debug_line);
-      dwarf2_where (&debug_line);
     }
 #endif
 }
@@ -2681,6 +2682,47 @@ pa_ip (str)
              nullif = pa_parse_nullif (&s);
              INSERT_FIELD_AND_CONTINUE (opcode, nullif, 5);
 
+           /* Handle ,gate completer for new syntax branches.  */
+           case 'g':
+             if (*s == ',' && strcasecmp (s + 1, "gate") == 0)
+               s += 5;
+             else
+               break;
+             continue;
+
+           /* Handle ,l completer for new syntax branches.  */
+           case 'l':
+             if (*s == ',' && strcasecmp (s + 1, "l") == 0)
+               s += 2;
+             else
+               break;
+             continue;
+
+           /* Handle ,push completer for new syntax branches.  */
+           case 'M':
+             if (*s == ',' && strcasecmp (s + 1, "push") == 0)
+               s += 5;
+             else
+               break;
+             continue;
+
+           /* Handle ,pop completer for new syntax branches.  */
+           case 'B':
+             if (*s == ',' && strcasecmp (s + 1, "pop") == 0)
+               s += 4;
+             else
+               break;
+             continue;
+
+           /* Handle ,%r2 completer for new syntax branches.  */
+           case 'L':
+             if (*s == ',' && strcasecmp (s + 1, "%r2") == 0)
+               s += 4;
+             else if (*s == ',' && strcasecmp (s + 1, "%rp") == 0)
+               s += 4;
+             else
+               break;
+             continue;
 
            /* Handle a 11 bit immediate at 31.  */
            case 'i':
@@ -3157,6 +3199,7 @@ pa_ip (str)
                  }
 
                /* Float operand 1 with L/R selection.  */
+               case 'X':
                case 'A':
                  {
                    struct pa_11_fp_reg_struct result;
@@ -5120,7 +5163,7 @@ pa_build_unwind_subspace (call_info)
   int i, reloc;
   char c, *p;
 
-  if (seg != text_section)
+  if (now_seg != text_section)
     return;
 
   if (bfd_get_arch_info (stdoutput)->bits_per_address == 32)
This page took 0.027343 seconds and 4 git commands to generate.