The reason why softmmu condition in configure is that softmmu is thought to be 
a logical prerequisite of ldst optimization.
Current patch causes compilation error if removed the condition above.
To avoid compilation error, it needs more macros in other sources, such as, 
tcg.c and/or tcg-target.c, because those files are used both by softmmu and by 
non-softmmu targets.

For example, tcg_out_qemu_ldst_slow_path() call site in tcg.c is wrapped only 
by CONFIG_QEMU_LDST_OPTIMIZATION, while it calls ldst specific function wrapped 
by CONFIG_SOFTMMU in tcg/i386/tcg-target.c.
I'm not sure which one is better, CONFIG_SOFTMMU pre-condition in configure or 
more those macros in tcg sources.

How do you think about it?

------- Original Message -------
Sender : Blue Swirl<blauwir...@gmail.com>
Date : 2012-07-14 22:13 (GMT+09:00)
Title : Re: [Qemu-devel] [RFC][PATCH v3 1/3] configure: Add 
CONFIG_QEMU_LDST_OPTIMIZATION for TCG qemu_ld/st optimization

On Sat, Jul 14, 2012 at 10:23 AM, Yeongkyoon Lee
wrote:
> Enable CONFIG_QEMU_LDST_OPTIMIZATION for TCG qemu_ld/st optimization only when
> a target uses softmmu and a host is i386 or x86_64.
> ---
>  configure |    8 ++++++++
>  1 files changed, 8 insertions(+), 0 deletions(-)
>
> diff --git a/configure b/configure
> index 500fe24..5b39c80 100755
> --- a/configure
> +++ b/configure
> @@ -3700,6 +3700,14 @@ case "$target_arch2" in
>    ;;
>  esac
>
> +case "$cpu" in
> +  i386|x86_64)
> +    if [ "$target_softmmu" = "yes" ] ; then

I suppose this check is not needed, user emulators will not use the
memory access helpers or TLB.

> +      echo "CONFIG_QEMU_LDST_OPTIMIZATION=y" >> $config_target_mak
> +    fi
> +  ;;
> +esac
> +
>  echo "TARGET_SHORT_ALIGNMENT=$target_short_alignment" >> $config_target_mak
>  echo "TARGET_INT_ALIGNMENT=$target_int_alignment" >> $config_target_mak
>  echo "TARGET_LONG_ALIGNMENT=$target_long_alignment" >> $config_target_mak
> --
> 1.7.4.1
>

Reply via email to