From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:42453) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TKHjk-0006zl-Eb for qemu-devel@nongnu.org; Fri, 05 Oct 2012 19:55:21 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1TKHji-0003LY-Sh for qemu-devel@nongnu.org; Fri, 05 Oct 2012 19:55:20 -0400 Received: from mail-pa0-f45.google.com ([209.85.220.45]:64287) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1TKHji-0003Jx-LR for qemu-devel@nongnu.org; Fri, 05 Oct 2012 19:55:18 -0400 Received: by mail-pa0-f45.google.com with SMTP id fb10so2357262pad.4 for ; Fri, 05 Oct 2012 16:55:17 -0700 (PDT) Sender: Richard Henderson From: Richard Henderson Date: Fri, 5 Oct 2012 16:54:47 -0700 Message-Id: <1349481310-9237-1-git-send-email-rth@twiddle.net> Subject: [Qemu-devel] [PATCH 00/23] target-sparc comparison improvements List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Blue Swirl 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