[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 00/23] target-sparc comparison improvements
From: |
Richard Henderson |
Subject: |
[Qemu-devel] [PATCH 00/23] target-sparc comparison improvements |
Date: |
Fri, 5 Oct 2012 16:54:47 -0700 |
Most of the patches are cleanup. Some of the middle patches that
make use of setcond and movcond where apropriate do improve code
generation. But more important that that, we no longer have tcg
temporaries that are live across basic blocks. Indeed, the only
remaining uses of brcond are in Tcc and the actual end-of-TB
branching code.
The final patch begins to make use of the infrastructure added
during the cleanups. Obviously there's more that can be done
here, handling addcc and logic ops, but I've run out of time for
today.
Tested on
linux-user-test-0.3 images
sparc32 works well
sparc64 no longer crashes, but does exit 1
the shipped openbios image
sparc32 works well
sparc64 works as well as head (stalls before prompt)
sparc-test-0.2
sparc32 boots to prompt
r~
Richard Henderson (23):
target-sparc: Tidy cpu_dump_state
target-sparc: Make CPU_LOG_INT useful by default
target-sparc: Tidy do_branch interfaces
target-sparc: Tidy flush_cond interface
target-sparc: Tidy gen_trap_ifnofpu interface
target-sparc: Tidy save_state interface
target-sparc: Tidy gen_mov_pc_npc interface
target-sparc: Tidy save_npc interface
target-sparc: Tidy gen_generic_branch interface
target-sparc: Introduce DisasCompare and functions to generate it
target-sparc: Use DisasCompare in Tcc
target-sparc: Use DisasCompare and movcond in FMOVR, FMOVCC
target-sparc: Use DisasCompare and movcond in MOVCC
target-sparc: Use DisasCompare and movcond in MOVR
target-sparc: Use movcond in gen_generic_branch
target-sparc: Move sdivx and udivx out of line
target-sparc: Tidy Tcc
target-sparc: Move taddcctv and tsubcctv out of line
target-sparc: Use movcond in mulscc
target-sparc: Use movcond for FMOV*R
target-sparc: Cleanup "global" temporary allocation
target-sparc: Fall through from not-taken trap
target-sparc: Optimize conditionals using SUBCC
target-sparc/cpu.c | 7 +-
target-sparc/cpu.h | 1 +
target-sparc/helper.c | 86 ++++
target-sparc/helper.h | 6 +
target-sparc/int32_helper.c | 7 +-
target-sparc/int64_helper.c | 8 +-
target-sparc/ldst_helper.c | 4 +-
target-sparc/translate.c | 1133 +++++++++++++++++++++----------------------
8 files changed, 653 insertions(+), 599 deletions(-)
--
1.7.11.4
- [Qemu-devel] [PATCH 00/23] target-sparc comparison improvements,
Richard Henderson <=
- [Qemu-devel] [PATCH 01/23] target-sparc: Tidy cpu_dump_state, Richard Henderson, 2012/10/05
- [Qemu-devel] [PATCH 02/23] target-sparc: Make CPU_LOG_INT useful by default, Richard Henderson, 2012/10/05
- [Qemu-devel] [PATCH 03/23] target-sparc: Tidy do_branch interfaces, Richard Henderson, 2012/10/05
- [Qemu-devel] [PATCH 07/23] target-sparc: Tidy gen_mov_pc_npc interface, Richard Henderson, 2012/10/05
- [Qemu-devel] [PATCH 05/23] target-sparc: Tidy gen_trap_ifnofpu interface, Richard Henderson, 2012/10/05
- [Qemu-devel] [PATCH 10/23] target-sparc: Introduce DisasCompare and functions to generate it, Richard Henderson, 2012/10/05
- [Qemu-devel] [PATCH 06/23] target-sparc: Tidy save_state interface, Richard Henderson, 2012/10/05
- [Qemu-devel] [PATCH 08/23] target-sparc: Tidy save_npc interface, Richard Henderson, 2012/10/05
- [Qemu-devel] [PATCH 09/23] target-sparc: Tidy gen_generic_branch interface, Richard Henderson, 2012/10/05
- [Qemu-devel] [PATCH 17/23] target-sparc: Tidy Tcc, Richard Henderson, 2012/10/05