* mips-tdep.c (mips_skip_pic_trampoline_code): Correct sign
authorMaciej W. Rozycki <macro@linux-mips.org>
Tue, 10 Apr 2012 23:06:57 +0000 (23:06 +0000)
committerMaciej W. Rozycki <macro@linux-mips.org>
Tue, 10 Apr 2012 23:06:57 +0000 (23:06 +0000)
extension in jump target calculation.

gdb/ChangeLog
gdb/mips-tdep.c

index 1312b1e..83dfa08 100644 (file)
@@ -1,5 +1,10 @@
 2011-04-10  Maciej W. Rozycki  <macro@codesourcery.com>
 
+       * mips-tdep.c (mips_skip_pic_trampoline_code): Correct sign
+       extension in jump target calculation.
+
+2011-04-10  Maciej W. Rozycki  <macro@codesourcery.com>
+
        * mips-tdep.c (mips32_next_pc): Handle JALX.
 
 2012-04-10  Yao Qi  <yao@codesourcery.com>
index 7ec3583..7b0ca70 100644 (file)
@@ -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.  */