Message ID | 1316289634-18786-7-git-send-email-weil@mail.berlios.de |
---|---|
State | Superseded |
Headers | show |
On Sat, Sep 17, 2011 at 8:00 PM, Stefan Weil <weil@mail.berlios.de> wrote: > Signed-off-by: Stefan Weil <weil@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 > > >
Am 18.09.2011 11:37, schrieb Blue Swirl: > On Sat, Sep 17, 2011 at 8:00 PM, Stefan Weil <weil@mail.berlios.de> wrote: >> Signed-off-by: Stefan Weil <weil@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 [snip] >> @@ -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. Ok, I'll change it to ARCH=all (or 'any' or 'tci', if that is preferred). >> +if test "$tcg_interpreter" = "yes"; then > > Here the test should be against ARCH for consistency. That would not work: There are 3 supported setups: no tcg interpreter, tcg interpreter with known ARCH and tcg interpreter with unknown ARCH. For the include path, I must test $tcg_interpreter. For the linker script, I test $ARCH (see below). >> + 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 >> +
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 + 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 + 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)
Signed-off-by: Stefan Weil <weil@mail.berlios.de> --- Makefile.target | 1 + configure | 30 ++++++++++++++++++++++++++++-- 2 files changed, 29 insertions(+), 2 deletions(-)