On Thu, Jan 24, 2013 at 5:02 AM, Richard Henderson <r...@twiddle.net> wrote:
> This is a re-working of Paolo's eflags cleanup from October, which
> I consider a pre-requisite to implementing the ADX extension.  I've
> rearranged most of the patches in trivial ways, and some quite
> significantly.
>
> I've tested the result by running the FC17 installer in both i386
> and x86_64 mode, and the bmi/adx extensions with small user-land
> test cases.
>
> The patch series is at
>
>   git://github.com/rth7680/qemu.git eflags3

I gave a quick try a your branch. My host is an x86_64 CPU and I
ran an i386 nbench in user mode.  It works but some parts of the
benchmark are noticeably slower (>10%).  Is that expected?

Thanks,

Laurent

> Please review.
>
>
> r~
>
>
> Paolo Bonzini (19):
>   test-i386: QEMU_PACKED is not defined here
>   test-i386: make it compile with a recent gcc
>   target-i386: use OT_* consistently
>   target-i386: introduce gen_ext_tl
>   target-i386: factor setting of s->cc_op handling for string functions
>   target-i386: drop cc_op argument of gen_jcc1
>   target-i386: move carry computation for inc/dec closer to
>     gen_op_set_cc_op
>   target-i386: move eflags computation closer to gen_op_set_cc_op
>   target-i386: compute eflags outside rcl/rcr helper
>   target-i386: clean up sahf
>   target-i386: use gen_jcc1 to compile loopz
>   target-i386: factor gen_op_set_cc_op/tcg_gen_discard_tl around
>     computing flags
>   target-i386: add helper functions to get other flags
>   target-i386: change gen_setcc_slow_T0 to gen_setcc_slow
>   target-i386: optimize setcc instructions
>   target-i386: use CCPrepare to generate conditional jumps
>   target-i386: cleanup temporary macros for CCPrepare
>   target-i386: introduce gen_cmovcc1
>   target-i386: kill cpu_T3
>
> Richard Henderson (38):
>   target-i386: Name the cc_op enumeration
>   target-i386: Introduce set_cc_op
>   target-i386: Don't clobber s->cc_op in gen_update_cc_op
>   target-i386: Use gen_update_cc_op everywhere
>   target-i386: do not compute eflags multiple times consecutively
>   target-i386: no need to flush out cc_op before gen_eob
>   target-i386: Move CC discards to set_cc_op
>   target-i386: do not call helper to compute ZF/SF
>   target-i386: use inverted setcond when computing NS or NZ
>   target-i386: convert gen_compute_eflags_c to TCG
>   target-i386: optimize setbe
>   target-i386: optimize setle
>   target-i386: introduce CCPrepare
>   target-i386: introduce gen_prepare_cc
>   target-i386: inline gen_prepare_cc_slow
>   target-i386: expand cmov via movcond
>   target-i386: use gen_op for cmps/scas
>   target-i386: introduce gen_jcc1_noeob
>   target-i386: Update cc_op before TCG branches
>   target-i386: optimize flags checking after sub using CC_SRC2
>   target-i386: Use CC_SRC2 for ADC and SBB
>   target-i386: Don't reference ENV through most of cc helpers
>   target-i386: Make helper_cc_compute_all const
>   target-i386: Tidy prefix parsing
>   target-i386: Decode the VEX prefixes
>   target-i386: Implement MOVBE
>   target-i386: Implement ANDN
>   target-i386: Implement BEXTR
>   target-i386: Implement BLSR, BLSMSK, BLSI
>   target-i386: Implement BZHI
>   target-i386: Implement MULX
>   target-i386: Implement PDEP, PEXT
>   target-i386: Implement SHLX, SARX, SHRX
>   target-i386: Implement RORX
>   target-i386: Implement ADX extension
>   target-i386: Use clz/ctz for bsf/bsr helpers
>   target-i386: Simplify bsf/bsr flags computation
>   target-i386: Implement tzcnt and fix lzcnt
>
>  target-i386/cc_helper.c             |  243 ++--
>  target-i386/cc_helper_template.h    |  268 ++---
>  target-i386/cpu.c                   |   18 +-
>  target-i386/cpu.h                   |   24 +-
>  target-i386/helper.c                |   11 +-
>  target-i386/helper.h                |   12 +-
>  target-i386/int_helper.c            |   69 +-
>  target-i386/shift_helper_template.h |   12 +-
>  target-i386/translate.c             | 2195 
> +++++++++++++++++++++--------------
>  tests/tcg/test-i386.c               |   10 +-
>  10 files changed, 1581 insertions(+), 1281 deletions(-)
>
> --
> 1.7.11.7
>
>

Reply via email to