* [Qemu-devel] [PATCH 0/2] target-alpha prep work for qom cpu changes
@ 2013-07-01 20:19 Richard Henderson
2013-07-01 20:19 ` [Qemu-devel] [PATCH 1/2] target-alpha: Copy singlestep_enabled to DisasContext Richard Henderson
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: Richard Henderson @ 2013-07-01 20:19 UTC (permalink / raw)
To: qemu-devel; +Cc: afaerber
As discussed in the QOM thread.
r~
Richard Henderson (2):
target-alpha: Copy singlestep_enabled to DisasContext
target-alpha: Copy implver to DisasContext
target-alpha/translate.c | 20 +++++++++++++-------
1 file changed, 13 insertions(+), 7 deletions(-)
--
1.8.1.4
^ permalink raw reply [flat|nested] 6+ messages in thread
* [Qemu-devel] [PATCH 1/2] target-alpha: Copy singlestep_enabled to DisasContext
2013-07-01 20:19 [Qemu-devel] [PATCH 0/2] target-alpha prep work for qom cpu changes Richard Henderson
@ 2013-07-01 20:19 ` Richard Henderson
2013-07-01 21:11 ` Andreas Färber
2013-07-01 20:19 ` [Qemu-devel] [PATCH 2/2] target-alpha: Copy implver " Richard Henderson
2013-07-06 1:43 ` [Qemu-devel] [PATCH 0/2] target-alpha prep work for qom cpu changes Andreas Färber
2 siblings, 1 reply; 6+ messages in thread
From: Richard Henderson @ 2013-07-01 20:19 UTC (permalink / raw)
To: qemu-devel; +Cc: afaerber
Prepare for removing env from DisasContext.
Signed-off-by: Richard Henderson <rth@twiddle.net>
---
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;
};
/* 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);
--
1.8.1.4
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [Qemu-devel] [PATCH 2/2] target-alpha: Copy implver to DisasContext
2013-07-01 20:19 [Qemu-devel] [PATCH 0/2] target-alpha prep work for qom cpu changes Richard Henderson
2013-07-01 20:19 ` [Qemu-devel] [PATCH 1/2] target-alpha: Copy singlestep_enabled to DisasContext Richard Henderson
@ 2013-07-01 20:19 ` Richard Henderson
2013-07-06 0:55 ` Andreas Färber
2013-07-06 1:43 ` [Qemu-devel] [PATCH 0/2] target-alpha prep work for qom cpu changes Andreas Färber
2 siblings, 1 reply; 6+ messages in thread
From: Richard Henderson @ 2013-07-01 20:19 UTC (permalink / raw)
To: qemu-devel; +Cc: afaerber
Which allows removing env from DisasContext.
Signed-off-by: Richard Henderson <rth@twiddle.net>
---
target-alpha/translate.c | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/target-alpha/translate.c b/target-alpha/translate.c
index b59f919..7dac0c8 100644
--- a/target-alpha/translate.c
+++ b/target-alpha/translate.c
@@ -38,7 +38,6 @@
typedef struct DisasContext DisasContext;
struct DisasContext {
struct TranslationBlock *tb;
- CPUAlphaState *env;
uint64_t pc;
int mem_idx;
@@ -47,6 +46,9 @@ struct DisasContext {
/* Current flush-to-zero setting for this TB. */
int tb_ftz;
+ /* implver value for this CPU. */
+ int implver;
+
bool singlestep_enabled;
};
@@ -2246,8 +2248,9 @@ static ExitStatus translate_one(DisasContext *ctx, uint32_t insn)
break;
case 0x6C:
/* IMPLVER */
- if (rc != 31)
- tcg_gen_movi_i64(cpu_ir[rc], ctx->env->implver);
+ if (rc != 31) {
+ tcg_gen_movi_i64(cpu_ir[rc], ctx->implver);
+ }
break;
default:
goto invalid_opc;
@@ -3395,9 +3398,9 @@ static inline void gen_intermediate_code_internal(CPUAlphaState *env,
gen_opc_end = tcg_ctx.gen_opc_buf + OPC_MAX_SIZE;
ctx.tb = tb;
- ctx.env = env;
ctx.pc = pc_start;
ctx.mem_idx = cpu_mmu_index(env);
+ ctx.implver = env->implver;
ctx.singlestep_enabled = env->singlestep_enabled;
/* ??? Every TB begins with unset rounding mode, to be initialized on
--
1.8.1.4
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [Qemu-devel] [PATCH 1/2] target-alpha: Copy singlestep_enabled to DisasContext
2013-07-01 20:19 ` [Qemu-devel] [PATCH 1/2] target-alpha: Copy singlestep_enabled to DisasContext Richard Henderson
@ 2013-07-01 21:11 ` Andreas Färber
0 siblings, 0 replies; 6+ messages in thread
From: Andreas Färber @ 2013-07-01 21:11 UTC (permalink / raw)
To: Richard Henderson; +Cc: qemu-devel
Am 01.07.2013 22:19, schrieb Richard Henderson:
> Prepare for removing env from DisasContext.
>
> Signed-off-by: Richard Henderson <rth@twiddle.net>
> ---
> 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 <afaerber@suse.de>
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
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [Qemu-devel] [PATCH 2/2] target-alpha: Copy implver to DisasContext
2013-07-01 20:19 ` [Qemu-devel] [PATCH 2/2] target-alpha: Copy implver " Richard Henderson
@ 2013-07-06 0:55 ` Andreas Färber
0 siblings, 0 replies; 6+ messages in thread
From: Andreas Färber @ 2013-07-06 0:55 UTC (permalink / raw)
To: Richard Henderson; +Cc: qemu-devel
Am 01.07.2013 22:19, schrieb Richard Henderson:
> Which allows removing env from DisasContext.
>
> Signed-off-by: Richard Henderson <rth@twiddle.net>
Reviewed-by: Andreas Färber <afaerber@suse.de>
I notice that implver is only ever assigned in CPUs' instance_init, so a
candidate for moving to AlphaCPUClass as a follow-up.
Andreas
--
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [Qemu-devel] [PATCH 0/2] target-alpha prep work for qom cpu changes
2013-07-01 20:19 [Qemu-devel] [PATCH 0/2] target-alpha prep work for qom cpu changes Richard Henderson
2013-07-01 20:19 ` [Qemu-devel] [PATCH 1/2] target-alpha: Copy singlestep_enabled to DisasContext Richard Henderson
2013-07-01 20:19 ` [Qemu-devel] [PATCH 2/2] target-alpha: Copy implver " Richard Henderson
@ 2013-07-06 1:43 ` Andreas Färber
2 siblings, 0 replies; 6+ messages in thread
From: Andreas Färber @ 2013-07-06 1:43 UTC (permalink / raw)
To: Richard Henderson; +Cc: qemu-devel
Am 01.07.2013 22:19, schrieb Richard Henderson:
> As discussed in the QOM thread.
Thanks, applying to qom-cpu-next to rebase qom-cpu-11:
https://github.com/afaerber/qemu-cpu/commits/qom-cpu-next
Andreas
> Richard Henderson (2):
> target-alpha: Copy singlestep_enabled to DisasContext
> target-alpha: Copy implver to DisasContext
>
> target-alpha/translate.c | 20 +++++++++++++-------
> 1 file changed, 13 insertions(+), 7 deletions(-)
>
--
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2013-07-06 1:44 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-07-01 20:19 [Qemu-devel] [PATCH 0/2] target-alpha prep work for qom cpu changes Richard Henderson
2013-07-01 20:19 ` [Qemu-devel] [PATCH 1/2] target-alpha: Copy singlestep_enabled to DisasContext Richard Henderson
2013-07-01 21:11 ` Andreas Färber
2013-07-01 20:19 ` [Qemu-devel] [PATCH 2/2] target-alpha: Copy implver " Richard Henderson
2013-07-06 0:55 ` Andreas Färber
2013-07-06 1:43 ` [Qemu-devel] [PATCH 0/2] target-alpha prep work for qom cpu changes Andreas Färber
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).