projects
/
deliverable
/
binutils-gdb.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix reconnecting to a gdbserver already debugging multiple processes, II
[deliverable/binutils-gdb.git]
/
opcodes
/
sh-dis.c
diff --git
a/opcodes/sh-dis.c
b/opcodes/sh-dis.c
index 126cb5ba992ef4c8a514c013f4f7ae8ad89b3e93..5d771a53a50a5732c43d91f6a860faa7550bf898 100644
(file)
--- a/
opcodes/sh-dis.c
+++ b/
opcodes/sh-dis.c
@@
-1,5
+1,5
@@
/* Disassemble SH instructions.
/* Disassemble SH instructions.
- Copyright (C) 1993-20
19
Free Software Foundation, Inc.
+ Copyright (C) 1993-20
20
Free Software Foundation, Inc.
This file is part of the GNU opcodes library.
This file is part of the GNU opcodes library.
@@
-102,8
+102,7
@@
print_movxy (const sh_opcode_info *op,
/* Print a double data transfer insn. INSN is just the lower three
nibbles of the insn, i.e. field a and the bit that indicates if
/* Print a double data transfer insn. INSN is just the lower three
nibbles of the insn, i.e. field a and the bit that indicates if
- a parallel processing insn follows.
- Return nonzero if a field b of a parallel processing insns follows. */
+ a parallel processing insn follows. */
static void
print_insn_ddt (int insn, struct disassemble_info *info)
static void
print_insn_ddt (int insn, struct disassemble_info *info)
@@
-113,7
+112,10
@@
print_insn_ddt (int insn, struct disassemble_info *info)
/* If this is just a nop, make sure to emit something. */
if (insn == 0x000)
/* If this is just a nop, make sure to emit something. */
if (insn == 0x000)
- fprintf_fn (stream, "nopx\tnopy");
+ {
+ fprintf_fn (stream, "nopx\tnopy");
+ return;
+ }
/* If a parallel processing insn was printed before,
and we got a non-nop, emit a tab. */
/* If a parallel processing insn was printed before,
and we got a non-nop, emit a tab. */
@@
-121,8
+123,8
@@
print_insn_ddt (int insn, struct disassemble_info *info)
fprintf_fn (stream, "\t");
/* Check if either the x or y part is invalid. */
fprintf_fn (stream, "\t");
/* Check if either the x or y part is invalid. */
- if (((insn & 0xc) == 0 && (insn & 0x2a0))
- || ((insn & 3) == 0 && (insn & 0x150)))
+ if (((insn &
3) != 0 && (insn &
0xc) == 0 && (insn & 0x2a0))
+ || ((insn & 3) == 0 && (insn & 0x
c) != 0 && (insn & 0x
150)))
if (info->mach != bfd_mach_sh_dsp
&& info->mach != bfd_mach_sh3_dsp)
{
if (info->mach != bfd_mach_sh_dsp
&& info->mach != bfd_mach_sh3_dsp)
{
@@
-157,7
+159,7
@@
print_insn_ddt (int insn, struct disassemble_info *info)
fprintf_fn, stream);
}
else
fprintf_fn, stream);
}
else
- fprintf_fn (stream, ".word 0x%x", insn);
+ fprintf_fn (stream, ".word 0x%x", insn
| 0xf000
);
else
{
static const sh_opcode_info *first_movx, *first_movy;
else
{
static const sh_opcode_info *first_movx, *first_movy;
@@
-189,6
+191,8
@@
print_insn_ddt (int insn, struct disassemble_info *info)
print_movxy (opy, ((insn >> 8) & 1) + 6, (insn >> 6) & 1,
fprintf_fn, stream);
}
print_movxy (opy, ((insn >> 8) & 1) + 6, (insn >> 6) & 1,
fprintf_fn, stream);
}
+ if (!insn_x && !insn_y && ((insn & 0x3ff) != 0 || (insn & 0x800) == 0))
+ fprintf_fn (stream, ".word 0x%x", insn | 0xf000);
}
}
}
}
This page took
0.034813 seconds
and
4
git commands to generate.