* config/tc-mips.c (macro) <M_S_DOB>: Fix the placement of code.
authorMaciej W. Rozycki <macro@linux-mips.org>
Thu, 9 Dec 2010 22:56:46 +0000 (22:56 +0000)
committerMaciej W. Rozycki <macro@linux-mips.org>
Thu, 9 Dec 2010 22:56:46 +0000 (22:56 +0000)
gas/ChangeLog
gas/config/tc-mips.c

index 64cdfe1f499e69ddbf3bc5bef3105b343be0d368..51f6430ac5d538f31c8dd88e60f9a76f04e3674b 100644 (file)
@@ -1,3 +1,7 @@
+2010-12-09  Maciej W. Rozycki  <macro@codesourcery.com>
+
+       * config/tc-mips.c (macro) <M_S_DOB>: Fix the placement of code.
+
 2010-12-09  Maciej W. Rozycki  <macro@codesourcery.com>
 
        * config/tc-mips.c (mips_ip) <'u'>: Report the value of the LUI
index 780d879762f98ae39c971ee5fb6223a063f704d7..d07553bf6cbf6c6c69d14130f6676bd87fa39878 100644 (file)
@@ -7062,6 +7062,17 @@ macro (struct mips_cl_insn *ip)
                   target_big_endian ? treg : treg + 1, r, breg);
       break;
 
+    case M_S_DOB:
+      gas_assert (mips_opts.isa == ISA_MIPS1);
+      /* Even on a big endian machine $fn comes before $fn+1.  We have
+        to adjust when storing to memory.  */
+      macro_build (&offset_expr, "swc1", "T,o(b)",
+                  target_big_endian ? treg + 1 : treg, BFD_RELOC_LO16, breg);
+      offset_expr.X_add_number += 4;
+      macro_build (&offset_expr, "swc1", "T,o(b)",
+                  target_big_endian ? treg : treg + 1, BFD_RELOC_LO16, breg);
+      break;
+
     case M_L_DAB:
       /*
        * The MIPS assembler seems to check for X_add_number not
@@ -7666,17 +7677,6 @@ macro (struct mips_cl_insn *ip)
       }
       break;
 
-    case M_S_DOB:
-      gas_assert (mips_opts.isa == ISA_MIPS1);
-      /* Even on a big endian machine $fn comes before $fn+1.  We have
-        to adjust when storing to memory.  */
-      macro_build (&offset_expr, "swc1", "T,o(b)",
-                  target_big_endian ? treg + 1 : treg, BFD_RELOC_LO16, breg);
-      offset_expr.X_add_number += 4;
-      macro_build (&offset_expr, "swc1", "T,o(b)",
-                  target_big_endian ? treg : treg + 1, BFD_RELOC_LO16, breg);
-      break;
-
     case M_SEQ:
       if (sreg == 0)
        macro_build (&expr1, "sltiu", "t,r,j", dreg, treg, BFD_RELOC_LO16);