qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [4776] Eliminate cpu_T[0]


From: Blue Swirl
Subject: [Qemu-devel] [4776] Eliminate cpu_T[0]
Date: Sun, 22 Jun 2008 10:58:58 +0000

Revision: 4776
          http://svn.sv.gnu.org/viewvc/?view=rev&root=qemu&revision=4776
Author:   blueswir1
Date:     2008-06-22 10:58:57 +0000 (Sun, 22 Jun 2008)

Log Message:
-----------
Eliminate cpu_T[0]

Modified Paths:
--------------
    trunk/target-sparc/translate.c

Modified: trunk/target-sparc/translate.c
===================================================================
--- trunk/target-sparc/translate.c      2008-06-22 08:52:58 UTC (rev 4775)
+++ trunk/target-sparc/translate.c      2008-06-22 10:58:57 UTC (rev 4776)
@@ -38,7 +38,7 @@
                          according to jump_pc[T2] */
 
 /* global register indexes */
-static TCGv cpu_env, cpu_T[2], cpu_regwptr;
+static TCGv cpu_env, cpu_regwptr;
 static TCGv cpu_cc_src, cpu_cc_src2, cpu_cc_dst;
 static TCGv cpu_psr, cpu_fsr, cpu_pc, cpu_npc, cpu_gregs[8];
 static TCGv cpu_cond, cpu_src1, cpu_src2, cpu_dst, cpu_addr, cpu_val;
@@ -1912,13 +1912,9 @@
 
     rd = GET_FIELD(insn, 2, 6);
 
-    cpu_dst = cpu_T[0];
     cpu_src1 = tcg_temp_new(TCG_TYPE_TL); // const
     cpu_src2 = tcg_temp_new(TCG_TYPE_TL); // const
 
-    // loads and stores
-    cpu_addr = cpu_T[0];
-
     switch (opc) {
     case 0:                     /* branches/sethi */
         {
@@ -4220,7 +4216,7 @@
 
                         save_state(dc, cpu_cond);
                         r_const = tcg_const_i32(7);
-                        tcg_gen_helper_0_2(helper_check_align, cpu_dst,
+                        tcg_gen_helper_0_2(helper_check_align, cpu_addr,
                                            r_const); // XXX remove
                         tcg_temp_free(r_const);
                         ABI32_MASK(cpu_addr);
@@ -4744,7 +4740,12 @@
     cpu_tmp0 = tcg_temp_new(TCG_TYPE_TL);
     cpu_tmp32 = tcg_temp_new(TCG_TYPE_I32);
     cpu_tmp64 = tcg_temp_new(TCG_TYPE_I64);
+
+    cpu_dst = tcg_temp_local_new(TCG_TYPE_TL);
+
+    // loads and stores
     cpu_val = tcg_temp_local_new(TCG_TYPE_TL);
+    cpu_addr = tcg_temp_local_new(TCG_TYPE_TL);
 
     do {
         if (env->nb_breakpoints > 0) {
@@ -4795,7 +4796,9 @@
              (dc->pc - pc_start) < (TARGET_PAGE_SIZE - 32));
 
  exit_gen_loop:
+    tcg_temp_free(cpu_addr);
     tcg_temp_free(cpu_val);
+    tcg_temp_free(cpu_dst);
     tcg_temp_free(cpu_tmp64);
     tcg_temp_free(cpu_tmp32);
     tcg_temp_free(cpu_tmp0);
@@ -4876,9 +4879,6 @@
                                      TCG_AREG0, offsetof(CPUState, xcc),
                                      "xcc");
 #endif
-        /* XXX: T0 should be a temporary */
-        cpu_T[0] = tcg_global_mem_new(TCG_TYPE_TL,
-                                      TCG_AREG0, offsetof(CPUState, t0), "T0");
         cpu_cond = tcg_global_mem_new(TCG_TYPE_TL,
                                       TCG_AREG0, offsetof(CPUState, cond),
                                       "cond");






reply via email to

[Prev in Thread] Current Thread [Next in Thread]