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 Base for adding PowerPC 64-bit instructions | 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(-)

Comments

Bruno Larsen (billionai) 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>
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;
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;