target/hppa: Fix B,GATE for wide mode
authorRichard Henderson <richard.henderson@linaro.org>
Thu, 21 Mar 2024 19:16:06 +0000 (09:16 -1000)
committerRichard Henderson <richard.henderson@linaro.org>
Wed, 27 Mar 2024 22:15:25 +0000 (12:15 -1000)
Do not clobber the high bits of the address by using a 32-bit deposit.

Reviewed-by: Helge Deller <deller@gmx.de>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
target/hppa/translate.c

index 1766a6300195eb7d06241d1671f1af10b77211cb..f875d76a23569778a013a1024a5168fd29dd2739 100644 (file)
@@ -3880,7 +3880,7 @@ static bool trans_b_gate(DisasContext *ctx, arg_b_gate *a)
         }
         /* No change for non-gateway pages or for priv decrease.  */
         if (type >= 4 && type - 4 < ctx->privilege) {
-            dest = deposit32(dest, 0, 2, type - 4);
+            dest = deposit64(dest, 0, 2, type - 4);
         }
     } else {
         dest &= -4;  /* priv = 0 */