* config/tc-mips.c (macro)[M_LD_OB, M_SD_OB]: Use the offset
authorMaciej W. Rozycki <macro@linux-mips.org>
Mon, 1 Nov 2010 09:53:55 +0000 (09:53 +0000)
committerMaciej W. Rozycki <macro@linux-mips.org>
Mon, 1 Nov 2010 09:53:55 +0000 (09:53 +0000)
reloc supplied.
(mips_ip)['o']: Initialise offset_reloc.

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

index c450019..d294525 100644 (file)
@@ -1,3 +1,9 @@
+2010-11-01  Maciej W. Rozycki  <macro@linux-mips.org>
+
+       * config/tc-mips.c (macro)[M_LD_OB, M_SD_OB]: Use the offset
+       reloc supplied.
+       (mips_ip)['o']: Initialise offset_reloc.
+
 2010-10-29  Joseph Myers  <joseph@codesourcery.com>
 
        * doc/c-tic6x.texi (TIC6X Directives): Mention
index 507c5ff..9fa4cce 100644 (file)
@@ -7350,12 +7350,15 @@ macro (struct mips_cl_insn *ip)
     case M_SD_OB:
       s = HAVE_64BIT_GPRS ? "sd" : "sw";
     sd_ob:
-      macro_build (&offset_expr, s, "t,o(b)", treg, BFD_RELOC_LO16, breg);
+      macro_build (&offset_expr, s, "t,o(b)", treg,
+                  -1, offset_reloc[0], offset_reloc[1], offset_reloc[2],
+                  breg);
       if (!HAVE_64BIT_GPRS)
        {
          offset_expr.X_add_number += 4;
          macro_build (&offset_expr, s, "t,o(b)", treg + 1,
-                      BFD_RELOC_LO16, breg);
+                      -1, offset_reloc[0], offset_reloc[1], offset_reloc[2],
+                      breg);
        }
       break;
 
@@ -9960,6 +9963,10 @@ do_msbd:
              continue;
 
            case 'o':           /* 16 bit offset */
+             offset_reloc[0] = BFD_RELOC_LO16;
+             offset_reloc[1] = BFD_RELOC_UNUSED;
+             offset_reloc[2] = BFD_RELOC_UNUSED;
+
              /* Check whether there is only a single bracketed expression
                 left.  If so, it must be the base register and the
                 constant must be zero.  */