[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[qemu-s390x] [PATCH v1 06/41] s390x/tcg: Implement VECTOR AND (WITH COMP
From: |
David Hildenbrand |
Subject: |
[qemu-s390x] [PATCH v1 06/41] s390x/tcg: Implement VECTOR AND (WITH COMPLEMENT) |
Date: |
Thu, 11 Apr 2019 12:08:01 +0200 |
Easy, as we can reuse existing gvec helpers.
Signed-off-by: David Hildenbrand <address@hidden>
---
target/s390x/insn-data.def | 4 ++++
target/s390x/translate_vx.inc.c | 14 ++++++++++++++
2 files changed, 18 insertions(+)
diff --git a/target/s390x/insn-data.def b/target/s390x/insn-data.def
index a531b21908..456d5597ca 100644
--- a/target/s390x/insn-data.def
+++ b/target/s390x/insn-data.def
@@ -1064,6 +1064,10 @@
F(0xe7bb, VAC, VRR_d, V, 0, 0, 0, 0, vac, 0, IF_VEC)
/* VECTOR ADD WITH CARRY COMPUTE CARRY */
F(0xe7b9, VACCC, VRR_d, V, 0, 0, 0, 0, vaccc, 0, IF_VEC)
+/* VECTOR AND */
+ F(0xe768, VN, VRR_c, V, 0, 0, 0, 0, vn, 0, IF_VEC)
+/* VECTOR AND WITH COMPLEMENT */
+ F(0xe769, VNC, VRR_c, V, 0, 0, 0, 0, vnc, 0, IF_VEC)
#ifndef CONFIG_USER_ONLY
/* COMPARE AND SWAP AND PURGE */
diff --git a/target/s390x/translate_vx.inc.c b/target/s390x/translate_vx.inc.c
index a264aa0c5a..aaa247e855 100644
--- a/target/s390x/translate_vx.inc.c
+++ b/target/s390x/translate_vx.inc.c
@@ -1135,3 +1135,17 @@ static DisasJumpType op_vaccc(DisasContext *s, DisasOps
*o)
gen_helper_gvec_vaccc128);
return DISAS_NEXT;
}
+
+static DisasJumpType op_vn(DisasContext *s, DisasOps *o)
+{
+ gen_gvec_fn_3(and, ES_8, get_field(s->fields, v1), get_field(s->fields,
v2),
+ get_field(s->fields, v3));
+ return DISAS_NEXT;
+}
+
+static DisasJumpType op_vnc(DisasContext *s, DisasOps *o)
+{
+ gen_gvec_fn_3(andc, ES_8, get_field(s->fields, v1),
+ get_field(s->fields, v2), get_field(s->fields, v3));
+ return DISAS_NEXT;
+}
--
2.20.1
- Re: [qemu-s390x] [Qemu-devel] [PATCH v1 16/41] s390x/tcg: Implement VECTOR LOAD COMPLEMENT, (continued)
- [qemu-s390x] [PATCH v1 22/41] s390x/tcg: Implement VECTOR NOR, David Hildenbrand, 2019/04/11
- [qemu-s390x] [PATCH v1 20/41] s390x/tcg: Implement VECTOR MULTIPLY *, David Hildenbrand, 2019/04/11
- [qemu-s390x] [PATCH v1 19/41] s390x/tcg: Implement VECTOR MULTIPLY AND ADD *, David Hildenbrand, 2019/04/11
- [qemu-s390x] [PATCH v1 14/41] s390x/tcg: Implement VECTOR EXCLUSIVE OR, David Hildenbrand, 2019/04/11
- [qemu-s390x] [PATCH v1 06/41] s390x/tcg: Implement VECTOR AND (WITH COMPLEMENT),
David Hildenbrand <=
- [qemu-s390x] [PATCH v1 15/41] s390x/tcg: Implement VECTOR GALOIS FIELD MULTIPLY SUM (AND ACCUMULATE), David Hildenbrand, 2019/04/11
- [qemu-s390x] [PATCH v1 13/41] s390x/tcg: Implement VECTOR COUNT TRAILING ZEROS, David Hildenbrand, 2019/04/11
- [qemu-s390x] [PATCH v1 12/41] s390x/tcg: Implement VECTOR COUNT LEADING ZEROS, David Hildenbrand, 2019/04/11
- [qemu-s390x] [PATCH v1 10/41] s390x/tcg: Implement VECTOR ELEMENT COMPARE *, David Hildenbrand, 2019/04/11