]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
2002-07-31 Daniel Jacobowitz <drow@mvista.com>
authorDaniel Jacobowitz <drow@false.org>
Wed, 31 Jul 2002 14:23:59 +0000 (14:23 +0000)
committerDaniel Jacobowitz <drow@false.org>
Wed, 31 Jul 2002 14:23:59 +0000 (14:23 +0000)
        Merge from mainline:
        2002-07-30  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
        * tc-mips.c (load_address): Don't clobber $at when loading a
        64-bit address in non-PIC code if noat is in effect.
        (macro): Likewise.

        2002-07-30  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
        * config/tc-mips.c (macro): Use codes 6 and 7 in trap instructions
        used in division/multiply macro expansions similarly to how they
        are used in the variants with break instructions.
        (macro2): Likewise.

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

index 578b834931fbe1ddde8e47fcbded66a01a2c90e5..d93307560a08089eb8f75ae81bb2769fcc2e4350 100644 (file)
@@ -1,3 +1,17 @@
+2002-07-31  Daniel Jacobowitz  <drow@mvista.com>
+
+       Merge from mainline:
+       2002-07-30  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
+       * tc-mips.c (load_address): Don't clobber $at when loading a
+       64-bit address in non-PIC code if noat is in effect.
+       (macro): Likewise.
+
+       2002-07-30  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
+       * config/tc-mips.c (macro): Use codes 6 and 7 in trap instructions
+       used in division/multiply macro expansions similarly to how they
+       are used in the variants with break instructions.
+       (macro2): Likewise.
+
 2002-07-26  Alan Modra  <amodra@bigpond.net.au>
 
        * config/tc-ppc.c (ppc_set_cpu): Use PPC_OPCODE_64 as the default
index 2b88e5694ba4c105596d2bee77b78cb1e1dad656..84f1c26138f35281a95c2918355772c7d34aaa5a 100644 (file)
@@ -3547,7 +3547,7 @@ load_address (counter, reg, ep, used_at)
          /* We don't do GP optimization for now because RELAX_ENCODE can't
             hold the data for such large chunks.  */
 
-         if (*used_at == 0)
+         if (*used_at == 0 && ! mips_opts.noat)
            {
              macro_build (p, counter, ep, "lui", "t,u",
                           reg, (int) BFD_RELOC_MIPS_HIGHEST);
@@ -4259,7 +4259,7 @@ macro (ip)
          as_warn (_("Divide by zero."));
          if (mips_trap)
            macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "teq",
-                        "s,t", 0, 0);
+                        "s,t,q", 0, 0, 7);
          else
            macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "break",
                         "c", 7);
@@ -4272,7 +4272,7 @@ macro (ip)
       if (mips_trap)
        {
          macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "teq",
-                      "s,t", treg, 0);
+                      "s,t,q", treg, 0, 7);
          macro_build ((char *) NULL, &icnt, (expressionS *) NULL,
                       dbl ? "ddiv" : "div", "z,s,t", sreg, treg);
        }
@@ -4308,7 +4308,7 @@ macro (ip)
       if (mips_trap)
        {
          macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "teq",
-                      "s,t", sreg, AT);
+                      "s,t,q", sreg, AT, 6);
          /* We want to close the noreorder block as soon as possible, so
             that later insns are available for delay slot filling.  */
          --mips_opts.noreorder;
@@ -4371,7 +4371,7 @@ macro (ip)
          as_warn (_("Divide by zero."));
          if (mips_trap)
            macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "teq",
-                        "s,t", 0, 0);
+                        "s,t,q", 0, 0, 7);
          else
            macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "break",
                         "c", 7);
@@ -4427,7 +4427,7 @@ macro (ip)
       if (mips_trap)
        {
          macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "teq",
-                      "s,t", treg, 0);
+                      "s,t,q", treg, 0, 7);
          macro_build ((char *) NULL, &icnt, (expressionS *) NULL, s, "z,s,t",
                       sreg, treg);
          /* We want to close the noreorder block as soon as possible, so
@@ -4562,7 +4562,7 @@ macro (ip)
              /* We don't do GP optimization for now because RELAX_ENCODE can't
                 hold the data for such large chunks.  */
 
-             if (used_at == 0)
+             if (used_at == 0 && ! mips_opts.noat)
                {
                  macro_build (p, &icnt, &offset_expr, "lui", "t,u",
                               tempreg, (int) BFD_RELOC_MIPS_HIGHEST);
@@ -5515,7 +5515,7 @@ macro (ip)
              /* We don't do GP optimization for now because RELAX_ENCODE can't
                 hold the data for such large chunks.  */
 
-             if (used_at == 0)
+             if (used_at == 0 && ! mips_opts.noat)
                {
                  macro_build (p, &icnt, &offset_expr, "lui", "t,u",
                               tempreg, (int) BFD_RELOC_MIPS_HIGHEST);
@@ -6576,8 +6576,8 @@ macro2 (ip)
       macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "mfhi", "d",
                   AT);
       if (mips_trap)
-       macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "tne", "s,t",
-                    dreg, AT);
+       macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "tne",
+                    "s,t,q", dreg, AT, 6);
       else
        {
          expr1.X_add_number = 8;
@@ -6615,8 +6615,8 @@ macro2 (ip)
       macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "mflo", "d",
                   dreg);
       if (mips_trap)
-       macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "tne", "s,t",
-                    AT, 0);
+       macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "tne",
+                    "s,t,q", AT, 0, 6);
       else
        {
          expr1.X_add_number = 8;