target-ppc: fix vcipher, vcipherlast, vncipherlast and vpermxor
commit65cf1f65be0fc4883edbd66feeab3ddaceb11c00
authorAurelien Jarno <aurelien@aurel32.net>
Sun, 13 Sep 2015 21:03:44 +0000 (13 23:03 +0200)
committerAlexander Graf <agraf@suse.de>
Sun, 20 Sep 2015 20:48:39 +0000 (20 22:48 +0200)
tree8a41916d71c061fdc148b6c456adf276695a745a
parentd4574435a6530bbd96ae130eddfe5b676f91367a
target-ppc: fix vcipher, vcipherlast, vncipherlast and vpermxor

For vector instructions, the helpers get pointers to the vector register
in arguments. Some operands might point to the same register, including
the operand holding the result.

When emulating instructions which access the vector elements in a
non-linear way, we need to store the result in an temporary variable.

This fixes openssl when emulating a POWER8 CPU.

Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
Reviewed-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Alexander Graf <agraf@suse.de>
target-ppc/int_helper.c