diff mbox

[2/2] target-alpha: Copy implver to DisasContext

Message ID 1372709970-29244-3-git-send-email-rth@twiddle.net
State New
Headers show

Commit Message

Richard Henderson July 1, 2013, 8:19 p.m. UTC
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(-)

Comments

Andreas Färber July 6, 2013, 12:55 a.m. UTC | #1
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
diff mbox

Patch

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