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