qemu-devel
[Top][All Lists]
Advanced

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

[Qemu-devel] [PATCH 00/20] target-sparc: Cleanup handling of temps


From: Richard Henderson
Subject: [Qemu-devel] [PATCH 00/20] target-sparc: Cleanup handling of temps
Date: Tue, 9 Oct 2012 15:04:07 -0700

The primary goal of this patch set is to have all references to windowed
registers to go through new routines that have access to DisasContext.
This is a prerequisite to any change in how windowed registers might be
managed.

Since such a goal must of course touch get_src[12], and therefore touch
the use of the cpu_src[12] temporaries, a secondary goal of the patch set
became to clean up all of the temporary management within the translator.
And in particular eliminate the 6 "global" temps that we currently allocate
inside gen_intermediate_code_internal.

In some cases we convert their uses to simple temps allocated and freed
nearby their uses.  In some cases we push the cpu_foo temp down into the
disassembly of a given opcode, making it local to the code that ought to
be able to access it.  And finally we provide for temps to be allocated
dynamically, and then automatically freed at the end of the insn.

The result ought to be microscopically faster than before, if only
because TCG is iterating over fewer temporaries.


r~


Richard Henderson (20):
  target-sparc: Add gen_load/store/dest_gpr
  target-sparc: Conversion to gen_*_gpr, part 1
  target-sparc: Use gen_load_gpr in get_src[12]
  target-sparc: Convert asi helpers to gen_*_gpr
  target-sparc: Convert swap to gen_load/store_gpr
  target-sparc: Finish conversion to gen_load_gpr
  target-sparc: Cleanup cpu_src[12] allocation
  target-sparc: Make the cpu_addr variable local to load/store handling
  target-sparc: Split out get_temp_i32
  target-sparc: Use get_temp_i32 in gen_dest_fpr_F
  target-sparc: Avoid cpu_tmp32 in Read Priv Register
  target-sparc: Avoid cpu_tmp32 in Write Priv Register
  target-sparc: Tidy ldfsr, stfsr
  target-sparc: Remove usage of cpu_tmp64 from most helper functions
  target-sparc: Don't use a temporary for gen_dest_fpr_D
  target-sparc: Remove cpu_tmp64 use from softint insns
  target-sparc: Remove last uses of cpu_tmp64
  target-sparc: Only use cpu_dst for eventual writes to a gpr
  target-sparc: Make cpu_dst local to OP=2 insns
  target-sparc: Remove cpu_tmp0 as a global

 target-sparc/translate.c | 1233 +++++++++++++++++++++++-----------------------
 1 file changed, 609 insertions(+), 624 deletions(-)

-- 
1.7.11.4




reply via email to

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