From 0970e49e1a9eada774c7bcd4093fa4df36effbb1 Mon Sep 17 00:00:00 2001 From: "Maciej W. Rozycki" Date: Mon, 18 Oct 2010 00:17:43 +0000 Subject: [PATCH] * config/tc-mips.c (macro)[ldd_std]: Fix the relaxation variant for absolute addressing. --- gas/ChangeLog | 5 +++++ gas/config/tc-mips.c | 21 +-------------------- 2 files changed, 6 insertions(+), 20 deletions(-) diff --git a/gas/ChangeLog b/gas/ChangeLog index 68cea17d6ed..ac328477afa 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +2010-10-18 Maciej W. Rozycki + + * config/tc-mips.c (macro)[ldd_std]: Fix the relaxation variant + for absolute addressing. + 2010-10-18 Maciej W. Rozycki * config/tc-mips.c (macro)[M_LD_OB, M_SD_OB]: Handle 64-bit ABIs. diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c index bf26235b84a..51dbd6f4153 100644 --- a/gas/config/tc-mips.c +++ b/gas/config/tc-mips.c @@ -7203,26 +7203,7 @@ macro (struct mips_cl_insn *ip) relax_switch (); - /* We just generated two relocs. When tc_gen_reloc - handles this case, it will skip the first reloc and - handle the second. The second reloc already has an - extra addend of 4, which we added above. We must - subtract it out, and then subtract another 4 to make - the first reloc come out right. The second reloc - will come out right because we are going to add 4 to - offset_expr when we build its instruction below. - - If we have a symbol, then we don't want to include - the offset, because it will wind up being included - when we generate the reloc. */ - - if (offset_expr.X_op == O_constant) - offset_expr.X_add_number -= 8; - else - { - offset_expr.X_add_number = -4; - offset_expr.X_op = O_constant; - } + offset_expr.X_add_number -= 4; } used_at = 1; macro_build_lui (&offset_expr, AT); -- 2.30.2