All of lore.kernel.org
 help / color / mirror / Atom feed
From: Richard Henderson <richard.henderson@linaro.org>
To: qemu-devel@nongnu.org
Cc: deller@gmx.de
Subject: [PATCH 03/11] target/hppa: Mask reserved PSW bits in expand_sm_imm
Date: Fri, 10 Nov 2023 17:32:04 -0800	[thread overview]
Message-ID: <20231111013212.229673-4-richard.henderson@linaro.org> (raw)
In-Reply-To: <20231111013212.229673-1-richard.henderson@linaro.org>

From: Helge Deller <deller@gmx.de>

The system mask is a restricted subset of the psw, with only
a couple of reserved bits.  It is better to handle this up
front in the translator than require helper_swap_system_mask
to use cpu_hppa_get_psw and cpu_hppa_put_psw.

Signed-off-by: Helge Deller <deller@gmx.de>
[rth: Handle this in expand_sm_imm not helper_swap_system_mask.]
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
 target/hppa/translate.c | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/target/hppa/translate.c b/target/hppa/translate.c
index bcce65d587..f3b17ba16d 100644
--- a/target/hppa/translate.c
+++ b/target/hppa/translate.c
@@ -77,11 +77,14 @@ typedef struct DisasContext {
 /* Note that ssm/rsm instructions number PSW_W and PSW_E differently.  */
 static int expand_sm_imm(DisasContext *ctx, int val)
 {
-    if (val & PSW_SM_E) {
-        val = (val & ~PSW_SM_E) | PSW_E;
-    }
-    if (val & PSW_SM_W) {
-        val = (val & ~PSW_SM_W) | PSW_W;
+    /* Keep unimplemented bits disabled -- see cpu_hppa_put_psw. */
+    if (ctx->is_pa20) {
+        if (val & PSW_SM_W) {
+            val |= PSW_W;
+        }
+        val &= ~(PSW_SM_W | PSW_SM_E | PSW_G);
+    } else {
+        val &= ~(PSW_SM_W | PSW_SM_E | PSW_O);
     }
     return val;
 }
-- 
2.34.1



  parent reply	other threads:[~2023-11-11  1:32 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-11-11  1:32 [PATCH for-8.2 00/11] target/hppa: PA2.0 fixes Richard Henderson
2023-11-11  1:32 ` [PATCH 01/11] target/hppa: Update to SeaBIOS-hppa version 11 Richard Henderson
2023-11-12 17:05   ` Philippe Mathieu-Daudé
2023-11-12 18:10     ` Helge Deller
2023-11-11  1:32 ` [PATCH 02/11] hw/hppa: Require at least " Richard Henderson
2023-11-11  1:32 ` Richard Henderson [this message]
2023-11-11  1:32 ` [PATCH 04/11] target/hppa: Use only low 2 immediate bits for PROBEI Richard Henderson
2023-11-12 17:07   ` Philippe Mathieu-Daudé
2023-11-11  1:32 ` [PATCH 05/11] target/hppa: Use PRIV_P_TO_MMU_IDX in helper_probe Richard Henderson
2023-11-11  1:32 ` [PATCH 06/11] target/hppa: Fix calculation of CR_IIASQ back register Richard Henderson
2023-11-11  1:32 ` [PATCH 07/11] target/hppa: Fix possible overflow in TLB size calculation Richard Henderson
2023-11-11  1:32 ` [PATCH 08/11] target/hppa: Introduce MMU_IDX_MMU_DISABLED Richard Henderson
2023-11-12 17:10   ` Philippe Mathieu-Daudé
2023-11-11  1:32 ` [PATCH 09/11] target/hppa: Replace MMU_PHYS_IDX with MMU_ABS_IDX, MMU_ABS_W_IDX Richard Henderson
2023-11-11  1:32 ` [PATCH 10/11] target/hppa: Reduce TARGET_PHYS_ADDR_SPACE_BITS to 44 Richard Henderson
2023-11-11  1:32 ` [PATCH 11/11] hw/pci-host/astro: Fix boot for C3700 machine Richard Henderson

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=20231111013212.229673-4-richard.henderson@linaro.org \
    --to=richard.henderson@linaro.org \
    --cc=deller@gmx.de \
    --cc=qemu-devel@nongnu.org \
    /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.