]> Git Repo - qemu.git/commitdiff
target/s390x: Finish implementing RISBGN
authorRichard Henderson <[email protected]>
Tue, 7 Nov 2017 14:55:46 +0000 (15:55 +0100)
committerCornelia Huck <[email protected]>
Thu, 9 Nov 2017 09:36:06 +0000 (10:36 +0100)
We added the entry to insn-data.def, but failed to update op_risbg
to match.  No need to special-case the imask inversion, since that
is already ~0 for RISBG (and now RISBGN).

Fixes: 375ee58bedcda359011fe7fa99e0647f66f9ffa0
Fixes: https://bugs.launchpad.net/qemu/+bug/1701798 (s390x part)
Signed-off-by: Richard Henderson <[email protected]>
Message-Id: <20171107145546[email protected]>
Reviewed-by: Thomas Huth <[email protected]>
Tested-by: Peter Maydell <[email protected]>
Signed-off-by: Cornelia Huck <[email protected]>
target/s390x/translate.c

index dee72a787d4c5c1fdd97da9fe8b21d3cb5a54efd..85d0a6c3aff7f2c735e6a2891dfabe3856c8056d 100644 (file)
@@ -3432,6 +3432,7 @@ static ExitStatus op_risbg(DisasContext *s, DisasOps *o)
     /* Adjust the arguments for the specific insn.  */
     switch (s->fields->op2) {
     case 0x55: /* risbg */
+    case 0x59: /* risbgn */
         i3 &= 63;
         i4 &= 63;
         pmask = ~0;
@@ -3447,7 +3448,7 @@ static ExitStatus op_risbg(DisasContext *s, DisasOps *o)
         pmask = 0x00000000ffffffffull;
         break;
     default:
-        abort();
+        g_assert_not_reached();
     }
 
     /* MASK is the set of bits to be inserted from R2.
@@ -3464,11 +3465,7 @@ static ExitStatus op_risbg(DisasContext *s, DisasOps *o)
        insns, we need to keep the other half of the register.  */
     imask = ~mask | ~pmask;
     if (do_zero) {
-        if (s->fields->op2 == 0x55) {
-            imask = 0;
-        } else {
-            imask = ~pmask;
-        }
+        imask = ~pmask;
     }
 
     len = i4 - i3 + 1;
This page took 0.030379 seconds and 4 git commands to generate.