MIPS: Correct MUSTBE32 interpretation in delay slot handling
authorMaciej W. Rozycki <macro@codesourcery.com>
Sun, 5 Oct 2014 20:50:47 +0000 (21:50 +0100)
committerMaciej W. Rozycki <macro@codesourcery.com>
Sun, 5 Oct 2014 20:50:47 +0000 (21:50 +0100)
commitae79065284d6250c27377b5ca1dce54da9b1d4ba
treedf4f921408584d2897ed09efac7ffa0c990357d3
parent24340e81faf9d23de6456293954de73785e53d3f
MIPS: Correct MUSTBE32 interpretation in delay slot handling

This change addresses `micromips_instruction_has_delay_slot' and
`mips16_instruction_has_delay_slot' that both incorrectly interpret
their MUSTBE32 argument.  Their callers assume that when the flag is
clear these functions will return 1 when any non-compact jump or branch
instruction is present at ADDR, while in fact they will only return 1
for 16-bit such instructions only.  This change makes the implementation
match the expectations.

* mips-tdep.c (micromips_instruction_has_delay_slot): When
!mustbe32 also return 1 for 32-bit instructions.
(mips16_instruction_has_delay_slot): Likewise.  Add an
explanatory comment.
gdb/ChangeLog
gdb/mips-tdep.c