diff options
Diffstat (limited to 'opcodes/msp430-dis.c')
-rw-r--r-- | opcodes/msp430-dis.c | 33 |
1 files changed, 22 insertions, 11 deletions
diff --git a/opcodes/msp430-dis.c b/opcodes/msp430-dis.c index bf705f0..4285e88 100644 --- a/opcodes/msp430-dis.c +++ b/opcodes/msp430-dis.c @@ -259,9 +259,6 @@ msp430_singleoperand (disassemble_info *info, { cmd_len += 2; *cycles = 4; - sprintf (op, "0x%04x", dst); - sprintf (comm, "PC rel. abs addr 0x%04x", - PS ((short) (addr + 2) + dst)); if (extended_dst) { dst |= extended_dst << 16; @@ -269,6 +266,12 @@ msp430_singleoperand (disassemble_info *info, sprintf (comm, "PC rel. abs addr 0x%05lx", (long)((addr + 2 + dst) & 0xfffff)); } + else + { + sprintf (op, "0x%04x", dst); + sprintf (comm, "PC rel. abs addr 0x%04x", + PS ((short) (addr + 2) + dst)); + } } else return -1; @@ -280,12 +283,13 @@ msp430_singleoperand (disassemble_info *info, { cmd_len += 2; *cycles = 4; - sprintf (op, "&0x%04x", PS (dst)); if (extended_dst) { dst |= extended_dst << 16; sprintf (op, "&0x%05x", dst & 0xfffff); } + else + sprintf (op, "&0x%04x", PS (dst)); } else return -1; @@ -339,9 +343,6 @@ msp430_singleoperand (disassemble_info *info, if (msp430dis_opcode_signed (addr + 2, info, &dst, comm)) { cmd_len += 2; - sprintf (op, "#%d", dst); - if (dst > 9 || dst < 0) - sprintf (comm, "#0x%04x", PS (dst)); if (extended_dst) { dst |= extended_dst << 16; @@ -351,6 +352,12 @@ msp430_singleoperand (disassemble_info *info, if (dst > 9 || dst < 0) sprintf (comm, "#0x%05x", dst); } + else + { + sprintf (op, "#%d", dst); + if (dst > 9 || dst < 0) + sprintf (comm, "#0x%04x", PS (dst)); + } } else return -1; @@ -367,9 +374,6 @@ msp430_singleoperand (disassemble_info *info, if (msp430dis_opcode_signed (addr + 2, info, &dst, comm)) { cmd_len += 2; - sprintf (op, "0x%04x", PS (dst)); - sprintf (comm, "PC rel. 0x%04x", - PS ((short) addr + 2 + dst)); if (extended_dst) { dst |= extended_dst << 16; @@ -377,6 +381,12 @@ msp430_singleoperand (disassemble_info *info, sprintf (comm, "PC rel. 0x%05lx", (long)((addr + 2 + dst) & 0xfffff)); } + else + { + sprintf (op, "0x%04x", PS (dst)); + sprintf (comm, "PC rel. 0x%04x", + PS ((short) addr + 2 + dst)); + } } else return -1; @@ -387,12 +397,13 @@ msp430_singleoperand (disassemble_info *info, if (msp430dis_opcode_signed (addr + 2, info, &dst, comm)) { cmd_len += 2; - sprintf (op, "&0x%04x", PS (dst)); if (extended_dst) { dst |= extended_dst << 16; sprintf (op, "&0x%05x", dst & 0xfffff); } + else + sprintf (op, "&0x%04x", PS (dst)); } else return -1; |