[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 1/2] target-alpha: Copy singlestep_enabled to Di
From: |
Andreas Färber |
Subject: |
Re: [Qemu-devel] [PATCH 1/2] target-alpha: Copy singlestep_enabled to DisasContext |
Date: |
Mon, 01 Jul 2013 23:11:05 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130510 Thunderbird/17.0.6 |
Am 01.07.2013 22:19, schrieb Richard Henderson:
> Prepare for removing env from DisasContext.
>
> Signed-off-by: Richard Henderson <address@hidden>
> ---
> target-alpha/translate.c | 9 ++++++---
> 1 file changed, 6 insertions(+), 3 deletions(-)
>
> diff --git a/target-alpha/translate.c b/target-alpha/translate.c
> index 4db16db..b59f919 100644
> --- a/target-alpha/translate.c
> +++ b/target-alpha/translate.c
> @@ -46,6 +46,8 @@ struct DisasContext {
> int tb_rm;
> /* Current flush-to-zero setting for this TB. */
> int tb_ftz;
> +
> + bool singlestep_enabled;
env->singlestep_enabled is an int containing flags. Below it's only used
as a boolean though, so
Reviewed-by: Andreas Färber <address@hidden>
Thanks,
Andreas
> };
>
> /* Return values from translate_one, indicating the state of the TB.
> @@ -380,7 +382,7 @@ static int use_goto_tb(DisasContext *ctx, uint64_t dest)
> /* Check for the dest on the same page as the start of the TB. We
> also want to suppress goto_tb in the case of single-steping and IO.
> */
> return (((ctx->tb->pc ^ dest) & TARGET_PAGE_MASK) == 0
> - && !ctx->env->singlestep_enabled
> + && !ctx->singlestep_enabled
> && !(ctx->tb->cflags & CF_LAST_IO));
> }
>
> @@ -3396,6 +3398,7 @@ static inline void
> gen_intermediate_code_internal(CPUAlphaState *env,
> ctx.env = env;
> ctx.pc = pc_start;
> ctx.mem_idx = cpu_mmu_index(env);
> + ctx.singlestep_enabled = env->singlestep_enabled;
>
> /* ??? Every TB begins with unset rounding mode, to be initialized on
> the first fp insn of the TB. Alternately we could define a proper
> @@ -3452,7 +3455,7 @@ static inline void
> gen_intermediate_code_internal(CPUAlphaState *env,
> || tcg_ctx.gen_opc_ptr >= gen_opc_end
> || num_insns >= max_insns
> || singlestep
> - || env->singlestep_enabled)) {
> + || ctx.singlestep_enabled)) {
> ret = EXIT_PC_STALE;
> }
> } while (ret == NO_EXIT);
> @@ -3469,7 +3472,7 @@ static inline void
> gen_intermediate_code_internal(CPUAlphaState *env,
> tcg_gen_movi_i64(cpu_pc, ctx.pc);
> /* FALLTHRU */
> case EXIT_PC_UPDATED:
> - if (env->singlestep_enabled) {
> + if (ctx.singlestep_enabled) {
> gen_excp_1(EXCP_DEBUG, 0);
> } else {
> tcg_gen_exit_tb(0);
--
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg