From: David Hildenbrand <david@redhat.com>
To: qemu-devel@nongnu.org
Cc: Thomas Huth <thuth@redhat.com>,
David Hildenbrand <david@redhat.com>,
Ivan Warren <ivan@vmfacility.fr>,
Cornelia Huck <cohuck@redhat.com>,
Richard Henderson <richard.henderson@linaro.org>,
qemu-s390x@nongnu.org
Subject: [PATCH v1 5/6] s390x/tcg: Fix VECTOR SUBTRACT WITH BORROW INDICATION
Date: Fri, 18 Oct 2019 18:10:43 +0200 [thread overview]
Message-ID: <20191018161044.6983-6-david@redhat.com> (raw)
In-Reply-To: <20191018161044.6983-1-david@redhat.com>
Testing this, there seems to be something messed up. We are dealing with
unsigned numbers. "Each operand is treated as an unsigned binary integer."
Let's just implement as written in the PoP:
"A subtraction is performed by adding the contents of
the second operand with the bitwise complement of
the third operand along with a borrow indication from
the rightmost bit position of the fourth operand and
the result is placed in the first operand."
Fixes: 48390a7c2716 ("s390x/tcg: Implement VECTOR SUBTRACT WITH BORROW INDICATION")
Signed-off-by: David Hildenbrand <david@redhat.com>
---
target/s390x/translate_vx.inc.c | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)
diff --git a/target/s390x/translate_vx.inc.c b/target/s390x/translate_vx.inc.c
index 40bcc1604e..87b5790db4 100644
--- a/target/s390x/translate_vx.inc.c
+++ b/target/s390x/translate_vx.inc.c
@@ -2207,12 +2207,18 @@ static void gen_sbi2_i64(TCGv_i64 dl, TCGv_i64 dh, TCGv_i64 al, TCGv_i64 ah,
TCGv_i64 bl, TCGv_i64 bh, TCGv_i64 cl, TCGv_i64 ch)
{
TCGv_i64 tl = tcg_temp_new_i64();
+ TCGv_i64 th = tcg_temp_new_i64();
+ TCGv_i64 t = tcg_temp_new_i64();
TCGv_i64 zero = tcg_const_i64(0);
- tcg_gen_andi_i64(tl, cl, 1);
- tcg_gen_sub2_i64(dl, dh, al, ah, bl, bh);
- tcg_gen_sub2_i64(dl, dh, dl, dh, tl, zero);
+ tcg_gen_andi_i64(t, cl, 1);
+ tcg_gen_not_i64(tl, bl);
+ tcg_gen_not_i64(th, bh);
+ tcg_gen_add2_i64(dl, dh, al, ah, tl, th);
+ tcg_gen_add2_i64(dl, dh, dl, dh, t, zero);
tcg_temp_free_i64(tl);
+ tcg_temp_free_i64(th);
+ tcg_temp_free_i64(t);
tcg_temp_free_i64(zero);
}
--
2.21.0
next prev parent reply other threads:[~2019-10-18 16:13 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-10-18 16:10 [PATCH v1 0/6] s390x/tcg: Vector instruction fixes David Hildenbrand
2019-10-18 16:10 ` [PATCH v1 1/6] s390x/tcg: Fix VECTOR MULTIPLY LOGICAL ODD David Hildenbrand
2019-10-18 19:05 ` Richard Henderson
2019-10-18 16:10 ` [PATCH v1 2/6] s390x/tcg: Fix VECTOR MULTIPLY AND ADD * David Hildenbrand
2019-10-18 19:05 ` Richard Henderson
2019-10-18 16:10 ` [PATCH v1 3/6] s390x/tcg: Fix VECTOR SHIFT RIGHT ARITHMETIC BY BYTE David Hildenbrand
2019-10-18 19:06 ` Richard Henderson
2019-10-18 16:10 ` [PATCH v1 4/6] s390x/tcg: Fix VECTOR SUBTRACT COMPUTE BORROW INDICATION David Hildenbrand
2019-10-18 17:41 ` David Hildenbrand
2019-10-18 18:18 ` David Hildenbrand
2019-10-18 18:52 ` Richard Henderson
2019-10-18 16:10 ` David Hildenbrand [this message]
2019-10-18 19:11 ` [PATCH v1 5/6] s390x/tcg: Fix VECTOR SUBTRACT WITH " Richard Henderson
2019-10-21 8:06 ` David Hildenbrand
2019-10-18 16:10 ` [PATCH v1 6/6] s390x/tcg: Fix VECTOR SUBTRACT WITH BORROW COMPUTE " David Hildenbrand
2019-10-18 18:55 ` Richard Henderson
2019-10-21 8:02 ` David Hildenbrand
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20191018161044.6983-6-david@redhat.com \
--to=david@redhat.com \
--cc=cohuck@redhat.com \
--cc=ivan@vmfacility.fr \
--cc=qemu-devel@nongnu.org \
--cc=qemu-s390x@nongnu.org \
--cc=richard.henderson@linaro.org \
--cc=thuth@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).