Message ID | 20191106141424.27244-4-edgar.iglesias@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | target/microblaze: Plug tcg temp leaks | expand |
On 11/6/19 3:14 PM, Edgar E. Iglesias wrote: > From: "Edgar E. Iglesias" <edgar.iglesias@xilinx.com> > > Plug temp leak around eval_cond_jmp(). > > Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com> > --- > target/microblaze/translate.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/target/microblaze/translate.c b/target/microblaze/translate.c > index e9ff9e650d..93e22a89ac 100644 > --- a/target/microblaze/translate.c > +++ b/target/microblaze/translate.c > @@ -1705,7 +1705,10 @@ void gen_intermediate_code(CPUState *cs, TranslationBlock *tb, int max_insns) > dc->tb_flags &= ~D_FLAG; > /* If it is a direct jump, try direct chaining. */ > if (dc->jmp == JMP_INDIRECT) { > - eval_cond_jmp(dc, env_btarget, tcg_const_i64(dc->pc)); > + TCGv_i64 tmp_pc = tcg_const_i64(dc->pc); > + eval_cond_jmp(dc, env_btarget, tmp_pc); > + tcg_temp_free_i64(tmp_pc); > + > dc->is_jmp = DISAS_JUMP; > } else if (dc->jmp == JMP_DIRECT) { > t_sync_flags(dc); > Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
On 11/6/19 3:14 PM, Edgar E. Iglesias wrote: > From: "Edgar E. Iglesias" <edgar.iglesias@xilinx.com> > > Plug temp leak around eval_cond_jmp(). > > Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com> > --- > target/microblaze/translate.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/target/microblaze/translate.c b/target/microblaze/translate.c > index e9ff9e650d..93e22a89ac 100644 > --- a/target/microblaze/translate.c > +++ b/target/microblaze/translate.c > @@ -1705,7 +1705,10 @@ void gen_intermediate_code(CPUState *cs, TranslationBlock *tb, int max_insns) > dc->tb_flags &= ~D_FLAG; > /* If it is a direct jump, try direct chaining. */ > if (dc->jmp == JMP_INDIRECT) { > - eval_cond_jmp(dc, env_btarget, tcg_const_i64(dc->pc)); > + TCGv_i64 tmp_pc = tcg_const_i64(dc->pc); > + eval_cond_jmp(dc, env_btarget, tmp_pc); > + tcg_temp_free_i64(tmp_pc); > + > dc->is_jmp = DISAS_JUMP; > } else if (dc->jmp == JMP_DIRECT) { > t_sync_flags(dc); > Reviewed-by: Luc Michel <luc.michel@greensocs.com>
On Wed, Nov 6, 2019 at 6:17 AM Edgar E. Iglesias <edgar.iglesias@gmail.com> wrote: > > From: "Edgar E. Iglesias" <edgar.iglesias@xilinx.com> > > Plug temp leak around eval_cond_jmp(). > > Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com> Reviewed-by: Alistair Francis <alistair.francis@wdc.com> Alistair > --- > target/microblaze/translate.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/target/microblaze/translate.c b/target/microblaze/translate.c > index e9ff9e650d..93e22a89ac 100644 > --- a/target/microblaze/translate.c > +++ b/target/microblaze/translate.c > @@ -1705,7 +1705,10 @@ void gen_intermediate_code(CPUState *cs, TranslationBlock *tb, int max_insns) > dc->tb_flags &= ~D_FLAG; > /* If it is a direct jump, try direct chaining. */ > if (dc->jmp == JMP_INDIRECT) { > - eval_cond_jmp(dc, env_btarget, tcg_const_i64(dc->pc)); > + TCGv_i64 tmp_pc = tcg_const_i64(dc->pc); > + eval_cond_jmp(dc, env_btarget, tmp_pc); > + tcg_temp_free_i64(tmp_pc); > + > dc->is_jmp = DISAS_JUMP; > } else if (dc->jmp == JMP_DIRECT) { > t_sync_flags(dc); > -- > 2.20.1 > >
On 11/6/19 3:14 PM, Edgar E. Iglesias wrote: > From: "Edgar E. Iglesias" <edgar.iglesias@xilinx.com> > > Plug temp leak around eval_cond_jmp(). > > Signed-off-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com> > --- > target/microblaze/translate.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) Reviewed-by: Richard Henderson <richard.henderson@linaro.org> r~
diff --git a/target/microblaze/translate.c b/target/microblaze/translate.c index e9ff9e650d..93e22a89ac 100644 --- a/target/microblaze/translate.c +++ b/target/microblaze/translate.c @@ -1705,7 +1705,10 @@ void gen_intermediate_code(CPUState *cs, TranslationBlock *tb, int max_insns) dc->tb_flags &= ~D_FLAG; /* If it is a direct jump, try direct chaining. */ if (dc->jmp == JMP_INDIRECT) { - eval_cond_jmp(dc, env_btarget, tcg_const_i64(dc->pc)); + TCGv_i64 tmp_pc = tcg_const_i64(dc->pc); + eval_cond_jmp(dc, env_btarget, tmp_pc); + tcg_temp_free_i64(tmp_pc); + dc->is_jmp = DISAS_JUMP; } else if (dc->jmp == JMP_DIRECT) { t_sync_flags(dc);