* mips-tdep.c (mips16_get_imm): Fix calculation of extended immediate.

(mips16_heuristic_proc_desc): Recognize jal(x) instruction.
This commit is contained in:
Mark Alexander 1997-02-04 17:18:56 +00:00
parent b348b9fd0e
commit 7d9e8fac1a
2 changed files with 8 additions and 1 deletions

View File

@ -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> Mon Feb 03 17:57:58 1997 Mark Alexander <marka@cygnus.com>
* mips-tdep.c (mips16_decode_reg_save): Distinguish between * mips-tdep.c (mips16_decode_reg_save): Distinguish between

View File

@ -651,7 +651,7 @@ mips16_get_imm (prev_inst, inst, nbits, scale, is_signed)
if ((prev_inst & 0xf800) == 0xf000) /* prev instruction was EXTEND? */ 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 */ if (offset & 0x8000) /* check for negative extend */
offset = 0 - (0x10000 - (offset & 0xffff)); offset = 0 - (0x10000 - (offset & 0xffff));
return offset | (inst & 0x1f); 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; temp_saved_regs.regs[reg] = sp + offset;
} }
} }
else if ((inst & 0xf800) == 0x1800) /* jal(x) */
cur_pc += MIPS16_INSTLEN; /* 32-bit instruction */
} }
} }