[Top][All Lists]
[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
- [Qemu-devel] [PATCH 00/20] target-sparc: Cleanup handling of temps,
Richard Henderson <=
- [Qemu-devel] [PATCH 01/20] target-sparc: Add gen_load/store/dest_gpr, Richard Henderson, 2012/10/09
- [Qemu-devel] [PATCH 04/20] target-sparc: Convert asi helpers to gen_*_gpr, Richard Henderson, 2012/10/09
- [Qemu-devel] [PATCH 05/20] target-sparc: Convert swap to gen_load/store_gpr, Richard Henderson, 2012/10/09
- [Qemu-devel] [PATCH 07/20] target-sparc: Cleanup cpu_src[12] allocation, Richard Henderson, 2012/10/09
- [Qemu-devel] [PATCH 02/20] target-sparc: Conversion to gen_*_gpr, part 1, Richard Henderson, 2012/10/09
- [Qemu-devel] [PATCH 03/20] target-sparc: Use gen_load_gpr in get_src[12], Richard Henderson, 2012/10/09
- [Qemu-devel] [PATCH 06/20] target-sparc: Finish conversion to gen_load_gpr, Richard Henderson, 2012/10/09
- [Qemu-devel] [PATCH 09/20] target-sparc: Split out get_temp_i32, Richard Henderson, 2012/10/09
- [Qemu-devel] [PATCH 12/20] target-sparc: Avoid cpu_tmp32 in Write Priv Register, Richard Henderson, 2012/10/09
- [Qemu-devel] [PATCH 10/20] target-sparc: Use get_temp_i32 in gen_dest_fpr_F, Richard Henderson, 2012/10/09