diff options
author | Peter Maydell <peter.maydell@linaro.org> | 2022-07-20 14:13:32 +0100 |
---|---|---|
committer | Peter Maydell <peter.maydell@linaro.org> | 2022-07-20 14:13:32 +0100 |
commit | f45fd24c90767240735c6161c39699ad86fc38fa (patch) | |
tree | d55a07723a9b331ee9c34bb84d816f40f629e37d /target | |
parent | 1f64dd76a1bdf50ec8ab66da0ee7dcfd48ea31e4 (diff) | |
parent | 23f13e1986e2ed3a02b65c0bf376c8c61d04ae7a (diff) | |
download | qemu-f45fd24c90767240735c6161c39699ad86fc38fa.zip qemu-f45fd24c90767240735c6161c39699ad86fc38fa.tar.gz qemu-f45fd24c90767240735c6161c39699ad86fc38fa.tar.bz2 |
Merge tag 'pull-request-2022-07-20' of https://gitlab.com/thuth/qemu into staging
* Fixes for s390x floating point vector instructions
# gpg: Signature made Wed 20 Jul 2022 08:14:50 BST
# gpg: using RSA key 27B88847EEE0250118F3EAB92ED9D774FE702DB5
# gpg: issuer "thuth@redhat.com"
# gpg: Good signature from "Thomas Huth <th.huth@gmx.de>" [full]
# gpg: aka "Thomas Huth <thuth@redhat.com>" [full]
# gpg: aka "Thomas Huth <huth@tuxfamily.org>" [full]
# gpg: aka "Thomas Huth <th.huth@posteo.de>" [unknown]
# Primary key fingerprint: 27B8 8847 EEE0 2501 18F3 EAB9 2ED9 D774 FE70 2DB5
* tag 'pull-request-2022-07-20' of https://gitlab.com/thuth/qemu:
tests/tcg/s390x: test signed vfmin/vfmax
target/s390x: fix NaN propagation rules
target/s390x: fix handling of zeroes in vfmin/vfmax
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
# Conflicts:
# fpu/softfloat-specialize.c.inc
Diffstat (limited to 'target')
-rw-r--r-- | target/s390x/tcg/vec_fpu_helper.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/target/s390x/tcg/vec_fpu_helper.c b/target/s390x/tcg/vec_fpu_helper.c index 2a618a1..75cf605 100644 --- a/target/s390x/tcg/vec_fpu_helper.c +++ b/target/s390x/tcg/vec_fpu_helper.c @@ -824,7 +824,7 @@ static S390MinMaxRes vfmin_res(uint16_t dcmask_a, uint16_t dcmask_b, default: g_assert_not_reached(); } - } else if (unlikely(dcmask_a & dcmask_b & DCMASK_ZERO)) { + } else if (unlikely((dcmask_a & DCMASK_ZERO) && (dcmask_b & DCMASK_ZERO))) { switch (type) { case S390_MINMAX_TYPE_JAVA: return neg_a ? S390_MINMAX_RES_A : S390_MINMAX_RES_B; @@ -874,7 +874,7 @@ static S390MinMaxRes vfmax_res(uint16_t dcmask_a, uint16_t dcmask_b, default: g_assert_not_reached(); } - } else if (unlikely(dcmask_a & dcmask_b & DCMASK_ZERO)) { + } else if (unlikely((dcmask_a & DCMASK_ZERO) && (dcmask_b & DCMASK_ZERO))) { const bool neg_a = dcmask_a & DCMASK_NEGATIVE; switch (type) { |