qemu-devel
[Top][All Lists]
Advanced

[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




reply via email to

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