aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMaciej W. Rozycki <macro@linux-mips.org>2010-12-09 22:56:46 +0000
committerMaciej W. Rozycki <macro@linux-mips.org>2010-12-09 22:56:46 +0000
commitc4a68bea7aba5181ec0e8a67ee8619864ae8de9a (patch)
tree4e8e3745cb3834b42b7d6e5c95d3f20a87d37d02
parent88320db2f7f0489188d08c74d81a2b3459bbe1eb (diff)
downloadgdb-c4a68bea7aba5181ec0e8a67ee8619864ae8de9a.zip
gdb-c4a68bea7aba5181ec0e8a67ee8619864ae8de9a.tar.gz
gdb-c4a68bea7aba5181ec0e8a67ee8619864ae8de9a.tar.bz2
* config/tc-mips.c (macro) <M_S_DOB>: Fix the placement of code.
-rw-r--r--gas/ChangeLog4
-rw-r--r--gas/config/tc-mips.c22
2 files changed, 15 insertions, 11 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog
index 64cdfe1..51f6430 100644
--- a/gas/ChangeLog
+++ b/gas/ChangeLog
@@ -1,5 +1,9 @@
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
argument complained about; reword the message.
diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c
index 780d879..d07553b 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);