diff options
author | Aurelien Jarno <aurelien@aurel32.net> | 2017-06-01 00:01:16 +0200 |
---|---|---|
committer | Richard Henderson <rth@twiddle.net> | 2017-06-06 15:20:43 -0700 |
commit | 84aa07f109f0afaeeec63c159f3a578b955c3de9 (patch) | |
tree | 1a9232a5772d225363e1512b3c76015080ad1a0c /target/s390x/helper.h | |
parent | 29a58fd85f315b722c69f489aefd3f2913d3e42d (diff) |
target/s390x: fix COMPARE LOGICAL LONG EXTENDED
There are multiple issues with the COMPARE LOGICAL LONG EXTENDED
instruction:
- The test between the two operands is inverted, leading to an inversion
of the cc values 1 and 2.
- The address and length of an operand continue to be decreased after
reaching the end of this operand. These values are then wrong write
back to the registers.
- We should limit the amount of bytes to process, so that interrupts can
be served correctly.
At the same time rename dest into src1 and src into src3 to match the
operand names and make the code less confusing.
Reviewed-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
Message-Id: <20170531220129.27724-18-aurelien@aurel32.net>
Signed-off-by: Richard Henderson <rth@twiddle.net>
Diffstat (limited to 'target/s390x/helper.h')
0 files changed, 0 insertions, 0 deletions