S/390: Dump unknown instructions according to their length.
authorAndreas Krebbel <krebbel@linux.vnet.ibm.com>
Fri, 10 Jun 2016 11:40:48 +0000 (13:40 +0200)
committerAndreas Krebbel <krebbel@linux.vnet.ibm.com>
Fri, 10 Jun 2016 11:41:42 +0000 (13:41 +0200)
commitb2cc3f6fc2c5abc0a5ac7e0f2b5fb2365e89d33f
treee5950cf7b7c812bf74115738105a672c50c52d4b
parent5e13cf25436bf72d851d81f132fcd49b0c636607
S/390: Dump unknown instructions according to their length.

Unknown instructions are currently just dumped as .long 1234.  On
S/390 we can do a bit better since the instruction length is encoded
in the opcode.  That way also unknown instructions can be skipped
according to their real length.  That way we can continue correctly
after that instruction.  However, there are also some drawbacks with
that behavior when dumping data.  So for now that behavior is only
enabled for text section but even there it might mess things up when
having a literal pool embedded in the code.  Therefore I've left the
feature disabled by default and have added the -Minsnlength option to
enable it explicitely.

opcodes/ChangeLog:

2016-06-10  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>

* s390-dis.c (option_use_insn_len_bits_p): New file scope
variable.
(init_disasm): Handle new command line option "insnlength".
(print_s390_disassembler_options): Mention new option in help
output.
(print_insn_s390): Use the encoded insn length when dumping
unknown instructions.
opcodes/ChangeLog
opcodes/s390-dis.c