|
From: | Mark Cave-Ayland |
Subject: | Re: [PULL 02/41] target/ppc: 603: fix restore of GPRs 0-3 on rfi |
Date: | Mon, 31 Jan 2022 19:08:53 +0000 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.5.0 |
On 31/01/2022 17:50, Cédric Le Goater wrote:
diff --git a/target/ppc/excp_helper.c b/target/ppc/excp_helper.c index bc646c67a0f5..980f62fd7964 100644 --- a/target/ppc/excp_helper.c +++ b/target/ppc/excp_helper.c@@ -1164,6 +1164,10 @@ static void do_rfi(CPUPPCState *env, target_ulong nip, target_ulong msr)/* MSR:POW cannot be set by any form of rfi */ msr &= ~(1ULL << MSR_POW); + /* MSR:TGPR cannot be set by any form of rfi */ + if (env->flags & POWERPC_FLAG_TGPR) + msr &= ~(1ULL << MSR_TGPR); + #if defined(TARGET_PPC64) /* Switching to 32-bit ? Crop the nip */ if (!msr_is_64bit(env, msr)) {Have you tried a pre-PR push to Gitlab CI for your pull-ppc-20220130 tag? I'd expect this to fail the check-patch job due to the missing braces around the if() statement.It seems that ctx_statement_block() is confused because the patch ends with a '{'.
Nice work! My experience with Perl is fairly minimal so that would have probably taken me some time to figure out.
ATB, Mark.
[Prev in Thread] | Current Thread | [Next in Thread] |