* config/tc-hppa.c (pa_ip): Promote architecture from PA 1.0 to 1.1
authorDave Anglin <dave.anglin@nrc.ca>
Sun, 22 May 2005 01:40:28 +0000 (01:40 +0000)
committerDave Anglin <dave.anglin@nrc.ca>
Sun, 22 May 2005 01:40:28 +0000 (01:40 +0000)
only if an instruction match is found.

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

index a54e15292c5606525abbf1e87d344f139d651565..f25b6a8a364f38985ef329bba92e52928c0e314c 100644 (file)
@@ -1,3 +1,8 @@
+2005-05-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+       * config/tc-hppa.c (pa_ip): Promote architecture from PA 1.0 to 1.1
+       only if an instruction match is found.
+
 2005-05-20  Bob Wilson  <bob.wilson@acm.org>
 
        * config/tc-xtensa.c (xg_assemble_vliw_tokens): Change subtraction
index 57cc427ccb56db8eac1426b0004f44e25473530b..398e7462cc8759a63e3af480074a128e0e2b7b7f 100644 (file)
@@ -1641,21 +1641,9 @@ pa_ip (str)
 
       the_insn.reloc = R_HPPA_NONE;
 
-      /* If this instruction is specific to a particular architecture,
-        then set a new architecture.  */
-      /* But do not automatically promote to pa2.0.  The automatic promotion
-        crud is for compatibility with HP's old assemblers only.  */
-      if (insn->arch < 20
+      if (insn->arch >= 20
          && bfd_get_mach (stdoutput) < insn->arch)
-       {
-         if (!bfd_set_arch_mach (stdoutput, bfd_arch_hppa, insn->arch))
-           as_warn (_("could not update architecture and machine"));
-       }
-      else if (bfd_get_mach (stdoutput) < insn->arch)
-       {
-         match = FALSE;
-         goto failed;
-       }
+       goto failed;
 
       /* Build the opcode, checking as we go to make
          sure that the operands match.  */
@@ -3962,6 +3950,16 @@ pa_ip (str)
          break;
        }
 
+      /* If this instruction is specific to a particular architecture,
+        then set a new architecture.  This automatic promotion crud is
+        for compatibility with HP's old assemblers only.  */
+      if (match == TRUE
+         && bfd_get_mach (stdoutput) < insn->arch)
+       {
+         if (!bfd_set_arch_mach (stdoutput, bfd_arch_hppa, insn->arch))
+           as_warn (_("could not update architecture and machine"));
+       }
+
  failed:
       /* Check if the args matched.  */
       if (!match)