aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
authorMark Alexander <marka@cygnus>1997-02-04 17:18:56 +0000
committerMark Alexander <marka@cygnus>1997-02-04 17:18:56 +0000
commit7d9e8fac1a0cef8cb4ae8e2e851bf51db54e5ecc (patch)
tree7b7360590200f826b6317ab3627872bf6fa43e51 /gdb
parentb348b9fd0eaa0a02916e4b1e32fc047016058d57 (diff)
downloadgdb-7d9e8fac1a0cef8cb4ae8e2e851bf51db54e5ecc.zip
gdb-7d9e8fac1a0cef8cb4ae8e2e851bf51db54e5ecc.tar.gz
gdb-7d9e8fac1a0cef8cb4ae8e2e851bf51db54e5ecc.tar.bz2
* mips-tdep.c (mips16_get_imm): Fix calculation of extended immediate.
(mips16_heuristic_proc_desc): Recognize jal(x) instruction.
Diffstat (limited to 'gdb')
-rw-r--r--gdb/ChangeLog5
-rw-r--r--gdb/mips-tdep.c4
2 files changed, 8 insertions, 1 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 07c5f9a..bea8753 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+Tue Feb 04 09:04:37 1997 Mark Alexander <marka@cygnus.com>
+
+ * mips-tdep.c (mips16_get_imm): Fix calculation of extended immediate.
+ (mips16_heuristic_proc_desc): Recognize jal(x) instruction.
+
Mon Feb 03 17:57:58 1997 Mark Alexander <marka@cygnus.com>
* mips-tdep.c (mips16_decode_reg_save): Distinguish between
diff --git a/gdb/mips-tdep.c b/gdb/mips-tdep.c
index 75f10d1..5369259 100644
--- a/gdb/mips-tdep.c
+++ b/gdb/mips-tdep.c
@@ -651,7 +651,7 @@ mips16_get_imm (prev_inst, inst, nbits, scale, is_signed)
if ((prev_inst & 0xf800) == 0xf000) /* prev instruction was EXTEND? */
{
- offset = ((prev_inst & 0x1f) << 11) | (prev_inst & 0x7e00);
+ offset = ((prev_inst & 0x1f) << 11) | (prev_inst & 0x7e0);
if (offset & 0x8000) /* check for negative extend */
offset = 0 - (0x10000 - (offset & 0xffff));
return offset | (inst & 0x1f);
@@ -788,6 +788,8 @@ mips16_heuristic_proc_desc(start_pc, limit_pc, next_frame, sp)
temp_saved_regs.regs[reg] = sp + offset;
}
}
+ else if ((inst & 0xf800) == 0x1800) /* jal(x) */
+ cur_pc += MIPS16_INSTLEN; /* 32-bit instruction */
}
}