target/hppa: Fix B,GATE for wide mode

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>
This commit is contained in:
Richard Henderson 2024-03-21 09:16:06 -10:00
parent 7fb7c9da34
commit 2f48ba7b94

View 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. */ /* No change for non-gateway pages or for priv decrease. */
if (type >= 4 && type - 4 < ctx->privilege) { if (type >= 4 && type - 4 < ctx->privilege) {
dest = deposit32(dest, 0, 2, type - 4); dest = deposit64(dest, 0, 2, type - 4);
} }
} else { } else {
dest &= -4; /* priv = 0 */ dest &= -4; /* priv = 0 */