From 7d9e8fac1a0cef8cb4ae8e2e851bf51db54e5ecc Mon Sep 17 00:00:00 2001 From: Mark Alexander Date: Tue, 4 Feb 1997 17:18:56 +0000 Subject: [PATCH] * mips-tdep.c (mips16_get_imm): Fix calculation of extended immediate. (mips16_heuristic_proc_desc): Recognize jal(x) instruction. --- gdb/ChangeLog | 5 +++++ gdb/mips-tdep.c | 4 +++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 07c5f9ad6d6..bea87530f50 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +Tue Feb 04 09:04:37 1997 Mark Alexander + + * 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 * mips-tdep.c (mips16_decode_reg_save): Distinguish between diff --git a/gdb/mips-tdep.c b/gdb/mips-tdep.c index 75f10d1e561..5369259a1a6 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 */ } } -- 2.30.2