diff mbox series

[v4,08/31] target/ppc: Replace POWERPC_EXCP_SYNC with DISAS_EXIT

Message ID 20210512185441.3619828-9-matheus.ferst@eldorado.org.br
State New
Headers show
Series [v4,01/31] target/ppc: Add cia field to DisasContext | expand

Commit Message

Matheus K. Ferst May 12, 2021, 6:54 p.m. UTC
From: Richard Henderson <richard.henderson@linaro.org>


Remove the synthetic "exception" after no more uses.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>

Signed-off-by: Matheus Ferst <matheus.ferst@eldorado.org.br>

---
 target/ppc/cpu.h       |  1 -
 target/ppc/translate.c | 27 +++++++++------------------
 2 files changed, 9 insertions(+), 19 deletions(-)

-- 
2.25.1

Comments

Bruno Piazera Larsen May 12, 2021, 7:31 p.m. UTC | #1
On 12/05/2021 15:54, matheus.ferst@eldorado.org.br wrote:
> From: Richard Henderson <richard.henderson@linaro.org>

>

> Remove the synthetic "exception" after no more uses.

>

> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>

> Signed-off-by: Matheus Ferst <matheus.ferst@eldorado.org.br>

> ---

>   target/ppc/cpu.h       |  1 -

>   target/ppc/translate.c | 27 +++++++++------------------

>   2 files changed, 9 insertions(+), 19 deletions(-)

>

> diff --git a/target/ppc/cpu.h b/target/ppc/cpu.h

> index 98fcf1c4d6..503de6db85 100644

> --- a/target/ppc/cpu.h

> +++ b/target/ppc/cpu.h

> @@ -135,7 +135,6 @@ enum {

>       POWERPC_EXCP_STOP         = 0x200, /* stop translation                   */

>       POWERPC_EXCP_BRANCH       = 0x201, /* branch instruction                 */

>       /* QEMU exceptions: special cases we want to stop translation            */

> -    POWERPC_EXCP_SYNC         = 0x202, /* context synchronizing instruction  */

>       POWERPC_EXCP_SYSCALL_USER = 0x203, /* System call in user mode only      */

>   };

>   

> diff --git a/target/ppc/translate.c b/target/ppc/translate.c

> index 4bebb00bb2..88fe24ef95 100644

> --- a/target/ppc/translate.c

> +++ b/target/ppc/translate.c

> @@ -359,14 +359,6 @@ static inline void gen_stop_exception(DisasContext *ctx)

>       ctx->exception = POWERPC_EXCP_STOP;

>   }

>   

> -#ifndef CONFIG_USER_ONLY

> -/* No need to update nip here, as execution flow will change */

> -static inline void gen_sync_exception(DisasContext *ctx)

> -{

> -    ctx->exception = POWERPC_EXCP_SYNC;

> -}

> -#endif

> -

>   /*****************************************************************************/

>   /* SPR READ/WRITE CALLBACKS */

>   

> @@ -5035,7 +5027,7 @@ static void gen_rfi(DisasContext *ctx)

>       }

>       gen_update_cfar(ctx, ctx->cia);

>       gen_helper_rfi(cpu_env);

> -    gen_sync_exception(ctx);

> +    ctx->base.is_jmp = DISAS_EXIT;

>   #endif

>   }

>   

> @@ -5052,7 +5044,7 @@ static void gen_rfid(DisasContext *ctx)

>       }

>       gen_update_cfar(ctx, ctx->cia);

>       gen_helper_rfid(cpu_env);

> -    gen_sync_exception(ctx);

> +    ctx->base.is_jmp = DISAS_EXIT;

>   #endif

>   }

>   

> @@ -5069,7 +5061,7 @@ static void gen_rfscv(DisasContext *ctx)

>       }

>       gen_update_cfar(ctx, ctx->cia);

>       gen_helper_rfscv(cpu_env);

> -    gen_sync_exception(ctx);

> +    ctx->base.is_jmp = DISAS_EXIT;

>   #endif

>   }

>   #endif

> @@ -5082,7 +5074,7 @@ static void gen_hrfid(DisasContext *ctx)

>       /* Restore CPU state */

>       CHK_HV;

>       gen_helper_hrfid(cpu_env);

> -    gen_sync_exception(ctx);

> +    ctx->base.is_jmp = DISAS_EXIT;

>   #endif

>   }

>   #endif

> @@ -6923,7 +6915,7 @@ static void gen_rfsvc(DisasContext *ctx)

>       CHK_SV;

>   

>       gen_helper_rfsvc(cpu_env);

> -    gen_sync_exception(ctx);

> +    ctx->base.is_jmp = DISAS_EXIT;

>   #endif /* defined(CONFIG_USER_ONLY) */

>   }

>   

> @@ -7303,7 +7295,7 @@ static void gen_rfci_40x(DisasContext *ctx)

>       CHK_SV;

>       /* Restore CPU state */

>       gen_helper_40x_rfci(cpu_env);

> -    gen_sync_exception(ctx);

> +    ctx->base.is_jmp = DISAS_EXIT;

>   #endif /* defined(CONFIG_USER_ONLY) */

>   }

>   

> @@ -7315,7 +7307,7 @@ static void gen_rfci(DisasContext *ctx)

>       CHK_SV;

>       /* Restore CPU state */

>       gen_helper_rfci(cpu_env);

> -    gen_sync_exception(ctx);

> +    ctx->base.is_jmp = DISAS_EXIT;

>   #endif /* defined(CONFIG_USER_ONLY) */

>   }

>   

> @@ -7330,7 +7322,7 @@ static void gen_rfdi(DisasContext *ctx)

>       CHK_SV;

>       /* Restore CPU state */

>       gen_helper_rfdi(cpu_env);

> -    gen_sync_exception(ctx);

> +    ctx->base.is_jmp = DISAS_EXIT;

>   #endif /* defined(CONFIG_USER_ONLY) */

>   }

>   

> @@ -7343,7 +7335,7 @@ static void gen_rfmci(DisasContext *ctx)

>       CHK_SV;

>       /* Restore CPU state */

>       gen_helper_rfmci(cpu_env);

> -    gen_sync_exception(ctx);

> +    ctx->base.is_jmp = DISAS_EXIT;

>   #endif /* defined(CONFIG_USER_ONLY) */

>   }

>   

> @@ -9429,7 +9421,6 @@ static void ppc_tr_translate_insn(DisasContextBase *dcbase, CPUState *cs)

>           case POWERPC_EXCP_BRANCH:

>               ctx->base.is_jmp = DISAS_NORETURN;

>               break;

> -        case POWERPC_EXCP_SYNC:

>           case POWERPC_EXCP_STOP:

>               ctx->base.is_jmp = DISAS_EXIT;

>               break;

Reviewed-by: Bruno Larsen (billionai) <bruno.larsen@eldorado.org.br>

-- 
Bruno Piazera Larsen
Instituto de Pesquisas ELDORADO 
<https://www.eldorado.org.br/?utm_campaign=assinatura_de_e-mail&utm_medium=email&utm_source=RD+Station>
Departamento Computação Embarcada
Analista de Software Trainee
Aviso Legal - Disclaimer <https://www.eldorado.org.br/disclaimer.html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 12/05/2021 15:54,
      <a class="moz-txt-link-abbreviated" href="mailto:matheus.ferst@eldorado.org.br">matheus.ferst@eldorado.org.br</a> wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:20210512185441.3619828-9-matheus.ferst@eldorado.org.br">
      <pre class="moz-quote-pre" wrap="">From: Richard Henderson <a class="moz-txt-link-rfc2396E" href="mailto:richard.henderson@linaro.org">&lt;richard.henderson@linaro.org&gt;</a>

Remove the synthetic "exception" after no more uses.

Signed-off-by: Richard Henderson <a class="moz-txt-link-rfc2396E" href="mailto:richard.henderson@linaro.org">&lt;richard.henderson@linaro.org&gt;</a>

Signed-off-by: Matheus Ferst <a class="moz-txt-link-rfc2396E" href="mailto:matheus.ferst@eldorado.org.br">&lt;matheus.ferst@eldorado.org.br&gt;</a>

---
 target/ppc/cpu.h       |  1 -
 target/ppc/translate.c | 27 +++++++++------------------
 2 files changed, 9 insertions(+), 19 deletions(-)

diff --git a/target/ppc/cpu.h b/target/ppc/cpu.h
index 98fcf1c4d6..503de6db85 100644
--- a/target/ppc/cpu.h
+++ b/target/ppc/cpu.h
@@ -135,7 +135,6 @@ enum {
     POWERPC_EXCP_STOP         = 0x200, /* stop translation                   */
     POWERPC_EXCP_BRANCH       = 0x201, /* branch instruction                 */
     /* QEMU exceptions: special cases we want to stop translation            */
-    POWERPC_EXCP_SYNC         = 0x202, /* context synchronizing instruction  */
     POWERPC_EXCP_SYSCALL_USER = 0x203, /* System call in user mode only      */
 };
 
diff --git a/target/ppc/translate.c b/target/ppc/translate.c
index 4bebb00bb2..88fe24ef95 100644
--- a/target/ppc/translate.c
+++ b/target/ppc/translate.c
@@ -359,14 +359,6 @@ static inline void gen_stop_exception(DisasContext *ctx)
     ctx-&gt;exception = POWERPC_EXCP_STOP;
 }
 
-#ifndef CONFIG_USER_ONLY
-/* No need to update nip here, as execution flow will change */
-static inline void gen_sync_exception(DisasContext *ctx)
-{
-    ctx-&gt;exception = POWERPC_EXCP_SYNC;
-}
-#endif
-
 /*****************************************************************************/
 /* SPR READ/WRITE CALLBACKS */
 
@@ -5035,7 +5027,7 @@ static void gen_rfi(DisasContext *ctx)
     }
     gen_update_cfar(ctx, ctx-&gt;cia);
     gen_helper_rfi(cpu_env);
-    gen_sync_exception(ctx);
+    ctx-&gt;base.is_jmp = DISAS_EXIT;
 #endif
 }
 
@@ -5052,7 +5044,7 @@ static void gen_rfid(DisasContext *ctx)
     }
     gen_update_cfar(ctx, ctx-&gt;cia);
     gen_helper_rfid(cpu_env);
-    gen_sync_exception(ctx);
+    ctx-&gt;base.is_jmp = DISAS_EXIT;
 #endif
 }
 
@@ -5069,7 +5061,7 @@ static void gen_rfscv(DisasContext *ctx)
     }
     gen_update_cfar(ctx, ctx-&gt;cia);
     gen_helper_rfscv(cpu_env);
-    gen_sync_exception(ctx);
+    ctx-&gt;base.is_jmp = DISAS_EXIT;
 #endif
 }
 #endif
@@ -5082,7 +5074,7 @@ static void gen_hrfid(DisasContext *ctx)
     /* Restore CPU state */
     CHK_HV;
     gen_helper_hrfid(cpu_env);
-    gen_sync_exception(ctx);
+    ctx-&gt;base.is_jmp = DISAS_EXIT;
 #endif
 }
 #endif
@@ -6923,7 +6915,7 @@ static void gen_rfsvc(DisasContext *ctx)
     CHK_SV;
 
     gen_helper_rfsvc(cpu_env);
-    gen_sync_exception(ctx);
+    ctx-&gt;base.is_jmp = DISAS_EXIT;
 #endif /* defined(CONFIG_USER_ONLY) */
 }
 
@@ -7303,7 +7295,7 @@ static void gen_rfci_40x(DisasContext *ctx)
     CHK_SV;
     /* Restore CPU state */
     gen_helper_40x_rfci(cpu_env);
-    gen_sync_exception(ctx);
+    ctx-&gt;base.is_jmp = DISAS_EXIT;
 #endif /* defined(CONFIG_USER_ONLY) */
 }
 
@@ -7315,7 +7307,7 @@ static void gen_rfci(DisasContext *ctx)
     CHK_SV;
     /* Restore CPU state */
     gen_helper_rfci(cpu_env);
-    gen_sync_exception(ctx);
+    ctx-&gt;base.is_jmp = DISAS_EXIT;
 #endif /* defined(CONFIG_USER_ONLY) */
 }
 
@@ -7330,7 +7322,7 @@ static void gen_rfdi(DisasContext *ctx)
     CHK_SV;
     /* Restore CPU state */
     gen_helper_rfdi(cpu_env);
-    gen_sync_exception(ctx);
+    ctx-&gt;base.is_jmp = DISAS_EXIT;
 #endif /* defined(CONFIG_USER_ONLY) */
 }
 
@@ -7343,7 +7335,7 @@ static void gen_rfmci(DisasContext *ctx)
     CHK_SV;
     /* Restore CPU state */
     gen_helper_rfmci(cpu_env);
-    gen_sync_exception(ctx);
+    ctx-&gt;base.is_jmp = DISAS_EXIT;
 #endif /* defined(CONFIG_USER_ONLY) */
 }
 
@@ -9429,7 +9421,6 @@ static void ppc_tr_translate_insn(DisasContextBase *dcbase, CPUState *cs)
         case POWERPC_EXCP_BRANCH:
             ctx-&gt;base.is_jmp = DISAS_NORETURN;
             break;
-        case POWERPC_EXCP_SYNC:
         case POWERPC_EXCP_STOP:
             ctx-&gt;base.is_jmp = DISAS_EXIT;
             break;
</pre>
    </blockquote>
    <div class="moz-signature">Reviewed-by: Bruno Larsen (billionai)
      <a class="moz-txt-link-rfc2396E" href="mailto:bruno.larsen@eldorado.org.br">&lt;bruno.larsen@eldorado.org.br&gt;</a><br>
    </div>
    <div class="moz-signature">-- <br>
      Bruno Piazera Larsen<br>
      <a
href="https://www.eldorado.org.br/?utm_campaign=assinatura_de_e-mail&amp;utm_medium=email&amp;utm_source=RD+Station">Instituto
        de Pesquisas ELDORADO</a><br>
      Departamento Computação Embarcada<br>
      Analista de Software Trainee<br>
      <a href="https://www.eldorado.org.br/disclaimer.html">Aviso Legal
        - Disclaimer</a></div>
  </body>
</html>
David Gibson May 13, 2021, 4:11 a.m. UTC | #2
On Wed, May 12, 2021 at 03:54:18PM -0300, matheus.ferst@eldorado.org.br wrote:
> From: Richard Henderson <richard.henderson@linaro.org>

> 

> Remove the synthetic "exception" after no more uses.

> 

> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>

> Signed-off-by: Matheus Ferst <matheus.ferst@eldorado.org.br>


Applied to ppc-for-6.1, thanks.

> ---

>  target/ppc/cpu.h       |  1 -

>  target/ppc/translate.c | 27 +++++++++------------------

>  2 files changed, 9 insertions(+), 19 deletions(-)

> 

> diff --git a/target/ppc/cpu.h b/target/ppc/cpu.h

> index 98fcf1c4d6..503de6db85 100644

> --- a/target/ppc/cpu.h

> +++ b/target/ppc/cpu.h

> @@ -135,7 +135,6 @@ enum {

>      POWERPC_EXCP_STOP         = 0x200, /* stop translation                   */

>      POWERPC_EXCP_BRANCH       = 0x201, /* branch instruction                 */

>      /* QEMU exceptions: special cases we want to stop translation            */

> -    POWERPC_EXCP_SYNC         = 0x202, /* context synchronizing instruction  */

>      POWERPC_EXCP_SYSCALL_USER = 0x203, /* System call in user mode only      */

>  };

>  

> diff --git a/target/ppc/translate.c b/target/ppc/translate.c

> index 4bebb00bb2..88fe24ef95 100644

> --- a/target/ppc/translate.c

> +++ b/target/ppc/translate.c

> @@ -359,14 +359,6 @@ static inline void gen_stop_exception(DisasContext *ctx)

>      ctx->exception = POWERPC_EXCP_STOP;

>  }

>  

> -#ifndef CONFIG_USER_ONLY

> -/* No need to update nip here, as execution flow will change */

> -static inline void gen_sync_exception(DisasContext *ctx)

> -{

> -    ctx->exception = POWERPC_EXCP_SYNC;

> -}

> -#endif

> -

>  /*****************************************************************************/

>  /* SPR READ/WRITE CALLBACKS */

>  

> @@ -5035,7 +5027,7 @@ static void gen_rfi(DisasContext *ctx)

>      }

>      gen_update_cfar(ctx, ctx->cia);

>      gen_helper_rfi(cpu_env);

> -    gen_sync_exception(ctx);

> +    ctx->base.is_jmp = DISAS_EXIT;

>  #endif

>  }

>  

> @@ -5052,7 +5044,7 @@ static void gen_rfid(DisasContext *ctx)

>      }

>      gen_update_cfar(ctx, ctx->cia);

>      gen_helper_rfid(cpu_env);

> -    gen_sync_exception(ctx);

> +    ctx->base.is_jmp = DISAS_EXIT;

>  #endif

>  }

>  

> @@ -5069,7 +5061,7 @@ static void gen_rfscv(DisasContext *ctx)

>      }

>      gen_update_cfar(ctx, ctx->cia);

>      gen_helper_rfscv(cpu_env);

> -    gen_sync_exception(ctx);

> +    ctx->base.is_jmp = DISAS_EXIT;

>  #endif

>  }

>  #endif

> @@ -5082,7 +5074,7 @@ static void gen_hrfid(DisasContext *ctx)

>      /* Restore CPU state */

>      CHK_HV;

>      gen_helper_hrfid(cpu_env);

> -    gen_sync_exception(ctx);

> +    ctx->base.is_jmp = DISAS_EXIT;

>  #endif

>  }

>  #endif

> @@ -6923,7 +6915,7 @@ static void gen_rfsvc(DisasContext *ctx)

>      CHK_SV;

>  

>      gen_helper_rfsvc(cpu_env);

> -    gen_sync_exception(ctx);

> +    ctx->base.is_jmp = DISAS_EXIT;

>  #endif /* defined(CONFIG_USER_ONLY) */

>  }

>  

> @@ -7303,7 +7295,7 @@ static void gen_rfci_40x(DisasContext *ctx)

>      CHK_SV;

>      /* Restore CPU state */

>      gen_helper_40x_rfci(cpu_env);

> -    gen_sync_exception(ctx);

> +    ctx->base.is_jmp = DISAS_EXIT;

>  #endif /* defined(CONFIG_USER_ONLY) */

>  }

>  

> @@ -7315,7 +7307,7 @@ static void gen_rfci(DisasContext *ctx)

>      CHK_SV;

>      /* Restore CPU state */

>      gen_helper_rfci(cpu_env);

> -    gen_sync_exception(ctx);

> +    ctx->base.is_jmp = DISAS_EXIT;

>  #endif /* defined(CONFIG_USER_ONLY) */

>  }

>  

> @@ -7330,7 +7322,7 @@ static void gen_rfdi(DisasContext *ctx)

>      CHK_SV;

>      /* Restore CPU state */

>      gen_helper_rfdi(cpu_env);

> -    gen_sync_exception(ctx);

> +    ctx->base.is_jmp = DISAS_EXIT;

>  #endif /* defined(CONFIG_USER_ONLY) */

>  }

>  

> @@ -7343,7 +7335,7 @@ static void gen_rfmci(DisasContext *ctx)

>      CHK_SV;

>      /* Restore CPU state */

>      gen_helper_rfmci(cpu_env);

> -    gen_sync_exception(ctx);

> +    ctx->base.is_jmp = DISAS_EXIT;

>  #endif /* defined(CONFIG_USER_ONLY) */

>  }

>  

> @@ -9429,7 +9421,6 @@ static void ppc_tr_translate_insn(DisasContextBase *dcbase, CPUState *cs)

>          case POWERPC_EXCP_BRANCH:

>              ctx->base.is_jmp = DISAS_NORETURN;

>              break;

> -        case POWERPC_EXCP_SYNC:

>          case POWERPC_EXCP_STOP:

>              ctx->base.is_jmp = DISAS_EXIT;

>              break;


-- 
David Gibson			| I'll have my music baroque, and my code
david AT gibson.dropbear.id.au	| minimalist, thank you.  NOT _the_ _other_
				| _way_ _around_!
http://www.ozlabs.org/~dgibson
diff mbox series

Patch

diff --git a/target/ppc/cpu.h b/target/ppc/cpu.h
index 98fcf1c4d6..503de6db85 100644
--- a/target/ppc/cpu.h
+++ b/target/ppc/cpu.h
@@ -135,7 +135,6 @@  enum {
     POWERPC_EXCP_STOP         = 0x200, /* stop translation                   */
     POWERPC_EXCP_BRANCH       = 0x201, /* branch instruction                 */
     /* QEMU exceptions: special cases we want to stop translation            */
-    POWERPC_EXCP_SYNC         = 0x202, /* context synchronizing instruction  */
     POWERPC_EXCP_SYSCALL_USER = 0x203, /* System call in user mode only      */
 };
 
diff --git a/target/ppc/translate.c b/target/ppc/translate.c
index 4bebb00bb2..88fe24ef95 100644
--- a/target/ppc/translate.c
+++ b/target/ppc/translate.c
@@ -359,14 +359,6 @@  static inline void gen_stop_exception(DisasContext *ctx)
     ctx->exception = POWERPC_EXCP_STOP;
 }
 
-#ifndef CONFIG_USER_ONLY
-/* No need to update nip here, as execution flow will change */
-static inline void gen_sync_exception(DisasContext *ctx)
-{
-    ctx->exception = POWERPC_EXCP_SYNC;
-}
-#endif
-
 /*****************************************************************************/
 /* SPR READ/WRITE CALLBACKS */
 
@@ -5035,7 +5027,7 @@  static void gen_rfi(DisasContext *ctx)
     }
     gen_update_cfar(ctx, ctx->cia);
     gen_helper_rfi(cpu_env);
-    gen_sync_exception(ctx);
+    ctx->base.is_jmp = DISAS_EXIT;
 #endif
 }
 
@@ -5052,7 +5044,7 @@  static void gen_rfid(DisasContext *ctx)
     }
     gen_update_cfar(ctx, ctx->cia);
     gen_helper_rfid(cpu_env);
-    gen_sync_exception(ctx);
+    ctx->base.is_jmp = DISAS_EXIT;
 #endif
 }
 
@@ -5069,7 +5061,7 @@  static void gen_rfscv(DisasContext *ctx)
     }
     gen_update_cfar(ctx, ctx->cia);
     gen_helper_rfscv(cpu_env);
-    gen_sync_exception(ctx);
+    ctx->base.is_jmp = DISAS_EXIT;
 #endif
 }
 #endif
@@ -5082,7 +5074,7 @@  static void gen_hrfid(DisasContext *ctx)
     /* Restore CPU state */
     CHK_HV;
     gen_helper_hrfid(cpu_env);
-    gen_sync_exception(ctx);
+    ctx->base.is_jmp = DISAS_EXIT;
 #endif
 }
 #endif
@@ -6923,7 +6915,7 @@  static void gen_rfsvc(DisasContext *ctx)
     CHK_SV;
 
     gen_helper_rfsvc(cpu_env);
-    gen_sync_exception(ctx);
+    ctx->base.is_jmp = DISAS_EXIT;
 #endif /* defined(CONFIG_USER_ONLY) */
 }
 
@@ -7303,7 +7295,7 @@  static void gen_rfci_40x(DisasContext *ctx)
     CHK_SV;
     /* Restore CPU state */
     gen_helper_40x_rfci(cpu_env);
-    gen_sync_exception(ctx);
+    ctx->base.is_jmp = DISAS_EXIT;
 #endif /* defined(CONFIG_USER_ONLY) */
 }
 
@@ -7315,7 +7307,7 @@  static void gen_rfci(DisasContext *ctx)
     CHK_SV;
     /* Restore CPU state */
     gen_helper_rfci(cpu_env);
-    gen_sync_exception(ctx);
+    ctx->base.is_jmp = DISAS_EXIT;
 #endif /* defined(CONFIG_USER_ONLY) */
 }
 
@@ -7330,7 +7322,7 @@  static void gen_rfdi(DisasContext *ctx)
     CHK_SV;
     /* Restore CPU state */
     gen_helper_rfdi(cpu_env);
-    gen_sync_exception(ctx);
+    ctx->base.is_jmp = DISAS_EXIT;
 #endif /* defined(CONFIG_USER_ONLY) */
 }
 
@@ -7343,7 +7335,7 @@  static void gen_rfmci(DisasContext *ctx)
     CHK_SV;
     /* Restore CPU state */
     gen_helper_rfmci(cpu_env);
-    gen_sync_exception(ctx);
+    ctx->base.is_jmp = DISAS_EXIT;
 #endif /* defined(CONFIG_USER_ONLY) */
 }
 
@@ -9429,7 +9421,6 @@  static void ppc_tr_translate_insn(DisasContextBase *dcbase, CPUState *cs)
         case POWERPC_EXCP_BRANCH:
             ctx->base.is_jmp = DISAS_NORETURN;
             break;
-        case POWERPC_EXCP_SYNC:
         case POWERPC_EXCP_STOP:
             ctx->base.is_jmp = DISAS_EXIT;
             break;