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
next prev 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.