summaryrefslogtreecommitdiff
path: root/gas/config
diff options
context:
space:
mode:
authorRichard Sandiford <rsandifo@nildram.co.uk>2013-08-03 10:41:12 +0000
committerRichard Sandiford <rsandifo@nildram.co.uk>2013-08-03 10:41:12 +0000
commit6bfa937b479a0fff0a1d232482ab4002a8e7698f (patch)
tree8defe98927b346f2883210cb7e6c7098e9848682 /gas/config
parent1463bd298c7d4c9472268637f5533d35f9e462c4 (diff)
downloadbinutils-redhat-6bfa937b479a0fff0a1d232482ab4002a8e7698f.tar.gz
gas/
* config/tc-mips.c (mips16_macro): Don't use move_register. (mips16_ip): Allow macros to use 'p'. gas/testsuite/ * gas/mips/mips16-macro.s, gas/mips/mips16-macro.d: New test. * gas/mips/mips.exp: Run it.
Diffstat (limited to 'gas/config')
-rw-r--r--gas/config/tc-mips.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c
index 79c99abf6f..bdfcc3a2ab 100644
--- a/gas/config/tc-mips.c
+++ b/gas/config/tc-mips.c
@@ -12060,10 +12060,11 @@ mips16_macro (struct mips_cl_insn *ip)
expr1.X_add_number = 0;
macro_build (&expr1, "slti", "x,8", yreg);
if (xreg != yreg)
- move_register (xreg, yreg);
+ macro_build (NULL, "move", "y,X", xreg, mips16_to_32_reg_map[yreg]);
expr1.X_add_number = 2;
macro_build (&expr1, "bteqz", "p");
macro_build (NULL, "neg", "x,w", xreg, xreg);
+ break;
}
}
@@ -12680,7 +12681,7 @@ mips16_ip (char *str, struct mips_cl_insn *ip)
we can. */
if (insn->pinfo == INSN_MACRO)
{
- gas_assert (relax_char == 0);
+ gas_assert (relax_char == 0 || relax_char == 'p');
gas_assert (*offset_reloc == BFD_RELOC_UNUSED);
}
else if (relax_char