From 7672143ef461fbbd3be33809c8a4ea65e1fcee39 Mon Sep 17 00:00:00 2001 From: "Maciej W. Rozycki" Date: Thu, 9 Dec 2010 22:56:46 +0000 Subject: [PATCH] * config/tc-mips.c (macro) : Fix the placement of code. --- gas/ChangeLog | 4 ++++ gas/config/tc-mips.c | 22 +++++++++++----------- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/gas/ChangeLog b/gas/ChangeLog index 64cdfe1f4..51f6430ac 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,5 +1,9 @@ 2010-12-09 Maciej W. Rozycki + * config/tc-mips.c (macro) : Fix the placement of code. + +2010-12-09 Maciej W. Rozycki + * config/tc-mips.c (mips_ip) <'u'>: Report the value of the LUI argument complained about; reword the message. diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c index 780d87976..d07553bf6 100644 --- a/gas/config/tc-mips.c +++ b/gas/config/tc-mips.c @@ -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); -- 2.11.4.GIT