diff options
author | Richard Sandiford <rsandifo@nildram.co.uk> | 2013-08-03 10:41:12 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@nildram.co.uk> | 2013-08-03 10:41:12 +0000 |
commit | 6bfa937b479a0fff0a1d232482ab4002a8e7698f (patch) | |
tree | 8defe98927b346f2883210cb7e6c7098e9848682 /gas/config | |
parent | 1463bd298c7d4c9472268637f5533d35f9e462c4 (diff) | |
download | binutils-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.c | 5 |
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 |