diff options
author | Maciej W. Rozycki <macro@linux-mips.org> | 2010-12-09 22:56:46 +0000 |
---|---|---|
committer | Maciej W. Rozycki <macro@linux-mips.org> | 2010-12-09 22:56:46 +0000 |
commit | c4a68bea7aba5181ec0e8a67ee8619864ae8de9a (patch) | |
tree | 4e8e3745cb3834b42b7d6e5c95d3f20a87d37d02 /gas | |
parent | 88320db2f7f0489188d08c74d81a2b3459bbe1eb (diff) | |
download | gdb-c4a68bea7aba5181ec0e8a67ee8619864ae8de9a.zip gdb-c4a68bea7aba5181ec0e8a67ee8619864ae8de9a.tar.gz gdb-c4a68bea7aba5181ec0e8a67ee8619864ae8de9a.tar.bz2 |
* config/tc-mips.c (macro) <M_S_DOB>: Fix the placement of code.
Diffstat (limited to 'gas')
-rw-r--r-- | gas/ChangeLog | 4 | ||||
-rw-r--r-- | gas/config/tc-mips.c | 22 |
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); |