mirror of
https://github.com/darlinghq/darling-gdb.git
synced 2024-11-25 13:09:48 +00:00
* config/tc-mips.c (append_insn): Correctly handle mips16 case
when the frags are different for the 2 instructions we want to swap. If the lengths of the 2 instructions are not the same, we won't do the swap but emit an nop.
This commit is contained in:
parent
8432045646
commit
e9df6573ba
@ -1,3 +1,10 @@
|
||||
2005-09-01 David Ung <davidu@mips.com>
|
||||
|
||||
* config/tc-mips.c (append_insn): Correctly handle mips16 case
|
||||
when the frags are different for the 2 instructions we want to
|
||||
swap. If the lengths of the 2 instructions are not the same, we
|
||||
won't do the swap but emit an nop.
|
||||
|
||||
2005-09-01 Dmitry Diky <diwil@spec.ru>
|
||||
|
||||
* config/tc-msp430.c (msp430_operands): Emit dwarf2_emit_insn()
|
||||
|
@ -2698,9 +2698,22 @@ append_insn (struct mips_cl_insn *ip, expressionS *address_expr,
|
||||
struct mips_cl_insn delay = history[0];
|
||||
if (mips_opts.mips16)
|
||||
{
|
||||
know (delay.frag == ip->frag);
|
||||
move_insn (ip, delay.frag, delay.where);
|
||||
move_insn (&delay, ip->frag, ip->where + insn_length (ip));
|
||||
if (delay.frag == ip->frag)
|
||||
{
|
||||
move_insn (ip, delay.frag, delay.where);
|
||||
move_insn (&delay, ip->frag, delay.where
|
||||
+ insn_length (ip));
|
||||
}
|
||||
else if (insn_length (ip) == insn_length (&delay))
|
||||
{
|
||||
move_insn (&delay, ip->frag, ip->where);
|
||||
move_insn (ip, history[0].frag, history[0].where);
|
||||
}
|
||||
else
|
||||
{
|
||||
add_fixed_insn (NOP_INSN);
|
||||
delay = *NOP_INSN;
|
||||
}
|
||||
}
|
||||
else if (relaxed_branch)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user