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.

Reply via email to