{"id":816327,"url":"http://patchwork.ozlabs.org/api/patches/816327/?format=json","web_url":"http://patchwork.ozlabs.org/project/qemu-devel/patch/20170920153016.3858-2-david@redhat.com/","project":{"id":14,"url":"http://patchwork.ozlabs.org/api/projects/14/?format=json","name":"QEMU Development","link_name":"qemu-devel","list_id":"qemu-devel.nongnu.org","list_email":"qemu-devel@nongnu.org","web_url":"","scm_url":"","webscm_url":"","list_archive_url":"","list_archive_url_format":"","commit_url_format":""},"msgid":"<20170920153016.3858-2-david@redhat.com>","list_archive_url":null,"date":"2017-09-20T15:30:14","name":"[v3,1/3] s390x/tcg: implement spm (SET PROGRAM MASK)","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"986418f5998d4befe6b4bac545f5331d9bcdc356","submitter":{"id":70402,"url":"http://patchwork.ozlabs.org/api/people/70402/?format=json","name":"David Hildenbrand","email":"david@redhat.com"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/qemu-devel/patch/20170920153016.3858-2-david@redhat.com/mbox/","series":[{"id":4154,"url":"http://patchwork.ozlabs.org/api/series/4154/?format=json","web_url":"http://patchwork.ozlabs.org/project/qemu-devel/list/?series=4154","date":"2017-09-20T15:30:16","name":"Implement basic MSA functions","version":3,"mbox":"http://patchwork.ozlabs.org/series/4154/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/816327/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/816327/checks/","tags":{},"related":[],"headers":{"Return-Path":"<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@bilbo.ozlabs.org","Authentication-Results":["ozlabs.org;\n\tspf=pass (mailfrom) smtp.mailfrom=nongnu.org\n\t(client-ip=2001:4830:134:3::11; helo=lists.gnu.org;\n\tenvelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org;\n\treceiver=<UNKNOWN>)","ext-mx10.extmail.prod.ext.phx2.redhat.com;\n\tdmarc=none (p=none dis=none) header.from=redhat.com","ext-mx10.extmail.prod.ext.phx2.redhat.com;\n\tspf=fail smtp.mailfrom=david@redhat.com"],"Received":["from lists.gnu.org (lists.gnu.org [IPv6:2001:4830:134:3::11])\n\t(using TLSv1 with cipher AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby ozlabs.org (Postfix) with ESMTPS id 3xy4Ct1GdNz9sPt\n\tfor <incoming@patchwork.ozlabs.org>;\n\tThu, 21 Sep 2017 01:58:34 +1000 (AEST)","from localhost ([::1]:49183 helo=lists.gnu.org)\n\tby lists.gnu.org with esmtp (Exim 4.71) (envelope-from\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>)\n\tid 1duhOS-0005cG-62\n\tfor incoming@patchwork.ozlabs.org; Wed, 20 Sep 2017 11:58:32 -0400","from eggs.gnu.org ([2001:4830:134:3::10]:56714)\n\tby lists.gnu.org with esmtp (Exim 4.71)\n\t(envelope-from <david@redhat.com>) id 1dugxf-0000F3-IP\n\tfor qemu-devel@nongnu.org; Wed, 20 Sep 2017 11:30:52 -0400","from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)\n\t(envelope-from <david@redhat.com>) id 1dugxd-00083w-W6\n\tfor qemu-devel@nongnu.org; Wed, 20 Sep 2017 11:30:51 -0400","from mx1.redhat.com ([209.132.183.28]:58046)\n\tby eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32)\n\t(Exim 4.71) (envelope-from <david@redhat.com>) id 1dugxd-00082q-Pr\n\tfor qemu-devel@nongnu.org; Wed, 20 Sep 2017 11:30:49 -0400","from smtp.corp.redhat.com\n\t(int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13])\n\t(using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits))\n\t(No client certificate requested)\n\tby mx1.redhat.com (Postfix) with ESMTPS id 8066AB06BF;\n\tWed, 20 Sep 2017 15:30:48 +0000 (UTC)","from t460s.redhat.com (ovpn-116-124.ams2.redhat.com\n\t[10.36.116.124])\n\tby smtp.corp.redhat.com (Postfix) with ESMTP id 2ECFE5C669;\n\tWed, 20 Sep 2017 15:30:46 +0000 (UTC)"],"DMARC-Filter":"OpenDMARC Filter v1.3.2 mx1.redhat.com 8066AB06BF","From":"David Hildenbrand <david@redhat.com>","To":"qemu-devel@nongnu.org","Date":"Wed, 20 Sep 2017 17:30:14 +0200","Message-Id":"<20170920153016.3858-2-david@redhat.com>","In-Reply-To":"<20170920153016.3858-1-david@redhat.com>","References":"<20170920153016.3858-1-david@redhat.com>","X-Scanned-By":"MIMEDefang 2.79 on 10.5.11.13","X-Greylist":"Sender IP whitelisted, not delayed by milter-greylist-4.5.16\n\t(mx1.redhat.com [10.5.110.39]);\n\tWed, 20 Sep 2017 15:30:48 +0000 (UTC)","X-detected-operating-system":"by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]\n\t[fuzzy]","X-Received-From":"209.132.183.28","Subject":"[Qemu-devel] [PATCH v3 1/3] s390x/tcg: implement spm (SET PROGRAM\n\tMASK)","X-BeenThere":"qemu-devel@nongnu.org","X-Mailman-Version":"2.1.21","Precedence":"list","List-Id":"<qemu-devel.nongnu.org>","List-Unsubscribe":"<https://lists.nongnu.org/mailman/options/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=unsubscribe>","List-Archive":"<http://lists.nongnu.org/archive/html/qemu-devel/>","List-Post":"<mailto:qemu-devel@nongnu.org>","List-Help":"<mailto:qemu-devel-request@nongnu.org?subject=help>","List-Subscribe":"<https://lists.nongnu.org/mailman/listinfo/qemu-devel>,\n\t<mailto:qemu-devel-request@nongnu.org?subject=subscribe>","Cc":"thuth@redhat.com, david@redhat.com, cohuck@redhat.com,\n\tRichard Henderson <richard.henderson@linaro.org>,\n\tAlexander Graf <agraf@suse.de>, Aurelien Jarno <aurelien@aurel32.net>","Errors-To":"qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org","Sender":"\"Qemu-devel\"\n\t<qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org>"},"content":"Missing and is used inside Linux in the context of CPACF.\n\nReviewed-by: Richard Henderson <rth@twiddle.net>\nSigned-off-by: David Hildenbrand <david@redhat.com>\n---\n target/s390x/cpu.h         |  2 ++\n target/s390x/insn-data.def |  2 ++\n target/s390x/translate.c   | 11 +++++++++++\n 3 files changed, 15 insertions(+)","diff":"diff --git a/target/s390x/cpu.h b/target/s390x/cpu.h\nindex 9b549dc491..4414485089 100644\n--- a/target/s390x/cpu.h\n+++ b/target/s390x/cpu.h\n@@ -292,6 +292,7 @@ extern const struct VMStateDescription vmstate_s390_cpu;\n #undef PSW_SHIFT_ASC\n #undef PSW_MASK_CC\n #undef PSW_MASK_PM\n+#undef PSW_SHIFT_MASK_PM\n #undef PSW_MASK_64\n #undef PSW_MASK_32\n #undef PSW_MASK_ESA_ADDR\n@@ -309,6 +310,7 @@ extern const struct VMStateDescription vmstate_s390_cpu;\n #define PSW_SHIFT_ASC           46\n #define PSW_MASK_CC             0x0000300000000000ULL\n #define PSW_MASK_PM             0x00000F0000000000ULL\n+#define PSW_SHIFT_MASK_PM       40\n #define PSW_MASK_64             0x0000000100000000ULL\n #define PSW_MASK_32             0x0000000080000000ULL\n #define PSW_MASK_ESA_ADDR       0x000000007fffffffULL\ndiff --git a/target/s390x/insn-data.def b/target/s390x/insn-data.def\nindex ad84c748e3..84233a456d 100644\n--- a/target/s390x/insn-data.def\n+++ b/target/s390x/insn-data.def\n@@ -755,6 +755,8 @@\n     C(0xb2b8, SRNMB,   S,     FPE, 0, 0, 0, 0, srnm, 0)\n /* SET DFP ROUNDING MODE */\n     C(0xb2b9, SRNMT,   S,     DFPR, 0, 0, 0, 0, srnm, 0)\n+/* SET PROGRAM MASK */\n+    C(0x0400, SPM,     RR_a,  Z,   r1, 0, 0, 0, spm, 0)\n \n /* SHIFT LEFT SINGLE */\n     D(0x8b00, SLA,     RS_a,  Z,   r1, sh32, new, r1_32, sla, 0, 31)\ndiff --git a/target/s390x/translate.c b/target/s390x/translate.c\nindex 5abd34fb34..59fde44d55 100644\n--- a/target/s390x/translate.c\n+++ b/target/s390x/translate.c\n@@ -3796,6 +3796,17 @@ static ExitStatus op_srnm(DisasContext *s, DisasOps *o)\n     return NO_EXIT;\n }\n \n+static ExitStatus op_spm(DisasContext *s, DisasOps *o)\n+{\n+    tcg_gen_extrl_i64_i32(cc_op, o->in1);\n+    tcg_gen_extract_i32(cc_op, cc_op, 28, 2);\n+    set_cc_static(s);\n+\n+    tcg_gen_shri_i64(o->in1, o->in1, 24);\n+    tcg_gen_deposit_i64(psw_mask, psw_mask, o->in1, PSW_SHIFT_MASK_PM, 4);\n+    return NO_EXIT;\n+}\n+\n #ifndef CONFIG_USER_ONLY\n static ExitStatus op_spka(DisasContext *s, DisasOps *o)\n {\n","prefixes":["v3","1/3"]}