Fix the disassembly of MSP430 extended index addressing mode.
* msp430-dis.c (msp430_doubleoperand): Use extension_word to decide when extended addressing is being used.
This commit is contained in:
parent
69227609dc
commit
9f44512958
2 changed files with 16 additions and 11 deletions
|
@ -1,3 +1,8 @@
|
|||
2014-06-03 Nick Clifton <nickc@redhat.com>
|
||||
|
||||
* msp430-dis.c (msp430_doubleoperand): Use extension_word to
|
||||
decide when extended addressing is being used.
|
||||
|
||||
2014-06-02 Eric Botcazou <ebotcazou@adacore.com>
|
||||
|
||||
* sparc-opc.c (cas): Disable for LEON.
|
||||
|
@ -34,7 +39,7 @@
|
|||
* mips-dis.c (mips_arch_choices): Add mips32r3, mips32r5, mips64r3 and
|
||||
mips64r5.
|
||||
(parse_mips_dis_option): Update MSA and virtualization support to
|
||||
allow mips64r3 and mips64r5.
|
||||
allow mips64r3 and mips64r5.
|
||||
|
||||
2014-05-07 Andrew Bennett <andrew.bennett@imgtec.com>
|
||||
|
||||
|
|
|
@ -427,7 +427,7 @@ msp430_doubleoperand (disassemble_info *info,
|
|||
sprintf (op1, "0x%04x", PS (dst));
|
||||
sprintf (comm1, "PC rel. 0x%04x",
|
||||
PS ((short) addr + 2 + dst));
|
||||
if (extended_dst)
|
||||
if (extension_word)
|
||||
{
|
||||
dst |= extended_dst << 16;
|
||||
if (dst & 0x80000)
|
||||
|
@ -448,7 +448,7 @@ msp430_doubleoperand (disassemble_info *info,
|
|||
cmd_len += 4;
|
||||
*cycles = 6;
|
||||
sprintf (op1, "&0x%04x", PS (dst));
|
||||
if (extended_dst)
|
||||
if (extension_word)
|
||||
{
|
||||
dst |= extended_dst << 16;
|
||||
sprintf (op1, "&0x%05x", dst & 0xfffff);
|
||||
|
@ -458,7 +458,7 @@ msp430_doubleoperand (disassemble_info *info,
|
|||
{
|
||||
/* Indexed. */
|
||||
dst = msp430dis_opcode (addr + 2, info);
|
||||
if (extended_dst)
|
||||
if (extension_word)
|
||||
{
|
||||
dst |= extended_dst << 16;
|
||||
if (dst & 0x80000)
|
||||
|
@ -519,7 +519,7 @@ msp430_doubleoperand (disassemble_info *info,
|
|||
sprintf (op1, "#%d", dst);
|
||||
if (dst > 9 || dst < 0)
|
||||
sprintf (comm1, "#0x%04x", PS (dst));
|
||||
if (extended_src)
|
||||
if (extension_word)
|
||||
{
|
||||
dst |= extended_src << 16;
|
||||
if (dst & 0x80000)
|
||||
|
@ -543,7 +543,7 @@ msp430_doubleoperand (disassemble_info *info,
|
|||
sprintf (op1, "0x%04x", PS (dst));
|
||||
sprintf (comm1, "PC rel. 0x%04x",
|
||||
PS ((short) addr + 2 + dst));
|
||||
if (extended_src)
|
||||
if (extension_word)
|
||||
{
|
||||
dst |= extended_src << 16;
|
||||
if (dst & 0x80000)
|
||||
|
@ -561,7 +561,7 @@ msp430_doubleoperand (disassemble_info *info,
|
|||
cmd_len += 2;
|
||||
sprintf (op1, "&0x%04x", PS (dst));
|
||||
sprintf (comm1, "0x%04x", PS (dst));
|
||||
if (extended_src)
|
||||
if (extension_word)
|
||||
{
|
||||
dst |= extended_src << 16;
|
||||
sprintf (op1, "&0x%05x", dst & 0xfffff);
|
||||
|
@ -580,7 +580,7 @@ msp430_doubleoperand (disassemble_info *info,
|
|||
/* Indexed. */
|
||||
dst = msp430dis_opcode (addr + 2, info);
|
||||
cmd_len += 2;
|
||||
if (extended_src)
|
||||
if (extension_word)
|
||||
{
|
||||
dst |= extended_src << 16;
|
||||
if (dst & 0x80000)
|
||||
|
@ -625,7 +625,7 @@ msp430_doubleoperand (disassemble_info *info,
|
|||
sprintf (op2, "0x%04x", PS (dst));
|
||||
sprintf (comm2, "PC rel. 0x%04x",
|
||||
PS ((short) addr + cmd_len + dst));
|
||||
if (extended_dst)
|
||||
if (extension_word)
|
||||
{
|
||||
dst |= extended_dst << 16;
|
||||
if (dst & 0x80000)
|
||||
|
@ -642,7 +642,7 @@ msp430_doubleoperand (disassemble_info *info,
|
|||
dst = msp430dis_opcode (addr + cmd_len, info);
|
||||
cmd_len += 2;
|
||||
sprintf (op2, "&0x%04x", PS (dst));
|
||||
if (extended_dst)
|
||||
if (extension_word)
|
||||
{
|
||||
dst |= extended_dst << 16;
|
||||
sprintf (op2, "&0x%05x", dst & 0xfffff);
|
||||
|
@ -656,7 +656,7 @@ msp430_doubleoperand (disassemble_info *info,
|
|||
dst |= -1 << 16;
|
||||
if (dst > 9 || dst < 0)
|
||||
sprintf (comm2, "0x%04x", PS (dst));
|
||||
if (extended_dst)
|
||||
if (extension_word)
|
||||
{
|
||||
dst |= extended_dst << 16;
|
||||
if (dst & 0x80000)
|
||||
|
|
Loading…
Reference in a new issue