From 4614d8454f59cc99d5b18ec965f7c7a72b340a47 Mon Sep 17 00:00:00 2001 From: "Maciej W. Rozycki" Date: Mon, 1 Nov 2010 09:53:55 +0000 Subject: [PATCH] * config/tc-mips.c (macro)[M_LD_OB, M_SD_OB]: Use the offset reloc supplied. (mips_ip)['o']: Initialise offset_reloc. --- gas/ChangeLog | 6 ++++++ gas/config/tc-mips.c | 11 +++++++++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/gas/ChangeLog b/gas/ChangeLog index c4500195cf..d294525b99 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,9 @@ +2010-11-01 Maciej W. Rozycki + + * 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 * doc/c-tic6x.texi (TIC6X Directives): Mention diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c index 507c5ff1d1..9fa4ccee18 100644 --- a/gas/config/tc-mips.c +++ b/gas/config/tc-mips.c @@ -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. */