MIPS: Rewrite `add_offset_16' to match its name
authorMaciej W. Rozycki <macro@codesourcery.com>
Sun, 5 Oct 2014 22:37:53 +0000 (23:37 +0100)
committerMaciej W. Rozycki <macro@codesourcery.com>
Sun, 5 Oct 2014 22:37:53 +0000 (23:37 +0100)
commit484933d11fca33ded4c5465eae3781bf79ee12e2
treee6955c7c422abf93003183ea20f7f7db76884bad
parentab50adb6a622fc599ce6e037ae0cdfaf952f4bb4
MIPS: Rewrite `add_offset_16' to match its name

A helper function called `add_offset_16' is used by
`extended_mips16_next_pc' to calculate branch destinations.  Weirdly
enough the helper does not do what the name suggests and rather than
doing its work for a 16-bit immediate branch offset it makes its
calculations on a 26-bit immediate target used by JAL and JALX
instructions.  Furthermore the JAL/JALX calculation is only needed once
by `extended_mips16_next_pc' while a 16-bit branch offset calculation
is made inline several times across `extended_mips16_next_pc'.

This change therefore replaces the contents of `add_offset_16' with the
16-bit branch offset calculation and updates `extended_mips16_next_pc'
accordingly.

* mips-tdep.c (add_offset_16): Rewrite to implement what the
name implies.
(extended_mips16_next_pc): Update accordingly.
gdb/ChangeLog
gdb/mips-tdep.c