]> err.no Git - linux-2.6/commit
[S390] Fix disassembly of RX_URRD, SI_URD & PC-relative instructions.
authorChristian Borntraeger <borntraeger@de.ibm.com>
Tue, 17 Jul 2007 11:36:03 +0000 (13:36 +0200)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Tue, 17 Jul 2007 11:36:18 +0000 (13:36 +0200)
commit92d154b6c54f76016d36a7eb4aab6eea27737fdb
tree7176be3b0386e03948d293726ec398f7166d3d16
parenta13a9b6d983e0301692e16a169865e1feb8338c0
[S390] Fix disassembly of RX_URRD, SI_URD & PC-relative instructions.

The instructions with format RX_URRD and SI_URD and instructions
with a PC relative operand are not disassembled correctly.
For RX_URRD and SI_URD instructions find_insn sets opfrag to code[0].
The mask byte of these two formats is 0x00. table->opfrag will never
be identical to (opfrag & opmask) and no matching instruction will
be found. Set the mask byte to 0xff to actually check byte 0 against
the table.
For PC relative instructions the (unsigned) offset value needs to be
casted to an signed integer so that negative branch offsets are
handled correctly.

Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
arch/s390/kernel/dis.c