summaryrefslogtreecommitdiff
path: root/gdb/mips-tdep.c
diff options
context:
space:
mode:
authorMaciej W. Rozycki <macro@linux-mips.org>2012-04-10 23:06:57 +0000
committerMaciej W. Rozycki <macro@linux-mips.org>2012-04-10 23:06:57 +0000
commit34b192ce9c35a0833f2fe13e472df189125be4c1 (patch)
treea603a11a73be6ad2e68aeeb1a0d55bc4147298a2 /gdb/mips-tdep.c
parent9e8da49c0182de1ca0d5feb14241daefc920c92b (diff)
downloadbinutils-gdb-34b192ce9c35a0833f2fe13e472df189125be4c1.tar.gz
* mips-tdep.c (mips_skip_pic_trampoline_code): Correct sign
extension in jump target calculation.
Diffstat (limited to 'gdb/mips-tdep.c')
-rw-r--r--gdb/mips-tdep.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/gdb/mips-tdep.c b/gdb/mips-tdep.c
index 7ec358387b3..7b0ca703c89 100644
--- a/gdb/mips-tdep.c
+++ b/gdb/mips-tdep.c
@@ -5768,8 +5768,8 @@ mips_skip_pic_trampoline_code (struct frame_info *frame, CORE_ADDR pc)
&& (stub_words[1] & 0xfc000000U) == 0x08000000
&& (stub_words[2] & 0xffff0000U) == 0x27390000
&& stub_words[3] == 0x00000000)
- return (((stub_words[0] & 0x0000ffff) << 16)
- + (stub_words[2] & 0x0000ffff));
+ return ((((stub_words[0] & 0x0000ffff) << 16)
+ + (stub_words[2] & 0x0000ffff)) ^ 0x8000) - 0x8000;
}
/* Not a recognized stub. */