[kaffe] CVS kaffe (robilad): simple direct threading interpreter from rafal

Kaffe CVS cvs-commits at kaffe.org
Tue Sep 27 19:09:31 PDT 2005


PatchSet 6934 
Date: 2005/09/28 02:01:55
Author: robilad
Branch: HEAD
Tag: (none) 
Log:
simple direct threading interpreter from rafal

Members: 
	ChangeLog:1.4456->1.4457 
	Makefile.in:1.223->1.224 
	configure:1.493->1.494 
	configure.ac:1.174->1.175 
	config/Makefile.in:1.192->1.193 
	include/Makefile.in:1.242->1.243 
	kaffe/Makefile.in:1.152->1.153 
	kaffe/jvmpi/Makefile.in:1.76->1.77 
	kaffe/kaffe/Makefile.in:1.174->1.175 
	kaffe/kaffeh/Makefile.in:1.153->1.154 
	kaffe/kaffevm/Makefile.in:1.206->1.207 
	kaffe/kaffevm/kaffe.def:1.41->1.42 
	kaffe/kaffevm/boehm-gc/Makefile.in:1.39->1.40 
	kaffe/kaffevm/gcj/Makefile.in:1.132->1.133 
	kaffe/kaffevm/intrp/Makefile.am:INITIAL->1.12 
	kaffe/kaffevm/intrp/Makefile.in:1.141->1.142 
	kaffe/kaffevm/intrp/machine.c:1.53->1.54 
	kaffe/kaffevm/jit/Makefile.in:1.151->1.152 
	kaffe/kaffevm/jit/machine.h:1.23->1.24 
	kaffe/kaffevm/jit3/Makefile.in:1.121->1.122 
	kaffe/kaffevm/jit3/machine.h:1.26->1.27 
	kaffe/kaffevm/jni/Makefile.in:1.45->1.46 
	kaffe/kaffevm/kaffe-gc/Makefile.in:1.38->1.39 
	kaffe/kaffevm/systems/Makefile.in:1.140->1.141 
	kaffe/kaffevm/systems/beos-native/Makefile.in:1.132->1.133 
	kaffe/kaffevm/systems/oskit-pthreads/Makefile.in:1.138->1.139 
	kaffe/kaffevm/systems/unix-jthreads/Makefile.in:1.142->1.143 
	kaffe/kaffevm/systems/unix-pthreads/Makefile.in:1.117->1.118 
	kaffe/kaffevm/verifier/Makefile.in:1.44->1.45 
	kaffe/kaffevm/verifier/verify.c:1.15->1.16 
	kaffe/man/Makefile.in:1.139->1.140 
	kaffe/scripts/Makefile.in:1.178->1.179 
	kaffe/scripts/bat/Makefile.in:1.131->1.132 
	kaffe/scripts/compat/Makefile.in:1.156->1.157 
	kaffe/xprof/Makefile.in:1.107->1.108 
	libraries/Makefile.in:1.135->1.136 
	libraries/clib/Makefile.in:1.150->1.151 
	libraries/clib/awt/Makefile.in:1.150->1.151 
	libraries/clib/awt/X/Makefile.in:1.142->1.143 
	libraries/clib/awt/classpath-gtk/Makefile.in:1.30->1.31 
	libraries/clib/awt/classpath-gtk/gtk-peer/Makefile.in:1.44->1.45 
	libraries/clib/awt/classpath-gtk/resource/Makefile.in:1.29->1.30 
	libraries/clib/awt/classpath-qt/Makefile.in:1.6->1.7 
	libraries/clib/awt/nano-X/Makefile.in:1.15->1.16 
	libraries/clib/awt/qt/Makefile.in:1.98->1.99 
	libraries/clib/classpath/Makefile.in:1.25->1.26 
	libraries/clib/fdlibm/Makefile.in:1.13->1.14 
	libraries/clib/io/Makefile.in:1.146->1.147 
	libraries/clib/libxmlj/Makefile.in:1.50->1.51 
	libraries/clib/management/Makefile.in:1.152->1.153 
	libraries/clib/math/Makefile.in:1.147->1.148 
	libraries/clib/native/Makefile.in:1.191->1.192 
	libraries/clib/net/Makefile.in:1.156->1.157 
	libraries/clib/nio/Makefile.in:1.79->1.80 
	libraries/clib/security/Makefile.in:1.118->1.119 
	libraries/clib/sound/Makefile.in:1.44->1.45 
	libraries/clib/sound/alsa/Makefile.in:1.45->1.46 
	libraries/clib/sound/common/Makefile.in:1.44->1.45 
	libraries/clib/sound/esd/Makefile.in:1.45->1.46 
	libraries/clib/target/Makefile.in:1.4->1.5 
	libraries/clib/target/Linux/Makefile.in:1.4->1.5 
	libraries/clib/target/generic/Makefile.in:1.4->1.5 
	libraries/clib/zip/Makefile.in:1.149->1.150 
	libraries/extensions/Makefile.in:1.127->1.128 
	libraries/extensions/comm/Makefile.in:1.121->1.122 
	libraries/extensions/comm/javalib/Makefile.in:1.122->1.123 
	libraries/extensions/microsoft/Makefile.in:1.113->1.114 
	libraries/extensions/microsoft/clib/Makefile.in:1.117->1.118 
	libraries/extensions/microsoft/javalib/Makefile.in:1.115->1.116 
	libraries/extensions/pjava/Makefile.in:1.121->1.122 
	libraries/extensions/pjava/javalib/Makefile.in:1.122->1.123 
	libraries/extensions/servlet/Makefile.in:1.121->1.122 
	libraries/extensions/servlet/javalib/Makefile.in:1.122->1.123 
	libraries/javalib/Makefile.in:1.488->1.489 
	libraries/javalib/awt-implementations/Makefile.in:1.29->1.30 
	libraries/javalib/awt-implementations/kaffe/Makefile.in:1.32->1.33 
	libraries/javalib/gmp-math/Makefile.in:1.35->1.36 
	replace/Makefile.in:1.94->1.95 
	test/Makefile.in:1.144->1.145 
	test/internal/Makefile.in:1.111->1.112 
	test/jni/Makefile.in:1.46->1.47 
	test/regression/Makefile.in:1.219->1.220 
	test/regression/compile_time/Makefile.in:1.72->1.73 
	test/regression/compiler/Makefile.in:1.56->1.57 
	test/regression/run_time/Makefile.in:1.71->1.72 
	tools/Makefile.in:1.45->1.46 
	tools/gjdoc/Makefile.in:1.45->1.46 
	tools/gjdoc/javalib/Makefile.in:1.58->1.59 

Index: kaffe/ChangeLog
diff -u kaffe/ChangeLog:1.4456 kaffe/ChangeLog:1.4457
--- kaffe/ChangeLog:1.4456	Mon Sep 26 22:10:06 2005
+++ kaffe/ChangeLog	Wed Sep 28 02:01:55 2005
@@ -1,3 +1,12 @@
+2005-09-28  Rafal Lewczuk <rafal.lewczuk at gmail.com>
+
+	* kaffe/kaffevm/kaffe.def,
+	kaffe/kaffevm/intrp/machine.c,
+	kaffe/kaffevm/jit/machine.h,
+	kaffe/kaffevm/jit3/machine.h,
+	kaffe/kaffevm/verifier/verify.c:
+	Simple direct threading interpreter implementation.
+
 2005-09-26  Ito Kazumitsu  <kaz at maczuka.gcd.org>
 
 	* RELEASE-NOTES: Changed the number of tests from 147 to 148.
Index: kaffe/Makefile.in
diff -u kaffe/Makefile.in:1.223 kaffe/Makefile.in:1.224
--- kaffe/Makefile.in:1.223	Tue Sep 20 00:12:32 2005
+++ kaffe/Makefile.in	Wed Sep 28 02:01:58 2005
@@ -144,6 +144,8 @@
 COND_CLASSPATH_GTK_AWT_TRUE = @COND_CLASSPATH_GTK_AWT_TRUE@
 COND_CLASSPATH_QT_AWT_FALSE = @COND_CLASSPATH_QT_AWT_FALSE@
 COND_CLASSPATH_QT_AWT_TRUE = @COND_CLASSPATH_QT_AWT_TRUE@
+COND_DIRECT_THREADING_FALSE = @COND_DIRECT_THREADING_FALSE@
+COND_DIRECT_THREADING_TRUE = @COND_DIRECT_THREADING_TRUE@
 COND_GJDOC_FALSE = @COND_GJDOC_FALSE@
 COND_GJDOC_TRUE = @COND_GJDOC_TRUE@
 COND_KAFFE_NANOX_AWT_FALSE = @COND_KAFFE_NANOX_AWT_FALSE@
Index: kaffe/configure
diff -u kaffe/configure:1.493 kaffe/configure:1.494
--- kaffe/configure:1.493	Sun Sep 25 02:46:43 2005
+++ kaffe/configure	Wed Sep 28 02:01:58 2005
@@ -491,7 +491,7 @@
 
 ac_subdirs_all="$ac_subdirs_all kaffe/kaffevm/boehm-gc/boehm"
 ac_subdirs_all="$ac_subdirs_all libltdl"
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT abssrcdir CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CXX CXXFLAGS ac_ct_CXX CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE CCAS CCASFLAGS build build_cpu build_vendor build_os host host_cpu host_vendor host_os EGREP LN_S ECHO AR ac_ct_AR RANLIB ac_ct_RANLIB DLLTOOL ac_ct_DLLTOOL AS ac_ct_AS OBJDUMP ac_ct_OBJDUMP CPP CXXCPP F77 FFLAGS ac_ct_F77 LIBTOOL LIBTOOL_DEPS LIBLTDL CCLD MKINSTALLDIRS USE_NLS MSGFMT GMSGFMT XGETTEXT MSGMERGE LIBICONV LTLIBICONV INTLLIBS LIBINTL LTLIBINTL POSUB MAY_RUN_PO_TRUE MAY_RUN_PO_FALSE REGEN_FORWARD CONFIG_MD_H CONFIG_CALLKAFFEEXCEPTION_H KAFFEVM_MD_C CONFIG_JIT_MD_H KAFFEVM_JIT_DEF KAFFEVM_ICODE_H HAVE_CONFIG_JIT_MD_H USE_JIT_TRUE USE_JIT_FALSE ENGINE_NAME BCEL_JAR HAVE_BCEL_TRUE HAVE_BCEL_FALSE ENABLE_JVMPI_TRUE ENABLE_JVMPI_FALSE ENABLE_XPROF_TRUE ENABLE_XPROF_FALSE CONFIG_XPROFILE_MD_H JAVAC_FLAGS NEED_LIBXPROF_TRUE NEED_LIBXPROF_FALSE CFLAGS_PG SUN_COMPAT_TRUE SUN_COMPAT_FALSE THREAD_DIR acx_pthread_config PTHREAD_CC PTHREAD_LIBS PTHREAD_CFLAGS SEMAPHORE_LIB VM_LIBS USE_PRECOMPILED_RT_JAR_TRUE USE_PRECOMPILED_RT_JAR_FALSE PATH_TO_RT_JAR JIKESPROG JIKES KAFFEVM_TRAMPOLINES_S JAVA_LIBS with_engine THREAD_SYSTEM KPREFIX KAFFE_ARCHOS ZIP MKTEMP JASMIN HAVE_ZIP_TRUE HAVE_ZIP_FALSE HAVE_JIKES_TRUE HAVE_JIKES_FALSE HAVE_MKTEMP_TRUE HAVE_MKTEMP_FALSE HAVE_JASMIN_TRUE HAVE_JASMIN_FALSE KAFFE_LIBS M_LIBS NET_LIBS ZIP_LIBS LIBADD_GMP USE_GMP SECURITY_LIBS GC_NAME subdirs BOEHMGC_SPECIFIC_FLAGS HAVE_GCJ_SUPPORT_TRUE HAVE_GCJ_SUPPORT_FALSE LIBOBJS USE_COMPAT_IFADDRS_TRUE USE_COMPAT_IFADDRS_FALSE GTK_CAIRO_ENABLED GTK_CAIRO_TRUE GTK_CAIRO_FALSE COND_NATIVE_AWT_TRUE COND_NATIVE_AWT_FALSE COND_KAFFE_X_AWT_TRUE COND_KAFFE_X_AWT_FALSE X_CFLAGS X_PRE_LIBS X_LIBS X_EXTRA_LIBS AWT_LIBS COND_KAFFE_QT_AWT_TRUE COND_KAFFE_QT_AWT_FALSE MOC UIC QEMBED QT_CXXFLAGS QT_LDADD QT_GUILINK QASSISTANTCLIENT_LDADD COND_KAFFE_NANOX_AWT_TRUE COND_KAFFE_NANOX_AWT_FALSE NANOX_CFLAGS COND_CLASSPATH_GTK_AWT_TRUE COND_CLASSPATH_GTK_AWT_FALSE COND_CLASSPATH_QT_AWT_TRUE COND_CLASSPATH_QT_AWT_FALSE PKG_CONFIG PANGOFT2_CFLAGS PANGOFT2_LIBS GTK_CFLAGS GTK_LIBS CAIRO_CFLAGS CAIRO_LIBS QT_CFLAGS QT_LIBS ALSA_CFLAGS ALSA_LIBS ESD_CONFIG ESD_CFLAGS ESD_LIBS COND_SOUND_ALSA_TRUE COND_SOUND_ALSA_FALSE COND_SOUND_ESD_TRUE COND_SOUND_ESD_FALSE COND_NATIVE_SOUND_TRUE COND_NATIVE_SOUND_FALSE COND_PURE_JAVA_MATH_TRUE COND_PURE_JAVA_MATH_FALSE MATH_LIB INCLUDED_EXTENSIONS PROFILE XML2_CONFIG XML_CFLAGS XML_LIBS XSLT_CONFIG XSLT_CFLAGS XSLT_LIBS COND_LIBXMLJ_TRUE COND_LIBXMLJ_FALSE COND_GJDOC_TRUE COND_GJDOC_FALSE DLOPEN_JAVA_LIBS OPT_DLOPEN_JAVA_LIBS KLIBFLAGS KVMBINFLAGS KVMLIBFLAGS INIT_LOAD_LIBRARY BINRELOC_CFLAGS ENABLE_BINRELOC_TRUE ENABLE_BINRELOC_FALSE KAFFEH MAKE_KAFFEH toolslibdir jredir jrebindir jrelibdir nativedir securitydir PATHSEP DIRSEP kaffe_TRANSF kaffeh_TRANSF kaffebin_TRANSF CFLAGS_WITHOUT_PG CLASSPATH_INCLUDES LTLIBOBJS'
+ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT abssrcdir CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CXX CXXFLAGS ac_ct_CXX CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE CCAS CCASFLAGS build build_cpu build_vendor build_os host host_cpu host_vendor host_os EGREP LN_S ECHO AR ac_ct_AR RANLIB ac_ct_RANLIB DLLTOOL ac_ct_DLLTOOL AS ac_ct_AS OBJDUMP ac_ct_OBJDUMP CPP CXXCPP F77 FFLAGS ac_ct_F77 LIBTOOL LIBTOOL_DEPS LIBLTDL CCLD MKINSTALLDIRS USE_NLS MSGFMT GMSGFMT XGETTEXT MSGMERGE LIBICONV LTLIBICONV INTLLIBS LIBINTL LTLIBINTL POSUB MAY_RUN_PO_TRUE MAY_RUN_PO_FALSE REGEN_FORWARD CONFIG_MD_H CONFIG_CALLKAFFEEXCEPTION_H KAFFEVM_MD_C CONFIG_JIT_MD_H KAFFEVM_JIT_DEF KAFFEVM_ICODE_H HAVE_CONFIG_JIT_MD_H USE_JIT_TRUE USE_JIT_FALSE ENGINE_NAME BCEL_JAR HAVE_BCEL_TRUE HAVE_BCEL_FALSE ENABLE_JVMPI_TRUE ENABLE_JVMPI_FALSE ENABLE_XPROF_TRUE ENABLE_XPROF_FALSE CONFIG_XPROFILE_MD_H JAVAC_FLAGS NEED_LIBXPROF_TRUE NEED_LIBXPROF_FALSE CFLAGS_PG SUN_COMPAT_TRUE SUN_COMPAT_FALSE THREAD_DIR acx_pthread_config PTHREAD_CC PTHREAD_LIBS PTHREAD_CFLAGS SEMAPHORE_LIB VM_LIBS USE_PRECOMPILED_RT_JAR_TRUE USE_PRECOMPILED_RT_JAR_FALSE PATH_TO_RT_JAR JIKESPROG JIKES KAFFEVM_TRAMPOLINES_S JAVA_LIBS with_engine THREAD_SYSTEM KPREFIX KAFFE_ARCHOS ZIP MKTEMP JASMIN HAVE_ZIP_TRUE HAVE_ZIP_FALSE HAVE_JIKES_TRUE HAVE_JIKES_FALSE HAVE_MKTEMP_TRUE HAVE_MKTEMP_FALSE HAVE_JASMIN_TRUE HAVE_JASMIN_FALSE KAFFE_LIBS M_LIBS NET_LIBS ZIP_LIBS LIBADD_GMP USE_GMP SECURITY_LIBS GC_NAME subdirs BOEHMGC_SPECIFIC_FLAGS HAVE_GCJ_SUPPORT_TRUE HAVE_GCJ_SUPPORT_FALSE LIBOBJS USE_COMPAT_IFADDRS_TRUE USE_COMPAT_IFADDRS_FALSE GTK_CAIRO_ENABLED GTK_CAIRO_TRUE GTK_CAIRO_FALSE COND_NATIVE_AWT_TRUE COND_NATIVE_AWT_FALSE COND_KAFFE_X_AWT_TRUE COND_KAFFE_X_AWT_FALSE X_CFLAGS X_PRE_LIBS X_LIBS X_EXTRA_LIBS AWT_LIBS COND_KAFFE_QT_AWT_TRUE COND_KAFFE_QT_AWT_FALSE MOC UIC QEMBED QT_CXXFLAGS QT_LDADD QT_GUILINK QASSISTANTCLIENT_LDADD COND_KAFFE_NANOX_AWT_TRUE COND_KAFFE_NANOX_AWT_FALSE NANOX_CFLAGS COND_CLASSPATH_GTK_AWT_TRUE COND_CLASSPATH_GTK_AWT_FALSE COND_CLASSPATH_QT_AWT_TRUE COND_CLASSPATH_QT_AWT_FALSE PKG_CONFIG PANGOFT2_CFLAGS PANGOFT2_LIBS GTK_CFLAGS GTK_LIBS CAIRO_CFLAGS CAIRO_LIBS QT_CFLAGS QT_LIBS ALSA_CFLAGS ALSA_LIBS ESD_CONFIG ESD_CFLAGS ESD_LIBS COND_SOUND_ALSA_TRUE COND_SOUND_ALSA_FALSE COND_SOUND_ESD_TRUE COND_SOUND_ESD_FALSE COND_NATIVE_SOUND_TRUE COND_NATIVE_SOUND_FALSE COND_PURE_JAVA_MATH_TRUE COND_PURE_JAVA_MATH_FALSE MATH_LIB INCLUDED_EXTENSIONS PROFILE XML2_CONFIG XML_CFLAGS XML_LIBS XSLT_CONFIG XSLT_CFLAGS XSLT_LIBS COND_LIBXMLJ_TRUE COND_LIBXMLJ_FALSE COND_GJDOC_TRUE COND_GJDOC_FALSE DLOPEN_JAVA_LIBS OPT_DLOPEN_JAVA_LIBS KLIBFLAGS KVMBINFLAGS KVMLIBFLAGS INIT_LOAD_LIBRARY COND_DIRECT_THREADING_TRUE COND_DIRECT_THREADING_FALSE BINRELOC_CFLAGS ENABLE_BINRELOC_TRUE ENABLE_BINRELOC_FALSE KAFFEH MAKE_KAFFEH toolslibdir jredir jrebindir jrelibdir nativedir securitydir PATHSEP DIRSEP kaffe_TRANSF kaffeh_TRANSF kaffebin_TRANSF CFLAGS_WITHOUT_PG CLASSPATH_INCLUDES LTLIBOBJS'
 ac_subst_files='cpu_os_frag cpu_frag engine_frag threads_frag gc_frag'
 
 # Initialize some variables set by options.
@@ -1108,6 +1108,8 @@
   --enable-gjdoc          Enable building of gjdoc
   --enable-classpath-load-library
                           enable to use JNI native methods default=yes
+  --disable-direct-threading
+                          Use switched interpreter instead of direct-threading
   --enable-binreloc       compile with binary relocation support
                           (default=enable when available)
 
@@ -5968,7 +5970,7 @@
   ;;
 *-*-irix6*)
   # Find out which ABI we are using.
-  echo '#line 5971 "configure"' > conftest.$ac_ext
+  echo '#line 5973 "configure"' > conftest.$ac_ext
   if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
@@ -7325,7 +7327,7 @@
 
 
 # Provide some information about the compiler.
-echo "$as_me:7328:" \
+echo "$as_me:7330:" \
      "checking for Fortran 77 compiler version" >&5
 ac_compiler=`set X $ac_compile; echo $2`
 { (eval echo "$as_me:$LINENO: \"$ac_compiler --version </dev/null >&5\"") >&5
@@ -8427,11 +8429,11 @@
    -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:8430: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:8432: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:8434: \$? = $ac_status" >&5
+   echo "$as_me:8436: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -8689,11 +8691,11 @@
    -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:8692: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:8694: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:8696: \$? = $ac_status" >&5
+   echo "$as_me:8698: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -8751,11 +8753,11 @@
    -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:8754: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:8756: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:8758: \$? = $ac_status" >&5
+   echo "$as_me:8760: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -10991,7 +10993,7 @@
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<EOF
-#line 10994 "configure"
+#line 10996 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -11089,7 +11091,7 @@
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<EOF
-#line 11092 "configure"
+#line 11094 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -13341,11 +13343,11 @@
    -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:13344: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:13346: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:13348: \$? = $ac_status" >&5
+   echo "$as_me:13350: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -13403,11 +13405,11 @@
    -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:13406: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:13408: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:13410: \$? = $ac_status" >&5
+   echo "$as_me:13412: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -14772,7 +14774,7 @@
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<EOF
-#line 14775 "configure"
+#line 14777 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -14870,7 +14872,7 @@
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<EOF
-#line 14873 "configure"
+#line 14875 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -15755,11 +15757,11 @@
    -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:15758: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:15760: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:15762: \$? = $ac_status" >&5
+   echo "$as_me:15764: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -15817,11 +15819,11 @@
    -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:15820: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:15822: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:15824: \$? = $ac_status" >&5
+   echo "$as_me:15826: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -17943,11 +17945,11 @@
    -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:17946: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:17948: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:17950: \$? = $ac_status" >&5
+   echo "$as_me:17952: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -18205,11 +18207,11 @@
    -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:18208: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:18210: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:18212: \$? = $ac_status" >&5
+   echo "$as_me:18214: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -18267,11 +18269,11 @@
    -e 's:.*FLAGS}? :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:18270: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:18272: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:18274: \$? = $ac_status" >&5
+   echo "$as_me:18276: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -20507,7 +20509,7 @@
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<EOF
-#line 20510 "configure"
+#line 20512 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -20605,7 +20607,7 @@
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<EOF
-#line 20608 "configure"
+#line 20610 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -50974,6 +50976,25 @@
 fi;
 
 
+# Check whether --enable-direct-threading or --disable-direct-threading was given.
+if test "${enable_direct_threading+set}" = set; then
+  enableval="$enable_direct_threading"
+
+else
+  enable_direct_threading=yes
+fi;
+
+
+
+if test x"$enable_direct_threading" = x"yes"; then
+  COND_DIRECT_THREADING_TRUE=
+  COND_DIRECT_THREADING_FALSE='#'
+else
+  COND_DIRECT_THREADING_TRUE='#'
+  COND_DIRECT_THREADING_FALSE=
+fi
+
+
 
 
 
@@ -52148,6 +52169,13 @@
 Usually this means the macro was only invoked conditionally." >&2;}
    { (exit 1); exit 1; }; }
 fi
+if test -z "${COND_DIRECT_THREADING_TRUE}" && test -z "${COND_DIRECT_THREADING_FALSE}"; then
+  { { echo "$as_me:$LINENO: error: conditional \"COND_DIRECT_THREADING\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"COND_DIRECT_THREADING\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+   { (exit 1); exit 1; }; }
+fi
 if test -z "${ENABLE_BINRELOC_TRUE}" && test -z "${ENABLE_BINRELOC_FALSE}"; then
   { { echo "$as_me:$LINENO: error: conditional \"ENABLE_BINRELOC\" was never defined.
 Usually this means the macro was only invoked conditionally." >&5
@@ -53052,6 +53080,8 @@
 s, at KVMBINFLAGS@,$KVMBINFLAGS,;t t
 s, at KVMLIBFLAGS@,$KVMLIBFLAGS,;t t
 s, at INIT_LOAD_LIBRARY@,$INIT_LOAD_LIBRARY,;t t
+s, at COND_DIRECT_THREADING_TRUE@,$COND_DIRECT_THREADING_TRUE,;t t
+s, at COND_DIRECT_THREADING_FALSE@,$COND_DIRECT_THREADING_FALSE,;t t
 s, at BINRELOC_CFLAGS@,$BINRELOC_CFLAGS,;t t
 s, at ENABLE_BINRELOC_TRUE@,$ENABLE_BINRELOC_TRUE,;t t
 s, at ENABLE_BINRELOC_FALSE@,$ENABLE_BINRELOC_FALSE,;t t
Index: kaffe/configure.ac
diff -u kaffe/configure.ac:1.174 kaffe/configure.ac:1.175
--- kaffe/configure.ac:1.174	Sun Sep 25 02:46:51 2005
+++ kaffe/configure.ac	Wed Sep 28 02:02:06 2005
@@ -2167,6 +2167,17 @@
               [INIT_LOAD_LIBRARY="true"])
 AC_SUBST(INIT_LOAD_LIBRARY)
 
+dnl -----------------------------------------------------------
+dnl Enable direct threading 
+dnl -----------------------------------------------------------
+AC_ARG_ENABLE([direct-threading],
+		AS_HELP_STRING([--disable-direct-threading],
+				[Use switched interpreter instead of direct-threading]),
+		[],
+		[enable_direct_threading=yes])
+
+AM_CONDITIONAL([COND_DIRECT_THREADING], [test x"$enable_direct_threading" = x"yes"])
+
 
 dnl =========================================================================
 dnl Configure Binreloc support
Index: kaffe/config/Makefile.in
diff -u kaffe/config/Makefile.in:1.192 kaffe/config/Makefile.in:1.193
--- kaffe/config/Makefile.in:1.192	Mon Sep 19 02:52:07 2005
+++ kaffe/config/Makefile.in	Wed Sep 28 02:02:07 2005
@@ -113,6 +113,8 @@
 COND_CLASSPATH_GTK_AWT_TRUE = @COND_CLASSPATH_GTK_AWT_TRUE@
 COND_CLASSPATH_QT_AWT_FALSE = @COND_CLASSPATH_QT_AWT_FALSE@
 COND_CLASSPATH_QT_AWT_TRUE = @COND_CLASSPATH_QT_AWT_TRUE@
+COND_DIRECT_THREADING_FALSE = @COND_DIRECT_THREADING_FALSE@
+COND_DIRECT_THREADING_TRUE = @COND_DIRECT_THREADING_TRUE@
 COND_GJDOC_FALSE = @COND_GJDOC_FALSE@
 COND_GJDOC_TRUE = @COND_GJDOC_TRUE@
 COND_KAFFE_NANOX_AWT_FALSE = @COND_KAFFE_NANOX_AWT_FALSE@
Index: kaffe/include/Makefile.in
diff -u kaffe/include/Makefile.in:1.242 kaffe/include/Makefile.in:1.243
--- kaffe/include/Makefile.in:1.242	Sat Sep 17 21:37:38 2005
+++ kaffe/include/Makefile.in	Wed Sep 28 02:02:08 2005
@@ -130,6 +130,8 @@
 COND_CLASSPATH_GTK_AWT_TRUE = @COND_CLASSPATH_GTK_AWT_TRUE@
 COND_CLASSPATH_QT_AWT_FALSE = @COND_CLASSPATH_QT_AWT_FALSE@
 COND_CLASSPATH_QT_AWT_TRUE = @COND_CLASSPATH_QT_AWT_TRUE@
+COND_DIRECT_THREADING_FALSE = @COND_DIRECT_THREADING_FALSE@
+COND_DIRECT_THREADING_TRUE = @COND_DIRECT_THREADING_TRUE@
 COND_GJDOC_FALSE = @COND_GJDOC_FALSE@
 COND_GJDOC_TRUE = @COND_GJDOC_TRUE@
 COND_KAFFE_NANOX_AWT_FALSE = @COND_KAFFE_NANOX_AWT_FALSE@
Index: kaffe/kaffe/Makefile.in
diff -u kaffe/kaffe/Makefile.in:1.152 kaffe/kaffe/Makefile.in:1.153
--- kaffe/kaffe/Makefile.in:1.152	Sat Sep 17 21:37:39 2005
+++ kaffe/kaffe/Makefile.in	Wed Sep 28 02:02:09 2005
@@ -114,6 +114,8 @@
 COND_CLASSPATH_GTK_AWT_TRUE = @COND_CLASSPATH_GTK_AWT_TRUE@
 COND_CLASSPATH_QT_AWT_FALSE = @COND_CLASSPATH_QT_AWT_FALSE@
 COND_CLASSPATH_QT_AWT_TRUE = @COND_CLASSPATH_QT_AWT_TRUE@
+COND_DIRECT_THREADING_FALSE = @COND_DIRECT_THREADING_FALSE@
+COND_DIRECT_THREADING_TRUE = @COND_DIRECT_THREADING_TRUE@
 COND_GJDOC_FALSE = @COND_GJDOC_FALSE@
 COND_GJDOC_TRUE = @COND_GJDOC_TRUE@
 COND_KAFFE_NANOX_AWT_FALSE = @COND_KAFFE_NANOX_AWT_FALSE@
Index: kaffe/kaffe/jvmpi/Makefile.in
diff -u kaffe/kaffe/jvmpi/Makefile.in:1.76 kaffe/kaffe/jvmpi/Makefile.in:1.77
--- kaffe/kaffe/jvmpi/Makefile.in:1.76	Sat Sep 17 21:37:40 2005
+++ kaffe/kaffe/jvmpi/Makefile.in	Wed Sep 28 02:02:09 2005
@@ -124,6 +124,8 @@
 COND_CLASSPATH_GTK_AWT_TRUE = @COND_CLASSPATH_GTK_AWT_TRUE@
 COND_CLASSPATH_QT_AWT_FALSE = @COND_CLASSPATH_QT_AWT_FALSE@
 COND_CLASSPATH_QT_AWT_TRUE = @COND_CLASSPATH_QT_AWT_TRUE@
+COND_DIRECT_THREADING_FALSE = @COND_DIRECT_THREADING_FALSE@
+COND_DIRECT_THREADING_TRUE = @COND_DIRECT_THREADING_TRUE@
 COND_GJDOC_FALSE = @COND_GJDOC_FALSE@
 COND_GJDOC_TRUE = @COND_GJDOC_TRUE@
 COND_KAFFE_NANOX_AWT_FALSE = @COND_KAFFE_NANOX_AWT_FALSE@
Index: kaffe/kaffe/kaffe/Makefile.in
diff -u kaffe/kaffe/kaffe/Makefile.in:1.174 kaffe/kaffe/kaffe/Makefile.in:1.175
--- kaffe/kaffe/kaffe/Makefile.in:1.174	Sat Sep 17 21:37:40 2005
+++ kaffe/kaffe/kaffe/Makefile.in	Wed Sep 28 02:02:11 2005
@@ -129,6 +129,8 @@
 COND_CLASSPATH_GTK_AWT_TRUE = @COND_CLASSPATH_GTK_AWT_TRUE@
 COND_CLASSPATH_QT_AWT_FALSE = @COND_CLASSPATH_QT_AWT_FALSE@
 COND_CLASSPATH_QT_AWT_TRUE = @COND_CLASSPATH_QT_AWT_TRUE@
+COND_DIRECT_THREADING_FALSE = @COND_DIRECT_THREADING_FALSE@
+COND_DIRECT_THREADING_TRUE = @COND_DIRECT_THREADING_TRUE@
 COND_GJDOC_FALSE = @COND_GJDOC_FALSE@
 COND_GJDOC_TRUE = @COND_GJDOC_TRUE@
 COND_KAFFE_NANOX_AWT_FALSE = @COND_KAFFE_NANOX_AWT_FALSE@
Index: kaffe/kaffe/kaffeh/Makefile.in
diff -u kaffe/kaffe/kaffeh/Makefile.in:1.153 kaffe/kaffe/kaffeh/Makefile.in:1.154
--- kaffe/kaffe/kaffeh/Makefile.in:1.153	Wed Sep 21 22:37:58 2005
+++ kaffe/kaffe/kaffeh/Makefile.in	Wed Sep 28 02:02:11 2005
@@ -138,6 +138,8 @@
 COND_CLASSPATH_GTK_AWT_TRUE = @COND_CLASSPATH_GTK_AWT_TRUE@
 COND_CLASSPATH_QT_AWT_FALSE = @COND_CLASSPATH_QT_AWT_FALSE@
 COND_CLASSPATH_QT_AWT_TRUE = @COND_CLASSPATH_QT_AWT_TRUE@
+COND_DIRECT_THREADING_FALSE = @COND_DIRECT_THREADING_FALSE@
+COND_DIRECT_THREADING_TRUE = @COND_DIRECT_THREADING_TRUE@
 COND_GJDOC_FALSE = @COND_GJDOC_FALSE@
 COND_GJDOC_TRUE = @COND_GJDOC_TRUE@
 COND_KAFFE_NANOX_AWT_FALSE = @COND_KAFFE_NANOX_AWT_FALSE@
Index: kaffe/kaffe/kaffevm/Makefile.in
diff -u kaffe/kaffe/kaffevm/Makefile.in:1.206 kaffe/kaffe/kaffevm/Makefile.in:1.207
--- kaffe/kaffe/kaffevm/Makefile.in:1.206	Sat Sep 17 21:37:43 2005
+++ kaffe/kaffe/kaffevm/Makefile.in	Wed Sep 28 02:02:12 2005
@@ -176,6 +176,8 @@
 COND_CLASSPATH_GTK_AWT_TRUE = @COND_CLASSPATH_GTK_AWT_TRUE@
 COND_CLASSPATH_QT_AWT_FALSE = @COND_CLASSPATH_QT_AWT_FALSE@
 COND_CLASSPATH_QT_AWT_TRUE = @COND_CLASSPATH_QT_AWT_TRUE@
+COND_DIRECT_THREADING_FALSE = @COND_DIRECT_THREADING_FALSE@
+COND_DIRECT_THREADING_TRUE = @COND_DIRECT_THREADING_TRUE@
 COND_GJDOC_FALSE = @COND_GJDOC_FALSE@
 COND_GJDOC_TRUE = @COND_GJDOC_TRUE@
 COND_KAFFE_NANOX_AWT_FALSE = @COND_KAFFE_NANOX_AWT_FALSE@
Index: kaffe/kaffe/kaffevm/kaffe.def
diff -u kaffe/kaffe/kaffevm/kaffe.def:1.41 kaffe/kaffe/kaffevm/kaffe.def:1.42
--- kaffe/kaffe/kaffevm/kaffe.def:1.41	Tue Jul 19 16:27:35 2005
+++ kaffe/kaffe/kaffevm/kaffe.def	Wed Sep 28 02:02:12 2005
@@ -18,6 +18,7 @@
          */
 	trace_jcode ("nop\n");
 }
+define_insn_fini
 
 define_insn(ACONST_NULL)
 {
@@ -29,6 +30,7 @@
 	push(1);
 	move_ref_const(stack(0), NULL);
 }
+define_insn_fini
 
 define_insn(ICONST_M1)
 define_insn_alias(ICONST_0)
@@ -46,6 +48,7 @@
 	push(1);
 	move_int_const(stack(0), getopcode() - ICONST_0);
 }
+define_insn_fini
 
 define_insn(LCONST_0)
 define_insn_alias(LCONST_1)
@@ -58,6 +61,7 @@
 	push(2);
 	move_long_const(stack_long(0), getopcode() - LCONST_0);
 }
+define_insn_fini
 
 define_insn(FCONST_0)
 define_insn_alias(FCONST_1)
@@ -71,6 +75,7 @@
 	push(1);
 	move_float_const(stack(0), (jfloat)(getopcode() - FCONST_0));
 }
+define_insn_fini
 
 define_insn(DCONST_0)
 define_insn_alias(DCONST_1)
@@ -83,6 +88,7 @@
 	push(2);
 	move_double_const(stack_double(0), (jdouble)(getopcode() - DCONST_0));
 }
+define_insn_fini
 
 define_insn(BIPUSH)
 {
@@ -97,6 +103,7 @@
 	push(1);
 	move_int_const(stack(0), low);
 }
+define_insn_fini
 
 define_insn(SIPUSH)
 {
@@ -111,6 +118,7 @@
 	push(1);
 	move_int_const(stack(0), low);
 }
+define_insn_fini
 
 define_insn(LDC1)
 {
@@ -150,6 +158,7 @@
 		KAFFEVM_ABORT();
 	}
 }
+define_insn_fini
 
 define_insn(LDC2)
 {
@@ -189,6 +198,7 @@
 		KAFFEVM_ABORT();
 	}
 }
+define_insn_fini
 
 define_insn(LDC2W)
 {
@@ -214,6 +224,7 @@
 		KAFFEVM_ABORT();
 	}
 }
+define_insn_fini
 
 define_insn(ILOAD)
 {
@@ -229,6 +240,7 @@
 	push(1);
 	move_int(stack(0), local(idx));
 }
+define_insn_fini
 
 define_insn(LLOAD)
 {
@@ -244,6 +256,7 @@
 	push(2);
 	move_long(stack_long(0), local_long(idx));
 }
+define_insn_fini
 
 define_insn(FLOAD)
 {
@@ -259,6 +272,7 @@
 	push(1);
 	move_float(stack(0), local_float(idx));
 }
+define_insn_fini
 
 define_insn(DLOAD)
 {
@@ -274,6 +288,7 @@
 	push(2);
 	move_double(stack_double(0), local_double(idx));
 }
+define_insn_fini
 
 define_insn(ALOAD)
 {
@@ -289,6 +304,7 @@
 	push(1);
 	move_ref(stack(0), local(idx));
 }
+define_insn_fini
 
 define_insn(ILOAD_0)
 define_insn_alias(ILOAD_1)
@@ -305,6 +321,7 @@
 	push(1);
 	move_int(stack(0), local(getopcode() - ILOAD_0));
 }
+define_insn_fini
 
 define_insn(LLOAD_0)
 define_insn_alias(LLOAD_1)
@@ -321,6 +338,7 @@
 	push(2);
 	move_long(stack_long(0), local_long(getopcode() - LLOAD_0));
 }
+define_insn_fini
 
 define_insn(FLOAD_0)
 define_insn_alias(FLOAD_1)
@@ -337,6 +355,7 @@
 	push(1);
 	move_float(stack(0), local_float(getopcode() - FLOAD_0));
 }
+define_insn_fini
 
 define_insn(DLOAD_0)
 define_insn_alias(DLOAD_1)
@@ -353,6 +372,7 @@
 	push(2);
 	move_double(stack_double(0), local_double(getopcode() - DLOAD_0));
 }
+define_insn_fini
 
 define_insn(ALOAD_0)
 define_insn_alias(ALOAD_1)
@@ -369,6 +389,7 @@
 	push(1);
 	move_ref(stack(0), local(getopcode() - ALOAD_0));
 }
+define_insn_fini
 
 define_insn(IALOAD)
 {
@@ -388,6 +409,7 @@
 	load_offset_scaled_int(stack(1), rstack(1), rstack(0), object_array_offset);
 	pop(1);
 }
+define_insn_fini
 
 define_insn(LALOAD)
 {
@@ -406,6 +428,7 @@
 
 	load_offset_scaled_long(stack_long(0), stack(1), stack(0), object_array_offset);
 }
+define_insn_fini
 
 define_insn(FALOAD)
 {
@@ -426,6 +449,7 @@
 
 	pop(1);
 }
+define_insn_fini
 
 define_insn(DALOAD)
 {
@@ -444,6 +468,7 @@
 
 	load_offset_scaled_double(stack_double(0), stack(1), stack(0), object_array_offset);
 }
+define_insn_fini
 
 define_insn(AALOAD)
 {
@@ -463,6 +488,7 @@
 	load_offset_scaled_ref(stack(1), rstack(1), rstack(0), object_array_offset);
 	pop(1);
 }
+define_insn_fini
 
 define_insn(BALOAD)
 {
@@ -482,6 +508,7 @@
 	load_offset_scaled_byte(stack(1), rstack(1), rstack(0), object_array_offset);
 	pop(1);
 }
+define_insn_fini
 
 define_insn(CALOAD)
 {
@@ -501,6 +528,7 @@
 	load_offset_scaled_char(stack(1), rstack(1), rstack(0), object_array_offset);
 	pop(1);
 }
+define_insn_fini
 
 define_insn(SALOAD)
 {
@@ -520,6 +548,7 @@
 	load_offset_scaled_short(stack(1), rstack(1), rstack(0), object_array_offset);
 	pop(1);
 }
+define_insn_fini
 
 define_insn(ISTORE)
 {
@@ -535,6 +564,7 @@
 	move_int(local(idx), stack(0));
 	pop(1);
 }
+define_insn_fini
 
 define_insn(LSTORE)
 {
@@ -550,6 +580,7 @@
 	move_long(local_long(idx), stack_long(0));
 	pop(2);
 }
+define_insn_fini
 
 define_insn(FSTORE)
 {
@@ -565,6 +596,7 @@
 	move_float(local_float(idx), stack(0));
 	pop(1);
 }
+define_insn_fini
 
 define_insn(DSTORE)
 {
@@ -580,6 +612,7 @@
 	move_double(local_double(idx), stack_double(0));
 	pop(2);
 }
+define_insn_fini
 
 define_insn(ASTORE)
 {
@@ -595,6 +628,7 @@
 	move_ref(local(idx), stack(0));
 	pop(1);
 }
+define_insn_fini
 
 define_insn(ISTORE_0)
 define_insn_alias(ISTORE_1)
@@ -611,6 +645,7 @@
 	move_int(local(getopcode() - ISTORE_0), stack(0));
 	pop(1);
 }
+define_insn_fini
 
 define_insn(LSTORE_0)
 define_insn_alias(LSTORE_1)
@@ -627,6 +662,7 @@
 	move_long(local_long(getopcode() - LSTORE_0), stack_long(0));
 	pop(2);
 }
+define_insn_fini
 
 define_insn(FSTORE_0)
 define_insn_alias(FSTORE_1)
@@ -643,6 +679,7 @@
 	move_float(local_float(getopcode() - FSTORE_0), stack(0));
 	pop(1);
 }
+define_insn_fini
 
 define_insn(DSTORE_0)
 define_insn_alias(DSTORE_1)
@@ -659,6 +696,7 @@
 	move_double(local_double(getopcode() - DSTORE_0), stack_double(0));
 	pop(2);
 }
+define_insn_fini
 
 define_insn(ASTORE_0)
 define_insn_alias(ASTORE_1)
@@ -675,6 +713,7 @@
 	move_ref(local(getopcode() - ASTORE_0), stack(0));
 	pop(1);
 }
+define_insn_fini
 
 define_insn(IASTORE)
 {
@@ -695,6 +734,7 @@
 	store_offset_scaled_int(rstack(2), rstack(1), object_array_offset, rstack(0));
 	pop(3);
 }
+define_insn_fini
 
 define_insn(LASTORE)
 {
@@ -715,6 +755,7 @@
 	store_offset_scaled_long(stack(3), stack(2), object_array_offset, stack_long(0));
 	pop(4);
 }
+define_insn_fini
 
 define_insn(FASTORE)
 {
@@ -735,6 +776,7 @@
 	store_offset_scaled_float(stack(2), stack(1), object_array_offset, stack(0));
 	pop(3);
 }
+define_insn_fini
 
 define_insn(DASTORE)
 {
@@ -756,6 +798,7 @@
 
 	pop(4);
 }
+define_insn_fini
 
 define_insn(AASTORE)
 {
@@ -780,6 +823,7 @@
 	store_offset_scaled_ref(rstack(2), rstack(1), object_array_offset, rstack(0));
 	pop(3);
 }
+define_insn_fini
 
 define_insn(BASTORE)
 {
@@ -800,6 +844,7 @@
 	store_offset_scaled_byte(rstack(2), rstack(1), object_array_offset, rstack(0));
 	pop(3);
 }
+define_insn_fini
 
 define_insn(CASTORE)
 {
@@ -820,6 +865,7 @@
 	store_offset_scaled_char(rstack(2), rstack(1), object_array_offset, rstack(0));
 	pop(3);
 }
+define_insn_fini
 
 define_insn(SASTORE)
 {
@@ -840,6 +886,7 @@
 	store_offset_scaled_short(rstack(2), rstack(1), object_array_offset, rstack(0));
 	pop(3);
 }
+define_insn_fini
 
 define_insn(POP)
 {
@@ -850,6 +897,7 @@
 
 	pop(1);
 }
+define_insn_fini
 
 define_insn(POP2)
 {
@@ -860,6 +908,7 @@
 
 	pop(2);
 }
+define_insn_fini
 
 define_insn(DUP)
 {
@@ -868,6 +917,7 @@
 	push(1);
 	move_any(stack(0), stack(1));
 }
+define_insn_fini
 
 define_insn(DUP_X1)
 {
@@ -878,6 +928,7 @@
 	move_any(stack(1), stack(2));
 	move_any(stack(2), stack(0));
 }
+define_insn_fini
 
 define_insn(DUP_X2)
 {
@@ -889,6 +940,7 @@
 	move_any(stack(2), stack(3));
 	move_any(stack(3), stack(0));
 }
+define_insn_fini
 
 define_insn(DUP2)
 {
@@ -898,6 +950,7 @@
 	move_any(stack(0), stack(2));
 	move_any(stack(1), stack(3));
 }
+define_insn_fini
 
 define_insn(DUP2_X1)
 {
@@ -910,6 +963,7 @@
 	move_any(stack(3), stack(0));
 	move_any(stack(4), stack(1));
 }
+define_insn_fini
 
 define_insn(DUP2_X2)
 {
@@ -923,6 +977,7 @@
 	move_any(stack(4), stack(0));
 	move_any(stack(5), stack(1));
 }
+define_insn_fini
 
 define_insn(SWAP)
 {
@@ -933,6 +988,7 @@
 
 	swap_any(stack(0), stack(1));
 }
+define_insn_fini
 
 define_insn(IADD)
 {
@@ -947,6 +1003,7 @@
 	add_int(stack(1), rstack(1), rstack(0));
 	pop(1);
 }
+define_insn_fini
 
 define_insn(LADD)
 {
@@ -964,6 +1021,7 @@
 	add_long(stack_long(2), rstack_long(2), rstack_long(0));
 	pop(2);
 }
+define_insn_fini
 
 define_insn(FADD)
 {
@@ -978,6 +1036,7 @@
 	add_float(stack_float(1), rstack_float(1), rstack_float(0));
 	pop(1);
 }
+define_insn_fini
 
 define_insn(DADD)
 {

*** Patch too long, truncated ***



More information about the kaffe mailing list