summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorDavid Hildenbrand <david@redhat.com>2017-06-14 15:38:18 +0200
committerRichard Henderson <rth@twiddle.net>2017-06-23 08:40:40 -0700
commitc8bd95377babc3bd60f86cb3e5b24e74097cf6a9 (patch)
tree451d7858d802a29dd18da69c56785aa6388de06e
parentd20bd43c4ce2dcdf7d6fa24eb8a29bcef29fb652 (diff)
downloadfocaccia-qemu-c8bd95377babc3bd60f86cb3e5b24e74097cf6a9.tar.gz
focaccia-qemu-c8bd95377babc3bd60f86cb3e5b24e74097cf6a9.zip
target/s390x: change PSW_SHIFT_KEY
Such shifts are usually used to easily extract the PSW KEY from the PSW
mask, so let's avoid the confusing offset of 4.

Reviewed-by: Aurelien Jarno <aurelien@aurel32.net>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: David Hildenbrand <david@redhat.com>
Message-Id: <20170614133819.18480-2-david@redhat.com>
Signed-off-by: Richard Henderson <rth@twiddle.net>
-rw-r--r--target/s390x/cpu.h2
-rw-r--r--target/s390x/translate.c2
2 files changed, 2 insertions, 2 deletions
diff --git a/target/s390x/cpu.h b/target/s390x/cpu.h
index a4028fb315..532a4a075c 100644
--- a/target/s390x/cpu.h
+++ b/target/s390x/cpu.h
@@ -315,7 +315,7 @@ void s390x_cpu_debug_excp_handler(CPUState *cs);
 #define PSW_MASK_IO             0x0200000000000000ULL
 #define PSW_MASK_EXT            0x0100000000000000ULL
 #define PSW_MASK_KEY            0x00F0000000000000ULL
-#define PSW_SHIFT_KEY           56
+#define PSW_SHIFT_KEY           52
 #define PSW_MASK_MCHECK         0x0004000000000000ULL
 #define PSW_MASK_WAIT           0x0002000000000000ULL
 #define PSW_MASK_PSTATE         0x0001000000000000ULL
diff --git a/target/s390x/translate.c b/target/s390x/translate.c
index 5a00279016..6ebfb97424 100644
--- a/target/s390x/translate.c
+++ b/target/s390x/translate.c
@@ -3753,7 +3753,7 @@ static ExitStatus op_spka(DisasContext *s, DisasOps *o)
 {
     check_privileged(s);
     tcg_gen_shri_i64(o->in2, o->in2, 4);
-    tcg_gen_deposit_i64(psw_mask, psw_mask, o->in2, PSW_SHIFT_KEY - 4, 4);
+    tcg_gen_deposit_i64(psw_mask, psw_mask, o->in2, PSW_SHIFT_KEY, 4);
     return NO_EXIT;
 }