All of lore.kernel.org
 help / color / mirror / Atom feed
From: David Hildenbrand <david@redhat.com>
To: qemu-devel@nongnu.org
Cc: rth@twiddle.net, Aurelien Jarno <aurelien@aurel32.net>,
	thuth@redhat.com, cohuck@redhat.com, david@redhat.com,
	borntraeger@de.ibm.com
Subject: [Qemu-devel] [PATCH v1 3/6] target/s390x: implement spm (SET PROGRAM MASK)
Date: Fri, 21 Jul 2017 14:56:06 +0200	[thread overview]
Message-ID: <20170721125609.11117-4-david@redhat.com> (raw)
In-Reply-To: <20170721125609.11117-1-david@redhat.com>

Signed-off-by: David Hildenbrand <david@redhat.com>
---
 target/s390x/cpu.h         |  2 ++
 target/s390x/insn-data.def |  2 ++
 target/s390x/translate.c   | 16 ++++++++++++++++
 3 files changed, 20 insertions(+)

diff --git a/target/s390x/cpu.h b/target/s390x/cpu.h
index 7732d01..4f7c6b7 100644
--- a/target/s390x/cpu.h
+++ b/target/s390x/cpu.h
@@ -308,6 +308,7 @@ void s390x_cpu_debug_excp_handler(CPUState *cs);
 #undef PSW_SHIFT_ASC
 #undef PSW_MASK_CC
 #undef PSW_MASK_PM
+#undef PSW_SHIFT_MASK_PM
 #undef PSW_MASK_64
 #undef PSW_MASK_32
 #undef PSW_MASK_ESA_ADDR
@@ -325,6 +326,7 @@ void s390x_cpu_debug_excp_handler(CPUState *cs);
 #define PSW_SHIFT_ASC           46
 #define PSW_MASK_CC             0x0000300000000000ULL
 #define PSW_MASK_PM             0x00000F0000000000ULL
+#define PSW_SHIFT_MASK_PM       40
 #define PSW_MASK_64             0x0000000100000000ULL
 #define PSW_MASK_32             0x0000000080000000ULL
 #define PSW_MASK_ESA_ADDR       0x000000007fffffffULL
diff --git a/target/s390x/insn-data.def b/target/s390x/insn-data.def
index ad84c74..84233a4 100644
--- a/target/s390x/insn-data.def
+++ b/target/s390x/insn-data.def
@@ -755,6 +755,8 @@
     C(0xb2b8, SRNMB,   S,     FPE, 0, 0, 0, 0, srnm, 0)
 /* SET DFP ROUNDING MODE */
     C(0xb2b9, SRNMT,   S,     DFPR, 0, 0, 0, 0, srnm, 0)
+/* SET PROGRAM MASK */
+    C(0x0400, SPM,     RR_a,  Z,   r1, 0, 0, 0, spm, 0)
 
 /* SHIFT LEFT SINGLE */
     D(0x8b00, SLA,     RS_a,  Z,   r1, sh32, new, r1_32, sla, 0, 31)
diff --git a/target/s390x/translate.c b/target/s390x/translate.c
index 1dffcee..7fc07a4 100644
--- a/target/s390x/translate.c
+++ b/target/s390x/translate.c
@@ -3854,6 +3854,22 @@ static ExitStatus op_srnm(DisasContext *s, DisasOps *o)
     return NO_EXIT;
 }
 
+static ExitStatus op_spm(DisasContext *s, DisasOps *o)
+{
+    TCGv_i32 cc = tcg_temp_new_i32();
+
+    tcg_gen_extrl_i64_i32(cc, o->in1);
+    tcg_gen_shri_i32(cc, cc, 28);
+    tcg_gen_andi_i32(cc, cc, 0x3ul);
+    tcg_gen_mov_i32(cc_op, cc);
+    tcg_temp_free_i32(cc);
+    set_cc_static(s);
+
+    tcg_gen_shri_i64(o->in1, o->in1, 24);
+    tcg_gen_deposit_i64(psw_mask, psw_mask, o->in1, PSW_SHIFT_MASK_PM, 4);
+    return NO_EXIT;
+}
+
 #ifndef CONFIG_USER_ONLY
 static ExitStatus op_spka(DisasContext *s, DisasOps *o)
 {
-- 
2.9.4

  parent reply	other threads:[~2017-07-21 12:56 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-07-21 12:56 [Qemu-devel] [PATCH v1 0/6] target/s390x: tcg improvments + MSA functions David Hildenbrand
2017-07-21 12:56 ` [Qemu-devel] [PATCH v1 1/6] target/s390x: fix pgm irq ilen for stsi David Hildenbrand
2017-07-24 14:23   ` Thomas Huth
2017-07-25 15:38   ` Cornelia Huck
2017-07-21 12:56 ` [Qemu-devel] [PATCH v1 2/6] target/s390x: fix pgm irq ilen in translate_pages() David Hildenbrand
2017-07-24 14:37   ` Thomas Huth
2017-07-25 15:39   ` Cornelia Huck
2017-07-21 12:56 ` David Hildenbrand [this message]
2017-07-24  4:39   ` [Qemu-devel] [PATCH v1 3/6] target/s390x: implement spm (SET PROGRAM MASK) Richard Henderson
2017-07-24 17:25     ` David Hildenbrand
2017-07-21 12:56 ` [Qemu-devel] [PATCH v1 4/6] target/s390x: move wrap_address to cpu.h David Hildenbrand
2017-07-24  4:40   ` Richard Henderson
2017-07-24 17:38     ` David Hildenbrand
2017-07-24 18:00       ` Richard Henderson
2017-07-24 18:00         ` David Hildenbrand
2017-07-21 12:56 ` [Qemu-devel] [PATCH v1 5/6] target/s390x: add basic MSA features David Hildenbrand
2017-08-09 13:01   ` Cornelia Huck
2017-08-09 13:13     ` Thomas Huth
2017-08-09 13:25     ` David Hildenbrand
2017-08-09 13:29       ` Cornelia Huck
2017-07-21 12:56 ` [Qemu-devel] [PATCH v1 6/6] target/s390x: various alignment check David Hildenbrand
2017-07-21 13:26 ` [Qemu-devel] [PATCH v1 0/6] target/s390x: tcg improvments + MSA functions no-reply
2017-07-24  3:16 ` Richard Henderson
2017-07-24 17:58   ` David Hildenbrand
2017-07-25 11:55 ` Cornelia Huck
2017-07-25 12:16   ` David Hildenbrand
2017-07-25 12:45     ` Cornelia Huck

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=20170721125609.11117-4-david@redhat.com \
    --to=david@redhat.com \
    --cc=aurelien@aurel32.net \
    --cc=borntraeger@de.ibm.com \
    --cc=cohuck@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=rth@twiddle.net \
    --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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.