aboutsummaryrefslogtreecommitdiff
path: root/opcodes/msp430-dis.c
diff options
context:
space:
mode:
Diffstat (limited to 'opcodes/msp430-dis.c')
-rw-r--r--opcodes/msp430-dis.c33
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;