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 |
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"><richard.henderson@linaro.org></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"><richard.henderson@linaro.org></a> Signed-off-by: Matheus Ferst <a class="moz-txt-link-rfc2396E" href="mailto:matheus.ferst@eldorado.org.br"><matheus.ferst@eldorado.org.br></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->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; </pre> </blockquote> <div class="moz-signature">Reviewed-by: Bruno Larsen (billionai) <a class="moz-txt-link-rfc2396E" href="mailto:bruno.larsen@eldorado.org.br"><bruno.larsen@eldorado.org.br></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&utm_medium=email&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>
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 --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;