On Sat, Sep 17, 2011 at 8:00 PM, Stefan Weil <w...@mail.berlios.de> wrote: > Signed-off-by: Stefan Weil <w...@mail.berlios.de> > --- > Makefile.target | 1 + > configure | 30 ++++++++++++++++++++++++++++-- > 2 files changed, 29 insertions(+), 2 deletions(-) > > diff --git a/Makefile.target b/Makefile.target > index 88d2f1f..a2c3a4a 100644 > --- a/Makefile.target > +++ b/Makefile.target > @@ -69,6 +69,7 @@ all: $(PROGS) stap > # cpu emulator library > libobj-y = exec.o translate-all.o cpu-exec.o translate.o > libobj-y += tcg/tcg.o tcg/optimize.o > +libobj-$(CONFIG_TCG_INTERPRETER) += tcg/tci.o > libobj-y += fpu/softfloat.o > libobj-y += op_helper.o helper.o > ifeq ($(TARGET_BASE_ARCH), i386) > diff --git a/configure b/configure > index ad924c4..1d800e1 100755 > --- a/configure > +++ b/configure > @@ -138,6 +138,7 @@ debug_tcg="no" > debug_mon="no" > debug="no" > strip_opt="yes" > +tcg_interpreter="no" > bigendian="no" > mingw32="no" > EXESUF="" > @@ -647,6 +648,10 @@ for opt do > ;; > --enable-kvm) kvm="yes" > ;; > + --disable-tcg-interpreter) tcg_interpreter="no" > + ;; > + --enable-tcg-interpreter) tcg_interpreter="yes" > + ;; > --disable-spice) spice="no" > ;; > --enable-spice) spice="yes" > @@ -997,6 +1002,7 @@ echo " --enable-bluez enable bluez stack > connectivity" > echo " --disable-slirp disable SLIRP userspace network > connectivity" > echo " --disable-kvm disable KVM acceleration support" > echo " --enable-kvm enable KVM acceleration support" > +echo " --enable-tcg-interpreter enable TCG with bytecode interpreter (TCI)" > echo " --disable-nptl disable usermode NPTL support" > echo " --enable-nptl enable usermode NPTL support" > echo " --enable-system enable all system emulation targets" > @@ -2714,6 +2720,7 @@ echo "Linux AIO support $linux_aio" > echo "ATTR/XATTR support $attr" > echo "Install blobs $blobs" > echo "KVM support $kvm" > +echo "TCG interpreter $tcg_interpreter" > echo "fdt support $fdt" > echo "preadv support $preadv" > echo "fdatasync $fdatasync" > @@ -2761,6 +2768,15 @@ case "$cpu" in > armv4b|armv4l) > ARCH=arm > ;; > + *) > + if test "$tcg_interpreter" = "yes" ; then > + echo "Unsupported CPU = $cpu, will use TCG with TCI (experimental)" > + ARCH=unknown
ARCH=TCI or 'all' would be more accurate. > + else > + echo "Unsupported CPU = $cpu, try --enable-tcg-interpreter" > + exit 1 > + fi > + ;; > esac > echo "ARCH=$ARCH" >> $config_host_mak > if test "$debug_tcg" = "yes" ; then > @@ -2994,6 +3010,9 @@ fi > if test "$signalfd" = "yes" ; then > echo "CONFIG_SIGNALFD=y" >> $config_host_mak > fi > +if test "$tcg_interpreter" = "yes" ; then > + echo "CONFIG_TCG_INTERPRETER=y" >> $config_host_mak > +fi > if test "$need_offsetof" = "yes" ; then > echo "CONFIG_NEED_OFFSETOF=y" >> $config_host_mak > fi > @@ -3454,7 +3473,9 @@ cflags="" > includes="" > ldflags="" > > -if test "$ARCH" = "sparc64" ; then > +if test "$tcg_interpreter" = "yes"; then Here the test should be against ARCH for consistency. > + includes="-I\$(SRC_PATH)/tcg/bytecode $includes" > +elif test "$ARCH" = "sparc64" ; then > includes="-I\$(SRC_PATH)/tcg/sparc $includes" > elif test "$ARCH" = "s390x" ; then > includes="-I\$(SRC_PATH)/tcg/s390 $includes" > @@ -3577,7 +3598,12 @@ if test "$gprof" = "yes" ; then > fi > fi > > -linker_script="-Wl,-T../config-host.ld -Wl,-T,\$(SRC_PATH)/\$(ARCH).ld" > +if test "$ARCH" = "unknown"; then > + linker_script="" > +else > + linker_script="-Wl,-T../config-host.ld -Wl,-T,\$(SRC_PATH)/\$(ARCH).ld" > +fi > + > if test "$target_linux_user" = "yes" -o "$target_bsd_user" = "yes" ; then > case "$ARCH" in > sparc) > -- > 1.7.2.5 > > >