diff options
Diffstat (limited to 'gas/config/tc-mips.c')
-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 |