2006-12-31 17:57 edwin * src/vm/jit/inline/inline.c (test_inlining): Deactivated typechecking of inlined result. 2006-12-28 21:21 twisti * src/vm/jit/alpha/disass.c (regs): Removed. * src/vm/jit/alpha/md-abi.c (regs): Added. 2006-12-28 20:56 twisti * src/vm/jit/i386/disass.c (regs): Removed. * src/vm/jit/i386/md-abi.c (regs): Added. 2006-12-28 20:50 twisti * src/vm/jit/x86_64/disass.c (regs): Removed. * src/vm/jit/x86_64/md-abi.c (regs): Added. 2006-12-28 15:38 twisti * src/native/include/Makefile.am (NO_GEN_JAVASE_HEADER_FILES): Removed java_lang_Object.h. (JAVASE_HEADER_FILES): Added java_lang_Object.h. * src/native/include/.cvsignore: Likewise. * src/native/include/java_lang_VMObject.h: Removed. 2006-12-28 13:43 twisti * tests/regression/Makefile.am, tests/regression/codepatching/Makefile.am, tests/regression/jasmin/Makefile.am, tests/regression/native/Makefile.am (JAVAFLAGS) [WITH_CLASSPATH_GNU]: Set differently for GNU Classpath. 2006-12-28 12:30 twisti * src/mm/memory.c (memory_mmap_anon): Fixed indentation and a debug typo. * src/vm/signal.c (signal_init): Removed unused variable. 2006-12-28 11:57 twisti * src/fdlibm/fdlibm.h (exception): Commented since it was already defined on IRIX (don't know where). 2006-12-28 00:19 twisti * src/threads/native/threads.c (threads_attach_current_thread): Fixed compiler warning. (threads_detach_thread): Likewise. (threads_find_non_daemon_thread): Fixed bug, we returned the wrong threads. 2006-12-27 23:54 twisti * src/threads/native/threads.c (threads_init): Fixed another typo. 2006-12-27 23:42 twisti * src/threads/native/threads.c (threads_init): Fixed typo. * src/native/jni.c (native/include/java_lang_ClassLoader.h): Added. * src/native/vm/gnu/java_lang_VMRuntime.c: Likewise. 2006-12-27 23:15 twisti * src/vm/class.c [ENABLE_JAVASE] (arrayclass_java_lang_Object): Added #ifdef. * src/vm/class.h: Likewise. * src/vm/loader.c: Java ME changes. * src/vm/finalizer.c (finalizer_start_thread): Set flags. * src/vm/jit/optimizing/recompile.c (recompile_start_thread): Likewise. * src/vm/jit/stacktrace.c [ENABLE_JAVASE] (stacktrace_getStack): Added #ifdef. * src/vm/jit/codegen-common.c (codegen_start_native_call) [ENABLE_JAVASE]: #ifdef'ed the local references table stuff (maybe we need to change that for cacao-gc). (codegen_finish_native_call): Likewise. * src/vm/exceptions.c (exceptions_asm_new_abstractmethoderror) [!ENABLE_JAVASE]: In the meantime we throw a VirtualMachineError. * src/vm/exceptions.h: Likewise. * src/vm/linker.c: Java ME changes. * src/native/native.c: Likewise. * src/native/native.h: Likewise. * src/threads/native/threads.h (THREAD_FLAG_DAEMON): Added. (threadobject): Changed flags to u4. * src/threads/native/threads.c: A lot of Java ME changes. 2006-12-27 23:05 twisti * src/vm/jit/powerpc/emit.c (emit_verbosecall_enter) [!NDEBUG]: We also define the function with NDEBUG, but empty. (emit_verbosecall_exit): Likewise. * src/vm/jit/powerpc/codegen.c (codegen): Removed JITDATA_HAS_FLAG_VERBOSECALL from emit_verbosecall calls. 2006-12-27 23:00 twisti * src/vm/properties.c (properties_init) [ENABLE_JAVAME_CLDC1_1]: Set values as Sun's JVM does. 2006-12-27 22:39 twisti * src/vm/jit/stacktrace.c: Java ME changes. * src/vm/jit/stacktrace.h: Likewise. 2006-12-27 22:31 twisti * tests/regression/Makefile.am: Renamed CLASSPATH_GLIBJ_ZIP to CLASSPATH_CLASSES. * tests/regression/codepatching/Makefile.am: Likewise. * tests/regression/jasmin/Makefile.am: Likewise. * tests/regression/native/Makefile.am: Likewise. 2006-12-27 21:13 ajordan * src/vm/jit/sparc64/asmpart.S: Some fixes for exception handling. * src/vm/jit/sparc64/codegen.c: Likewise. 2006-12-27 15:22 twisti * contrib/setenvinstalled.in: Renamed CLASSPATH_GLIBJ_ZIP to CLASSPATH_CLASSES. * contrib/setenvsource.in: Likewise. 2006-12-27 15:15 twisti * src/vm/class.c: Java ME changes. * src/vm/class.h: Likewise. * src/vm/exceptions.c: Likewise. (exceptions_new_virtualmachineerror): New function. (exceptions_throw_virtualmachineerror): * src/vm/exceptions.h: Likewise. * src/vm/resolve.c: Likewise. * src/vm/utf8.c: Likewise. * src/vm/utf8.h: Likewise. * src/cacaoh/headers.c: Likewise. 2006-12-27 13:56 twisti * configure.ac (--with-classpath-glibj-zip): Renamed to --with-classpath-classes. * m4/ac_prog_javac.m4 (AC_PROG_JAVAC): Renamed CLASSPATH_GLIBJ_ZIP to CLASSPATH_CLASSES. * src/Makefile.am (VM_DIR): Added. (SUBDIRS): Use VM_DIR. * src/native/include/Makefile.am [WITH_CLASSPATH_GNU] (CLASSPATH): Set differently for non-gnu classpaths. * src/cacaoh/cacaoh.c (main) [WITH_CLASSPATH_GNU]: Likewise. * src/vm/vm.c (vm_create): Likewise. 2006-12-27 00:08 twisti * src/fdlibm/fdlibm.h [!MAXFLOAT] (MAXFLOAT): Only define if not already defined. * src/fdlibm/k_tan.c: Commented pragma. 2006-12-26 23:42 twisti * src/vm/resolve.h (vm/class.h): Added. (vm/method.h): Likewise. 2006-12-26 23:41 twisti * src/vm/exceptions.c (native/jni.h): Added. (exceptions_init): Java ME changes. (exceptions_print_exception): Likewise. * src/vm/exceptions.h (native/jni.h): Added. 2006-12-26 23:39 twisti * src/vm/properties.c [ENABLE_JAVASE] (native/include/java_util_Properties.h): Include conditionally. * src/vm/properties.h: Likewise. 2006-12-26 23:34 twisti * src/native/include/Makefile.am (CLEANFILES): Added JAVASE_HEADER_FILES and JAVAME_CLDC1_1_HEADER_FILES. (cleanall): New target to clean all header files. 2006-12-26 23:26 twisti * src/native/include/Makefile.am: Java ME changes. * src/native/include/.cvsignore: Likewise. 2006-12-26 23:21 twisti * src/native/Makefile.am [ENABLE_JAVASE] (JNI_SOURCES): Added. (libnative_la_SOURCES): Added JNI_SOURCES. 2006-12-26 23:16 twisti * configure.ac (--with-classpath): Added cldc1.1 target. (AC_CONFIG_FILES): Added src/native/vm/cldc1.1/Makefile. 2006-12-26 23:14 twisti * src/native/vm/java_lang_Thread.h, src/native/vm/java_lang_Class.c, src/native/vm/java_lang_Object.c, src/native/vm/java_lang_Thread.c, src/native/vm/java_lang_Class.h, src/native/vm/java_lang_Object.h: Java ME changes. 2006-12-26 23:13 twisti * src/native/vm/Makefile.am (DIST_SUBDIRS): Added cldc1.1. (NATIVEVM_LIB): Renamed to libnativevmcore. * src/native/vm/gnu/Makefile.am (noinst_LTLIBRARIES): Likewise. (libnativevmgnu_la_SOURCES): Renamed to libnativevmcore_la_SOURCES. 2006-12-26 23:09 twisti * src/native/vm/cldc1.1/.cvsignore: Added. * src/native/vm/cldc1.1/com_sun_cldchi_io_ConsoleOutputStream.c, src/native/vm/cldc1.1/java_lang_Runtime.c, src/native/vm/cldc1.1/java_lang_System.c, src/native/vm/cldc1.1/java_lang_Class.c, src/native/vm/cldc1.1/java_lang_Float.c, src/native/vm/cldc1.1/java_lang_Object.c, src/native/vm/cldc1.1/java_lang_String.c, src/native/vm/cldc1.1/Makefile.am, src/native/vm/cldc1.1/java_lang_Thread.c, src/native/vm/cldc1.1/java_lang_Throwable.c, src/native/vm/cldc1.1/java_lang_Math.c, src/native/vm/cldc1.1/java_lang_Double.c: New file. 2006-12-26 23:05 twisti * src/fdlibm/Makefile.am [ENABLE_JAVAME_CLDC1_1] (libfdlibm_la_SOURCES): Added the following files. * src/fdlibm/k_cos.c, src/fdlibm/s_ceil.c, src/fdlibm/k_sin.c, src/fdlibm/s_floor.c, src/fdlibm/s_tan.c, src/fdlibm/s_cos.c, src/fdlibm/s_sin.c, src/fdlibm/w_sqrt.c, src/fdlibm/e_rem_pio2.c, src/fdlibm/k_rem_pio2.c, src/fdlibm/k_tan.c, src/fdlibm/e_sqrt.c: New file. 2006-12-26 22:33 twisti * src/fdlibm/s_finite.c, src/fdlibm/fdlibm.h, src/fdlibm/ieeefp.h, src/fdlibm/e_fmod.c, src/fdlibm/mprec.h, src/fdlibm/w_fmod.c, src/fdlibm/s_copysign.c: Updated from GNU Classpath. 2006-12-26 19:56 twisti * src/threads/native/threads.c: Rewritten such that threadobject extends a java.lang.Thread object instead of java.lang.VMThread. * src/threads/native/threads.h: Likewise. * src/vm/finalizer.c (finalizer_vmthread): Renamed to thread_finalizer and changed type to threadobject*. (lock_finalizer_thread): Renamed to lock_thread_finalizer. (finalizer_init): Changed variable names. (finalizer_start_thread): Thread-code changes. * src/vm/jit/optimizing/recompile.c (recompile_vmthread): Renamed to thread_recompile and changed type to threadobject*. (lock_recompile_thread): Renamed to lock_thread_recompile. (recompile_init): Changed variable names. (recompile_thread): Likewise. (recompile_queue_method): Likewise. (recompile_start_thread): Thread-code changes. * src/vm/utf8.c (utf_addThread): Added. * src/vm/utf8.h: Likewise. * src/lib/vm/reference/java/lang/VMThread.java (create): Set vmThread before calling start. * src/native/vm/gnu/java_lang_VMThread.c: Call _Jv_java_lang_Thread functions. * src/native/vm/Makefile.am (libnativevm_la_SOURCES): Added java_lang_Thread.[ch]. * src/native/vm/java_lang_Thread.c: New file. * src/native/vm/java_lang_Thread.h: Likewise. 2006-12-26 19:41 twisti * src/vm/annotation.c (annotation_load_attribute_runtimevisibleannotations): Renamed aev to element_value. 2006-12-26 19:40 twisti * src/native/include/java_lang_Thread.h: Updated to current GNU Classpath head. * src/native/include/java_lang_VMThread.h: Likewise. 2006-12-26 19:30 twisti * src/threads/native/lock.c (lock_wait_for_object): Renamed t to thread. (lock_notify_object): Likewise. (lock_notify_all_object): Likewise. 2006-12-23 23:52 twisti * configure.ac (--with-classpath): Added. 2006-12-21 15:59 twisti * src/native/vm/java_lang_Object.c (wait): Removed debugging output. 2006-12-21 15:56 twisti * src/native/vm/Makefile.am (libnativevm_la_SOURCES): Added java_lang_Class.h and java_lang_Object.[ch]. * src/native/vm/java_lang_Object.c: New file. * src/native/vm/java_lang_Object.h: Likewise. * src/native/vm/gnu/java_lang_VMObject.c: Call _Jv_java_lang_Object functions. 2006-12-19 19:20 twisti * src/mm/memory.c (memory_mmap_anon): New function. (memory_cnew): Use memory_mmap_anon. * src/mm/memory.h (memory_mmap_anon): Added. * src/vm/signal.c (signal_init): Use memory_mmap_anon. 2006-12-19 19:12 twisti * src/native/vm/java_lang_Class.h (_Jv_java_lang_Class_getEnclosingConstructor): Removed #if 0. 2006-12-18 18:21 twisti * src/vm/class.c (vm/suck.h): Added. (class_load_attribute_sourcefile): New function. (class_load_attribute_enclosingmethod): Likewise. (class_load_attributes): Likewise. * src/vm/loader.c [ENABLE_JAVASE] (vm/annotation.h, vm/stackmap.h): Added. (skipattributebody): Renamed to loader_skip_attribute_body, made non-static. (skipattributes): Removed. (loader_load_attribute_signature): New function. (load_field): Use loader_load_attribute_signature. (load_method): Renamed to loader_load_method, call stackmap_load_attribute_stackmaptable and loader_load_attribute_signature. (load_attributes): Removed. (load_class_from_classbuffer): Renamed load_method to loader_load_method and load_attributes to class_load_attributes. * src/vm/loader.h (loader_skip_attribute_body): Added. [ENABLE_JAVASE] (loader_load_attribute_signature): Likewise. * src/vm/method.h [ENABLE_JAVASE] (vm/stackmap.h): Added. (methodinfo) [ENABLE_JAVASE]: Added signature and stack_map. * src/vm/statistics.c (size_stack_map): Added. (print_stats): Print stack_map size. * src/vm/statistics.h (size_stack_map): Likewise. * src/vm/global.h (JAVA_VERSION): Changed to "1.5.0". (CLASS_VERSION): Changed to "50.0". (MAJOR_VERSION): Changed to 50. * src/vm/utf8.c [ENABLE_JAVASE] (utf_EnclosingMethod) (utf_RuntimeVisibleAnnotations, utf_StackMapTable): Added. (utf8_init) [ENABLE_JAVASE]: Init utf_EnclosingMethod, utf_RuntimeVisibleAnnotations and utf_StackMapTable. * src/vm/utf8.h [ENABLE_JAVASE] (utf_EnclosingMethod) (utf_RuntimeVisibleAnnotations, utf_StackMapTable): Added. * src/vm/properties.c (properties_init): Changed java.specification.version to 1.5. * src/vm/Makefile.am [ENABLE_JAVASE] (ANNOTATION_OBJ): Renamed to ANNOTATION_SOURCES. [ENABLE_JAVASE] (STACKMAP_SOURCES): Added. [ENABLE_STATISTICS] (STATISTICS_OBJ): Renamed to STATISTICS_SOURCES. (libvmcore_la_SOURCES): Added STACKMAP_SOURCES. * src/vm/stackmap.c: New file. * src/vm/stackmap.h: Likewise. 2006-12-18 18:04 twisti * src/native/vm/gnu/.cvsignore: New file. 2006-12-18 17:36 twisti * src/vm/class.h (vm/loader.h): Added. (classinfo): Added enclosingclass and enclosingmethod. * configure.ac (AC_CONFIG_FILES): Added src/native/vm/gnu/Makefile. * src/native/native.c (native_class_getname): Removed. * src/native/native.h: Likewise. * src/native/vm/Makefile.am * src/native/vm/java_lang_Class.c: New file, contains the implementation for java.lang.Class functions. * src/native/vm/java_lang_Class.h: Likewise. * src/native/vm/java_security_VMAccessController.c, src/native/vm/VMjdwp.c, src/native/vm/java_lang_VMClass.c, src/native/vm/gnu_java_lang_management_VMRuntimeMXBeanImpl.c, src/native/vm/java_lang_VMThread.c, src/native/vm/VMjdwp.h, src/native/vm/gnu_classpath_jdwp_VMVirtualMachine.c, src/native/vm/gnu_classpath_jdwp_VMMethod.c, src/native/vm/java_lang_VMRuntime.c, src/native/vm/java_lang_reflect_Field.c, src/native/vm/gnu_java_lang_management_VMClassLoadingMXBeanImpl.c, src/native/vm/java_lang_VMThrowable.c, src/native/vm/gnu_java_lang_management_VMThreadMXBeanImpl.c, src/native/vm/gnu_java_lang_management_VMMemoryMXBeanImpl.c, src/native/vm/java_lang_VMClassLoader.c, src/native/vm/java_lang_management_VMManagementFactory.c, src/native/vm/java_lang_VMString.c, src/native/vm/java_lang_VMObject.c, src/native/vm/gnu_classpath_VMSystemProperties.c, src/native/vm/sun_misc_Unsafe.c, src/native/vm/java_lang_reflect_Method.c, src/native/vm/gnu_classpath_VMStackWalker.c, src/native/vm/java_lang_VMSystem.c, src/native/vm/java_lang_reflect_VMProxy.c, src/native/vm/java_lang_reflect_Constructor.c, src/native/vm/gnu_classpath_jdwp_VMFrame.c: Moved to src/native/vm/gnu. * src/native/vm/gnu/gnu_java_lang_management_VMThreadMXBeanImpl.c, src/native/vm/gnu/gnu_java_lang_management_VMMemoryMXBeanImpl.c, src/native/vm/gnu/java_security_VMAccessController.c, src/native/vm/gnu/java_lang_VMClassLoader.c, src/native/vm/gnu/java_lang_management_VMManagementFactory.c, src/native/vm/gnu/VMjdwp.c, src/native/vm/gnu/gnu_java_lang_management_VMRuntimeMXBeanImpl.c, src/native/vm/gnu/java_lang_VMClass.c, src/native/vm/gnu/java_lang_VMString.c, src/native/vm/gnu/java_lang_VMObject.c, src/native/vm/gnu/VMjdwp.h, src/native/vm/gnu/java_lang_VMThread.c, src/native/vm/gnu/gnu_classpath_jdwp_VMVirtualMachine.c, src/native/vm/gnu/gnu_classpath_VMSystemProperties.c, src/native/vm/gnu/sun_misc_Unsafe.c, src/native/vm/gnu/gnu_classpath_jdwp_VMMethod.c, src/native/vm/gnu/java_lang_reflect_Method.c, src/native/vm/gnu/java_lang_VMRuntime.c, src/native/vm/gnu/Makefile.am, src/native/vm/gnu/java_lang_reflect_Field.c, src/native/vm/gnu/gnu_classpath_VMStackWalker.c, src/native/vm/gnu/java_lang_VMSystem.c, src/native/vm/gnu/gnu_java_lang_management_VMClassLoadingMXBeanImpl.c, src/native/vm/gnu/java_lang_reflect_VMProxy.c, src/native/vm/gnu/java_lang_reflect_Constructor.c, src/native/vm/gnu/gnu_classpath_jdwp_VMFrame.c, src/native/vm/gnu/java_lang_VMThrowable.c: Moved from src/native/vm. 2006-12-18 16:27 twisti * src/vm/exceptions.c (exceptions_throw_internalerror): New function. * src/vm/exceptions.h (exceptions_throw_internalerror): Added. 2006-12-16 22:53 edwin * src/vm/jit/jit.c (jit_compile_intern): Perform inlining if JITDATA_FLAG_INLINE is set. * src/vm/jit/inline/inline.c: Put the result of inlining into the passed jitdata, instead of using a new one. Do not translate returnAddresses in javalocals. It makes no sense. * src/vm/jit/i386/codegen.h (M_BS): New macro. * src/vm/jit/replace.h (RPLPOINT_FLAG_COUNTDOWN): New constant. (Preparation for count-down replacement). * src/vm/jit/jit.h (JITDATA_FLAG_COUNTDOWN): New flag. (JITDATA_HAS_FLAG_COUNTDOWN): New macro. 2006-12-16 21:16 edwin * src/vm/jit/replace.c (replace_patch_class): New function. (replace_patch_class_hierarchy): New function. (replace_patch_future_calls): Fall back to iterating over all loaded classes if the instance of a call is not known. 2006-12-16 21:14 edwin * src/vm/classcache.c (classcache_foreach_loaded_class): New function. * src/vm/classcache.h (classcache_foreach_loaded_class): Likewise. (classcache_foreach_functionptr_t): New typedef. 2006-12-16 21:12 edwin * src/vm/jit/replace.c (replace_read_executionstate): Fix: Initialize the javalocaltype array for NDEBUG. 2006-12-16 21:11 edwin * src/vm/jit/inline/inline.c: Relocate returnAddresses in javalocals and in the s2 operand of ASTORE. Fix handling of in/out variables of TYPE_RET. * src/vm/jit/allocator/simplereg.c (simplereg_new_temp): Assert that constants (currently only TYPE_RET) are not allocated. (simplereg_new_free): Assert that constants (currently only TYPE_RET) are not freed. 2006-12-16 20:59 edwin * src/vm/jit/stack.c (stack_reanalyse_block): Zero line and flags of the appended NOP. 2006-12-16 20:57 edwin * src/vm/jit/replace.c: Prepared for native frames. * src/vm/jit/replace.h: Likewise. (REPLACEMENT_POINTS_RESET): Added. 2006-12-16 20:51 edwin * src/vm/jit/intrp/intrp.h: #include codegen-common.h 2006-12-16 20:50 edwin * src/vm/jit/inline/inline.c (create_body_block): Copy bitflags. (test_inlining): Copy code->optlevel. This is a quick fix for a more general problem: inline_inline should not swap the jitdata, but instead modify it in-place. (inline_inline_intern): Activated speculative inlining code. 2006-12-16 13:04 twisti * src/vm/annotation.c (annotation_load_attribute_runtimevisibleannotations): Extended comment, removed #ifdef ENABLE_JAVASE. 2006-12-15 23:54 twisti * autogen.sh: Check for automake-1.1x. 2006-12-15 23:53 twisti * autogen.sh: Check for automake-1.1x. 2006-12-13 23:04 twisti * src/vm/signal.c (errno.h): Added. (unistd.h): Likewise. (sys/mman.h): Likewise. [__DARWIN__] (sys/types.h): Likewise. (signal_init): mmap a page at 0x0. 2006-12-12 21:12 twisti * src/vm/jit/powerpc/darwin/md-asm.h (replace_build_execution_state): Defined. (replace_free_safestack): Likewise. * src/vm/jit/powerpc/asmpart.S (L_replace_build_execution_state$stub): Added. (L_replace_free_safestack$stub): Likewise. 2006-12-11 23:29 twisti * src/vm/jit/mips/mips/emit.c (emit_arithmetic_check): Added iptr and check INSTRUCTION_MUST_CHECK. (emit_arrayindexoutofbounds_check): Likewise. (emit_arraystore_check): Likewise. (emit_classcast_check): Likewise. (emit_nullpointer_check): Likewise. (emit_exception_check): Likewise. (emit_patcher_stubs): Likewise. * src/vm/jit/mips/mips/md.c (vm/exceptions.h): Added. * src/vm/jit/mips/mips/codegen.c (codegen): Pass iptr to exception-emit functions. * src/vm/jit/mips/mips/irix/md-os.c (vm/jit/codegen-common.h): Added. (md_signal_handler_sigsegv): Call codegen_get_pv_from_pc in error-case. 2006-12-11 20:31 twisti * tests/regression/fp.output: Updated to classpath-0.93. * tests/regression/fptest.output: Likewise. 2006-12-11 20:16 twisti * src/vm/jit/parse.c (MULTIANEWARRAY): Set check-flag. 2006-12-11 19:55 twisti * src/vm/jit/parse.c (CHECKCAST): Set check-flag. [!SUPPORT_HARDWARE_DIVIDE_BY_ZERO] (IDIV, IREM, LDIV, LREM): Set check-flag. 2006-12-11 19:43 twisti * src/vm/signal.c (signal_init): Use SUPPORT_HARDWARE_DIVIDE_BY_ZERO. * src/vm/signallocal.h: Likewise. * src/vm/jit/alpha/arch.h (SUPPORT_HARDWARE_DIVIDE_BY_ZERO): Defined. * src/vm/jit/i386/arch.h: Likewise. * src/vm/jit/mips/arch.h: Likewise. * src/vm/jit/powerpc/arch.h: Likewise. * src/vm/jit/powerpc64/arch.h: Likewise. * src/vm/jit/sparc64/arch.h: Likewise. * src/vm/jit/x86_64/arch.h: Likewise. 2006-12-11 04:25 ajordan * src/vm/jit/sparc64/asmpart.S: Fixed some exception handling. * src/vm/jit/sparc64/patcher.c: Fixed order of patch words. * src/vm/jit/sparc64/md.c: Disp mask in branch patch was wrong. * src/vm/jit/sparc64/codegen.c: Put in ICMD_CHECKNULL. 2006-12-11 00:28 twisti * src/native/vm/java_lang_reflect_Constructor.c (getSignature): Implemented. 2006-12-10 23:20 twisti * src/native/jni.h (_Jv_JavaVM): Renamed total_started_thread_count to java_lang_management_ThreadMXBean_ThreadCount, added java_lang_management_ThreadMXBean_PeakThreadCount, java_lang_management_ThreadMXBean_TotalStartedThreadCount. * src/vm/vm.c (vm_run): Set ThreadMXBean variables. * src/threads/native/threads.c (threads_startup_thread): Likewise. * src/native/vm/gnu_java_lang_management_VMThreadMXBeanImpl.c (getPeakThreadCount): Implemented. (getTotalStartedThreadCount): Use renamed variable. (resetPeakThreadCount): Implemented. 2006-12-10 22:17 twisti * src/vm/jit/powerpc/emit.c (emit_arrayindexoutofbounds_check): Added iptr and check INSTRUCTION_MUST_CHECK. (emit_nullpointer_check): Likewise. * src/vm/jit/powerpc/codegen.c (codegen): Pass iptr to exception-emit functions. 2006-12-10 22:07 twisti * src/vm/jit/alpha/emit.c (emit_arithmetic_check): Added iptr and check INSTRUCTION_MUST_CHECK. (emit_arrayindexoutofbounds_check): Likewise. (emit_classcast_check): Likewise. (emit_nullpointer_check): Likewise. * src/vm/jit/alpha/codegen.c (codegen): Pass iptr to exception-emit functions. 2006-12-10 21:50 twisti * src/vm/jit/x86_64/emit.c (emit_arithmetic_check): Added iptr and check INSTRUCTION_MUST_CHECK. (emit_arrayindexoutofbounds_check): Likewise. (emit_classcast_check): Likewise. (emit_nullpointer_check): Likewise. * src/vm/jit/x86_64/codegen.c (codegen): Pass iptr to exception-emit functions. 2006-12-10 21:35 twisti * src/vm/jit/emit-common.c (emit_array_checks): Pass iptr to emit functions. * src/vm/jit/emit-common.h (emit_arithmetic_check): Added iptr. (emit_arrayindexoutofbounds_check): Likewise. (emit_arraystore_check): Likewise. (emit_classcast_check): Likewise. (emit_nullpointer_check): Likewise. (emit_exception_check): Likewise. * src/vm/jit/i386/emit.c (emit_arithmetic_check): Added iptr and check INSTRUCTION_MUST_CHECK. (emit_arrayindexoutofbounds_check): Likewise. (emit_classcast_check): Likewise. (emit_nullpointer_check): Likewise. * src/vm/jit/i386/codegen.c (codegen): Pass iptr to exception-emit functions. 2006-12-10 21:27 twisti * src/vm/jit/parse.c (ICMD_CHECKNULL): Use OP_CHECK_EXCEPTION. * src/vm/jit/parse.h (OP_CHECK_EXCEPTION): New macro. 2006-12-10 17:19 ajordan * src/vm/jit/sparc64/codegen.h: Fixed float register mapping and compare macros. * src/vm/jit/sparc64/emit.c: Likewise. * src/vm/jit/sparc64/md.c: Fixed branch backpatching, was off by one. * src/vm/jit/sparc64/codegen.c: replaced codegen_addreference() with codegen_add_branch_ref(). * src/vm/jit/sparc64/patcher.c: Tested and activated invokevirtual patcher. 2006-12-09 23:20 ajordan * src/vm/jit/sparc64/codegen.h: Reworked float handling, single precision floats are now stored in the upper half of the double pair. * src/vm/jit/sparc64/codegen.c: Fixes for argument handling and get/put-static. * src/vm/jit/sparc64/emit.c: Likewise. * src/vm/jit/sparc64/md-abi.c: Likewise. * src/vm/jit/sparc64/asmpart.S(asm_call_jit_compiler): Fixed float arg saving. 2006-12-09 00:25 twisti * src/vm/jit/powerpc/emit.c (emit_arrayindexoutofbounds_check): Removed hardware-exception code. 2006-12-08 00:39 edwin * src/vm/jit/jit.h (JITDATA_FLAG_INLINE): Added. 2006-12-08 00:20 edwin * src/vm/jit/powerpc/codegen.c: Ported replacement. 2006-12-08 00:17 edwin * src/vm/jit/i386/asmpart.S: Adapted to new execution state layout. 2006-12-08 00:16 edwin * src/vm/jit/replace.h: Use a type union replace_val_t for all source state values. Give the registers in the execution state meaningful types. Properly convert float/double values. * src/vm/jit/replace.c: Likewise. * src/vm/jit/powerpc/asmpart.S: Adapted to new execution state layout. * src/vm/jit/i386/asmpart.S: Likewise. 2006-12-08 00:07 edwin * src/vm/jit/replace.c: Small cleanups. 2006-12-08 00:06 edwin * src/vm/jit/replace.c: Implemented support for linkage area. 2006-12-08 00:04 edwin * src/vm/jit/replace.c: Implement alpha-style stack frames (ra is at top of frame, in leaf methods the ra register is used). 2006-12-07 23:59 edwin * src/vm/jit/alpha/codegen.c (codegen): Fix: Put the REPLACEMENT_POINT_INVOKE_RETURN macro in the right place. 2006-12-07 23:58 edwin * src/vm/jit/alpha/codegen.c: Ported replacement. 2006-12-07 23:57 edwin * src/vm/jit/x86_64/codegen.c: Ported replacement. 2006-12-07 23:54 edwin * src/vm/jit/replace.h: Added macros for codegens. * src/vm/jit/replace.c: Architecture-independent patching of future calls. Use a safe stack area for the final phase of replacement. * src/vm/jit/asmpart.h (asm_replacement_in): Got an additional argument for the safe stack area. * src/vm/jit/powerpc/asmpart.S: Ported. * src/vm/jit/alpha/asmpart.S: Likewise. * src/vm/jit/i386/asmpart.S: Likewise. * src/vm/jit/x86_64/asmpart.S: Likewise. 2006-12-07 23:44 edwin * src/vm/jit/replace.h (replace_safestack_t): Prepared declarations for the safe stack area (not used, yet). (sourceframe_t): Added from/to members. * src/vm/jit/replace.c: Major refactoring. 2006-12-07 23:32 edwin * src/vm/jit/replace.h (rplpoint): Removed members outcode, code, mcode. Fixed bitwidth of regalloccount. (replace_activate_replacement_points): Activate rplpoints per codeinfo. (replace_deactivate_replacement_points): Deactivate --''--. * src/vm/jit/replace.c: Likewise. * src/vm/jit/jit.c: Likewise. 2006-12-07 23:17 edwin * src/vm/jit/replace.h (rplpoint): Removed `target` member. * src/vm/jit/replace.c: Likewise. * src/vm/jit/jit.c: Likewise. 2006-12-07 23:13 edwin * src/vm/jit/codegen-common.c (codegen_finish): Relocate code->replacementstubs, do not use rplpoint.outcode. 2006-12-07 23:02 edwin * src/vm/jit/powerpc/md.c (md_patch_replacement_point): Changed to use an external array for saving machine code. * src/vm/jit/sparc64/md.c: Likewise. * src/vm/jit/alpha/md.c: Likewise. * src/vm/jit/mips/md.c: Likewise. * src/vm/jit/powerpc64/md.c: Likewise. * src/vm/jit/i386/md.c: Likewise. * src/vm/jit/x86_64/md.c: Likewise. * src/vm/jit/replace.h (md_patch_replacement_point): Added arguments. * src/vm/jit/replace.c: Likewise. 2006-12-07 22:48 edwin * src/vm/jit/powerpc/md.c (md_patch_replacement_point): Deactivate debug print. * src/vm/jit/alpha/md.c: Likewise. 2006-12-07 22:45 edwin * src/vm/jit/powerpc/md.c (md_get_method_patch_address): Return NULL if no mptr was specified and the call is dynamically dispatched. * src/vm/jit/sparc64/md.c: Likewise. * src/vm/jit/alpha/md.c: Likewise. * src/vm/jit/mips/md.c: Likewise. * src/vm/jit/i386/md.c: Likewise. * src/vm/jit/powerpc64/md.c: Likewise. * src/vm/jit/x86_64/md.c: Likewise. 2006-12-07 22:30 edwin * src/vm/jit/mips/emit.c: #include 2006-12-07 22:29 edwin * src/vm/jit/alpha/emit.c: #include * src/vm/jit/x86_64/emit.c (emit_replacement_stubs): Ported. 2006-12-07 22:25 edwin * src/vm/jit/powerpc/emit.c (emit_replacement_stubs): Prepared for removal of rplpoint.mcode. * src/vm/jit/alpha/emit.c: Likewise. * src/vm/jit/mips/emit.c: Likewise. * src/vm/jit/i386/emit.c: Likewise. * src/vm/jit/x86_64/emit.c: Likewise. 2006-12-07 22:19 edwin * src/vm/jit/powerpc/emit.c (emit_replacement_stubs): Do not set rplp->outcode. * src/vm/jit/alpha/emit.c: Likewise. * src/vm/jit/mips/emit.c: Likewise. * src/vm/jit/i386/emit.c: Likewise. * src/vm/jit/x86_64/emit.c: Likewise. 2006-12-07 20:39 edwin * src/vm/jit/code.c (code_find_codeinfo_for_pc): New function. * src/vm/jit/code.h (codeinfo): Added codeinfo flags, replacementstubs, and savedmcode. * src/vm/jit/jit.c (jit_invalidate_code): Use codeinfo flags. (jit_get_current_code): Likewise. 2006-12-07 20:14 edwin * src/vm/jit/powerpc/arch.h (REPLACEMENT_PATCH_SIZE): Added. (REPLACEMENT_STUB_SIZE): Added. * src/vm/jit/sparc64/arch.h: Likewise. * src/vm/jit/alpha/arch.h: Likewise. * src/vm/jit/mips/arch.h: Likewise. * src/vm/jit/parisc/arch.h: Likewise. * src/vm/jit/powerpc64/arch.h: Likewise. * src/vm/jit/i386/arch.h: Likewise. * src/vm/jit/x86_64/arch.h: Likewise. 2006-12-07 19:57 ajordan * scr/vm/jit/sparc64/emit.c: Fixed M_XOR and iconst, lconst. * src/vm/jit/sparc64/codegen.h: Likewise * src/vm/jit/sparc64/codegen.c: Allocating (ABI defined) param array on stack before builtin call. 2006-12-07 10:59 twisti * src/vm/jit/x86_64/emit.c (vm/options.h): Added. (emit_arithmetic_check): New function. (emit_arrayindexoutofbounds_check): Likewise. (emit_classcast_check): Likewise. (emit_nullpointer_check): Likewise. * src/vm/jit/x86_64/codegen.c (codegen): Use emit_*_check functions for exception checks. (IDIV, IREM, LDIV, LREM): Use emit_{load,store} functions. * src/vm/jit/x86_64/codegen.h (gen_nullptr_check): Removed. (gen_bound_check): Likewise. (gen_resolvebranch): Likewise. 2006-12-06 22:15 twisti * src/native/vm/java_lang_VMClass.c (forName): Throw NPE if null is passed. 2006-12-06 10:49 twisti * src/vm/jit/i386/emit.c (vm/options.h): Added. (emit_arithmetic_check): New function. (emit_arrayindexoutofbounds_check): Likewise. (emit_classcast_check): Likewise. (emit_nullpointer_check): Likewise. * src/vm/jit/i386/codegen.c (codegen): Use emit_*_check functions for exception checks. * src/vm/jit/i386/codegen.h (gen_nullptr_check): Removed. (gen_bound_check): Likewise. 2006-12-06 10:37 twisti * src/vm/jit/emit-common.c [__ALPHA__ || __POWERPC__] (emit_array_checks): Removed #ifdef's. 2006-12-06 09:53 twisti * src/vm/jit/i386/emit.c (emit_verbosecall_enter): Check for JITDATA_HAS_FLAG_VERBOSECALL. (emit_verbosecall_exit): Likewise. * src/vm/jit/i386/codegen.c (codegen): Removed JITDATA_HAS_FLAG_VERBOSECALL check. (createnativestub): Likewise. 2006-12-06 09:47 twisti * src/vm/builtin.c [ENABLE_JIT] (builtintable_replace_function): #ifdef'ed. 2006-12-05 23:58 ajordan * src/vm/jit/sparc64/emit.c: stack bias used in emit_load and emit_store. * src/vm/jit/sparc64/md.c (md_stacktrace_get_returnaddress): let it return the original ra (address of the call instruction). * src/vm/jit/sparc64/codegen.h: fixed M_RESTORE instruction. * src/vm/jit/sparc64/codegen.c: fixed datasp argument for codegen_finish_native_call. 2006-12-05 21:10 twisti * src/vm/exceptions.h (EXCEPTION_LOAD_DISP_NULLPOINTER) (EXCEPTION_LOAD_DISP_ARITHMETIC) (EXCEPTION_LOAD_DISP_ARRAYINDEXOUTOFBOUNDS) (EXCEPTION_LOAD_DISP_CLASSCAST, EXCEPTION_LOAD_DISP_PATCHER): Defined. * src/vm/signal.c (signal_init): Removed checknull-check. * src/vm/jit/powerpc/emit.c (vm/exceptions.h): Added. (emit_arrayindexoutofbounds_check): Added hardware-exception version. * src/vm/jit/powerpc/darwin/md-os.c (md_signal_handler_sigsegv): Started to handle other hardware-exceptions. 2006-12-04 23:48 twisti * src/vm/jit/x86_64/codegen.c (createcompilerstub): Don't generate a codeinfo. 2006-12-04 23:39 twisti * src/vm/jit/powerpc64/codegen.c (createcompilerstub): Don't generate a codeinfo. 2006-12-04 23:36 twisti * src/vm/jit/powerpc64/linux/md-os.c (vm/jit/profile/profile.h): Changed to vm/jit/optimizing/profile.h. 2006-12-04 23:30 twisti * src/vm/jit/alpha/codegen.c (createcompilerstub): Don't generate a codeinfo. 2006-12-04 23:16 twisti * src/vm/jit/i386/codegen.c (createcompilerstub): Don't generate a codeinfo. 2006-12-04 22:51 twisti * src/vm/jit/powerpc/codegen.c (createcompilerstub): Don't generate a codeinfo. 2006-12-04 22:21 twisti * src/vm/jit/code.c (code_init): New function. * src/vm/jit/code.h (code_init): Added. * src/vm/jit/jit.c (jit_init): Added code_init call. 2006-12-04 22:18 twisti * src/vm/jit/code.h (vm/global.h): Added. 2006-12-04 14:46 ajordan * src/vm/jit/sparc64/codegen.h: updated code to new dseg functions. * src/vm/jit/sparc64/codegen.c: Likewise. * src/vm/jit/sparc64/emit.c: Likewise. 2006-12-04 11:20 twisti * src/vm/vm.c (vm_create): Moved properties_postinit after jar-file handling. This fixes an eclipse bug found by mjw and neugens. 2006-12-04 02:05 michi * src/mm/cacao-gc/compact.c: Now uses regioninfo; Added compact_thread_classes Fixed compact_move; Disabled some logging. * src/mm/cacao-gc/compact.h: Now uses regioninfo. 2006-12-03 22:45 twisti * src/vm/vm.c (version): Print classpath variable. 2006-12-03 17:55 michi * src/mm/cacao-gc/compact.c: Added. * src/mm/cacao-gc/compact.h: Added. 2006-12-02 15:01 tbfg * configure.ac: Added m68k host_cpu support. Added uclinux host_os support. 2006-12-02 14:54 tbfg * src/native/tools/gennativetable.c (main): Renamed nogc_init to gc_init in DISABLE_GC path. * src/native/Makefile.am: Introduced GENNATIVETABLE to make crosscompilation a friendlier experience. Rewrote rule for nativetable.inc accordingly. * src/threads/native/threads.c (threads_cast_stopworld) [!DISABLE_GC]: Depends on GC_signum1 and GC_signum2 which are undefined without garbage collector. (threads_cast_startworld): Likewise. (threads_sigsuspend_handler): Likewise. 2006-12-02 12:22 twisti * src/vm/builtin.c (builtin_trace_args): Added missing + for logtextlen, thanks to --enable-memcheck. 2006-12-01 16:51 twisti * src/vm/jit/x86_64/codegen.h (vm/jit/x86_64/emit.h): Added. 2006-12-01 11:38 tbfg * src/vm/jit/powerpc64/asmpart.S (asm_vm_call_method): Fixed a bug in argument handling when using lwz instead of lwa zeroed out sign extension bits which lead to wrong int->string conversion in exception handling path. 2006-11-29 22:33 edwin * tests/regression/jasmin/test_verify_fail_merge_init_nullpointer.j: New test. * tests/regression/jasmin/test_verify_fail_init_nullpointer.j: Pass null pointer without merging. * tests/regression/jasmin/Makefile.am: Added new test. 2006-11-29 20:44 twisti * src/vm/jit/dseg.h (jumpref, dataref, exceptionref, patchref) (linenumberref): Moved to codegen-common.h. * src/vm/jit/codegen-common.h: Likewise. 2006-11-29 20:34 twisti * src/vm/jit/emit-common.c (emit_bc): Commented emit_branch call. 2006-11-29 20:15 twisti * src/vm/jit/x86_64/emit.h (config.h): Added. (vm/jit/codegen-common.h): Likewise. (vm/jit/jit.h): Likewise. 2006-11-29 17:08 twisti * src/vm/class.h [ENABLE_JAVASE] (vm/annotation.h): Added. [ENABLE_JAVASE] (classinfo): Added runtimevisibleannotationscount, runtimevisibleannotations. 2006-11-29 17:04 twisti * src/vm/annotation.c: New file. * src/vm/annotation.h: Likewise. * src/vm/Makefile.am [ENABLE_JAVASE] (ANNOTATION_OBJ): Added. 2006-11-29 17:00 twisti * src/vm/resolve.h (vm/field.h): Added. 2006-11-28 22:36 twisti * src/vm/jit/emit-common.c (emit_bc): Temporary compile fix 2006-11-28 22:32 twisti * src/vm/jit/i386/codegen.h (vm/jit/i386/emit.h): Added. 2006-11-28 22:28 twisti * src/vm/statistics.c (count_branches_resolved) (count_branches_unresolved): New variable. (print_stats): Print new variables. * src/vm/statistics.h (count_branches_resolved) (count_branches_unresolved): Added. 2006-11-28 22:25 twisti * src/vm/jit/emit-common.c (codegen.h): Added. (vm/options.h): Likewise. [ENABLE_STATISTICS] (vm/statistics.h): Likewise. (emit_bc): New function. (emit_br): Likewise. * src/vm/jit/emit-common.h (emit_branch): Added. 2006-11-28 22:19 twisti * src/vm/jit/alpha/codegen.h (BRANCH_NOPS): Defined. * src/vm/jit/i386/codegen.h (BRANCH_NOPS, PATCHER_NOPS): Likewise. * src/vm/jit/mips/codegen.h (BRANCH_NOPS): Likewise. * src/vm/jit/powerpc/codegen.h (BRANCH_NOPS): Likewise. * src/vm/jit/powerpc64/codegen.h (BRANCH_NOPS, PATCHER_CALL_SIZE) (PATCHER_NOPS): Likewise. * src/vm/jit/x86_64/codegen.h (BRANCH_NOPS): Likewise. 2006-11-28 22:04 twisti * src/vm/jit/dseg.c (dseg_get_linenumber_from_pc_intern): Short-circuit the common case. 2006-11-28 21:50 twisti * src/native/tools/Makefile.am (GC_LIB): Removed. 2006-11-28 19:58 twisti * src/vm/jit/emit-common.c (emit_beq, emit_bne, emit_blt, emit_bge) (emit_bgt, emit_ble, emit_bnan): New functions. * src/vm/jit/emit-common.h (emit_beq, emit_bne, emit_blt, emit_bge) (emit_bgt, emit_ble, emit_bnan): Added. * src/vm/jit/codegen-common.h (BRANCH_UNCONDITIONAL, BRANCH_EQ) (BRANCH_NE, BRANCH_LT, BRANCH_GE, BRANCH_GT, BRANCH_LE, BRANCH_NAN): Added. 2006-11-28 19:24 edwin * tests/regression/jasmin/test_verify_fail_merge_different_new_objects.j: New test. * tests/regression/jasmin/test_verify_fail_init_nullpointer.j: Likewise. * tests/regression/jasmin/Makefile.am: Added new tests. * src/vm/jit/verify/typeinfo.c (typeinfo_merge_error): Moved debug print into #ifdef TYPEINFO_VERBOSE. 2006-11-28 19:14 twisti * src/vm/jit/alpha/codegen.h (PATCHER_CALL_SIZE): Defined. 2006-11-28 15:11 twisti * src/native/vm/java_lang_VMThrowable.c (native/include/java_lang_VMClass.h): Removed. (getStackTrace): Use native_class_getname. 2006-11-28 01:07 ajordan * src/vm/jit/sparc64/asmpart.S: fixed asm_patcher_wrapper * src/vm/jit/sparc64/patcher.c: updated some patchers and the wrapper * src/vm/jit/sparc64/emit.c: likewise * src/vm/jit/sparc64/codegen.h: fixed M_BRACC * src/vm/jit/sparc64/codegen.c: added reg window workaround for arg register copying. some patch ref updates * src/vm/jit/sparc64/md.c: updated md_codegen_patch_branch() 2006-11-27 20:05 twisti * src/vm/jit/powerpc/codegen.h (PATCHER_CALL_SIZE): Defined. 2006-11-27 16:53 edwin * src/vm/jit/replace.c: Lazy patching of virtual methods. Cleanup. * src/vm/jit/replace.h: Likewise. 2006-11-27 15:37 edwin * src/vm/jit/replace.h (sourceframe_t): Added normalized type of replacement point. * src/vm/jit/replace.c (replace_normalize_type_map): Added normalization table for replacement point types. (replace_read_executionstate): Set normalized type of rplpoint. (replace_find_replacement_point): Match normalized type of rplpoint. (replace_source_frame_println): Print it. 2006-11-27 15:29 edwin * src/vm/jit/i386/codegen.c (codegen): set marker in line number table _after_ inlining prolog (This fixes the stacktrace for the CHECKNULL in the prolog.) * src/vm/jit/dseg.c (dseg_addlinenumber_inline_start): Document that it is now called with the INLINE_BODY instruction. 2006-11-27 15:24 edwin * src/vm/jit/i386/codegen.cn (codegen): Use the new functions for setting replacement point addresses. 2006-11-27 15:23 edwin * src/vm/jit/codegen-common.c (codegen_set_replacement_point_notrap): New function. (codegen_set_replacement_point): Likewise. * src/vm/jit/codegen-common.h (codegendata): Added field `replacementpoint`. (codegen_set_replacement_point_notrap): Added prototype. (codegen_set_replacement_point): Likewise. * src/vm/jit/replace.h (RPLPOINT_CHECK): New macro. (RPLPOINT_CHECK_BB): Likewise. 2006-11-27 15:19 edwin * src/vm/jit/replace.c (replace_create_inline_start_replacement_point): New function. (replace_create_replacement_points): Cleaned up. 2006-11-27 15:15 edwin * src/vm/jit/stack.c (stack_javalocals_store): New function. * src/vm/jit/stack.h (stack_javalocals_store): Likewise. * src/vm/jit/inline/inline.c (inline_clone_instruction): Use stack_javalocals_store. * src/vm/jit/replace.c (replace_create_replacement_points): Use stack_javalocals_store. Other cleanups. 2006-11-27 15:11 edwin * src/vm/jit/replace.c (replace_create_replacement_points): Create non-trappable replacement point for INLINE_BODY. * src/vm/jit/i386/codegen.c (codegen): Handle replacement point for INLINE_BODY. 2006-11-27 15:06 edwin * src/vm/jit/replace.h (RPLPOINT_TYPE_BODY): Added. * src/vm/jit/replace.c: Likewise. 2006-11-27 15:03 edwin * src/vm/jit/inline/inline.c (emit_inlining_prolog): Do not emit CHECKNULL in prolog for methods. 2006-11-27 15:02 edwin * src/vm/jit/inline/inline.c (emit_inlining_prolog): Emit INLINE_BODY instructions at end of prolog. 2006-11-27 14:58 edwin * src/vm/jit/icmdtable.inc (INLINE_GOTO): Removed. (INLINE_BODY): Added. This instruction will mark the start of the inlined method body after the prolog. * src/vm/jit/jit.h: Likewise. * src/vm/jit/show.c (show_icmd): Likewise. * src/vm/jit/allocator/simplereg.c (simplereg_allocate_temporaries): Likewise. * src/vm/jit/i386/codegen.c (codegen): Likewise. * src/vm/jit/verify/typecheck-variablesbased-gen.inc: Regenerated. 2006-11-27 14:48 edwin * src/vm/jit/i386/emit.c (emit_memabs): Removed. (emit_alu_imm_memabs): Use emit_mem. 2006-11-27 14:39 edwin * src/vm/jit/stack.c (stack_reanalyse_block): Removed bogus cases for INLINE_ instructions. They cannot occur here. (stack_analyse): Likewise. 2006-11-27 14:37 michi * src/mm/gc-common.h: Added prototype for heap_init_objectheader. * src/vm/builtin.c (builtin_clone): Object header gets initiated after cloning. 2006-11-27 14:35 edwin * src/vm/jit/jit.c (jit_invalidate_code): Do not trap non-trappable replacement points. (jit_request_optimization): New function. (jit_get_current_code): New function. * src/vm/jit/jit.h (jit_request_optimization): Added prototype. (jit_get_current_code): Likewise. * src/vm/jit/replace.h (RPLPOINT_FLAG_NOTRAP): New flag. * src/vm/jit/replace.c (replace_replacement_point_println): Prepared for new flag. 2006-11-27 14:27 edwin * src/vm/jit/jit.c (jit_invalidate_code): Do not activate RETURN rplpoints when invalidating code (they cannot be mapped to inlined versions of the code). 2006-11-27 14:26 edwin * src/vm/jit/replace.c (replace_create_replacement_points): Some fixes for inlining. 2006-11-27 14:24 edwin * src/vm/jit/replace.c (replace_find_replacement_point): Match parent of replacement point. (replace_me): Keep parent of rplpoint around. 2006-11-27 14:20 edwin * src/vm/jit/i386/emit.c (emit_memabs): New function. (emit_alu_imm_memabs): New function. * src/vm/jit/i386/emit.h (emit_alu_imm_memabs): Added prototype. * src/vm/jit/i386/codegen.h (M_ISUB_IMM_MEMABS): New macro. 2006-11-25 16:32 michi * src/mm/cacao-gc/gc.h: Added. * src/mm/cacao-gc/gc.c: Debugging with gc_call. Added some development breaks. Added gc_get_heap_size, gc_get_free_bytes, gc_get_total_bytes and gc_get_max_heap_size. 2006-11-22 21:19 twisti * src/vm/jit/x86_64/codegen.c (codegen): Use new dseg_add_* functions, replaced codegen_addreference with codegen_add_branch_ref. (createnativestub): Likewise. * src/vm/jit/x86_64/emit.c (emit_patcher_stubs): Likewise. 2006-11-22 20:24 twisti * src/vm/jit/stacktrace.c (linenumbertable_entry): Removed. (stacktrace_add_method_intern): Removed. (stacktrace_add_method): Call dseg_get_linenumber_from_pc. * src/vm/jit/dseg.c (vm/jit/methodheader.h): Added. (dseg_get_linenumber_from_pc_intern): New function. (dseg_get_linenumber_from_pc): Likewise. * src/vm/jit/dseg.h (linenumbertable_entry): Added. (dseg_get_linenumber_from_pc): Likewise. * src/vm/jit/show.c (show_method): Renamed u1ptr to pc. (show_basicblock): Use dseg_get_linenumber_from_pc to diplay line number in disassembly. 2006-11-22 19:00 twisti * src/mm/gc-common.h [DISABLE_GC] (nogc_init, nogc_realloc): Removed. 2006-11-22 18:22 edwin * src/vm/jit/x86_64/codegen.c (codegen): Do not generate code for ASTORE storing a returnAddress, as 1) the store is dead, and 2) the dest. variable has no valid allocation. 2006-11-22 18:20 edwin * src/vm/jit/sparc64/codegen.c (codegen): Do not generate code for ASTORE storing a returnAddress, as 1) the store is dead, and 2) the dest. variable has no valid allocation. 2006-11-22 18:18 edwin * src/vm/jit/powerpc64/codegen.c (codegen): Do not generate code for ASTORE storing a returnAddress, as 1) the store is dead, and 2) the dest. variable has no valid allocation. 2006-11-22 18:16 edwin * src/vm/jit/mips/codegen.c (codegen): Do not generate code for ASTORE storing a returnAddress, as 1) the store is dead, and 2) the dest. variable has no valid allocation. 2006-11-22 18:12 edwin * src/vm/jit/i386/codegen.c (codegen): Do not generate code for ASTORE storing a returnAddress, as 1) the store is dead, and 2) the dest. variable has no valid allocation. 2006-11-22 18:09 edwin * src/vm/jit/powerpc/codegen.c (codegen): Do not generate code for ASTORE storing a returnAddress, as 1) the store is dead, and 2) the dest. variable has no valid allocation. 2006-11-22 18:03 edwin * src/vm/jit/alpha/codegen.c (codegen): Do not generate code for ASTORE storing a returnAddress, as 1) the store is dead, and 2) the dest. variable has no valid allocation. 2006-11-22 11:05 twisti * configure.ac: Added *kfreebsd*-gnu. * src/vm/suck.c (scandir_filter) [_DIRENT_HAVE_D_NAMLEN]: Bugfix. 2006-11-22 10:50 twisti * src/vm/jit/i386/codegen.c (codegen): Use new dseg_add_* functions. (createnativestub): Likewise. * src/vm/jit/i386/emit.c (emit_patcher_stubs): Likewise. 2006-11-21 23:21 twisti * native.c (native_class_getname): New function. * native.h (native_class_getname): Added. * vm/java_lang_VMClass.c (getName): Use native_class_getname. 2006-11-21 21:02 twisti * src/vm/builtin.c [DISABLE_GC] (builtin_idiv): Added. (builtin_f2i): Likewise. (builtin_d2i): Likewise. * src/vm/vm.c (vm_create): Removed nogc_init call. * src/cacaoh/cacaoh.c (main): Likewise. * src/mm/nogc.c (nogc_realloc): Removed. (nogc_init): Renamed to gc_init. (gc_init): Removed. (gc_get_total_bytes): Added. * src/mm/memory.h [DISABLE_GC] (NEW, FREE, MNEW, MFREE, MREALLOC): Removed. 2006-11-21 16:56 michi * src/vm/loader.c (load_class_from_classbuffer) [ENABLE_GC_CACAO]: Fieldinfos are no longer placed onto the heap. * src/vm/class.c (class_free) [ENABLE_GC_CACAO]: Fieldinfos are freed. 2006-11-20 18:57 tbfg * src/vm/jit/powerpc64/codegen.c (codegen): Replace dseg_add* by dseg_add_* functions. * src/vm/jit/powerpc64/emit.c: Likewise. 2006-11-20 16:18 twisti * src/vm/jit/dseg.h (dseg_adds4, dseg_adds8, dseg_addfloat) (dseg_adddouble, dseg_addaddress, dseg_addtarget): Removed. * src/vm/jit/alpha/codegen.c (codegen): Removed remaining old-dseg_add calls. * src/vm/jit/alpha/emit.c (emit_iconst): Replaced dseg_adds4 with dseg_add_s4. (emit_lconst): Replaced dseg_adds8 with dseg_add_s8. 2006-11-20 14:18 michi * src/vm/global.h: Added hdrflags to java_objectheader for exact Cacao-GC. * src/threads/native/lock.c: Now uses hdrflags to store the FLC bit. 2006-11-19 18:25 michi * src/mm/cacao-gc/Makefile.am: Added mark.c * src/mm/cacao-gc/mark.c: Added 2006-11-19 15:40 edwin * src/vm/jit/replace.c: Only recompile if necessary. Count re-compilations. 2006-11-19 15:39 edwin * src/vm/jit/replace.c: Added statistics code. 2006-11-19 15:36 edwin * src/vm/jit/replace.c (replace_me): Only turn off replacement points for self-replacement. Warn in this case. 2006-11-19 15:33 edwin * src/vm/jit/replace.c (replace_write_executionstate): Take synchronization slots from next frame for inline points. 2006-11-19 15:28 edwin * src/vm/jit/replace.c: Handle and match returnAddress variables on the java stack. 2006-11-19 15:22 edwin * src/vm/jit/stack.c (stack_analyse): Keep TYPE_RET for variables of returnAddress type. Do not create interfaces for this type. Mark block variables of TYPE_RET as PREALLOC to avoid subsequent allocation. * src/vm/jit/icmdtable.inc (ASTORE): Added TYPE_RET (R--) variant. (JSR): Changed destination type to TYPE_RET (R). * src/vm/jit/verify/icmds.c (ICMD_RET): Check local for type TYPE_RET. * src/vm/jit/verify/typeinfo.h (TYPE_IS_RETURNADDRESS): Check type for TYPE_RET. * src/vm/jit/verify/typecheck-stackbased-gen.inc: Regenerated. * src/vm/jit/verify/typecheck-variablesbased-gen.inc: Regenerated. 2006-11-19 15:10 edwin * src/vm/jit/jit.c (jit_invalidate_code): Activate replacement points in reverse order. This avoid creating invalid code when rplpoints within a block overlap each other. It is not a complete solution for overlapping replacement points, however. 2006-11-19 15:08 edwin * src/vm/jit/inline/inline.c (translate_javalocals): Adapted to returnAddress variables in javalocals. (inline_clone_instruction): Likewise. 2006-11-19 15:04 edwin * src/vm/jit/stack.c (stack_mark_reached): Fix: Do not compare basic block addresses. Compare numbers instead. (stack_mark_reached_from_outvars): Likewise. 2006-11-19 15:03 edwin * src/vm/jit/jit.h (INS_FLAG_CLASS): Comment that this flag is also used for PUTFIELDCONST and PUTSTATICCONST. * src/vm/jit/verify/icmds.c (ICMD_PUTFIELDCONST, ICMD_PUTSTATICCONST): Honor the INS_FLAG_CLASS flag and set the right type. * src/vm/jit/verify/typecheck-stackbased-gen.inc: Regenerated. * src/vm/jit/verify/typecheck-variablesbased-gen.inc: Regenerated. 2006-11-19 14:56 edwin * src/vm/jit/stack.c (stack_analyse): Show state after last ICMD in block. (stack_verbose_show_block): Use show_javalocals_array. (stack_verbose_show_state): Likewise. Accept iptr == NULL. 2006-11-19 14:51 edwin * src/vm/jit/replace.c (replace_source_frame_println): Fixed printing of source stack. 2006-11-19 14:50 edwin * src/vm/jit/allocator/simplereg.c (simplereg_allocate_temporaries): Do not clear vv.regoff for ICMD_JSR (we need vv.retaddr later). 2006-11-18 22:16 twisti * src/vm/properties.c (properties_add): Use unsynced functions of list. (properties_get): Likewise. 2006-11-17 15:47 twisti * src/vm/properties.c (properties_add): Replace entry if it already exists. 2006-11-16 22:14 twisti * src/vm/builtin.c (native/native.h) (native/include/java_lang_Cloneable.h) (native/include/java_lang_Object.h) (native/include/java_lang_VMObject.h): Removed. (builtin_clone_array): Renamed to builtin_clone, reimplemented. * src/vm/builtin.h (builtin_clone_array): Renamed to builtin_clone. (BUILTIN_clone): Defined. * src/vm/loader.c (load_newly_created_array): Use BUILTIN_clone. * src/native/vm/java_lang_VMObject.c (clone): Removed implementation and call builtin_clone. 2006-11-16 19:45 twisti * src/vm/class.h (classinfo): Typedef added. * src/vm/descriptor.h (typedesc): Likewise. (methoddesc): Likewise. * src/vm/field.h (fieldinfo): Likewise. * src/vm/method.h (methodinfo): Likewise. * src/vm/references.h (config.h, vm/types.h, vm/class.h) (vm/descriptor.h, vm/field.h, vm/method.h): Likewise. (classinfo, methodinfo, fieldinfo, typedesc, methoddesc): Removed. (constant_classref, classref_or_classinfo, parseddesc): Moved. 2006-11-16 15:56 twisti * src/vm/vm.c (vm_createjvm): New function. * src/vm/vm.h (vm_createjvm): Added. * src/cacao/cacao.c (main): Resolve and call vm_createjvm instead of JNI_CreateJavaVM. * src/native/jni.c (jni_init_localref_table): Made non-static. (JNI_CreateJavaVM): Moved implementation into vm_createjvm. * src/native/jni.h (jni_init_localref_table): Added. 2006-11-16 00:02 edwin * src/vm/jit/stack.c (stack_analyse): Fix: Reset deadcode when re-analysing a block. 2006-11-15 23:45 edwin * src/vm/jit/verify/generate.pl: Prepared for LOAD instructions with multiple variants (will be needed for ASTORE). 2006-11-15 23:44 edwin * src/vm/jit/allocator/simplereg.c (simplereg_allocate_temporaries): Ignore TYPE_RET interface variables. (Preparation.) * src/vm/jit/show.c (show_allocation): Prepared for TYPE_RET variables. (show_variable_intern): Likewise. * src/vm/jit/verify/typecheck.c (STORE_LOCAL): Made the macro safer. (STORE_LOCAL_2_WORD): Likewise. * src/vm/jit/verify/typeinfo.c (typeinfo_print_type): Prepared for TYPE_RET variables. * src/vm/jit/replace.c (replace_source_frame_println): Prepared for void stackslots. 2006-11-15 23:37 edwin * src/vm/jit/jit.c (jit_recompile): Set verbosecall flag. 2006-11-15 23:36 edwin * src/vm/jit/replace.c (replace_create_replacement_points): Fix: Only put a replacement point at a back branch target if the block does not contain any other replacement point. (replace_read_executionstate): Better debugging helpers. (replace_me): Likewise. * src/vm/jit/replace.h (sourceframe_t): Added a field for debugging. 2006-11-15 23:33 edwin * src/vm/jit/stack.c (stack_reanalyse_block): Encode returnAddresses in the javalocals array. (stack_analyse): Likewise. * src/vm/jit/replace.c (replace_create_replacement_point): Store returnAddresses in replacement points. (replace_create_replacement_points): Encode returnAddresses in javalocals. (replace_read_executionstate): Ignore returnAddresses. (replace_write_executionstate): Likewise. (replace_find_replacement_point): Match returnAddresses. 2006-11-15 23:30 edwin * src/vm/jit/show.h (show_javalocals_array): New function. * src/vm/jit/show.c (show_javalocals_array): New function. (show_icmd): Prepared for showing returnAddresses. * src/vm/jit/replace.c (replace_replacement_point_println): Prepared for showing constant returnAddresses. * src/vm/jit/replace.h (rplalloc): Made type unsigned, so it will be able to hold TYPE_RET (8). * src/vm/jit/jit.h (s2_operand_t): Added field `retaddrnr` that will be used by ASTORE with returnAddresses. 2006-11-15 23:24 edwin * src/vm/jit/inline/inline.c (inline_inline_intern): Removed some unused code. 2006-11-15 23:23 edwin * src/vm/jit/i386/codegen.c (codegen): Fix: Put RETURN replacement points before the emit_load. This code needs cleaning up. 2006-11-15 23:21 edwin * src/vm/jit/replace.c: Partial implementation of synchronization slot translation. Translating synchronized INLINE <-> CALL needs more work. 2006-11-15 23:19 edwin * src/vm/jit/replace.c (replace_find_replacement_poin): Fix: Compare both id and method when searching a replacement point. (replace_executionstate_println): Prettier printing. * src/vm/jit/replace.h (replace_pop_activation_record): Removed prototype. 2006-11-15 23:17 edwin * src/vm/jit/inline/inline.c (inline_instruction): New function. Factored code out of other functions generation instructions. 2006-11-15 23:15 edwin * src/vm/jit/jit.h (insinfo_inline): Added field `paramcount`. * src/vm/jit/inline/inline.c (inline_generate_sync_builtin): New function. Generate explicit MONITORENTER/EXIT instructions. (emit_inlining_prolog): Moved INLINE_START to the beginning of the prolog. Explicit synchronization. (emit_inlining_epilog): Explicit synchronization. (rewrite_method): Use epilog_instructioncount. (inline_analyse_callee): Explicit synchronization. * src/vm/jit/i386/codegen.c (ICMD_INLINE_START): Removed implicit synchronization. (ICMD_INLINE_END): Likewise. * src/vm/jit/replace.c (replace_create_replacement_point): Handle parameters for top frames. (replace_create_replacement_points): Likewise. (replace_read_executionstate): Likewise. (replace_write_executionstate): Likewise. (replace_me): Likewise. 2006-11-15 23:08 edwin * src/vm/jit/replace.h (RPLALLOC_STACK, RPLALLOC_PARAM, RPLALLOC_SYNC): New constants. * src/vm/jit/replace.c (replace_push_activation_record): Fix: Decrement SP _before_ writing the return address. (replace_me): More logging. (replace_replacement_point_println): More logging. (replace_executionstate_println): Prettier printing. 2006-11-15 23:02 edwin * src/vm/jit/code.h (codeinfo): Added field `invalid`. (Should become a flag, later.) * src/vm/jit/jit.c (jit_recompile): Fixed for first compilation. Do not refuse to recompile. 2006-11-15 22:59 edwin * src/vm/jit/inline/inline.c (inline_inline_intern): Do not inline abstract methods (need to search for single implementation). 2006-11-15 22:47 edwin * src/vm/jit/replace.c (replace_me): Small cleanup. * src/vm/jit/inline/inline.c (create_body_block): Do not translate javalocals for dead code. (inline_inline_intern): Fixed flag check. 2006-11-15 22:46 edwin * src/vm/method.c (method_printflags): Print MONOMORPHIC and IMPLEMENTED flags. 2006-11-15 18:26 twisti * src/vm/properties.c (properties_init) [ENABLE_JAVASE]: Allocate the utsname structure on the heap. 2006-11-15 18:09 twisti * src/vm/properties.c (properties_init) [ENABLE_JAVASE]: Don't free memory, we need it later. 2006-11-15 18:01 twisti * src/cacaoh/headers.c (cacao_prefix, classpath_libdir, _Jv_classpath) (_Jv_java_library_path): Added. 2006-11-15 17:58 twisti * src/vm/properties.c (properties_init): Also fill the internal property table. (properties_postinit): Re-set some properties that may have changed. (properties_system_add): Removed. [ENABLE_JAVASE] (properties_system_add_all): Rewritten. * src/vm/properties.h (properties_postinit): Changed signature. (properties_system_add): Removed. [ENABLE_JAVASE] (properties_system_add_all): Added. * src/native/vm/gnu_classpath_VMSystemProperties.c (preInit): Moved implementation to properties. * src/vm/vm.c (vm_create): Call properties_postinit. 2006-11-15 17:46 twisti * src/vm/vm.c (vm_create): Don't initialize java/lang/System explicitely. 2006-11-15 16:25 twisti * configure.ac (--enable-java): Added. 2006-11-15 15:52 twisti * src/vm/jit/parse.c (parse): Added missing semi-colon. 2006-11-15 15:47 edwin * src/vm/jit/icmdtable.inc (CHECKNULL_POP): Removed. * src/vm/jit/verify/typecheck-stackbased-gen.inc: Regenerated. * src/vm/jit/verify/typecheck-variablesbased-gen.inc: Likewise. 2006-11-15 15:42 twisti * src/vm/jit/jit.h (ICMD_CHECKNULL_POP): Removed. * src/vm/jit/parse.c: Likewise. * src/vm/jit/show.c: Likewise. 2006-11-15 15:30 twisti Reverted patch 5890. * src/vm/jit/jit.h: Reverted. * src/vm/jit/alpha/codegen.c: Likewise. * src/vm/jit/i386/codegen.c: Likewise. * src/vm/jit/mips/codegen.c: Likewise. * src/vm/jit/powerpc/codegen.c: Likewise. * src/vm/jit/powerpc64/codegen.c: Likewise. * src/vm/jit/sparc64/codegen.c: Likewise. * src/vm/jit/x86_64/codegen.c: Likewise. * src/vm/jit/intrp/codegen.c: Likewise. * src/vm/jit/show.c: Likewise. * src/vm/jit/stack.c: Likewise. * src/vm/jit/allocator/simplereg.c: Likewise. * src/vm/jit/verify/typecheck-stackbased-gen.inc: Likewise. * src/vm/jit/verify/typecheck-variablesbased-gen.inc: Likewise. 2006-11-15 13:44 tbfg * src/vm/jit/powerpc64/linux/md-abi.c (md_param_alloc): Fixed preallocation. * src/vm/jit/powerpc64/asmpart.S (asm_vm_call_method): Fixed argument handling. 2006-11-15 12:25 twisti * src/vm/jit/jit.h (ICMD_CHECKNULL): Renamed to ICMD_CHECKNULL_POP. * src/vm/jit/alpha/codegen.c: Likewise. * src/vm/jit/i386/codegen.c: Likewise. * src/vm/jit/mips/codegen.c: Likewise. * src/vm/jit/powerpc/codegen.c: Likewise. * src/vm/jit/powerpc64/codegen.c: Likewise. * src/vm/jit/sparc64/codegen.c: Likewise. * src/vm/jit/x86_64/codegen.c: Likewise. * src/vm/jit/intrp/codegen.c: Likewise. * src/vm/jit/stack.c: Likewise. * src/vm/jit/show.c: Likewise. * src/vm/jit/allocator/simplereg.c: Likewise. * src/vm/jit/verify/typecheck-stackbased-gen.inc (ICMD_CHECKNULL): Removed. * src/vm/jit/verify/typecheck-variablesbased-gen.inc: Likewise. 2006-11-14 21:56 twisti * src/jit/verify/typecheck-stackbased.c (mm/memory.h): Added. * src/jit/powerpc/emit.c (mm/memory.h): Likewise. * src/signal.c (mm/memory.h): Likewise. 2006-11-13 21:43 tbfg * src/vm/jit/powerpc64/linux/md-abi.c (md_param_alloc): Began fixing ABI issues. It is not correct now, but fptest runs now. Remaining issues in java<->native mainly stack offsets. * src/vm/jit/powerpc64/emit.c (emit_load): Removed M_ILD case. (emit_store): Removed M_FST case. There is no M_FST expect for accessing c structs, internally everything is done using M_DLD and M_DST, M_FST would convert the values. * src/vm/jit/powerpc64/codegen.c (codegen): Removed all M_FST and M_FLD. * src/vm/jit/powerpc64/asmpart.S (asm_vm_call_method): Fixed argument passing on stack. 2006-11-12 15:42 edwin * src/vm/jit/verify/typecheck-variablesbased-gen.inc: Regenerated. 2006-11-12 15:41 edwin * src/vm/jit/icmdtable.inc: Activate INLINE_START and INLINE_END. 2006-11-12 15:33 edwin * src/vm/linker.c (inline_debug_log): Added variable reference. (linker_overwrite_method): Factored out overwriting into this function, update method flags and check assumptions when overwriting. (link_class_intern): Use linker_overwrite_method. Invalidate code of methods that makes broken assumptions. * src/vm/method.c (inline_debug_log): Only use for ENABLE_INLINING. (method_add_to_worklist): Allocate items with NEW. 2006-11-12 15:14 edwin * src/vm/method.h (method_assumption): New struct. (method_worklist): New struct. (methodinfo): Added fields `overwrites` and `assumptions`. (method_add_assumption_monomorphic): Added prototype. (method_break_assumption_monomorphic): Likewise. * src/vm/method.c (inline_debug_log): Added variable reference. (method_add_to_worklist): New function. (method_add_assumption_monomorphic): Likewise. (method_break_assumption_monomorphic): Likewise. 2006-11-12 15:01 edwin * src/cacaoh/headers.c (inline_debug_log): Added dummy variable. 2006-11-12 15:00 edwin * src/vm/loader.c (load_method): Set ACC_METHOD_MONOMORPHIC and ACC_METHOD_IMPLEMENTED flags. 2006-11-12 13:55 edwin * src/vm/jit/replace.c (replace_me): Recompile replacement methods. 2006-11-12 13:54 edwin * src/vm/jit/replace.c (replace_create_replacement_point): Use the ICMD id as id for replacement points. (replace_replacement_point_println): Print the rplpoint id. 2006-11-12 13:52 edwin * src/vm/jit/replace.c (replace_source_frame_println): Print position id. * src/vm/jit/replace.c (replace_pop_activation_record): Subtract one from the return address so we don't hit the following replacement point. 2006-11-12 13:51 edwin * src/vm/jit/replace.c (replace_write_executionstate): Added some asserts. 2006-11-12 13:50 edwin * src/vm/jit/replace.c: Cleaned up debugging prints. 2006-11-12 13:47 edwin * src/vm/jit/replace.c (replace_create_replacement_points): Handle javaindex == UNUSED. 2006-11-12 13:46 edwin * src/vm/jit/jit.h, src/vm/jit/jit.c (jit_invalidate_code): New function. 2006-11-12 13:40 edwin * src/vm/jit/jit.c (jit_recompile): Some cleanups. 2006-11-12 13:39 edwin * src/vm/jit/i386/md.c (md_patch_replacement_point): Deactivated debugging print. * src/cacaoh/headers.c (jit_invalidate_code): Added stub. 2006-11-12 13:38 edwin * src/vm/jit/inline/inline.c (emit_inlining_prolog): Set javaindex UNUSED for generated STOREs. Include local variables in stackvars for insinfo_inline. Copy instruction id to INLINE_START. (inline_clone_instruction): Check for javaindex == UNUSED. (rewrite_method): Set javaindex UNUSED for generated STOREs. (inline_inline_intern): Removed some testing code. 2006-11-12 13:31 edwin * src/vm/jit/parse.c, src/vm/jit/parse.h (Changes): Merged with Authors. 2006-11-12 13:21 edwin * src/vm/jit/jit.h (INS_FLAG_ID_SHIFT, INS_FLAG_ID_MASK): Added. We add an instruction id to the flags field. This is a first attempt to obtain an id for ICMDs that is not dependent on any optimizations or transformations in the compiler. The id is not the same as the bytecode PC, but it has a fixed relation to the bytecode PC, so it should be sufficient at least for replacement. This is an intermediate solution with serious shortcommings, and should be replaced by a true ICMD-to- bytecode-PC mapping in the future. (For example, the id uses up all the free bits in the flags field, and it is not protected against overflow.) * src/vm/jit/parse.h, src/vm/jit/parse.c: Set the instruction id, and do not overwrite it when setting other flags. * src/vm/jit/stack.c: Do not clear the instruction id. * src/vm/jit/show.c (show_basicblock): Display the instruction id. 2006-11-12 12:57 twisti * src/vm/jit/powerpc64/codegen.c (codegen): Fixed ICMD_BALOAD, use correct java_bytearray type. 2006-11-12 12:55 twisti * src/vm/jit/powerpc/codegen.c (codegen): Fixed ICMD_BALOAD, use correct java_bytearray type. 2006-11-12 12:54 edwin * src/vm/jit/parse.h: Fixed typos. 2006-11-11 19:26 ajordan * src/vm/jit/sparc64/*: implemented patching (partly), adherent fixes. 2006-11-11 18:45 twisti * src/vm/jit/alpha/codegen.c (codegen): Use emit_array_checks. 2006-11-11 18:34 twisti * src/vm/jit/alpha/codegen.c (codegen): Replaced gen_bound_check by emit_arrayindexoutofbounds_check. 2006-11-11 18:31 twisti * src/vm/jit/alpha/emit.c (vm/options.h): Added. (emit_arrayindexoutofbounds_check): New function. (emit_arraystore_check): Likewise. (emit_classcast_check): Likewise. (emit_classcast_check): Likewise. (emit_nullpointer_check): Likewise. * src/vm/jit/alpha/codegen.c (codegen): Removed patch-NOPs generation, replaced gen_nullptr_check with emit_nullpointer_check. (createnativestub): Removed patch-NOPs generation. * src/vm/jit/alpha/codegen.h (gen_nullptr_check): Removed. (PATCHER_NOPS): Added. * src/vm/jit/alpha/patcher.c (patcher_get_putfield): Use opt_shownops instead of opt_showdisassemble. (patcher_invokevirtual): Likewise. (patcher_invokeinterface): Likewise. (patcher_checkcast_instanceof_interface): Likewise. * src/vm/jit/emit-common.c (emit_array_checks): Added [__ALPHA__]. * src/vm/jit/codegen-common.c (codegen_add_patch_ref): Likewise. 2006-11-11 17:08 edwin * src/vm/jit/tools/genoffsets.c (executionstate): Renamed to executionstate_t. * src/vm/jit/asmpart.h: Likewise. * src/vm/jit/show.c (show_variable_intern): New function. Does not append ' '. Regard variables above vartop as invalid. (show_method): Only show variables up to vartop. (show_inline_info): New function. (show_basicblock): Show right number of javalocals, show inlining info at the start of blocks. (show_variable): Moved body to show_variable_intern. (show_icmd): Use show_inline_info. * src/vm/jit/inline/inline.c: Handle javalocals. * src/vm/jit/i386/codegen.c (codegen): Handle replacement points for INLINE_START, RETURN and INVOKEs. * src/vm/jit/replace.c: Many changes for making replacement work over multiple stack frames. * src/vm/jit/replace.h: Likewise. * src/vm/jit/jit.h (insinfo_inline): Added fields. (basicblock): Added field `inlineinfo`. 2006-11-11 17:05 twisti * src/vm/jit/alpha/codegen.c (codegen): Renamed codegen_addpatchref to codegen_add_patch_ref and codegen_addreference to codegen_add_branch_ref. (createnativestub): Likewise. 2006-11-11 16:56 twisti * src/vm/jit/alpha/md.c (md_codegen_patch_branch): New function. * src/vm/jit/alpha/emit.c (emit_exception_stubs): Use md_codegen_patch_branch. * src/vm/jit/alpha/codegen.c (codegen): Use codegen_resolve_branchrefs. * src/vm/jit/alpha/codegen.h (gen_resolvebranch): Removed. 2006-11-11 16:44 twisti * configure.ac: Support mipsel architectures. 2006-11-11 14:28 twisti * src/vm/jit/codegen-common.c (codegen_add_patch_ref): Added [__X86_64__] for NOP-generation. 2006-11-10 16:41 twisti * src/vm/jit/x86_64/codegen.c (codegen): Use codegen_resolve_branchrefs, removed patcher NOP generation, renamed codegen_addpatchref to codegen_add_patch_ref. (createnativestub): Likewise. * src/vm/jit/x86_64/codegen.h (PATCHER_NOPS): Defined. * src/vm/jit/x86_64/patcher.c (patcher_get_putstatic): Use opt_shownops instead of opt_showdisassemble. (patcher_get_putfield): Likewise. (patcher_putfieldconst): Likewise. (patcher_aconst): Likewise. (patcher_builtin_multianewarray): Likewise. (patcher_builtin_arraycheckcast): Likewise. (patcher_invokestatic_special): Likewise. (patcher_invokeinterface): Likewise. (patcher_checkcast_instanceof_flags): Likewise. (patcher_checkcast_instanceof_interface): Likewise. (patcher_checkcast_class): Likewise. (patcher_instanceof_class): Likewise. (patcher_resolve_native): Likewise. 2006-11-10 12:32 twisti * src/vm/jit/x86_64/md.c (md_codegen_patch_branch): New function. * src/vm/jit/x86_64/emit.c (emit_exception_stubs): Use md_codegen_patch_branch. 2006-11-09 15:27 twisti * src/vm/jit/powerpc/codegen.c (codegen): Use codegen_add_branch_ref, removed opt_shownops code. (createnativestub): Likewise. * src/vm/jit/powerpc/codegen.h (PATCHER_NOPS): Added. * src/vm/jit/mips/codegen.h (PATCHER_NOPS): Removed opt_shownops check. * src/vm/jit/codegen-common.c (codegen_add_patch_ref): Check for opt_shownops, added [__POWERPC__]. 2006-11-09 10:52 twisti * src/vm/jit/powerpc/emit.c (vm/options.h): Added. (emit_nullpointer_check): New function. (emit_arrayindexoutofbounds_check): Likewise. (emit_exception_stubs): Use md_codegen_patch_branch. * src/vm/jit/powerpc/md.c (vm/jit/powerpc/codegen.h): Added. (md_codegen_patch_branch): New function. * src/vm/jit/powerpc/codegen.c (codegen): Use codegen_resolve_branchrefs, use opt_shownops, removed buggy ICMD_LCMP implementation (i'll add a new one if i find some time), use exception emit_* functions. (createnativestub): Use opt_shownops. * src/vm/jit/powerpc/patcher.c (patcher_get_putfield): Use opt_shownops. (patcher_invokevirtual): Likewise. (patcher_invokeinterface): Likewise. (patcher_checkcast_instanceof_interface): Likewise. * src/vm/jit/powerpc/codegen.h (gen_nullptr_check): Removed. (gen_bound_check): Likewise. (M_BRAMASK): Renamed to M_BMASK. (M_BRMASK): Renamed to M_BCMASK. (M_BRA): Renamed to M_B and hardcoded the opcode. (M_BRAC): Renamed to M_BC and hardcoded the opcode. (gen_resolvebranch): Removed. * src/vm/jit/emit-common.c (emit_array_checks): New function. * src/vm/jit/emit-common.h (emit_array_checks): Added. 2006-11-09 10:23 twisti * src/vm/jit/stacktrace.c (stacktrace_add_method): Get codeinfo from data segment. 2006-11-09 09:59 tbfg * src/vm/jit/powerpc64/linux/md-abi.h: Changed ABI for float arguments. * src/vm/jit/powerpc64/linux/md-asm.h: Likewise. * src/vm/jit/powerpc64/linux/md-abi.c: Likewise. * src/vm/jit/powerpc64/asmpart.S (asm_vm_call_method): Various argument handling fixes. * src/vm/jit/powerpc64/codegen.h (M_BRAC): Renamed to M_BC (M_BRA): Renamed to M_B (M_BRACMASK): Renamed to M_BCMASK. (M_BRAMASK): Renamed to M_BMASK. * src/vm/jit/powerpc64/md.c (md_codegen_patch_branch): Use M_BCMASK and M_BMASK instead of hardcoded masks. 2006-11-09 09:54 twisti * src/vm/jit/powerpc/linux/md-os.c (vm/jit/profile/profile.h): Changed to vm/jit/optimizing/profile.h. (md_signal_handler_sigsegv): If faulting address is not equal 0, try to dump a tsacktrace and exit. 2006-11-08 22:02 twisti * NEWS: Added release 0.98. 2006-11-08 22:00 twisti * src/vm/method.h (methodinfo): Added signature. * src/vm/field.h (fieldinfo): Added signature. * src/vm/loader.c (load_method): Load signature attribute. (load_field): Likewise. * src/native/vm/java_lang_reflect_Method.c (getSignature): Implemented. * src/native/vm/java_lang_reflect_Field.c (getSignature): Likewise. 2006-11-08 20:34 edwin * src/vm/jit/code.h (codeinfo): Added field stackframesize. * src/vm/jit/code.c (code_get_stack_frame_size): Return code->stackframesize. * src/vm/jit/replace.c (replace_create_replacement_points): Set code->stackframesize. (replace_read_executionstate): Read stack types from rplallocs. (replace_write_executionstate): Check stack types. (replace_pop_activation_record): New function. (replace_me): Added some temporary code for testing. (replace_executionstate_println): Use executionstate.code. (java_value_print): New function. (replace_sourcestate_println): Print values prettily. * src/vm/jit/replace.h (executionstate): Added field `code`. (sourcestate): Added field `javastacktype`. (replace_pop_activation_record): New function. (replace_executionstate_println): Changed arguments. 2006-11-08 20:27 twisti * src/vm/exceptions.c (new_nullpointerexception): Renamed to exceptions_new_nullpointerexception. * src/vm/exceptions.h: Likewise. * src/vm/jit/stacktrace.c: Likewise. * src/cacaoh/headers.c: Likewise. 2006-11-08 13:33 tbfg * src/vm/jit/powerpc64/codegen.h (gen_resolvebranch): Removed. * src/vm/jit/powerpc64/codegen.c (codegen): Replaced gen_resolvebranch with md_codegen_patch_branch. * src/vm/jit/powerpc64/md.c (md_codegen_patch_branch): Prevent AA and LK overwrites for b. 2006-11-08 13:03 tbfg * src/vm/jit/powerpc64/md.c (md_codegen_patch_branch): Added. 2006-11-07 09:06 twisti * src/vm/jit/i386/md.c (md_codegen_patch_branch): New function. * src/vm/jit/i386/emit.c (emit_exception_stubs): Use md_codegen_patch_branch. * src/vm/jit/i386/codegen.c (codegen): Use codegen_resolve_branchrefs. * src/vm/jit/i386/codegen.h (gen_resolvebranch): Removed. 2006-11-07 08:51 twisti * src/vm/jit/codegen-common.h (codegen_resolve_branchrefs): Added. 2006-11-06 21:12 twisti * jit/mips/emit.c (emit_patcher_stubs): Handle displacement overflows. * jit/mips/codegen.c (codegen): Removed patcher NOPs generation. (createnativestub): Likewise. * jit/mips/codegen.h (PATCHER_CALL_INSTRUCTIONS): Defined. (PATCHER_CALL_SIZE): Changed to 5 * 4; (PATCHER_NOPS): Defined. * jit/mips/patcher.c (patcher_wrapper): Restore original instructions. (patcher_get_putstatic): Don't restore original code. (patcher_get_putfield): Likewise. (patcher_aconst): Likewise. (patcher_builtin_multianewarray): Likewise. (patcher_builtin_arraycheckcast): Likewise. (patcher_invokestatic_special): Likewise. (patcher_invokevirtual): Likewise. (patcher_invokeinterface): Likewise. (patcher_checkcast_instanceof_flags): Likewise. (patcher_checkcast_interface): Likewise. (patcher_instanceof_interface): Likewise. (patcher_checkcast_instanceof_class): Likewise. (patcher_clinit): Likewise. (patcher_athrow_areturn): Likewise. (patcher_resolve_native): Likewise. * jit/mips/asmpart.S (asm_patcher_wrapper): Handle bigger patcher stub stack. * jit/codegen-common.c (codegen_add_patch_ref): Generate NOPs, if requested. 2006-11-06 17:13 twisti * src/vm/jit/codegen-common.c (toolbox/list.h): Added. (codegen_addreference): Renamed to codegen_add_branch_ref, use md_codegen_patch_branch instead of gen_resolvebranch. (codegen_resolve_branchrefs): New function. (codegen_addpatchref): Renamed to codegen_add_patch_ref. * src/vm/jit/codegen-common.h (codegen_addreference): Renamed to codegen_add_branch_ref. (codegen_resolve_branchrefs): New function. (codegen_addpatchref): Renamed to codegen_add_patch_ref. * src/vm/jit/dseg.h (toolbox/list.h): Added. * src/vm/jit/mips/emit.c (vm/options.h): Added. (emit_arithmetic_check): New function. (emit_arrayindexoutofbounds_check): Likewise. (emit_arraystore_check): Likewise. (emit_classcast_check): Likewise. (emit_nullpointer_check): Likewise. (emit_exception_check): Likewise. (emit_exception_stubs): Use md_codegen_patch_branch instead of gen_resolvebranch. * src/vm/jit/mips/md.c (vm/vm.h): Added. (md_codegen_patch_branch): New function. * src/vm/jit/mips/codegen.c (codegen): Use new emit_* functions, use opt_shownops instead of opt_showdissasemble. (createnativestub): Likewise. * src/vm/jit/mips/codegen.h (gen_nullptr_check): Removed. (gen_bound_check): Likewise. (gen_div_check): Likewise. (gen_resolvebranch): Likewise. * src/vm/jit/mips/patcher.c: Use opt_shownops instead of opt_showdissasemble. (patcher_checkcast_instanceof_interface): Split into two functions: patcher_checkcast_interface and patcher_instanceof_interface. * src/vm/jit/patcher.h (patcher_checkcast_interface): Added. (patcher_instanceof_interface): Added. * src/vm/jit/emit-common.h (emit_arithmetic_check): Added. (emit_arrayindexoutofbounds_check): Likewise. (emit_arraystore_check): Likewise. (emit_classcast_check): Likewise. (emit_nullpointer_check): Likewise. (emit_exception_check): Likewise. 2006-11-06 16:38 tbfg * src/vm/jit/powerpc64/codegen.c (codegen): Various more fixes all over the place. jctest is now successfull for ppc64. * src/vm/jit/powerpc64/codegen.h (M_DIV): Changed used opcode. (M_SLL_IMM): Fixed. 2006-11-06 16:17 edwin * src/vm/jit/replace.c (replace_create_replacement_point): New function. (replace_create_replacement_points): Create replacement points for INVOKE* and *RETURN instructions. (replace_read_executionstate): Fixed loop. (replace_write_executionstate): Fixed loop. (replace_sourcestate_println): Adapted to new source state layout. 2006-11-05 23:17 edwin * src/vm/jit/i386/codegen.c (codegen): Create replacement points after the final allocations. * src/vm/jit/jit.c (jit_compile_intern): Do not create replacement points before the codegen is called. 2006-11-05 23:11 edwin * src/vm/jit/codegen-common.h (codegendata): Removed maxlocals. This is now in jitdata. * src/vm/jit/codegen-common.c (codegen_setup): Removed cd->maxlocals. * src/vm/jit/replace.c: Move towards exact replacement/GC points. * src/vm/jit/replace.h: Likewise. * src/vm/jit/optimizing/lsra.h: Use jd->maxlocals. * src/vm/jit/optimizing/lifetimes.c: Likewise. * src/vm/jit/optimizing/ssa.c: Likewise. * src/vm/jit/show.c: Likewise. * src/vm/jit/verify/typecheck.c: Likewise. * src/vm/jit/loop/analyze.c: Likewise. * src/vm/jit/inline/inline.c: Likewise. * src/vm/jit/allocator/lsra.c: Likewise. * src/vm/jit/allocator/simplereg.c: Likewise. * src/vm/jit/allocator/liveness.c: Likewise. * src/vm/jit/jit.c: Likewise. * src/vm/jit/show.h (show_allocation): Made global. * src/vm/jit/show.c: Likewise. 2006-11-05 22:47 edwin * src/vm/jit/jit.c (jit_jitdata_new): Initialize jd->maxlocals. 2006-11-05 22:46 edwin * src/vm/jit/jit.h (jitdata): Added maxlocals field. 2006-11-05 21:43 twisti * src/vm/options.c (opt_shownops): Added. * src/vm/options.h (opt_shownops): Likewise. * src/vm/vm.c (usage): Added -so help. (vm_create): Added opt_shownops handling. 2006-11-05 21:27 edwin * src/vm/jit/jit.h (INS_FLAG_RETADDR): Added flag for marking ASTOREs of returnAddresses. * src/vm/jit/stack.c (stack_reanalyse_block): Invalidate target of ASTORE with returnAddress. (stack_analyse): Likewise. 2006-11-05 21:23 twisti * src/vm/utf8.c (utf_Signature): Added. (utf8_init): Initialize utf_Signature. * src/vm/utf8.h (utf_Signature): Added. 2006-11-05 21:18 twisti * src/vm/loader.c (load_attributes): Load Signature attribute. * src/vm/class.h (classinfo): Added signature. * src/native/vm/java_lang_VMClass.c (getClassSignature): Implemented. 2006-11-05 21:14 edwin * src/vm/jit/show.c (show_basicblock): Show javalocals. (show_variable_array): Made it NULL-safe, show UNUSED entries. 2006-11-05 20:17 edwin * src/vm/jit/show.c (show_icmd): Show javaindex for *STORE. 2006-11-05 20:07 edwin * src/vm/jit/jit.h (s3_operand_t): Added field javaindex. (INS_FLAG_KILL_PREV): New flag. (INS_FLAG_KILL_NEXT): New flag. (basicblock): Added field javalocals. This points to the mapping from Java bytecode locals to cacao variables at the beginning of the block. * src/vm/jit/stack.c (Changes): Merged with Authors. (stackdata_t): Added fields maxlocals and javalocals. (stack_clone_block): Initialize javalocals. (stack_create_locals): New function. (stack_merge_locals): New function. (stack_create_invars): Use stack_create_invars. (stack_create_invars_from_outvars): Likewise. (stack_check_invars): Use stack_merge_locals. (stack_check_invars_from_outvars): Likewise. (stack_reanalyse_block): Maintain javalocals mapping. (stack_init_javalocals): New function. (stack_analyse): Maintain javalocals mapping. (stack_verbose_show_block): Show javalocals. (stack_verbose_block_enter): Distinguish block cloning and re-analysing. (stack_verbose_show_state): New function. 2006-11-05 19:49 edwin * src/vm/jit/stack.c (COPY_VAL_AND_TYPE): Fix: Only copy vv for TYPE_RET (and later for other constants). Otherwise the allocation of PREALLOC variables can be overwritten when re-analysing a block. 2006-11-05 19:45 edwin * src/vm/jit/show.c (show_method): Show maxinterfaces only for stage >= SHOW_STACK. (show_variable): Show allocation for PREALLOC variables. 2006-11-05 16:58 michi * src/vm/jit/stacktrace.h: Added stacktracecontainer. * src/vm/jit/stacktrace.c (stacktrace_fillInStackTrace): Now returns stacktracecontainer as wrapper for stacktracebuffer and entries. * src/native/vm/java_lang_VMThrowable.c: Undoes the wrapping mentioned above. 2006-11-05 15:47 edwin * src/vm/jit/replace.c (replace_create_replacement_points): Partially ported to new IR. * src/vm/jit/i386/codegen.c (codegen): Reactivate code for replacement points. * src/vm/jit/jit.c (jit_compile_intern): Likewise. 2006-11-05 10:40 edwin * src/vm/jit/inline/inline.c: Ported to the new IR. There are some checkins missing to make it linkable, though. * src/vm/jit/inline/inline_debug.inc: Likewise. 2006-11-05 10:31 edwin * src/vm/global.h (ACC_METHOD_IMPLEMENTED): Added. (ACC_METHOD_MONOMORPHIC): Added. 2006-11-05 10:22 edwin * src/vm/jit/jit.h (jitdata): New fields maxinterfaces, returnblock, returncount, branchtoentry, branchtoend. * src/vm/jit/jit.c (jit_jitdata_new): Initialize new fields. * src/vm/jit/parse.c (parse_mark_exception_boundaries): Set branchtoend. (parse): Set branchtoentry. * src/vm/jit/stack.c (stack_analyse): Set jd->maxinterfaces, returncount, and returnblock. * src/vm/jit/allocator/simplereg.c (simplereg_allocate_interfaces): Use jd->maxinterfaces. (simplereg_allocate_temporaries): Likewise. * src/vm/jit/show.c (show_method): Show the new fields. Use jd->maxinterfaces. Show invalid variable indices. Show inline info. 2006-11-05 09:52 edwin * src/vm/jit/i386/codegen.c (codegen): Reactivated code for inlining. 2006-11-04 23:42 edwin * src/vm/jit/jit.h (jitdata): Clarified comment of isleafmethod. 2006-11-04 23:37 edwin * src/vm/jit/jit.c (jit_jitdata_new): Initialize jd->isleafmethod depending on whether the method needs synchronization. * src/vm/jit/parse.c (parse): Initialization of jd->isleafmethod has been moved to jit_jitdata_new. 2006-11-04 23:29 edwin * src/vm/jit/jit.h, src/vm/jit/jit.c (jit_jitdata_new): Made global. 2006-11-04 23:24 edwin * src/vm/loader.c (load_newly_created_array): Explicitly zero the allocated methodinfo array. 2006-11-04 23:13 edwin * src/vm/jit/stack.c (stack_change_to_tempvar): Fix: Only replace pass-through variables at the right stack depth. Otherwise the IR can become inconsistent, for example a temporary variable could be used more than once. 2006-11-04 22:40 edwin * src/vm/jit/stack.c (stack_reanalyse_block): Relocate dst.varindex for ICMD_JSR (even if it is not used, it keeps the IR consistent). 2006-11-04 22:01 edwin * src/mm/memory.c: Added ENABLE_MEMCHECK code: (mem_alloc): Prepared for poisoning memory. (mem_realloc): Invalidate freed memory. (mem_free): Invalidate freed memory. (dump_check_canaries): New function. (dump_alloc): Added canaries, record allocation. (dump_realloc): Invalidate freed memory. (dump_release): Check canaries, invalidate freed memory. * src/mm/memory.h (dump_allocation_t): New struct. (dumpinfo_t): Added allocation list for ENABLE_MEMCHECK. * configure.ac (--enable-memcheck): Added configure flag. 2006-11-04 17:30 michi * src/mm/boehm.h: Renamed to gc-common.h * src/mm/gc-common.h: Added. * src/vm/builtin.c, src/vm/jit/mips/linux/md-os.c, src/vm/jit/mips/irix/md-os.c, src/vm/jit/stacktrace.c, src/vm/vm.c, src/native/tool/gennativetable.c, src/native/jni.c, src/native/vm/gnu_java_lang_management_VMThreadMXBeanImpl.c, src/native/vm/gnu_java_lang_management_VMMemoryMXBeanImpl.c, src/native/vm/java_lang_VMObject.c, src/native/vm/java_lang_VMRuntime.c, src/native/vm/gnu_java_lang_management_VMClassLoadingMXBeanImpl.c, src/native/jvmti/jvmti.c, src/mm/nogc.c, src/mm/boehm.c, src/mm/memory.h, src/threads/native/threads.c, src/cacaoh/headers.c, src/cacaoh/cacaoh.c: Changed include from "mm/boehm.h" to "mm/gc-common.h" * src/mm/Makefile.am: Added subdir and lib for cacao-gc * src/mm/cacao-gc: Added. * src/mm/cacao-gc/gc.c: Added. * src/mm/cacao-gc/Makefile.am: Added. * src/mm/cacao-gc/.cvsignore: Added. * src/threads/native/threads.c: Fixed include of boehms gc.h * src/vm/jit/mips/linux/md-os.c (md_init) [ENABLE_GC_BOEHM]: Added ifdef for boehm specific call. * src/vm/jit/mips/irix/md-os.c: Likewise. * src/vm/signal.c: Likewise. * configure.ac: Adapted buildsystem for new GC. Added cacao-gc. 2006-11-04 15:46 tbfg * src/vm/jit/powerpc64/emit.c (emit_verbosecall_enter): Removed unsued var. * src/vm/jit/powerpc64/codegen.c (codegen): Lots of arithmetic changes. * src/vm/jit/powerpc64/codegen.h (M_SLL): Converted to 64bit. (M_LSTX): Added. (gen_bound_check): Fixed. 2006-11-03 22:11 michi * src/vm/loader.c (load_class_from_classbuffer): Removed commented code which placed methodinfos onto the heap. 2006-11-03 15:40 tbfg checkcast testcase 2006-11-03 15:13 twisti * parisc/.cvsignore: New file. * parisc/linux/.cvsignore: Likewise. 2006-11-03 14:03 twisti * src/vm/jit/parisc/md-abi.h: New file. * src/vm/jit/parisc/md.c: Likewise. * src/vm/jit/parisc/arch.h: Likewise. * src/vm/jit/parisc/Makefile.am: Likewise. * src/vm/jit/Makefile.am (SUBDIRS): Added parisc. * configure.ac: Added parisc support. 2006-11-02 12:54 twisti * src/toolbox/list.c, src/toolbox/list.h (list_create_dump): New function. (list_first_unsynced): Likewise. (list_last_unsynced): Likewise. (list_next_unsynced): Likewise. (list_prev_unsynced): Likewise. 2006-11-02 12:50 twisti * src/Makefile.am (DIST_SUBDIRS): Compile mm first. (SUBDIRS): Likewise. 2006-11-02 10:21 twisti * src/vm/jit/dseg.h (patchref): Added comments. 2006-11-01 20:19 twisti * src/vm/jit/mips/codegen.c (codegen): Use new dseg function names. (createnativestub): Likewise. * src/vm/jit/mips/emit.c (emit_iconst): Likewise. (emit_lconst): Likewise. (emit_exception_stubs): Likewise. (emit_patcher_stubs): Likewise. (emit_verbosecall_enter): Likewise. (emit_verbosecall_exit): Likewise. * src/vm/jit/mips/codegen.h (M_INTMOVE): Wrap into do-while. 2006-10-31 22:02 twisti * src/vm/jit/Makefile.am (DIST_SUBDIRS): Forgot to remove ifconv. 2006-10-31 22:01 twisti * src/vm/jit/ifconv: Removed. * src/vm/jit/optimizing/ifconv.c: Added. * src/vm/jit/optimizing/ifconv.h: Likewise. * src/vm/jit/optimizing/Makefile.am (IFCONV_SOURCES): Added. (liboptimizing_la_SOURCES): Added IFCONV_SOURCES. * src/vm/jit/jit.c (vm/jit/ifconv/ifconv.h): Changed to vm/jit/optimizing/ifconv.h. * src/vm/jit/Makefile.am (IFCONV_LIB): Removed. * configure.ac (AC_CONFIG_FILES): Removed src/vm/jit/ifconv/Makefile. 2006-10-31 21:57 ajordan * src/vm/jit/sparc64/asmpart.S: added exception handling code. * src/vm/jit/sparc64/md-asm.h: Likewise. * src/vm/jit/sparc64/*: implemented createnativestub, added functions for param allocation following the ABI. 2006-10-31 21:35 twisti * src/vm/jit/reorder.c: Removed. * src/vm/jit/reorder.h: Likewise. * src/vm/jit/optimizing/reorder.c: Added. * src/vm/jit/optimizing/reorder.h: Likewise. * src/vm/jit/optimizing/Makefile.am (REORDER_SOURCES): Added. (liboptimizing_la_SOURCES): Added REORDER_SOURCES. * src/vm/jit/jit.c (vm/jit/reorder.h): Changed to vm/jit/optimizing/reorder.h. * src/vm/jit/Makefile.am (libjit_la_SOURCES): Removed reorder.[ch]. 2006-10-31 21:27 twisti * src/vm/jit/optimizing/Makefile.am (INCLUDES): Renamed to AM_CPPFLAGS. (LIBS): Added. 2006-10-31 20:26 twisti * src/vm/vm.c (vm/jit/profile/profile.h): Changed to vm/jit/optimizing/profile.h. (vm/jit/recompile.h) Changed to vm/jit/optimizing/recompile.h. 2006-10-31 20:11 twisti * src/vm/jit/optimizing/profile.c: Added. * src/vm/jit/optimizing/profile.h: Likewise. * src/vm/jit/optimizing/recompile.c: Likewise. * src/vm/jit/optimizing/recompile.h: Likewise. * src/vm/jit/optimizing/Makefile.am (INCLUDES): Added OS_DIR. (PROFILE_SOURCES): Added. (RECOMPILE_SOURCES): Added. (SSA_SOURCES): Added. * src/vm/jit/recompile.c: Removed. * src/vm/jit/recompile.h: Likewise. * src/vm/jit/profile: Likewise. * src/vm/jit/Makefile.am (SUBDIRS): Added optimizing. (PROFILE_LIB): Removed. (RECOMPILE_SOURCES): Likewise. * src/cacao/Makefile.am (GC_LIB): Removed. * src/mm/Makefile.am (DIST_DUBDIRS): Added boehm-gc. (GC_LIB): Added. * src/Makefile.am (DIST_SUBDIRS): Removed boehm-gc. (SUBDIRS): Likewise. (BOEHM): Removed. * src/threads/native/threads.c (boehm-gc/include/gc.h): Changed to mm/boehm-gc/include/gc.h. * src/cacaoh/Makefile.am (GC_LIB): Removed. * configure.ac (AC_CONFIG_FILES): Removed src/vm/jit/profile/Makefile. (AC_CONFIG_SUBDIRS): Changed src/boehm-gc to src/mm/boehm-gc. * autogen.sh: Changed path to boehm-gc. 2006-10-31 20:00 twisti * src/vm/exceptions.c (exceptions_handle_exception): Made identation correct. 2006-10-31 19:58 twisti * src/mm/boehm-gc/.cvsignore: Added some files. 2006-10-31 15:42 twisti * Moved boehm-gc from src/ to src/mm/. 2006-10-31 13:40 tbfg * src/vm/jit/powerpc64/codegen.c (codegen): Fixed parameter passing. Various fixes for many ICMD_*. * src/vm/jit/powerpc64/patcher.c (patcher_get_putfield): Fixed for longs. * src/vm/jit/powerpc64/asmpart.S (asm_vm_call_method): Fixed methodheader, exception handling now works. * src/vm/exceptions.c (exceptions_handle_exception): Indenting. 2006-10-31 10:16 twisti * configure.ac (AC_INIT): Changed version to 0.97+svn. (OPT_CFLAGS): Changed to -O0. 2006-10-31 10:15 twisti * NEWS: Forgot to commit the date for 0.97, grrrr. 2006-10-31 00:07 twisti * ChangeLog: Updated for release 0.97. 2006-10-30 23:52 twisti * configure.ac (AC_INIT): Changed version to 0.97. (--enable-threads): Removed green from help string. 2006-10-30 13:03 twisti * src/vm/jit/show.c (show_method): Removed debug output. (SHOW_INT_CONST): Removed long cast and print hex value additionally. (SHOW_LNG_CONST): Removed long long cast and print hex value additionally. Also added version for SIZEOF_VOID_P == 4. (SHOW_ADR_CONST): Added. (SHOW_FLT_CONST): Print hex value additionally. (SHOW_DBL_CONST): Likewise. Also added version for SIZEOF_VOID_P == 4. (show_icmd): Smaller changes. 2006-10-30 12:27 twisti * src/threads/native/threads.h (MUTEXSIM): Removed. (pthread_mutex_rec_t): Likewise. (pthread_mutex_init_rec): Likewise. (pthread_mutex_destroy_rec): Likewise. (pthread_mutex_lock_rec): Likewise. (pthread_mutex_unlock_rec): Likewise. * src/threads/native/threads.c (pthread_mutex_init_rec): Removed. (pthread_mutex_destroy_rec): Likewise. (pthread_mutex_lock_rec): Likewise. (pthread_mutex_unlock_rec): Likewise. (compiler_lock): Use pthread functions. (compiler_unlock): Likewise. (threads_cast_darwinstop): Warning fixes and use vm_abort. (threads_cast_darwinresume): Use vm_abort. (threads_cast_stopworld): Warning fixes. (pthreads_preinit) [!MUTEXSIM]: Removed code. 2006-10-30 11:52 edwin * src/vm/jit/intrp/intrp.h (Cell): Moved the typedef upward, so we can use it in other headers. (global_sp): Does not need the complex casts anymore. * src/threads/native/threads.h (threadobject): Made _global_sp a Cell*. * src/threads/native/threads.c: Likewise. 2006-10-30 11:21 edwin * src/mm/memory.h (ALIGN): Renamed to MEMORY_ALIGN. * src/mm/memory.c: Likewise. * src/vm/jit/dseg.c: Likewise. * src/vm/jit/parse.c: Likewise. * src/vm/jit/codegen-common.c: Likewise. * src/vm/linker.c: Likewise. * src/mm/nogc.c: Likewise. * src/cacaoh/headers.c: Likewise. 2006-10-30 11:04 edwin * src/threads/native/threads.c (threads_dump): Cast pthread_t to long for printing it. 2006-10-30 11:00 edwin * src/vm/jit/cfg.c (cfg_build): Removed set-but-not-used variable (m). * src/vm/jit/ifconv/ifconv.c (check): Likewise (cd). * src/vm/jit/stack.c (stack_reanalyse_block): Likewise (maythrow). (stack_analyse): Likewise (code, b_index). * src/vm/jit/show.c (show_basicblock): Likewise (m). * src/vm/jit/mips/emit.c (emit_copy): Likewise (rd). * src/vm/jit/parse.c (parse): Likewise (code). * src/vm/exceptions.c (exceptions_handle_exception): Likewise (framesize). 2006-10-30 10:32 edwin * src/vm/jit/verify/typecheck-common.c (typecheck_init_flags): Removed set-but-not-used variable `i`. 2006-10-30 10:31 edwin * src/vm/jit/verify/typecheck-builtins.inc: Removed set-but-not-used variable `cls`. 2006-10-30 10:15 edwin * src/vm/jit/alpha/codegen.c (codegen): Zero `uf` to avoid warning. 2006-10-30 00:45 edwin * src/vm/builtin.c (builtin_print_argument): Made logtextlen an in/out argument. Correctly reallocate logtext, increase logtextlen. (builtin_trace_args): Pass &logtextlen to builtin_print_argument. (builtin_displaymethodstop): Likewise. 2006-10-29 23:43 edwin * src/vm/jit/jit.h (stackelement): Removed the obsolete fields `typeinfo` and `regoff`. 2006-10-29 23:37 edwin * src/vm/jit/stack.c (stack_grow_variable_array): Zero the additional space when reallocating the jd->var array. * src/vm/jit/parse.c (parse_realloc_instructions): Zero the additional space when reallocating the instructions array. 2006-10-29 23:33 edwin * src/vm/jit/parse.c (parse): Fix in ICMD_TABLESWITCH: Put table into dump memory. 2006-10-29 23:23 edwin * NEWS: Typo fixed. 2006-10-29 16:21 edwin * src/vm/suck.c (stdlib.h): Include to avoid warning about `free`. 2006-10-29 16:14 edwin * src/vm/suck.c (suck_add_from_property): Use `free` to free memory coming out of the C library - it has not been allocated with M?NEW, so M?FREE is wrong here. 2006-10-29 14:49 twisti * src/vm/builtin.c (builtin_print_argument): Print float/double values with %g and addresses as hex. (builtin_trace_args): Fixed message length calclation. (builtin_displaymethodstop): Fixed bug: we only passed the long value. 2006-10-29 11:15 edwin * src/cacaoh/headers.c (vm_abort): Print the error message before aborting. 2006-10-28 19:40 twisti * NEWS: New news. 2006-10-28 19:26 twisti * src/vm/jit/dseg.c (dseg_find_float): Compare hex value. (dseg_find_double): Likewise. 2006-10-28 17:45 twisti * NEWS: Added some stuff. 2006-10-28 17:15 edwin * NEWS: Added news for CACAO 0.97. 2006-10-28 16:55 edwin * src/vm/jit/jit.c (stackreq): Fixed for DUP/SWAP instructions. The numbers for DUP2_X1 and DUP2_X2 were also wrong before the new IR had been introduced. The new IR in addition needs extra temps in some cases, thus the numbers before the 'plus' operators. 2006-10-28 16:51 edwin * src/vm/jit/stack.c (stack_analyse): Store vartop in jitdata. * src/vm/jit/show.c (show_method): Show number of variables. * tests/regression/jasmin/test_many_dup2_x2.j: New test. * tests/regression/jasmin/test_many_dup.j: Likewise. * tests/regression/jasmin/test_many_dup_x2.j: Likewise. * tests/regression/jasmin/test_many_swap.j: Likewise. * tests/regression/jasmin/test_many_dup2.j: Likewise. * tests/regression/jasmin/test_many_dup2_x1.j: Likewise. * tests/regression/jasmin/test_many_dup_x1.j: Likewise. * tests/regression/jasmin/Makefile.am: Added new tests. 2006-10-28 15:21 edwin * src/vm/jit/stack.c (stackdata_t): Added field varsallocated. (stack_grow_variable_array): Smarted memory allocation. (stack_analyse): Initialize sd.varsallocated. 2006-10-28 13:02 edwin * src/vm/access.c (ACCESS_ASSERT): Replaced with assert. Because of a mistake in the definition of ACCESS_DEBUG, ACCESS_ASSERT always was a NOP! (access_is_accessible_member): Fixed assertion. 2006-10-28 12:53 edwin * src/vm/loader.c (LOADER_ASSERT): Replaced with assert. 2006-10-28 12:49 edwin * src/vm/class.c (CLASS_ASSERT): Replaced by assert. 2006-10-28 12:47 edwin * src/vm/class.c (class_array_of): Release dump memory. (class_multiarray_of): Likewise. (class_get_classref_multiarray_of): Likewise. 2006-10-27 10:41 twisti * src/vm/vm.c: Renamed -Xglibj to -Xbootclasspath/c to match jamvm's option (Robert, Mark and I decided that once). (vm_create): Removed unnecessary k. #ifdef'd the profiling stuff. (vm_run): Removed commented code. * src/vm/options.c, src/vm/options.h [ENABLE_PROFILING] (opt_prof) (opt_prof_bb): Added. * src/vm/jit/jit.c (jit_compile) [ENABLE_PROFILING]: Added for opt_prof stuff. [ENABLE_VERIFIER]: Added for flag setting. * src/vm/jit/codegen-common.c (codegen_createnativestub) [ENABLE_PROFILING]: Added for opt_prof stuff. 2006-10-26 16:41 edwin * src/vm/jit/alpha/codegen.c (codegen): Declare variables at the start of codegen (uf, fi). 2006-10-26 12:05 twisti * src/vm/jit/powerpc/codegen.c (codegen): Made fieldinfo and unresolved_field fucntion variables, fieldtype was uninitialized for PUTFIELD. 2006-10-26 11:57 twisti * src/vm/jit/x86_64/codegen.c (codegen): Made fieldinfo and unresolved_field function variables (it makes the code more readable). 2006-10-26 11:47 edwin * src/vm/jit/alpha/codegen.c (codegen): Fixed ICMD_PUTFIELD: Set fieldtype before it is used. Fixed warnings. * src/vm/jit/mips/codegen.c (codegen): Prevent warnings. 2006-10-26 11:35 twisti * NEWS: Added some 0.97 news. 2006-10-26 11:30 twisti * src/vm/exceptions.c (exceptions_print_exception): Removed [!NDEBUG] condition, as we may need this function in the VM (e.g. recompile). * src/vm/jit/recompile.c (vm/exceptions.h): Added. (recompile_thread): Call exceptions_print_exception in exception case. 2006-10-26 11:29 edwin * src/vm/jit/intrp/codegen.c (codegen): Initialize uf to NULL for resolved fields, to avoid warnings. * src/vm/jit/intrp/engine.c (engine): Initialize classcastexception_object and arrayindexoutofbounds_index to avoid warnings. 2006-10-26 11:23 edwin * src/vm/jit/dseg.c (dseg_addlinenumber_inline_start): Read inline info from instruction, ported to new instruction format. (dseg_addlinenumber_inline_end): Likewise. 2006-10-26 11:19 edwin * src/vm/jit/show.c (show_icmd): Fixed warning fix. 2006-10-26 11:18 edwin * src/threads/native/threads.c (threads_table_dump): Fix warning (the function is currently unused, but may become handy again.) 2006-10-26 11:15 edwin * src/vm/jit/show.c (show_method): Fixed warning. (show_basicblock): Likewise. (show_icmd): Likewise. 2006-10-26 11:04 twisti * src/vm/jit/x86_64/md.h: Removed. * src/vm/jit/x86_64/Makefile.am (libarch_la_SOURCES): Removed md.h. * src/vm/jit/x86_64/codegen.c (md.h): Removed. (codegen): Warning fix. 2006-10-26 10:34 twisti * src/vm/jit/mips/md-abi.h: Fixed MIPS64 compilation and backported some MIPS32 stuff. 2006-10-26 10:09 twisti * src/vm/descriptor.h (paramdesc): We need a type for MIPS32, as the type in the allocated argument register may be different to the actual register (e.g. passing a float in an integer register). 2006-10-26 09:55 twisti * src/vm/jit/mips/codegen.c (codegen): More comment and brace changes. 2006-10-26 09:44 twisti * src/vm/jit/mips/codegen.c (codegen): Comment and brace changes. 2006-10-26 09:29 twisti * src/vm/jit/mips/md-asm.h: Renamed t8 to t4 and removed t9, as it's actually itmp3. * src/vm/jit/mips/asmpart.S: Likewise. 2006-10-25 14:26 tbfg * src/vm/jit/powerpc64/linux/md-abi.c (_ALIGN): Renamed to CACAO_ALIGN because of name clash with /usr/include/asm-ppc64/page.h. * src/vm/jit/powerpc64/emit.c (emit_lconst): Added. (emit_iconst): Reformatted. * src/vm/jit/powerpc64/codegen.c (codegen): Replaced all stackframesize with cd->stackframesize. Implemented ICMD_IF_LLT, ICMD_IF_LLE, ICMD_IF_LGE, ICMD_IF_LGT. * src/vm/jit/powerpc64/asmpart.S: Partially fixed exception path. (asm_cacheflush): Fixed. * src/vm/jit/powerpc64/codegen.h (LCONST): Implemented. * tests/if_tests.java: Added simple testcase for if and compare. 2006-10-24 23:24 edwin * src/vm/utf8.h, src/vm/utf8.c (utf8_safe_number_of_u2s): Modified to completely emulate the behaviour of the RI in case of truncated UTF-8 characters. This requires an extra strlen(text) beforehand. We still require zero-termination. We could drop that with a few extra changes, should we find other uses for these functions. (utf8_safe_convert_to_u2s): Likewise. * src/vm/string.c (javastring_safe_new_from_utf8): Pass number of bytes to the decoding functions. 2006-10-24 17:51 edwin * src/vm/utf8.c (utf8_safe_number_of_u2s): Skip only bytes beginning with high bits 10 in invalid sequences. (utf8_safe_convert_to_u2s): Likewise. 2006-10-24 16:41 edwin * src/vm/utf8.h, src/vm/utf8.c (utf8_safe_number_of_u2s): New function. (utf8_safe_convert_to_u2s): Likewise. * src/vm/stringlocal.h, src/vm/string.c (javastring_safe_new_from_utf8): New function. * src/native/jni.c (_Jv_JNI_NewStringUTF): Use the new functions for safe UTF-8 decoding. 2006-10-24 11:17 twisti * src/vm/jit/dseg.c (dseg_display): Rewritten. 2006-10-22 04:28 ajordan * src/vm/jit/sparc64/codegen.h: fixed M_SAVE. * src/vm/jit/sparc64/disass.c: configuring disass for big-endian. 2006-10-22 02:49 ajordan * src/vm/jit/sparc64/emit.c: Implemented trace enter/exit functions. * src/vm/jit/sparc64/codegen.c: Likewise. * src/vm/jit/sparc64/md.c: Implemented md_get_method_patch_address. * src/vm/jit/sparc64/asmpart.S(asm_call_jit_compiler): Fixed window handling * src/vm/jit/sparc64/disass.c: Fixed disassembly printing. * src/vm/jit/sparc64/md-abi.h: Minor changes/fixes. * src/vm/jit/sparc64/codegen.h: Likewise. * src/vm/jit/sparc64/md-asm.h: Likewise. 2006-10-22 00:38 edwin * src/vm/jit/jit.c (jit_asm_compile): Fixed xpc for extern stackframeinfo by subtracting 1 from the return address. This fixes stacktraces when exceptions are thrown out of the compiler. * tests/regression/extest.2output: Changed line numbers to the values same the RI returns, which are correct upon inspection of the Java code. 2006-10-21 15:06 edwin * src/vm/jit/parse.c (parse): Bugfix for -noverify: Do not make the variable array dependant on jd->flags, as this breaks stack_analyse. 2006-10-20 18:35 twisti * src/vm/jit/mips/codegen.c (md.h): Removed. * src/vm/jit/mips/md.h: Removed. * src/vm/jit/mips/Makefile.am (libarch_la_SOURCES): Removed md.h. 2006-10-20 14:53 twisti * src/vm/jit/jit.c (jit_init) [ENABLE_JIT]: Call stack_init only for JIT. [ENABLE_JIT] (jit_asm_compile): Only for JIT. * src/vm/jit/Makefile.am (SUBDIRS) [ENABLE_JIT]: Add allocator only for JIT. (libjit_la_SOURCES) [ENABLE_JIT]: Compile reg.[ch], replace.[ch] and stack.[ch] only for JIT. * src/cacaoh/headers.c [ENABLE_INTRP] (intrp_asm_abstractmethoderror): Added. 2006-10-20 14:26 twisti * src/vm/linker.c (link_class_intern): Handle AbstractMethodError for interpreter (missed this one in the last commit). 2006-10-20 14:22 twisti * src/vm/jit/intrp/asmpart.c (intrp_asm_abstractmethoderror): Added. * src/vm/jit/asmpart.h [ENABLE_INTRP] (intrp_asm_abstractmethoderror): Likewise. * src/vm/linker.c (linker_addinterface): Handle AbstractMethodError for interpreter. 2006-10-20 13:58 twisti * src/native/vm/gnu_classpath_VMSystemProperties.c (preInit): Removed unused ld_library_path. 2006-10-20 13:54 twisti * src/vm/suck.c (vm/vm.h): Added. (bootclasspath, classpath): Removed. (suck_add_from_property): Prefix bootclasspath with _Jv_. * src/vm/suck.h (bootclasspath, classpath): Removed. * src/vm/vm.c (_Jv_bootclasspath, _Jv_classpath) (_Jv_java_library_path): Added. (version): Prefix bootclasspath with _Jv_. (vm_create): Likewise, set _Jv_java_library_path to LD_LIBRARY_PATH before handling commandline options. * src/vm/vm.h (_Jv_bootclasspath, _Jv_classpath) (_Jv_java_library_path): Added. * src/native/vm/gnu_classpath_VMSystemProperties.c (preInit): Prefix bootclasspath and classpath with _Jv_, use _Jv_java_library_path for setting java.library.path. * src/cacao/cacao.c (main): First let dlopen try to open libjvm at it's default locations. * src/native/native.c (native_init): Likewise. * src/cacaoh/headers.c (_Jv_bootclasspath): Added. * contrib/setenvinstalled.in: Set LD_LIBRARY_PATH again. * contrib/setenvsource.in: Likewise. * tests/regression/native/Makefile.am (JAVAFLAGS): Removed -Djava.library.path=. (check): Set LD_LIBRARY_PATH. * tests/regression/codepatching/Makefile.am (check): Likewise. * tests/regression/Makefile.am: Likewise. 2006-10-20 13:09 twisti * src/vm/signal.c (signal_init): Added dummy allocation to install Boehm's signal handlers. * src/threads/native/threads.c (threads_preinit): Removed dummy allocation. * src/vm/vm.c (vm_create): Call threads_preinit before gc_init. * src/cacaoh/cacaoh.c (main): Likewise. 2006-10-20 12:00 twisti * src/vm/exceptions.c [ENABLE_JIT] (exceptions_handle_exception): Only required for JIT. 2006-10-20 00:37 ajordan * src/mm/memory.c: fixed typo in _no_threads_dumpinfo definition 2006-10-19 10:10 twisti * src/threads/native/threads.c (threads_interrupt_thread): Renamed to threads_thread_interrupt, send thread a SIGHUP singal to interrupt blocking system calls (thanks to Robert Schuster). (threads_dump): Removed threads_sleep call. * src/threads/native/threads.h (threads_interrupt_thread): Renamed to threads_thread_interrupt. * src/native/vm/java_lang_VMThread.c (interrupt): Likewise. * src/native/jvmti/jvmti.c (InterruptThread): Likewise. * src/vm/signal.c (signal_init): Register SIGHUP. (signal_handler_sighup): Added. 2006-10-19 09:32 twisti * src/vm/jit/stacktrace.c (stacktrace_dump_trace): Changed signature. * src/vm/jit/stacktrace.h: Likewise. * src/vm/jit/codegen-common.c (codegen_get_pv_from_pc): Pass threadobject to stacktrace_dump_trace. * src/vm/signal.c (signal_init): Don't register SIGUSR1. (signal_handler_sigusr1): Removed. * src/native/jni.h: Include GNU Classpath JNI header before we define our header. (localref_table): Forward typedef. * src/threads/native/threads.c (threads_dump): Pass threadobject to stacktrace_dump_trace. * src/cacaoh/headers.c (stacktrace_dump_trace): Added. 2006-10-19 09:27 twisti * src/threads/native/threads.h (threadobject, threads_table_entry_t) (threads_table_t): Forward typedef. (threadobject): Changed dumpinfo to dumpinfo_t. 2006-10-19 09:25 twisti * src/mm/memory.h (dumpblock): Postfixed with _t and moved before internal includes, as we have some problems with threadobject. (dumpinfo): Likewise. * src/mm/memory.c: Postfixed dumpblock and dumpinfo with _t. 2006-10-19 09:23 twisti * src/vm/jit/powerpc/codegen.c (codegen): Warning fixes. 2006-10-18 16:55 edwin * src/vm/jit/codegen-common.c (codegen_createnativestub): Initialize jd->flags to zero. 2006-10-18 16:27 edwin * tests/regression/jasmin/runtest: Removed debugging `tee TEST`. * tests/regression/jasmin/Makefile.am (CLEANFILES): Added file TESTSIA. 2006-10-18 16:19 edwin * tests/regression/jasmin/Makefile.am (SOURCE_FILES): Use EXTRA_DIST, instead. 2006-10-18 15:57 edwin * src/vm/jit/i386/linux/Makefile.am (noinst_HEADERS): Added md-asm.h. * src/vm/jit/i386/freebsd/Makefile.am (noinst_HEADERS): Likewise. 2006-10-18 15:27 twisti * src/vm/jit/Makefile.am (DIST_SUBDIRS): Added powerpc64. 2006-10-18 15:19 twisti * src/vm/jit/Makefile.am (DIST_SUBDIRS): Added optimizing. 2006-10-18 15:14 twisti * src/vm/jit/sparc64/Makefile.am (libarch_la_SOURCES): Removed md.h. 2006-10-18 15:09 twisti * src/vm/jit/i386/Makefile.am (libarch_la_SOURCES): Renamed md-emit.h to emit.h. 2006-10-18 15:04 twisti * configure.ac (AC_INIT): Changed to version 0.97rc. (CFLAGS): Changed to -O2. 2006-10-18 14:53 edwin * tests/regression/jasmin/Makefile.am: Temporarily disable failing tests for the release. * src/vm/jit/stack.c (stack_analyse): Check field type when creating a PUTFIELDCONST/PUTSTATICCONST instruction. 2006-10-16 09:59 edwin * src/vm/jit/parse.c (parse_resolve_exception_table): Do not use codegendata. (parse): Likewise. * src/vm/jit/stack.c (stack_analyse): Likewise. 2006-10-16 09:02 twisti * src/vm/jit/allocator/simplereg.c [ENABLE_STATISTICS] (simplereg_make_statistics): Don't print this INREGISTER stuff. 2006-10-16 08:53 twisti * src/vm/jit/jit.c (jit_compile_intern) [ENABLE_STATISTICS]: exceptiontablelength is now in jitdata. 2006-10-16 00:05 ajordan * src/vm/jit/sparc64/codegen.c: Ported to unified variables. * src/vm/jit/sparc64/emit.c: Likewise. * src/vm/jit/sparc64/md.c: Implemented md_codegen_get_pv_from_pc. * src/vm/jit/sparc64/codegen.h: Some fixes. * src/vm/jit/sparc64/asmpart.S: Likewise. 2006-10-15 22:44 edwin * src/vm/linker.c (link_class_intern): Removed unused variable. 2006-10-15 22:25 edwin * src/vm/jit/jit.h (exception_entry): New struct. (jitdata): Added exceptiontable fields. Cleaned up. * src/vm/exceptions.h (exceptionentry): Removed. * src/vm/jit/dseg.h (dseg_exception_entry): New struct. * src/vm/jit/stack.h (BLOCK_OF): Moved to parse.h. * src/vm/jit/parse.h (BLOCK_OF): Added. * src/vm/jit/codegen-common.h (codegendata): Removed exceptiontable and exceptiontablelength. * src/vm/loader.c (load_method): Renamed m->exceptiontable* to m->rawexceptiontable*. (load_class_from_classbuffer): Likewise. * src/vm/method.c (method_free): Likewise. * src/vm/method.h (methodinfo): Renamed m->exceptiontable* to m->rawexceptiontable*. (exceptiontable): Renamed to raw_exception_entry. Removed fields that are only used in jd->exceptiontable. * src/vm/jit/powerpc/codegen.c (codegen): Moved exceptiontable to jd, renamed struct exceptiontable to exception_entry. * src/vm/jit/sparc64/codegen.c (codegen): Likewise. * src/vm/jit/alpha/codegen.c (codegen): Likewise. * src/vm/jit/stack.c (stackdata_t): Likewise. (stack_analyse): Likewise. (stack_reanalyse_block): Likewise. * src/vm/jit/optimizing/graph.c (graph_add_exceptions): Likewise. * src/vm/jit/show.c (show_method): Likewise. * src/vm/jit/verify/typecheck-common.h (verifier_state): Likewise. * src/vm/jit/verify/typecheck.c (verify_basic_block): Likewise. * src/vm/jit/verify/typecheck-stackbased.c (typecheck_stackbased): Likewise. * src/vm/jit/mips/codegen.c (codegen): * src/vm/jit/loop/loop.h (LoopContainer): Likewise. * src/vm/jit/loop/analyze.c (analyze_nested): Likewise. (analyze_or_exceptions): Likewise. (update_internal_exceptions): Likewise. (create_static_checks): Likewise. (optimize_loops): Likewise. * src/vm/jit/inline/inline.c (test_inlining): Likewise. * src/vm/jit/allocator/lsra.c (lsra_add_exceptions): Likewise. * src/vm/jit/i386/codegen.c (codegen): Likewise. * src/vm/jit/powerpc64/codegen.c (codegen): Likewise. * src/vm/jit/intrp/codegen.c (codegen): Likewise. * src/vm/jit/schedule/schedule.h (M_SCHEDULE_SET_EXCEPTION_POINT): Likewise. * src/vm/jit/x86_64/codegen.c (codegen): Likewise. * src/vm/jit/jit.c (jit_compile_intern): Likewise. (jit_jitdata_new): Initialize exceptiontable fields. * src/vm/jit/codegen-common.c (codegen_setup): Removed exceptiontable fields. * src/vm/jit/parse.c (parse_mark_exception_boundaries): New function. (parse_resolve_exception_table): New function. (fillextable): Removed. (parse): Use parse_mark_exception_boundaries and parse_resolve_exception_table. Write the basicblockindex for the end marker block. * src/vm/jit/intrp/asmpart.c (exceptionentry): Renamed to dseg_exception_entry. * src/vm/exceptions.c (exceptions_handle_exception): Likewise. * src/vm/linker.c (link_class_intern): Do not resolve exception classes here. This is now done in parse.c. 2006-10-15 13:52 edwin * src/vm/jit/jit.h: Indentation cleanup. 2006-10-15 13:37 edwin * src/vm/jit/jit.h (flags_operand_t): Removed `fields` struct. It was not safe to use, as defined. 2006-10-15 13:19 edwin * src/vm/jit/jit.h (flags_operand_t): Removed unused argcount. (ACONST_LOAD): Removed. (ACONST_BUILTIN): Removed. 2006-10-15 12:59 edwin * src/vm/method.h (methodinfo): Removed c_block_nr. * src/vm/jit/jit.h (jitdata): Removed c_block_nr. (BASICBLOCK_INIT): Do not set bptr->nr here. * src/vm/jit/jit.c (jit_compile_intern): Renumber basic blocks after transformations. (jit_check_basicblock_numbers): Made stricter. * src/vm/jit/stack.c (stack_append_block): Set basic block numbers correctly. (stack_clone_block): Do not set bptr->nr here. * src/vm/jit/verify/typecheck.c (typestate_reach): Use the correct check for setting the repeat flag. (typecheck): Check basic block numbers. * src/vm/jit/verify/typecheck-stackbased.c (typecheck_stackbased): Check basic block numbers. * src/vm/jit/loop/analyze.c (copy_handler): Do not use c_block_nr. (create_static_checks): Likewise. * src/vm/jit/inline/inline.c (create_block): Likewise. * src/vm/jit/parse.c (parse): Likewise. 2006-10-15 12:20 edwin * src/vm/jit/jit.c (jit_renumber_basicblocks): New function. (jit_check_basicblock_numbers): Likewise. (jit_init): Removed obsolete variable `i`. * src/vm/jit/jit.h (jit_renumber_basicblocks): New function. (jit_check_basicblock_numbers): Likewise. 2006-10-14 19:12 twisti * src/native/jni.c (_Jv_JNI_DetachCurrentThread): Made --disable-threads-safe. 2006-10-13 18:29 edwin * tests/regression/jasmin/Makefile.am: Added new tests. 2006-10-13 18:25 edwin * src/vm/jit/verify/icmds.c: Check basic types of instance for field access. * src/vm/jit/verify/typecheck-fields.inc: Check basic type of value. * src/vm/jit/verify/typecheck-stackbased-gen.inc: Regenerated. * src/vm/jit/verify/typecheck-variablesbased-gen.inc: Likewise. * src/vm/jit/verify/typecheck.c (verify_fieldaccess): Define VERIFY_ERROR for the include file. * src/vm/jit/verify/typecheck-stackbased.c (VERIFY_ERROR): Fixed macro. * tests/regression/jasmin/test_verify_fail_putfieldconst_basic_type_instance.j, tests/regression/jasmin/test_verify_fail_getfield_basic_type_instance.j, tests/regression/jasmin/test_verify_fail_putfield_basic_type_value.j, tests/regression/jasmin/test_verify_fail_putstatic_basic_type_value.j, tests/regression/jasmin/test_verify_fail_putfieldconst_basic_type_value.j, tests/regression/jasmin/test_verify_fail_getfield_basic_type_value.j, tests/regression/jasmin/test_verify_fail_putfield_basic_type_instance.j, tests/regression/jasmin/test_verify_fail_putfield_basic_type_lookup.j, tests/regression/jasmin/test_verify_fail_getfield_basic_type_lookup.j, tests/regression/jasmin/test_verify_fail_putstaticconst_basic_type_value.j: New tests. * tests/regression/jasmin/runtest: Look for specified ICMDs in -sia output. 2006-10-13 17:06 tbfg * src/vm/jit/powerpc64/md.c (md_get_method_patch_address): Fixed comments. * src/vm/jit/powerpc64/codegen.c: Added credits. * src/vm/jit/powerpc64/asmpart.S (asm_handle_nat_exception): Fixed exception handling code. Added credits. 2006-10-13 16:30 edwin * src/vm/jit/verify/typecheck-fields.inc: Re-activate stack overflow checking. * src/vm/jit/verify/typecheck-common.h (verifier_state): Added field `stackceiling`. * src/vm/jit/verify/typecheck-stackbased.c (CHECK_STACK_DEPTH): Cleaned up. (CHECK_STACK_SPACE): Cleaned up. (typecheck_stackbased_verify_fieldaccess): Check for stack overflow. (typecheck_stackbased): Moved stackceiling into state. 2006-10-13 16:06 edwin * src/vm/jit/codegen-common.c (codegen_reg_of_var): Removed `inline` declaration. The crappy IRIX compiler does not create a global symbol otherwise. 2006-10-13 14:34 edwin * src/vm/jit/verify/typecheck.c (verify_basic_block): Use generated code. * src/vm/jit/verify/typecheck-stackbased-gen.inc: New file, GENERATED! * src/vm/jit/verify/typecheck-variablesbased-gen.inc: Likewise. * src/vm/jit/verify/typecheck.h (typecheck_stackbased): Added. * src/vm/jit/verify/Makefile.am: Added source files for both generated verifiers. * src/vm/jit/jit.c (jit_compile_intern): Call the stack-based verifier for the interpreter. * src/vm/vm.c (vm_create): Re-enable verification fot the interpreter. 2006-10-13 14:22 edwin * src/vm/jit/verify/generate.pl: Clearly mark generated code. 2006-10-13 14:00 edwin * src/vm/jit/icmdtable.inc: Documented prettily. 2006-10-13 13:11 edwin * src/vm/jit/jit.h (op_data): Removed. (stackreq): Moved to a more logical place. * src/vm/jit/jit.c (op_data): Removed. (jit_init): Removed code initializing op_data. * src/vm/jit/optimizing/lifetimes.c (LifeOutAtStatement): Use icmd_table. * src/vm/jit/optimizing/ssa.c (dead_code_elimination): Likewise. 2006-10-13 12:49 edwin * src/vm/jit/jit.h (icmd_table): Added. (icmd_names): Removed. * src/vm/jit/jit.c (icmd_table): Added. (icmd_names): Removed. * src/vm/jit/show.c (show_icmd): Use icmd_table. * src/vm/jit/optimizing/ssa.c (dead_code_elimination): Likewise. 2006-10-13 12:47 edwin * src/vm/resolve.c: Removed obsolete debug prints. 2006-10-13 11:57 edwin * src/vm/jit/jit.h: Added DF_ constants for ICMD table. Added CF_ constants. Added ICMDTABLE_ constants. (icmdtable_entry_t): New struct. 2006-10-13 11:28 edwin * src/vm/jit/icmdtable.inc: New file. Not used, yet. * src/vm/jit/Makefile.am: Added new file. 2006-10-13 11:27 edwin * src/vm/jit/verify/generate.pl: Omit comma at end of ICMD table. 2006-10-13 11:11 edwin * src/vm/jit/verify/typecheck-stackbased.c: New file. Not used, yet. * src/vm/jit/verify/icmds.c: New file. * src/vm/jit/verify/generate.pl: New file. * src/vm/jit/verify/typecheck-invoke.inc: Added copyright notice. * src/vm/jit/verify/typecheck-fields.inc: Likewise. * src/vm/jit/verify/typecheck-builtins.inc: Likewise. * src/vm/jit/verify/typecheck-common.c: Likewise. * src/vm/jit/verify/typecheck-common.h: Likewise. 2006-10-13 10:36 edwin * src/vm/jit/verify/typeinfo.c (typevector_store): Remove obsolete assertion. 2006-10-13 10:33 edwin * src/vm/jit/stack.c (stack_analyse): Set iptr->dst for CHECKNULL. 2006-10-13 00:47 edwin * src/vm/builtin.c (builtin_isanysubclass): Bugfix for the case that `sub` is an interface and `super` is a class. The function returned random values in this case, since it used the <= 0 base value of the interface class to perform the subclass check. The only case in which an interface can be a subclass of a non-interface `super` is when `super` is java.lang.Object, so we check explicitly for this case. This fixes a bug with BeanShell-2.0b4. (builtin_isanysubclass_vftbl): Likewise. 2006-10-12 23:34 edwin * src/vm/jit/stack.c (stack_check_invars): Bugfix: Only set flags to BBTYPECHECK_REACHED if the block has already been analysed. (stack_check_invars_from_outvars): Likewise. 2006-10-12 20:06 twisti * src/vm/jit/cfg.c (cfg_build): Check for EXH basic blocks in fall-through case. 2006-10-12 15:59 edwin * tests/regression/jasmin/runtest: Added timeout capability. 2006-10-12 15:22 edwin * src/vm/jit/verify/typecheck-common.h (typecheck_print_statistics): Added prototype. (typecheck_jsr_t): New struct. (typecheck_jsr_caller_t): Likewise. (verifier_state): Added fields for stackbased verifier. 2006-10-12 15:07 edwin * src/vm/jit/verify/typecheck-common.c: Made debugging and statistics symbols global. * src/vm/jit/verify/typecheck-common.h: Likewise. 2006-10-12 14:52 edwin * src/vm/jit/verify/typecheck-invoke.inc: Added code variants for the stackbased verifier. Not used, yet. * src/vm/jit/verify/typecheck-builtins.inc: Likewise. 2006-10-12 14:42 edwin * src/vm/jit/verify/typecheck-common.c: Include headers. * src/vm/jit/verify/typecheck-common.h: Cleanup. 2006-10-12 14:39 edwin * src/vm/jit/verify/typecheck.c (ISBUILTIN): Removed. * src/vm/jit/verify/typecheck-builtins.inc (ISBUILTIN): Added. 2006-10-12 14:38 tbfg * src/vm/jit/powerpc64/codegen.c (codegen): Adopt locals and regoff changes. 2006-10-12 14:18 edwin * src/vm/jit/verify/typecheck.c (verify_invocation): Prepared for addeding the stackbased verifier. No functional change, yet. (verify_builtin): Likewise. 2006-10-12 14:12 edwin * src/vm/jit/verify/typecheck-common.c, src/vm/jit/verify/typecheck-common.h (typecheck_init_flags): Added minflags argument. * src/vm/jit/verify/typecheck.c (typecheck): Call typecheck_init_flags with minflags set to BBFINISHED. 2006-10-12 14:02 edwin * src/vm/jit/verify/typecheck.c (verify_fieldaccess): New function. (verify_basic_block): Moved field verification into a separate function. * src/vm/jit/verify/typecheck-fields.inc: Removed opcode-dependant stuff. Some code for the stackbased verifier is checked in, but not used, yet. 2006-10-12 13:13 twisti * src/vm/jit/mips/linux/md-os.c (thread_restartcriticalsection): Added uClibc support. 2006-10-12 12:44 twisti * src/vm/jit/mips/linux/md-os.c (md_signal_handler_sigsegv): Added uClibc support. 2006-10-12 10:10 edwin * src/vm/jit/verify/typecheck.c: Moved include to the right place. Moved some code to typecheck-common.[ch]. * src/vm/jit/verify/typecheck-common.c: New file. * src/vm/jit/verify/typecheck-common.h: New file. * src/vm/jit/verify/Makefile.am: Added new source files. 2006-10-11 23:52 edwin * src/vm/jit/verify/typecheck-builtins.inc: Removed redundant `return true`. Moved declaration of `av`. 2006-10-11 23:44 edwin * src/vm/jit/verify/typecheck-invoke.inc: Use invokestatic where possible. Added a comment. 2006-10-11 23:41 edwin * src/vm/jit/verify/typecheck-invoke.inc: Indent log messages to make them more readable. 2006-10-11 23:37 edwin * src/vm/jit/verify/typecheck.c (verify_invocation): Define jd and dv before including the function body. * src/vm/jit/verify/typecheck-invoke.inc: Removed definitions of jd and dv. Small cleanup. 2006-10-11 23:22 edwin * src/vm/jit/verify/typecheck.c (verify_builtin): Define jd and dv before including the function body. * src/vm/jit/verify/typecheck-builtins.inc: Removed definitions of jd and dv. 2006-10-11 23:00 edwin * src/vm/jit/verify/typecheck.c (verify_invocation): Moved body to a separate file in order to prepare comitting the stackbased verifier. (verify_builtin): Likewise. (verify_generic_builtin): Likewise, no integrated in verify_builtin. (verify_basic_block): Moved field instruction verification to a separate file. * src/vm/jit/verify/typecheck-invoke.inc: New file. * src/vm/jit/verify/typecheck-fields.inc: New file. * src/vm/jit/verify/typecheck-builtins.inc: New file. * src/vm/jit/verify/Makefile.am: Added new source files. 2006-10-11 19:43 edwin * src/cacaoh/headers.c (typeinfo_print_short): Stub added. 2006-10-11 19:42 edwin * src/vm/jit/verify/typeinfo.c (typeinfo_init_component): Fixed for the case that srcarray == dst. (The mergedlist was overwritten with NULL in this case.) 2006-10-11 19:40 edwin * src/vm/resolve.c, src/vm/resolve.h (resolve_method_param_type_checks_stackbased): New function. (resolve_constrain_unresolved_method_params_stackbased): Likewise. 2006-10-11 16:31 edwin * tests/regression/jasmin/test_verify_fail_athrow_wrong_reftype_unresolved.j: New test. * tests/regression/jasmin/test_verify_fail_athrow_wrong_reftype.j: New test. * tests/regression/jasmin/Makefile.am: Added new tests. 2006-10-11 16:21 edwin * tests/regression/jasmin/test_verify_fail_areturn_wrong_reftype.j: New test. * tests/regression/jasmin/test_verify_fail_invoke_return_basic_type.j: New test. * tests/regression/jasmin/test_verify_fail_ireturn_wrong_type.j: New test. * tests/regression/jasmin/Makefile.am: Added new tests. 2006-10-11 10:17 edwin * tests/regression/jasmin/test_verify_fail_handler_bad_local.j: new test. * tests/regression/jasmin/Makefile.am: Added new test. 2006-10-10 21:16 edwin * tests/regression/jasmin/test_verify_fail_jsr_recursion_terminates.j: Added expected error. * tests/regression/jasmin/test_verify_fail_jsr_recursion.j: Likewise. * tests/regression/jasmin/test_verify_ok_jsr_improper_nesting.j: New test. * tests/regression/jasmin/test_verify_fail_jsr_multiple_returns.j: New test. * tests/regression/jasmin/Makefile.am: Added new tests. 2006-10-10 20:45 edwin * tests/regression/jasmin/test_verify_fail_jsr_recursion_terminates.j: New test. * tests/regression/jasmin/Makefile.am: Added new test. 2006-10-10 20:31 edwin * tests/regression/jasmin/test_verify_fail_jsr_recursion.j: New test. * tests/regression/jasmin/Makefile.am: Added new test. 2006-10-10 00:29 edwin * src/vm/resolve.c, src/vm/resolve.h (constrain_unresolved_method): Split into two new functions. (resolve_constrain_unresolved_method_instance): New function. (resolve_constrain_unresolved_method_params): Likewise. * src/vm/jit/verify/typecheck.c (verify_invocation): Use new functions. 2006-10-09 23:53 edwin * src/vm/resolve.c (resolve_method_type_checks): Split up into two new functions. (resolve_method_instance_type_checks): New function. (resolve_method_param_type_checks): New function. * src/vm/resolve.h (resolve_method_type_checks): Removed. (resolve_method_instance_type_checks): New function. (resolve_method_param_type_checks): New function. * src/vm/jit/verify/typecheck.c (verify_invocation): Call resolve_method_instance_type_checks and resolve_method_param_type_checks. 2006-10-09 23:21 edwin * src/vm/resolve.c (resolve_method_verifier_checks): Removed unused variable. Removed unclear assertion. 2006-10-09 23:17 edwin * src/vm/resolve.c (resolve_method_verifier_checks): Removed unused arguments. (resolve_method): Changed arguments to resolve_method_verifier_checks. * src/vm/resolve.h (resolve_method_verifier_checks): Removed unused arguments. * src/vm/jit/verify/typecheck.c (verify_invocation): Changed arguments to resolve_method_verifier_checks. 2006-10-09 23:06 edwin * src/vm/resolve.c (resolve_method_verifier_checks): Factored out parameter type checks into a separate function. (resolve_method_type_checks): New function. * src/vm/resolve.h (resolve_method_type_checks): New function. * src/vm/jit/verify/typecheck.c (verify_invocation): Call resolve_method_type_checks. 2006-10-09 22:19 edwin * src/vm/resolve.c (resolve_method_verifier_checks): Factored out loading constraints into a separate function. (resolve_method_loading_constraints): New function. (resolve_method): Call resolve_method_loading_constraints. * src/vm/resolve.h (resolve_method_loading_constraints): New function. * src/vm/jit/verify/typecheck.c (verify_invocation): Call resolve_method_loading_constraints. 2006-10-09 17:08 edwin * src/vm/resolve.c (resolve_method_lazy): Removed dependence on instruction format. Do not perform verifier checks. (Caller will do these.) (create_unresolved_method): Renamed to resolve_create_unresolved_method. Changed arguments. * src/vm/resolve.h (create_unresolved_method): Renamed to resolve_create_unresolved_method. Changed arguments. (resolve_method_lazy): Changed arguments. (resolve_method_verifier_checks): Export. * src/vm/jit/verify/typecheck.c (verify_invocation): Adapted to changed resolve functions. Call resolve_method_verifier_checks. Do promotion from INVOKEVIRTUAL to INVOKESPECIAL here. * src/vm/jit/parse.c (parse): Adapted to changed resolve functions. Do promotion from INVOKEVIRTUAL to INVOKESPECIAL here. 2006-10-09 15:42 edwin * src/vm/resolve.c (resolve_field_verifier_checks): Removed dependence on instruction format. (resolve_field_lazy): Pass field reference, instead of instruction. Do not perform verification checks here. (Caller will do them.) (resolve_field): Adapted to changed resolve_field_verifier_checks. (create_unresolved_field): Renamed to resolve_create_unresolved_field. (constrain_unresolved_field): Renamed to resolve_constrain_unresolved_field. Removed dependence on instruction format. * src/vm/resolve.h (create_unresolved_field): Renamed to resolve_create_unresolved_field. (resolve_field_lazy): Changed arguments. (resolve_field_verifier_checks): Export. (constrain_unresolved_field): Renamed to resolve_constrain_unresolved_field. Changed arguments. * src/vm/jit/verify/typecheck.c (typecheck): Moved instruction set dependent parts of resolve functions into typecheck. * src/vm/jit/parse.c (resolve_field_lazy): Changed arguments. (create_unresolved_field): Renamed. 2006-10-08 22:49 edwin * test/regression/jasmin/test_verify_ok_jsr_subroutine_loops_to_start.j: New test. * test/regression/jasmin/test.j: Small cleanup. * test/regression/jasmin/Makefile.am: Added new test. 2006-10-08 11:39 edwin * src/vm/jit/stack.c: Verify that subroutines are not merged. (SBRSTART): New macro. (COPY_VAL_AND_TYPE_VAR): New macro, propagate SBRSTART. (COPY_VAL_AND_TYPE): Use COPY_VAL_AND_TYPE_VAR. (stack_create_invars): Cleaned up, use COPY_VAL_AND_TYPE_VAR. (stack_create_invars_from_outvars): Use COPY_VAL_AND_TYPE_VAR. (stack_check_invars): Check against merging of subroutines. Wrapped verifier checks in #if defined(ENABLE_VERIFIER). (stack_check_invars_from_outvars): Likewise. (stack_reanalyse_block): Wrapped verifier checks in #if defined(ENABLE_VERIFIER). (stack_analyse): Prepare a real variable for the handler stack. Implemented re-analysing of blocks. Set SBRSTART for JSR. * src/vm/jit/parse.c (parse): Reserve extra variables needed by stack_analyse. * src/vm/global.h (STACK_EXTRA_VARS): New macro. 2006-10-08 10:51 edwin * src/vm/jit/show.c (show_basicblock): Removed extra newline. 2006-10-08 00:07 edwin * tests/regression/jasmin/test_verify_fail_jsr_merge_subroutines_via_stack.j: New test. * tests/regression/jasmin/Makefile.am: Added new test. 2006-10-07 23:56 edwin * src/vm/jit/cfg.c (cfg_build): Fixed a bug causing infinite loops. * src/vm/jit/parse.c (parse): Always add a NOP at block ends. This is needed by the JSR elimination in stack.c. * tests/regression/jasmin/test_verify_fail_jsr_merge_subroutines.j: New test. * tests/regression/jasmin/Makefile.am: Added new test. 2006-10-07 23:02 edwin * tests/regression/jasmin/test_verify_fail_jsr_polymorphic_pop.j: New test. * tests/regression/jasmin/Makefile.am: Added new test. * src/vm/jit/stack.c (stack_check_invars): Fixed bug exposed by the new test. (stack_check_invars_from_outvars): Likewise. 2006-10-07 22:34 edwin * tests/regression/jasmin/test_verify_fail_jsr_called_with_different_stackdepths.j: New test. * tests/regression/jasmin/Makefile.am: Added new test. 2006-10-07 12:54 edwin * src/vm/jit/stack.c (GET_NEW_VAR): Fixed macro argument. (SET_TEMPVAR): Call new function stack_change_to_tempvar. (stack_change_to_tempvar): New function. (stack_analyse): Mark pass-through stackslots of INVOKEs instead of resetting them to TEMPVARs. * src/vm/jit/jit.h (PASSTHROUGH): New flag. 2006-10-07 10:22 edwin * src/vm/jit/allocator/simplereg.c: Implemented REG_INDEX for architectures with address register file. 2006-10-07 09:44 edwin * src/vm/jit/allocator/simplereg.c (simplereg_allocate_locals_leafmethod): Fixed declaration after code. 2006-10-07 00:06 edwin * src/vm/jit/allocator/simplereg.c (simplereg_allocate_interface): Copy all flags except SAVEDVAR when reusing an interface slot. 2006-10-06 23:58 edwin * src/vm/jit/allocator/simplereg.c: Cleaned up memory slot allocation. 2006-10-06 23:41 edwin * src/vm/jit/allocator/simplereg.c (simplereg_allocate_interfaces): Fixed indentation. 2006-10-06 23:03 edwin * src/vm/jit/allocator/simplereg.c (simplereg_allocate_temporaries): Minor cleanup, use SIMPLEREG_REG_INDEX. 2006-10-06 22:37 edwin * src/vm/jit/allocator/simplereg.c: Reuse interface registers in blocks that don't need them. Abstracted out the free register stacks with macros. Major code cleanup. * src/vm/jit/allocator/simplereg.h (reg_make_statistics): Renamed to simplereg_make_statistics. * src/vm/jit/reg.h (registerdata): Added fields `adrusedinout`, `intusedinout`, `fltusedinout`, and `regisoutvar`. * src/vm/jit/jit.c (simplereg_make_statistics): Renamed to simplereg_make_statistics. * src/vm/jit/jit.h (SAVEDTMP): Renamed to SAVREG. (TMPARG): Renamed to ARGREG. (STCOPY): Removed. (STKEEP): Removed. 2006-10-06 21:30 edwin * src/vm/jit/stack.c (stack_analyse): Do not set argintreguse to a value > INT_ARG_CNT, as this breaks some new code that will later be committed to simplereg.c, and does not make sense, anyway. 2006-10-06 20:11 edwin * src/vm/jit/intrp/Makefile.am (Changes): Added my name. 2006-10-06 20:09 edwin * src/vm/jit/show.h (show_variable): Made global. (show_variable_array): Likewise. * src/vm/jit/show.c (show_variable): Likewise. (show_variable_array): Likewise. 2006-10-05 20:30 edwin * src/threads/native/threads.c (threads_attach_current_thread): Rename left-over `t` to `thread` in interpreter code. 2006-10-05 20:21 edwin * src/vm/jit/codegen-common.c: Include vm/jit/intrp/intrp.h to prevent a warning. 2006-10-05 20:18 edwin * src/vm/jit/intrp/intrp.h: Added missing prototypes. * src/vm/jit/intrp/engine.c: Comment unused variable `ca1`. * src/vm/jit/intrp/java.vmg: Mark the variables `currentsp` as MAYBE_UNUSED. 2006-10-05 20:04 edwin * src/vm/jit/intrp/intrp.h: Cleaned up. Defined missing prototypes. * src/vm/jit/intrp/java.vmg: Defined "afi" type prefix. 2006-10-05 19:36 edwin * src/vm/jit/intrp/peephole.c: Include interpreter files using < > instead of " ", so they are only searched for in the include path. This avoids using the wrong include files when compiling in a buildir. * src/vm/jit/intrp/codegen.c: Likewise. * src/vm/jit/intrp/engine.c: Likewise. * src/vm/jit/intrp/disasm.c: Likewise. * src/vm/jit/intrp/dynamic-super.c: Likewise. * src/vm/jit/intrp/vmgenx: Fixed to work with builddir, and cleaned up. * src/vm/jit/intrp/Makefile.am: Fixed dependencies for builddir. 2006-10-05 17:52 edwin * src/vm/jit/intrp/engine.c (Changes): Added my name. (vim boilerplate): Added. 2006-10-05 17:28 twisti * src/native/jni.c (jni_attach_current_thread): New help function. (_Jv_JNI_AttachCurrentThread): Use helper function. (_Jv_JNI_AttachCurrentThreadAsDaemon): Likewise. (_Jv_JNI_DetachCurrentThread): Implemented. * src/threads/native/threads.c (method_thread_init) (method_threadgroup_add_: Made static. (threads_init): Code rearranged. (threads_startup_thread): Removed thread detach code and call threads_detach_thread. (threads_detach_thread): New function. * src/threads/native/threads.h (threads_detach_thread): Added. 2006-10-05 17:23 twisti * src/vm/utf8.c (utf_removeThread, utf_java_lang_Thread__V): Added. (utf8_init): Initialize new strings. * src/vm/utf8.h (utf_removeThread, utf_java_lang_Thread__V): Added. 2006-10-05 16:28 edwin * src/vm/vm.c (vm_create): Turn off the verifier for -Xint. 2006-10-05 16:18 edwin * src/vm/jit/intrp/asmpart.c (intrp_asm_handle_exception): Style fix. 2006-10-05 16:12 edwin * src/vm/jit/intrp/codegen.c (codegen): Save synchronized object in a special stackslot and use it for monitorexit. * src/vm/jit/intrp/asmpart.c (intrp_asm_handle_exception): When unwinding a synchronized method, exit the monitor. 2006-10-05 15:43 edwin * src/vm/jit/intrp/codegen.c (codegen): Reserve an extra stackslot in synchronized methods. (intrp_createcompilerstub): Likewise. (intrp_createnativestub): Use stackframesize for clarity. 2006-10-05 15:33 edwin * src/vm/jit/intrp/codegen.c (codegen): Separate stackframesize from the number of local variables. (intrp_createcompilerstub): Likewise. * src/vm/jit/intrp/engine.c (MAXLOCALS): Changed to FRAMESIZE. * src/vm/jit/intrp/java.vmg (INVOKEVIRTUAL): Use FRAMESIZE. (INVOKESTATIC): Likewise. (INVOKESPECIAL): Likewise. (INVOKEINTERFACE): Likewise. 2006-10-05 14:13 twisti * src/native/jni.c (jni_init_localref_table): New function. (AttachCurrentThread): Implemented. (JNI_CreateJavaVM): Use jni_init_localref_table. * src/threads/native/threads.c (method_thread_init) (method_threadgroup_add): New global variables. (threads_init): Store methods resolved in global variables. (threads_attach_current_thread): New function. * src/threads/native/threads.h (MIN_PRIORITY, NORM_PRIORITY) (MAX_PRIORITY): Defined. (threads_attach_current_thread): New function. 2006-10-05 12:23 edwin * src/vm/jit/intrp/java.vmg (TRACECALL): Implemented for 32-bit architectures. 2006-10-05 10:50 edwin * src/vm/jit/intrp/codegen.c (codegen): Fix off-by-one error in len tests of optimizations. 2006-10-05 10:41 edwin * src/vm/jit/show.c (show_icmd): Show constant operand of IFxx, and IF_Lxx. 2006-10-05 10:39 edwin * src/vm/jit/show.c (show_basicblock): Fixed deadcode check. * src/vm/jit/intrp/asmpart.c (intrp_asm_handle_exception): Clear global_sp. 2006-10-05 09:04 twisti * src/vm/jit/powerpc/emit.c (emit_verbosecall_enter): Darwin build fixes. 2006-10-05 00:21 edwin * src/vm/jit/intrp/asmpart.c (intrp_asm_handle_exception): Fixed for catch-all handlers. 2006-10-05 00:06 edwin * src/vm/jit/show.c (show_method): Adapted to interpreter. (show_basicblock): Likewise. * src/vm/jit/intrp/disass.c (intrp_disassinstr): Write disassembly to stdout. (intrp_disassemble): Likewise. 2006-10-04 23:08 edwin * tests/regression/jctest.java: Also test division/remainder with constant divisor 1. * tests/regression/jctest.output: Updated test output. 2006-10-04 23:05 edwin * src/vm/jit/intrp/codegen.c (codegen): Don't ?DIVPOW2 with value 1. The optimization produces the wrong result in this case. 2006-10-04 22:53 edwin * src/vm/jit/intrp/codegen.c (codegen): Implemented IDIVPOW2 and LDIVPOW2 optimizations. 2006-10-04 22:39 edwin * src/vm/jit/intrp/codegen.c (codegen): Implemented IREMPOW2 and LREMPOW2 optimizations. 2006-10-04 22:12 edwin * src/vm/jit/intrp/codegen.c (codegen): Implement optimization of comparisons. 2006-10-04 20:44 edwin * src/vm/jit/allocator/simplereg.c (reg_free_temp_func): Fixed indices into regcopycount array. (allocate_scratch_registers): Likewise. 2006-10-04 20:02 edwin * src/vm/jit/intrp/codegen.c (codegen): #if 0-ed optimized ICMDs that are currently not used. In order to use these instructions, we could either add the optimization checks directly to codegen.c, or introduce a special pass between parse and intrp_codegen which replaces the instructions. 2006-10-04 19:47 edwin * src/vm/jit/intrp/codegen.c (codegen): Removed unoptimized *CONST instructions. Since stack_analyse is no longer performed before the interpreter codegen, these instructions cannot occur. 2006-10-04 19:38 edwin * src/vm/jit/stack.c: Removed interpreter-specific code. 2006-10-04 18:44 edwin * src/threads/native/lock.c (lock_monitor_exit): Check for NULL object. There is no guarantee that MONITORENTER/EXITs are properly nested, so we cannot rely on the check in lock_monitor_enter here. 2006-10-04 18:39 edwin * tests/regression/jasmin/test_nullpointerexception_monitorexit.j: Fixed test case, so it passes if the exception is thrown. 2006-10-04 18:35 edwin * tests/regression/jasmin/test_nullpointerexception_monitorexit.j: New test. * tests/regression/jasmin/Makefile.am: Added test_nullpointerexception_monitorexit.j. 2006-10-04 18:25 edwin * tests/regression/jasmin/Makefile.am: Properly quote variables. 2006-10-04 18:23 edwin * src/vm/jit/intrp/engine.c (THROW_CLASSCASTEXCEPTION): Really throw a ClassCastException, not a NullPointerException. * src/vm/jit/intrp/asmpart.c (intrp_asm_handle_exception): Set global_sp, in case the resolving of the catchtype involves the execution of Java code. * src/vm/jit/intrp/java.vmg (MONITORENTER): Check for exception. (MONITOREXIT): Likewise. 2006-10-04 16:42 edwin * src/vm/jit/intrp/java.vmg (LOOKUPSWITCH): No point in using >= 0 on an unsigned variable. 2006-10-04 16:01 edwin * src/vm/jit/intrp/codegen.c (nativecall): Store return valud of codegen_finish_native_call in *exceptionptr. * src/vm/jit/intrp/asmpart.c (intrp_asm_handle_exception): Resolve unresolved catchtype references. 2006-10-04 15:14 edwin * src/vm/jit/intrp/codegen.c (codegen): Convert JavaPCs to block indices. Do not check for BBREACHED (not set by parse). (gen_branch): Convert JavaPCs to block indices. * src/vm/jit/intrp/java.vmg (RET): restored. * src/vm/jit/jit.c (jit_compile_intern): Do not perform stack_analyse and dependent passes for intrp. 2006-10-04 15:04 twisti * src/vm/jit/intrp/md.c (intrp_md_init): Set vm_out to stderr. * src/vm/jit/intrp/engine.c (THROW_CLASSCASTEXCEPTION): Added. (engine): Handle ClassCastExceptions with argument. * src/vm/jit/intrp/asmpart.c (intrp_asm_handle_exception): Indent. * src/vm/jit/intrp/dynamic-super.c: Use LOCK_MONITOR_{ENTER,EXIT} macros. * src/vm/jit/intrp/patcher.c (intrp_patcher_invokestatic_special): Write back method pointer. I wonder how this ever worked before. (intrp_patcher_invokevirtual): Likewise. (intrp_patcher_invokeinterface): Likewise. * src/vm/jit/intrp/java.vmg (RET): Removed. (TABLESWITCH): Changed reading direction of cases. Don't know if that works: NOT TESTED! (CHECKCAST): Use THROW_CLASSCASTEXCEPTION. (ARRAYCHECKCAST): Likewise. (MONITORENTER): Likewise. (MONITOREXIT): Likewise. 2006-10-04 14:50 edwin * src/vm/jit/intrp/dynamic-super.c (superreuse_insert): Use lock_monitor_ functions. (patchersuper_rewrite): Likewise. (hashtable_patchersupers_insert): Likewise. 2006-10-04 14:31 edwin * src/vm/jit/intrp/codegen.c (codegen): Restored ICMD_RET to really perform a RET (JSR elimination will not be performed for intrp.) Removed a comment that does not apply any more. 2006-10-04 14:20 edwin * src/vm/jit/intrp/java.vmg (builtin_monitorenter): Changed to lock_monitor_enter. (builtin_monitorexit): Changed to lock_monitor_exit. 2006-10-04 13:40 edwin * src/vm/jit/intrp/codegen.c: Made it compile again. 2006-10-04 13:35 twisti * src/vm/jit/intrp/codegen.c: New instruction format fixes. 2006-10-04 12:09 twisti * configure.ac (AC_CONFIG_FILES): Removed src/scripts/rmic and src/scripts/rmiregistry. * src/scripts/Makefile.am (bin_SCRIPTS): Removed trailing \. 2006-10-04 10:37 twisti * src/scripts/rmic.in: Removed. * src/scripts/rmiregistry.in: Likewise. * src/scripts/Makefile.am (bin_SCRIPTS) Removed rmi.in and rmiregistry.in. * src/scripts/.cvsignore: Likewise. * src/scripts/java.in: Don't call cacao with an absolute path, this would break WITH_JRE_LAYOUT. I think we can expect cacao to be in the PATH. 2006-10-04 10:10 twisti * configure.ac (--with-jre-layout): Added. * src/vm/global.h (CLASSPATH_LIBRARY_PATH): Removed. * src/vm/vm.c [WITH_JRE_LAYOUT] (libgen.h, unistd.h): Added. (cacao_prefix, cacao_libjvm, classpath_libdir): New global variables. (version): Print gnu.classpath.boot.library.path instead of java.library.path as this is the interesting one. (vm_create): Added WITH_JRE_LAYOUT stuff. * src/vm/vm.h (stackbottom): Removed. (cacao_prefix, cacao_libjvm, classpath_libdir): Added. * src/cacao/cacao.c [WITH_JRE_LAYOUT] (errno.h, libgen.h, unistd.h): Added. (main): Added WITH_JRE_LAYOUT stuff. * src/native/vm/gnu_classpath_VMSystemProperties.c (vm/vm.h): Added. (preInit): Set env_java_home to cacao_prefix and gnu.classpath.boot.library.path to classpath_libdir. * src/native/native.c (native_init): Use cacao_libjvm in lt_dlopenext call. 2006-10-03 21:19 edwin * src/vm/jit/jit.h (jitdata): Renamed c_debug_nr to c_block_nr. (Still not a good name. Should probably be removed entirely.) Added comments. * src/vm/method.h (c_debug_nr): Renamed to c_block_nr. * src/vm/jit/stack.c: Likewise. * src/vm/jit/loop/analyze.c: Likewise. * src/vm/jit/inline/inline.c: Likewise. * src/vm/jit/parse.c: Likewise. 2006-10-03 20:57 edwin * src/vm/jit/powerpc/codegen.c: Removed new_ prefix from variable and field names. * src/vm/jit/cfg.c: Likewise. * src/vm/jit/sparc64/codegen.c: Likewise. * src/vm/jit/reorder.c: Likewise. * src/vm/jit/ifconv/ifconv.c: Likewise. * src/vm/jit/alpha/codegen.c: Likewise. * src/vm/jit/stack.c: Likewise. * src/vm/jit/stack.h: Likewise. * src/vm/jit/show.c: Likewise. * src/vm/jit/verify/typecheck.c: Likewise. * src/vm/jit/mips/codegen.c: Likewise. * src/vm/jit/allocator/simplereg.c: Likewise. * src/vm/jit/i386/codegen.c: Likewise. * src/vm/jit/powerpc64/codegen.c: Likewise. * src/vm/jit/parse.c: Likewise. * src/vm/jit/replace.c: Likewise. * src/vm/jit/x86_64/codegen.c: Likewise. * src/vm/jit/parse.h: Likewise. * src/vm/jit/jit.c: Likewise. * src/vm/jit/jit.h: Likewise. 2006-10-03 20:44 edwin * src/vm/resolve.c: Removed new_ prefix from function names. * src/vm/resolve.h: Likewise. * src/vm/jit/stack.c: Likewise. * src/vm/jit/stack.h: Likewise. * src/vm/jit/show.c: Likewise. * src/vm/jit/verify/typecheck.c: Likewise. * src/vm/jit/show.h: Likewise. * src/vm/jit/allocator/simplereg.c: Likewise. * src/vm/jit/allocator/simplereg.h: Likewise. * src/vm/jit/parse.c: Likewise. * src/vm/jit/parse.h: Likewise. * src/vm/jit/jit.c: Likewise. 2006-10-03 20:27 edwin * src/vm/jit/allocator/simplereg.c: Warning fixed. 2006-10-03 20:26 edwin * src/vm/jit/i386/codegen.c (codegen): Use varindex as in other codegens. 2006-10-03 20:22 edwin * src/vm/jit/stack.c (new_stack_analyse): Removed obsolete stack depth checking code. * src/vm/jit/stack.h (CHECK_STACK_DEPTH): Removed macro. 2006-10-03 19:11 edwin * src/vm/jit/powerpc64/codegen.c (codegen): Unified IINC and IADDCONST. 2006-10-03 18:50 edwin * src/vm/jit/powerpc/codegen.c (codegen): Unify IINC and IADDCONST. 2006-10-03 18:34 edwin * src/vm/jit/allocator/simplereg.c (reg_make_statistics): Bugfix. 2006-10-03 18:21 twisti * src/native/vm/gnu_classpath_VMSystemProperties.c (preInit): We don't need to strcpy the library variables. Don't know where this code came from. 2006-10-03 18:09 edwin * src/vm/jit/allocator/simplereg.c (reg_make_statistics): Make it compile again. 2006-10-03 17:44 edwin Moved unified_variables branch to trunk. 2006-10-03 17:24 edwin * tests/regression/jasmin/test_iinc.j: New test. * tests/regression/jasmin/Makefile.am: Added test_iinc.j 2006-10-03 16:42 edwin Merged r5640 from trunk: * src/vm/jit/x86_64/Makefile.am (libarch_la_SOURCES): Renamed md-emit.h to emit.h. 2006-10-03 16:32 edwin * src/vm/jit/powerpc/codegen.c: Implemented ICMD_JSR like ICMD_GOTO. * src/vm/jit/powerpc64/codegen.c: Likewise. * src/vm/jit/alpha/codegen.c: Implemented ICMD_JSR like ICMD_GOTO. Unified ICMD_IINC and ICMD_IADDCONST. * src/vm/jit/mips/codegen.c: Likewise. * src/vm/jit/i386/codegen.c: Likewise. * src/vm/jit/x86_64/codegen.c: Likewise. 2006-10-02 19:24 edwin Merged r5636, r5637, and r5638 from trunk: * src/native/tools/gennativetable.c: Made it work again. * tests/regression/jasmin/.cvsignore: New file. * src/vm/jit/powerpc/codegen.c (codegen): #if 0 replacement point code. * src/vm/jit/powerpc/emit.c [!NDEBUG] (emit_verbosecall_enter) (emit_verbosecall_exit): #ifdef'ed. 2006-10-02 16:36 christian * src/vm/jit/alpha/md-abi.c (md_return_alloc): Activated return value stackslot registers precolouring again. 2006-10-02 14:18 edwin * src/vm/jit/powerpc/netbsd/md-abi.c: Blindly ported to unified_variables. * src/vm/jit/powerpc/linux/md-abi.c: Cleaned up. * src/vm/jit/powerpc/darwin/md-abi.c: Likewise. * src/vm/jit/alpha/md-abi.c: Likewise. * src/vm/jit/mips/md-abi.c: Likewise. * src/vm/jit/powerpc64/linux/md-abi.c: Likewise. * src/vm/jit/x86_64/md-abi.c: Likewise. 2006-10-02 13:59 edwin * src/vm/jit/powerpc/codegen.c: Changed OUTVAR to INOUT. * src/vm/jit/alpha/codegen.c: Likewise. * src/vm/jit/stack.c: Likewise. * src/vm/jit/show.c: Likewise. * src/vm/jit/mips/codegen.c: Likewise. * src/vm/jit/allocator/simplereg.c: Likewise. * src/vm/jit/i386/codegen.c: Likewise. * src/vm/jit/powerpc64/codegen.c: Likewise. * src/vm/jit/x86_64/codegen.c: Likewise. * src/vm/jit/jit.h: Likewise. 2006-10-02 13:43 edwin * src/vm/jit/alpha/codegen.h: Removed M_COPY. * src/vm/jit/mips/codegen.h: Likewise. * src/vm/jit/i386/codegen.h: Likewise. * src/vm/jit/powerpc64/codegen.h: Likewise. * src/vm/jit/x86_64/codegen.h: Likewise. * src/vm/jit/powerpc/codegen.c: Unified ICMD_RET with ICMD_GOTO. * src/vm/jit/alpha/codegen.c: Likewise. * src/vm/jit/mips/codegen.c: Likewise. * src/vm/jit/i386/codegen.c: Likewise. * src/vm/jit/powerpc64/codegen.c: Likewise. * src/vm/jit/intrp/codegen.c: Likewise. * src/vm/jit/x86_64/codegen.c: Likewise. 2006-10-02 13:26 edwin * src/vm/jit/powerpc/codegen.c (codegen): Unified LOAD/STORE and COPY/MOVE instructions. * src/vm/jit/powerpc/codegen.h (M_COPY): Removed. 2006-10-02 13:16 edwin * src/vm/jit/powerpc/linux/md-abi.c (md_param_alloc): Cleaned up comments. * src/vm/jit/powerpc/darwin/md-abi.c (md_param_alloc): Likewise. * src/vm/jit/powerpc/codegen.c (codegen): Removed obsolete call to codegen_reg_of_var. * src/vm/jit/alpha/codegen.c (codegen): Likewise. * src/vm/jit/mips/codegen.c (codegen): Likewise. * src/vm/jit/i386/codegen.c (codegen): Likewise. * src/vm/jit/powerpc64/codegen.c (codegen): Likewise. * src/vm/jit/x86_64/codegen.c (codegen): Likewise. * src/vm/jit/codegen-common.c (codegen_reg_of_var): Cleaned up. (codegen_reg_of_dst): Implemented using inline codegen_reg_of_var. 2006-10-02 12:10 edwin Merged r5626 from trunk: * src/vm/jit/replace.c (replace_create_replacement_points): Return true. 2006-10-02 11:55 edwin Merged r5624 from trunk: * src/vm/jit/mips/asmpart.S (asm_vm_call_method): Remove argument stack frame in normal path. 2006-10-02 00:32 edwin * src/vm/jit/alpha/codegen.c (codegen): Unified MOVE/COPY with LOAD/STORE instructions. 2006-10-02 00:08 edwin * tests/regression/jasmin/runtest: Made it a bash script, so it works on crappy fp98. 2006-10-02 00:06 edwin * tests/regression/jasmin/runtest: Do not use grep -o. 2006-10-01 23:51 edwin * src/vm/jit/mips/emit.c (emit_copy): Fixed arguments to codegen_reg_of_var. * src/vm/jit/powerpc64/emit.c (emit_copy): Likewise. * src/vm/jit/mips/codegen.c (codegen): Define varindex. * src/vm/jit/powerpc64/codegen.c (codegen): Likewise. Fixed arguments to codegen_reg_of_var. Replaced codegen_reg_of_var with codegen_reg_of_dst. 2006-10-01 23:37 edwin * src/vm/jit/powerpc64/codegen.c: Ported to unified_variables. * src/vm/jit/powerpc64/codegen.h: Likewise. * src/vm/jit/powerpc64/emit.c: Likewise. * src/vm/jit/powerpc64/linux/md-abi.c: Likewise. 2006-10-01 23:00 edwin Merged r5616 from trunk: * src/native/jni.c: Prefix all JNI functions with _Jv_JNI_, as gcj does. This should prevent any linking problems. 2006-10-01 22:55 edwin * src/vm/jit/mips/codegen.c: Ported to unified_variables. * src/vm/jit/mips/codegen.h: Likewise. * src/vm/jit/mips/emit.c: Likewise. * src/vm/jit/mips/md-abi.c: Likewise. 2006-10-01 20:52 edwin * src/vm/jit/powerpc/codegen.c (codegen): Cleaned up unified_variables changes. 2006-10-01 20:49 edwin * src/vm/jit/i386/codegen.c (codegen): Cleaned up unified_variables changes. 2006-10-01 20:42 edwin * src/vm/jit/x86_64/codegen.c (codegen): Cleaned up unified_variables changes. 2006-10-01 20:37 edwin * src/vm/jit/alpha/codegen.c (codegen): Cleaned up unified_variables changes. 2006-10-01 20:08 edwin * tests/regression/jasmin/runtest: Use default JASMIN_JAR, if given. 2006-10-01 18:01 edwin * src/vm/jit/codegen-common.c (codegen_reg_of_var): Fixed typo in ARM code. 2006-10-01 15:44 edwin * src/vm/jit/verify/typeinfo.c (typevector_store_retaddr): Do not invalidate the variable at index i-1. (typevector_store_twoword): Removed. 2006-10-01 15:25 edwin * src/vm/jit/verify/typecheck.c (typecheck): Added debug print of the reverse local map. 2006-10-01 14:43 edwin * src/vm/vm.c (vm_compile_all): Only use if !defined(NDEBUG). (vm_compile_method): Likewise. 2006-10-01 14:37 edwin * src/vm/jit/verify/typeinfo.h: Disabled TYPECHECK_VERBOSE. 2006-09-30 23:28 edwin * src/vm/jit/jit.c (jit_compile_intern): Removed commented out debugging code. 2006-09-30 23:12 edwin * src/vm/jit/allocator/simplereg.c (reg_new_temp): Simplified. (reg_free_temp): Formatted. 2006-09-30 23:06 edwin * src/vm/jit/powerpc/linux/md-abi.c: Use VAR and VAROP macros. * src/vm/jit/powerpc/darwin/md-abi.c: Likewise. * src/vm/jit/alpha/codegen.c: Likewise. * src/vm/jit/alpha/codegen.h: Likewise. * src/vm/jit/alpha/md-abi.c: Likewise. * src/vm/jit/show.c: Likewise. * src/vm/jit/verify/typecheck.c: Likewise. * src/vm/jit/allocator/simplereg.c: Likewise. * src/vm/jit/i386/codegen.h: Likewise. * src/vm/jit/parse.c: Likewise. * src/vm/jit/x86_64/emit.c: Likewise. * src/vm/jit/x86_64/codegen.c: Likewise. * src/vm/jit/x86_64/codegen.h: Likewise. * src/vm/jit/x86_64/md-abi.c: Likewise. * src/vm/jit/codegen-common.c: Likewise. 2006-09-30 22:45 edwin * src/vm/jit/i386/codegen.c (codegen): Use VAR and VAROP macros. (codegen_insert_phi_moves): Likewise. 2006-09-30 22:24 edwin Merged r5591 from trunk: * src/native/jni.c (GetVersion): Prefixed with _Jv_, we should do that with all JNI functions. 2006-09-30 22:22 edwin Merged r5589 and r5590 from trunk: * configure.ac: Fixed CFLAGS for cygwin. * src/threads/native/threads.c: Inserted asserts for cygwin. * src/vm/jit/i386/cygwin/Makefile.am: See below. * src/vm/jit/i386/cygwin/md-asm.h: Added. * src/vm/jit/i386/cygwin/md-os.c: Inserted asserts. * src/vm/jit/i386/cygwin/ucontext.c: Added 3rd party file. * src/vm/jit/i386/cygwin/ucontext.h: Added 3rd party file. * src/cacao/.cvsignore, src/cacaoh/.cvsignore, src/vm/jit/tools/.cvsignore: Added ignores for cygwin and modified properties accordingly. 2006-09-30 11:04 christian * src/vm/jit/alpha/codegen.c (codegen): Changed to use the macros VAR and VAROP. 2006-09-30 10:16 christian * src/vm/jit/x86_64/codegen.c (codegen): Changed to use the macros VAR and VAROP. 2006-09-29 14:02 edwin * src/vm/jit/allocator/simplereg.c (reg_free_temp_func): Handle packed registers. (new_allocate_scratch_registers): Likewise. 2006-09-29 13:33 edwin Merged r5540 from trunk: * configure.ac: Cygwin OS dir added. * src\lib\Makefile.am: Now checks for "zip.exe" as well * src\vm\jit\i386\Makefile.am: Added Cygwin OS dir. * src\vm\jit\i386\cygwin\Makefile.am: Added. * src\vm\jit\i386\cygwin\md-os.c: Added. Only contains dummy signal handlers. * src\vm\builtin.c: Undefine Bias for Cygwin because Windows uses this define. * src\vm\signal.c: No signal handlers for Cygwin. 2006-09-29 12:46 edwin Merged r5573, r5574, r5577, r5578, and r5579 from trunk. * src/cacao/cacao.c (vm/vm.h): Added. * src/cacao/Makefile.am [!ENABLE_LIBJVM] (CACAO_LIB): Link libjvm.la. * src/vm/jit/powerpc/darwin/md-asm.h (md_codegen_get_pv_from_pc): Added stub define. * src/vm/jit/powerpc/asmpart.S (L_md_codegen_get_pv_from_pc$stub): Added. * src/cacaoh/cacaoh.c (cacaoh_options_prepare): Set nOptions, this was deleted accidentally. * src/vm/vm.c (vm_create): Added installation of exit handler. (vm_run): New function. (vm_get_mainclass_from_jar): Likewise. (vm_compile_all): Likewise. (vm_compile_method): Likewise. * src/vm/vm.h (vm_run): New function. * src/vm/options.c (options_prepare): Removed. * src/vm/options.h (options_prepare): Likewise. * src/cacao/cacao.c (getmainclassnamefromjar): Removed. (main): Moved most stuff to vm-functions and load libjvm with dlopen and resolve symbols for ENABLE_LIBJVM. (cacao_options_prepare): New function. * src/cacao/Makefile.am (CACAO_LIBS): New variable. (cacao_LDADD): Use CACAO_LIBS. * src/native/native.c (native_init): Set mainhandle to libjvm for ENABLE_LIBJVM. * src/cacaoh/cacaoh.c (cacaoh_prepare_options): New function. * src/native/jni.c (JNI_CreateJavaVM): Renamed jvm to vm. 2006-09-28 22:33 edwin * src/vm/jit/powerpc64: Merged changes from r5403 to r5548 from trunk. 2006-09-28 20:56 edwin * src/vm/jit/i386/cygwin: Copied directory from trunk. 2006-09-28 20:38 edwin Merged r5547 from trunk: * src/native/jni.c (FindClass): Removed architecture #ifdef's. 2006-09-28 20:33 edwin Merged r5543 from trunk: * src/vm/jit/sparc64/codegen.c: Completed port to new instruction format. * src/vm/jit/sparc64/md-abi.h: Likewise. * src/vm/jit/sparc64/emit.c: Likewise. 2006-09-28 20:31 edwin Merged r5541 from trunk: * src/vm/jit/powerpc/emit.c (vm/jit/emit.h): Renamed to vm/jit/emit-common.h. (emit_load_s1, emit_load_s2, emit_load_s3, emit_load_s1_low) (emit_load_s2_low, emit_load_s3_low, emit_load_s1_high) (emit_load_s2_high, emit_load_s3_high) (emit_store_dst): Removed. * src/vm/jit/powerpc/codegen.c (vm/jit/emit.h): Renamed to vm/jit/emit-common.h. 2006-09-28 20:29 edwin Merged r5540 and r5542 from trunk: * configure.ac: Cygwin OS dir added. * src\lib\Makefile.am: Now checks for "zip.exe" as well * src\vm\jit\i386\Makefile.am: Added Cygwin OS dir. * src\vm\jit\i386\cygwin\Makefile.am: Added. * src\vm\jit\i386\cygwin\md-os.c: Added. Only contains dummy signal handlers. * src\vm\builtin.c: Undefine Bias for Cygwin because Windows uses this define. * src\vm\signal.c: No signal handlers for Cygwin. * src/vm/jit/i386/cygwin/.cvsignore: New file. 2006-09-28 20:23 edwin Merged r5539 from trunk: * src/vm/jit/mips/emit.c (emit_exception_stubs): Don't use SIZEOF_VOID_P for getting return address, this is wrong on MIPS32. * src/vm/jit/mips/codegen.c (createnativestub): Likewise. 2006-09-28 20:20 edwin Merged r5538 from trunk: * src/native/native.c (native_insert_char): New function. (native_resolve_function): Use native_insert_char function to fill name buffer. 2006-09-28 20:19 edwin Merged r5537 from trunk: * src/vm/jit/mips/codegen.c (codegen): Make fieldinfo, unresolved_field local variables, better code for ICMD_PUTFIELD. 2006-09-28 20:18 edwin Merged r5536 from trunk: * src/vm/jit/mips/emit.c (vm/jit/emit.h): Renamed to vm/jit/emit-common.h. (emit_load_s1, emit_load_s2, emit_load_s3, emit_store_dst): Removed. * src/vm/jit/mips/codegen.c (vm/jit/emit.h): Renamed to vm/jit/emit-common.h. (codegen): Some updates to field instructions. 2006-09-28 20:17 edwin Merged r5535 from trunk: * src/vm/jit/mips/codegen.c (codegen): Moved ICMD_IREMPOW2 and ICMD_LREMPOW2. 2006-09-28 20:16 edwin Merged r5534 from trunk: * src/vm/jit/alpha/emit.c (vm/jit/emit.h): Renamed to vm/jit/emit-common.h. (emit_load_s1, emit_load_s2, emit_load_s3, emit_store_dst): Removed. * src/vm/jit/alpha/codegen.c (vm/jit/emit.h): Renamed to vm/jit/emit-common.h. 2006-09-28 20:13 edwin Merged r5531 and r5532, ported to unified_variables: * src/vm/jit/i386/md-emit.h: Renamed to src/vm/jit/i386/emit.h. * src/vm/jit/i386/emit.c (vm/jit/i386/md-emit.h): Renamed to vm/jit/i386/emit.h. (vm/jit/emit.h): Renamed to vm/jit/emit-common.h. (emit_load_s1, emit_load_s2, emit_load_s3, emit_load_s1_low) (emit_load_s2_low, emit_load_s1_high, emit_load_s2_high) (emit_store_dst): Removed. * src/vm/jit/i386/codegen.c (vm/jit/i386/md-emit.h): Renamed to vm/jit/i386/emit.h. (vm/jit/emit.h): Renamed to vm/jit/emit-common.h. 2006-09-28 19:53 edwin Merged r5530 from trunk: * src/vm/jit/emit.h: Renamed to src/vm/jit/emit-common.h. * src/vm/jit/emit-common.c: New file. * src/vm/jit/Makefile.am (noinst_HEADERS): Removed emit.h. (libjit_la_SOURCES): Added emit-common.[ch]. * src/vm/jit/x86_64/emit.c (emit_load_s1, emit_load_s2, emit_load_s3) (emit_store_dst): Removed. * src/vm/jit/x86_64/codegen.c: Changed include names. 2006-09-28 19:46 edwin Merged r5529 from trunk: * src/vm/jit/x86_64/md-emit.h: Renamed to src/vm/jit/x86_64/emit.h. 2006-09-28 19:36 edwin Merged r5527 from trunk: * src/native/include/.cvsignore: Added sun_misc_Unsafe.h. 2006-09-28 19:33 edwin Merged r5526 from trunk: * src/native/vm/sun_misc_Unsafe.c: New file: * src/native/vm/Makefile.am (libnativevm_la_SOURCES): Added sun_misc_Unsafe.c. * src/native/include/Makefile.am (GEN_HEADER_FILES): Added sun_misc_Unsafe.h. 2006-09-28 19:31 edwin Merged r5525 from trunk: * tests/regression/clinitexception.2output: Updated to GNU Classpath 0.92. * tests/regression/extest.2output: Likewise. 2006-09-28 19:30 edwin Merged r5509 from trunk: * src/vm/jit/show.c (new_show_basicblock): Print predecessors only for stage >= SHOW_CFG. * src/vm/jit/show.h (SHOW_CFG): Defined. 2006-09-28 19:24 edwin Merged r5506 from trunk: * src/native/jni.c (GetDirectBufferAddress): Check if address is NULL. 2006-09-28 19:22 edwin Merged r5502 from trunk, with additional fixes: * src/vm/jit/jit.c (jit_compile_intern): Moved cfg_build call after stack_analyse, because of JSR elimination. * src/vm/jit/cfg.c (cfg_build): Updated to be run after stack_analyse. Fixes: * src/vm/jit/cfg.c (cfg_build): Skip NOPs at the end of the block. Handle JSR and RET correctly. Use bptr->next in the default case of falling into the following block. 2006-09-28 18:45 edwin Merged r5489 from trunk: * configure.ac (INTRP_CFLAGS): Moved a bit. * src/vm/jit/intrp/Makefile.am (CFLAGS): Don't define. (AM_CFLAGS): Define as INTRP_CFLAGS, that seems to be the correct way. 2006-09-28 18:42 edwin * src/vm/jit/sparc64/codegen.c (codegen): Replaced catchtype.cls with catchtype.any to reflect that it can be a classref or a classinfo. (Also see r5488.) 2006-09-28 18:35 edwin Merged r5476 from trunk: Merged sparc64 changes from trunk. 2006-09-28 18:31 edwin Merged r5462 from trunk: * src/vm/jit/parse.c (new_parse): Added a ICMD_NOP at the end of each basic block, if we have reorder enabled. 2006-09-28 17:02 edwin * src/vm/jit/reg.h (registerdata): New fields regcopycount, memcopycount, and memcopycountsize. * src/vm/jit/allocator/simplereg.c (reg_init_temp): Take jitdata argument, initialize copy counts. (reg_free_temp): Simplified a bit. (reg_free_temp_func): Check if freeing a copy. (reg_alloc_dup): New function. (new_allocate_scratch_registers): Implemented DUP coalescing using a copy count for each register/memory regoff. 2006-09-19 09:41 edwin * tests/regression/jasmin/runtest: Display only the basename of tests. * tests/regression/jasmin/Makefile.am: Use $(srcdir) to locate the runtest script. 2006-09-15 20:18 edwin * src/vm/jit/stack.c (new_stack_analyse): Set stackslot SAVEDVAR for MULTIANEWARRAY. 2006-09-15 17:19 christian src/vm/jit/allocator/simplereg.c (reg_free_temp_func): New var structures also for SUPPORT_COMBINE_INTEGER_REGISTERS. 2006-09-15 17:05 christian * src/vm/jit/ppc/emit.c (emit_load): Changed to new variable structure (varinfo * instead of stackptr) and the use of Macros IS_INMEMORY and VAROP. (emit_store): Likewise. (emit_copy): Likewise. (emit_load_high): Likewise. (emit_load_low): Likewise. (emit_load_s1): Likewise. (emit_load_s1_low): Likewise. (emit_load_s1_high): Likewise. (emit_load_s2): Likewise. (emit_load_s2_low): Likewise. (emit_load_s2_high): Likewise. (emit_load_s3): Likewise. (emit_load_s3_low): Likewise. (emit_load_s3_high): Likewise. (emit_store_dst): Likewise. * src/vm/jit/ppc/codegen.c (codegen): Changed to new variable structure (varinfo * instead of stackptr, adapting of Argument handling, no interface copying anymore at BB Boundaries ) and the use of Macros IS_INMEMORY, VAR and VAROP. ICMD_xSTORE and ICMD_xLOAD use now emit_copy. ICMD_DUPx and ICMD_SWAP were replaced by ICMD_MOVE and ICMD_COPY. Invars are now regarded for EXH and JSR Blocks. Changed ICMD_RET handling like with i386. * src/vm/jit/ppc/codegen.h (M_COPY): Changed to new variable structure. * src/vm/jit/ppc/linux/md-abi.c (md_return_alloc): Changed to new variable structure. * src/vm/jit/ppc/darwin/md-abi.c (md_return_alloc): Changed to new variable structure. 2006-09-15 16:55 edwin * tests/regression/jasmin/Makefile.am: Added new test. * tests/regression/jasmin/test_dup_x2_interface_slots.j: New test. * tests/regression/jasmin/test_dup_x1_interface_slots.j: Changed second loop to also use DUP_X1. 2006-09-15 16:44 edwin * src/vm/jit/stack.c (MOVE_TO_TEMP): New macro. (new_stack_analyse): Use MOVE_TO_TEMP to save sources for all DUP*, SWAP instructions where it is necessary. * src/vm/jit/parse.c (new_parse): Reserve additional NOPs for DUP* instructions. 2006-09-15 16:39 edwin * tests/regression/jasmin/test_dup_x1_interface_slots.j: New test. * tests/regression/jasmin/test_dup2_x1.j: Added dup2_x1 with interface slots. * tests/regression/jasmin/Makefile.am: Added new test. 2006-09-15 16:31 christian * src/vm/jit/alpha/emit.c (emit_load): Changed to new variable structure (varinfo * instead of stackptr) and the use of Macro IS_INMEMORY. (emit_store): Likewise. (emit_copy): Likewise. (emit_load_s1): Likewise and reuse emit_load. (emit_load_s2): Likewise and reuse emit_load. (emit_load_s3): Likewise and reuse emit_load. (emit_store_dst): Likewise and reuse emit_store. * src/vm/jit/alpha/codegen.c (codegen): Changed to new variable structure (varinfo * instead of stackptr, adapting of Argument handling, no interface copying anymore at BB Boundaries ) and the use of Macro IS_INMEMORY. ICMD_xSTORE and ICMD_xLOAD use now emit_copy. ICMD_DUPx and ICMD_SWAP were replaced by ICMD_MOVE and ICMD_COPY. Invars are now regarded for EXH and JSR Blocks. Changed ICMD_RET handling like with i386. * src/vm/jit/alpha/codegen.h (M_COPY): Changed to new variable structure. * src/vm/jit/alpha/md-abi.c (md_return_alloc): Changed to new variable structure. 2006-09-15 15:52 edwin * src/vm/jit/stack.c (new_stack_analyse): Add a third move at the beginning of a swap operation to save the src1 operand, unless it is in a temporary variable. * src/vm/jit/parse.c (new_parse): Reserve three ICMDs for SWAP. 2006-09-15 15:44 edwin * tests/regression/jasmin/Makefile.am: Added/renamed tests. 2006-09-15 14:43 edwin * src/vm/jit/verify/typecheck.c: Cleanup and documentation. 2006-09-15 14:18 edwin * src/vm/jit/verify/typecheck.c (typestate_reach): Removed check against uninitialized object on stack/in locals during backward branch. It is unnecessary, and not done by the RI. Reference: Alessandro Coglio Improving the official specification of Java bytecode verification Proceedings of the 3rd ECOOP Workshop on Formal Techniques for Java Programs June 2001 citeseer.ist.psu.edu/article/coglio03improving.html (verify_basic_block): Removed check against uninitialized object in locals within try block. See above. * tests/regression/jasmin/ test_verify_fail_backward_with_new_in_local.j: Renamed. * tests/regression/jasmin/test_verify_fail_new_in_local_within_try.j: Renamed. * tests/regression/jasmin/ test_verify_unspecced_ok_backward_with_new_on_stack.j: New test. * tests/regression/jasmin/ test_verify_fail_backward_with_new_on_stack.j: Fixed. 2006-09-15 13:08 edwin * tests/regression/jasmin/runtest: Use [ \t] instead of \s in the regex for sed, as this seems to be more portable. 2006-09-15 13:03 edwin * src/vm/jit/verify/typecheck.c (typecheck_reset_flags): Mark unreached blocks as BBDELETED. The only case in which this can happen to a block that was considered reachable by the stack analysis, is in the case of an exception handler which only covers blocks that have no PEIs. 2006-09-15 12:51 edwin * src/vm/resolve.c (new_resolve_field_lazy): Check jd->flags instead of opt_verify. (new_resolve_method_lazy): Likewise. 2006-09-15 12:48 christian * src/vm/jit/stack.c (new_stack_analyse): Stackslot flags have to be set for SAVEDVARs, too. 2006-09-15 11:02 edwin * src/vm/jit/verify/typecheck.c (verify_basic_block): Fix check for active exception handlers. We may not compare pointers here, as the blocks are not allocated with rising memory addresses. Use the block numbers to compare ranges. 2006-09-15 09:19 christian * src/vm/jit/x86_64/emit.c (emit_load): Changed to new variable structure (varinfo * instead of stackptr) and the use of Macro IS_INMEMORY. (emit_store): Likewise. (emit_copy): Likewise. (emit_ishift): Likewise. (emit_lshift): Likewise. (emit_load_s1): Likewise and reuse emit_load. (emit_load_s2): Likewise and reuse emit_load. (emit_load_s3): Likewise and reuse emit_load. (emit_store_dst): Likewise and reuse emit_store. * src/vm/jit/x86_64/md-emit.h: Adapded prototypes. * src/vm/jit/x86_64/codegen.c (codegen): Changed to new variable structure (varinfo * instead of stackptr, adapting of Argument handling, no interface copying anymore at BB Boundaries ) and the use of Macro IS_INMEMORY. ICMD_xSTORE and ICMD_xLOAD use now emit_copy. Invars are now regarded for EXH and JSR Blocks. * src/vm/jit/x86_64/codegen.h (M_COPY): Changed to new variable structure. * src/vm/jit/x86_64/md-abi.c (md_return_alloc): Changed to new variable structure. * src/vm/jit/stack.c (new_stack_analyse): Only try to preallocate return stackslots, if they hold a TEMPVAR. Some preparation for SSA. * src/vm/jit/jit.c (jit_compile_intern): Had to disable replace_create_replacement_points(jd). * src/vm/jit/show.c (new_show_icmd): Show s1 of [FIDL]RETURN like for ARETURN. 2006-09-14 22:51 edwin * configure.ac: Generate tests/regression/jasmin/Makefile. * tests/regression/Makefile.am: Added subdir jasmin. * tests/regression/jasmin/Makefile.am: New file. * tests/regression/jasmin/runtest: Check if jasmin .jar is available. 2006-09-14 22:49 edwin * src/vm/jit/verify/typecheck.c (verify_basic_block): Change destination variable of GETFIELD/GETSTATIC after all checks have been performed, so there is no problem if destination == source. 2006-09-14 21:29 edwin * tests/regression/jasmin/test_verify_fail_retaddr_as_object.j: New test. 2006-09-14 21:23 edwin * tests/regression/jasmin/test_verify_fail_backward_with_new_in_local.j: New test. * tests/regression/jasmin/test_verify_fail_new_in_local_within_try.j: Likewise. * tests/regression/jasmin/test_verify_fail_double_local_index.j: Likewise. * tests/regression/jasmin/test_verify_fail_backward_with_new_on_stack.j: Likewise. 2006-09-14 20:55 edwin * tests/regression/jasmin/test_verify_fail_long_local.j: Added comment. * tests/regression/jasmin/test_verify_fail_double_overwritten.j: New test. * tests/regression/jasmin/test_verify_fail_invoke_basic_type.j: New test. * tests/regression/jasmin/test_verify_fail_long_overwritten.j: New test. 2006-09-14 20:36 edwin * src/vm/jit/verify/typecheck.c (typecheck_invalidate_locals): New function. (verify_basic_block): Invalidate locals that share space with the stored local. (typecheck): Build reverse map of locals. 2006-09-14 18:56 edwin * src/vm/jit/reg.h (varinfo): Added typeinfo member. * src/vm/jit/verify/typecheck.c: Ported to unified_variables. * src/vm/jit/verify/typeinfo.h: Likewise. * src/vm/jit/verify/typeinfo.c: Likewise. 2006-09-14 18:55 edwin * src/vm/resolve.c (resolve_class_from_name): RESOLVE_VERBOSE changes. (resolve_classref_or_classinfo): Likewise. (resolve_class_from_typedesc): Likewise. (resolve_and_check_subtype_set): Likewise. (new_create_unresolved_field): Likewise. (new_create_unresolved_method): Likewise. (new_resolve_field_verifier_checks): Ported to unified_variables. (new_resolve_field_lazy): Likewise. (new_resolve_method_verifier_checks): Likewise. (new_resolve_method_lazy): Likewise. (new_constrain_unresolved_field): Likewise. (unresolved_subtype_set_from_typeinfo): Take classname directly, instead of the constant_classref *. (create_unresolved_class): Pass classname to unresolved_subtype_set_from_typeinfo. (new_constrain_unresolved_method): Ported to unified_variables. Pass classname to unresolved_subtype_set_from_typeinfo. (This should fix a bug when fieldref->p.classref was invalid.) (new_constrain_unresolved_method): Ported to unified_variables. Pass classname to unresolved_subtype_set_from_typeinfo. * src/vm/resolve.h (jit/reg.h): Include this before typeinfo.h (new_resolve_method_lazy): Added jd parameter. (new_resolve_field_lazy): Likewise. (new_constrain_unresolved_field): Likewise. (new_constrain_unresolved_method): Likewise. * src/vm/jit/parse.c (new_parse): Pass jd to resolve functions. 2006-09-14 18:45 edwin * src/vm/jit/show.c (new_show_method): Only show allocation of locals if stage is at least SHOW_REGS. (new_show_icmd): Show class for CHECKCAST. 2006-09-14 18:44 edwin * src/vm/jit/stack.c (stack_create_invars): Add extra locals needed by the verifier. (stack_create_invars_from_outvars): Likewise. (new_stack_analyse): Create inlocals for first block. Allow ASTORE of returnAddress values. 2006-09-14 18:40 edwin * src/vm/jit/parse.c (new_parse): Commented calculation of varcount and added added extra variables that will be needed by the verifier. 2006-09-14 18:36 edwin * src/vm/global.h (VERIFIER_EXTRA_LOCALS): New constant. (VERIFIER_EXTRA_VARS): Likewise. 2006-09-14 18:20 edwin * src/vm/class.c (class_classref_or_classinfo_print): New function. (class_classref_or_classinfo_println): Likewise. * src/vm/class.h (class_classref_or_classinfo_print): New function. (class_classref_or_classinfo_println): Likewise. 2006-09-14 18:16 edwin * src/vm/jit/jit.h (VAROP): New macro for accessing variable operands. (VAR): New macro for getting a variable from a varindex. 2006-09-14 16:46 edwin * tests/regression/jasmin/test_verify_fail_load_wrong_type.j: New test. * tests/regression/jasmin/ test_verify_fail_load_wrong_type_within_block.j: New test. * tests/regression/jasmin/test_verify_fail_local_index.j: New test. * tests/regression/jasmin/test_verify_fail_long_local_index.j: New test. * tests/regression/jasmin/test_verify_fail_long_local.j: New test. * tests/regression/jasmin/test_verify_fail_split_local.j: New test. * tests/regression/jasmin/test_verify_ok_overwrite_local_type.j: New test. * tests/regression/jasmin/test_verify_ok_untyped_local.j: New test. 2006-09-13 00:21 edwin * src/vm/jit/powerpc/codegen.c (codegen): Replaced catchtype.cls with catchtype.any to reflect that it can be a classref or a classinfo. * src/vm/jit/alpha/codegen.c (codegen): Likewise. * src/vm/jit/mips/codegen.c (codegen): Likewise. * src/vm/jit/i386/codegen.c (codegen): Likewise. * src/vm/jit/powerpc64/codegen.c (codegen): Likewise. * src/vm/jit/intrp/codegen.c (codegen): Likewise. * src/vm/jit/x86_64/codegen.c (codegen): Likewise. * src/vm/jit/intrp/asmpart.c (intrp_asm_handle_exception): Added XXX comment warning that classrefs must be resolved here. 2006-09-13 00:03 edwin * src/vm/jit/i386/codegen.c (codegen): Use emit_copy for LOAD/STORE instructions. We should also combine this with ICMD_COPY/MOVE, but I was not sure how to deal with the M_COPY macro. 2006-09-12 23:35 edwin * tests/regression/jasmin/test_swap_locals.j: New test. 2006-09-12 23:31 edwin * tests/regression/jasmin/test_swap_interface_slots.j: New test. 2006-09-12 23:18 edwin * tests/regression/jasmin/test_many_monitors.j: New test. (This test case used to fail with old-instruction-format cacao.) 2006-09-12 22:32 christian * src/vm/jit/i386/codegen.c (codegen): Corrected handling of taking arguments out of stack frame. Some changes to adapt SSA to unified variables. 2006-09-12 21:34 edwin * src/vm/jit/parse.c (parse_check_instructions): Renamed to parse_realloc_instructions to reflect what it really does. Fixed so it adds at least as many instructions as required by the check. * src/vm/jit/parse.h (INSTRUCTIONS_CHECK): Use parse_realloc_instructions. (MARK_BASICBLOCK): Cleaned up backslashes. 2006-09-12 21:23 edwin * src/vm/jit/stack.c (new_stack_analyse): Fixed test for existing coalescing for *STORE. Properly use the return value of stack_mark_reached when analysing a block for the first time. * tests/regression/jasmin/test_simple_load_store.j: Added a test that just does ILOAD 1, ISTORE 1. 2006-09-12 00:21 edwin * tests/regression/jasmin/test_verify_ok_jsr_handler_in_sub.j: Renamed to test_verify_fail_jsr_handler_in_sub.j, as it fails on the reference implementation. * tests/regression/jasmin/test_verify_ok_jsr_exceptions.j: Renamed to test_verify_fail_jsr_exceptions.j, likewise. * tests/regression/jasmin/test_verify_fail_ret_uninit_var.j, tests/regression/jasmin/test_verify_fail_aload_retaddress.j, tests/regression/jasmin/test_verify_fail_ret_bad_type.j: Made expected error match both CACAO's message and the reference implementation's message. 2006-09-11 23:32 edwin * src/vm/jit/stack.c (stack_reanalyse_block): Removed unused variable. 2006-09-11 23:24 edwin * src/vm/jit/stack.c: Added JSR elimination by block specialization. * src/vm/jit/i386/codegen.c (codegen): Treat ICMD_RET as a GOTO. 2006-09-11 23:17 edwin * tests/regression/jasmin/runtest: Add --color option. 2006-09-11 22:17 edwin * tests/regression/jasmin/test_verify_ok_jsr_handler_in_sub2.j: Added a second call of the subroutine, so cacao has to clone the exception handler. 2006-09-11 14:59 edwin * tests/regression/jasmin/test_verify_ok_jsr_handler_in_sub.j: New test. * tests/regression/jasmin/test_verify_ok_jsr_exceptions.j: Likewise. * tests/regression/jasmin/test_verify_ok_jsr_through_variable.j: Likewise. * tests/regression/jasmin/test_verify_ok_jsr_handler_in_sub2.j: Likewise. * tests/regression/jasmin/test_verify_ok_jsr_swap.j: Likewise. 2006-09-11 14:57 edwin * tests/regression/jasmin/test_dup2.j: Fix stackdepth. * tests/regression/jasmin/test_load_store_conflict.j: Likewise. 2006-09-11 14:55 edwin * tests/regression/jasmin/runtest: Only show PASS if status is ok. 2006-09-11 14:54 edwin * src/vm/jit/allocator/simplereg.c (new_allocate_scratch_registers): Zero destination of ICMD_JSR to avoid problems when showing the IR. 2006-09-11 14:52 edwin * src/vm/jit/show.h (show_jit_type_letters): New variable. (show_jit_type_names): Likewise. * src/vm/jit/show.c (jit_type): Renamed to show_jit_type_names and exported. (show_jit_type_letters): New variable. (new_show_method): Improved. (new_show_icmd): Likewise. 2006-09-11 14:45 edwin * src/toolbox/logging.h (log_text): Fixed for strings containing %. 2006-09-11 14:37 edwin * src/vm/jit/reg.h (varinfo): Put regoff inside a union (vv) so it can share space with the constant values put in varinfo. Also made type and flags s4. * src/vm/jit/stack.c (new_stack_analyse): Replace regoff with vv.regoff. * src/vm/jit/show.c (new_show_method): Likewise. (new_show_variable): Likewise. * src/vm/jit/allocator/simplereg.c (local_regalloc): Likewise. (reg_new_temp_func): Likewise. (reg_free_temp_func): Likewise. (new_allocate_scratch_registers): Likewise. (reg_make_statistics): Likewise. * src/vm/jit/i386/emit.c: Likewise. * src/vm/jit/i386/codegen.c: Likewise. * src/vm/jit/codegen-common.c: Likewise. 2006-09-11 00:33 edwin * src/vm/global.h (TYPE_RET): New constant. * src/vm/exceptions.c (exceptions_throw_verifyerror_for_stack): Display TYPE_RET correctly. 2006-09-11 00:30 edwin * src/vm/jit/jit.h (basicblock): Added fields `inlocals` and `original` (for JSR elimination). 2006-09-11 00:03 edwin * tests/regression/jasmin/test_verify_fail_aload_retaddress.j: New test. * tests/regression/jasmin/test_verify_fail_ret_uninit_var.j: New test. * tests/regression/jasmin/test_verify_ok_jsr_pop.j: New test. * tests/regression/jasmin/test_verify_ok_jsr_push.j: New test. 2006-09-10 13:51 edwin * tests/regression/jasmin/runtest: Return correct exit code. 2006-09-10 13:45 edwin * tests/regression/jasmin/runtest: Delete temporary files. * tests/regression/jasmin/test_verify_ok_jsr.j: New test. * tests/regression/jasmin/test_verify_ok_jsr_multiple_blocks.j: New test. * tests/regression/jasmin/test_verify_fail_ret_bad_type.j: New test. 2006-09-10 13:43 edwin * tests/regression/jasmin/runtest: Added harness code for expecting errors. 2006-09-10 11:35 christian * src/vm/jit/i386/codegen.c (codegen): Corrected handling of taking arguments out of stack frame. 2006-09-10 11:20 edwin * src/vm/jit/stack.c (DUP_SLOT): Removed code for direct coalescing. (DUP coalescing will be done in simplereg, probably.) 2006-09-10 09:11 edwin * src/vm/jit/show.c (new_show_method): Use class_print and class_classref_print for showing the catch type. 2006-09-09 22:33 edwin * src/vm/jit/stack.c: Fixed macro backslashes. 2006-09-09 22:05 edwin * src/vm/jit/show.c (new_show_method): Show hexadecimal offsets in stack slot table. 2006-09-09 21:58 edwin * src/vm/jit/stack.c (new_stack_analyse): Reset the sd.new pointer at the beginning of each basic block. 2006-09-09 21:50 edwin * src/vm/jit/stack.c (new_stack_analyse): Made control-flow easier to read. The majority of the code is now indented one level too much. I did not change this, yet, to avoid a giant diff. We can do this when all the branches are merged together. 2006-09-09 21:41 edwin * src/vm/jit/stack.c (new_stack_analyse): Combined calls to stack_create_instack. 2006-09-09 21:33 edwin * src/vm/jit/jit.h (basicblock): Removed members instack and outstack. * src/vm/jit/stack.c (stack_check_invars): New function. (stack_create_instack): New function. (stack_mark_reached): Use new functions. (new_stack_analyse): Likewise. * src/vm/jit/stack.h (COPYCURSTACK): Removed macro. 2006-09-09 20:05 edwin * src/vm/jit/stack.h (COPYCURSTACK): Do not create invars here. * src/vm/jit/stack.c (stack_create_invars): New function. (stack_mark_reached): Use stack_create_invars. (new_stack_analyse): Likewise. 2006-09-09 19:37 edwin * src/vm/jit/jit.h (basicblock): Added fields varstart and varcount. Reordered fields for clarity and alignment. * src/vm/jit/stack.c (new_stack_analyse): Set varstart and varcount of each basic block. 2006-09-09 19:25 edwin * src/vm/exceptions.c (exceptions_handle_exception): Added comment on why we have to do eager resolving here. Check for exceptions while resolving the catch class reference. * src/vm/linker.c (link_class_intern): Resolve exception classes in handler entries lazily, instead of eagerly. 2006-09-09 14:49 edwin * src/vm/jit/stack.h (CURKIND): Removed macro. (CURTYPE): Removed macro. * src/vm/jit/stack.c (new_stack_analyse): Removed the single use of CURKIND. 2006-09-09 14:45 edwin * src/vm/jit/stack.h (Changes): Added my name. 2006-09-09 14:41 edwin * src/vm/jit/stack.h (REQUIRE_1, REQUIRE_2, REQUIRE_3, REQUIRE_4): Removed. * src/vm/jit/stack.c (new_stack_analyse): Use the general REQUIRE macro. 2006-09-08 23:59 edwin * src/vm/jit/stack.c (IS_TEMPVAR): Fix bug spotted (and produced ;) by c_u. 2006-09-08 20:54 edwin * src/vm/jit/stack.c (new_stack_analyse): Added some assertion. When we do a STORE coalescing, the stackslot must have a creator. 2006-09-08 20:50 edwin * src/vm/jit/stack.c (new_stack_analyse): Unified last_dup_boundary and last_pei_boundary to coalescing_boundary. Activated STORE coalescing. Change destination operand of creator, if any. 2006-09-08 20:41 edwin * src/vm/jit/stack.h (COPYCURSTACK): Use GET_NEW_VAR. Removed SET_OUTVAR. * src/vm/jit/stack.c (GET_NEW_VAR): New macro. (various macros): Use GET_NEW_VAR, so the variable type is set. Reset coalescing for non-consuming uses. (SET_TEMPVAR): Fix: do not use "copy". Change the destination operand of the creator, if any. (DST_LOCAL): Activate LOAD coalescing. (new_stack_analyse): Reset coalescing for pass-through operands. 2006-09-08 19:48 edwin * src/vm/jit/jit.h (stackelement): Added creator field. * src/vm/jit/stack.h (COPYCURSTACK): Set creator = NULL. * src/vm/jit/stack.c (DST, DST_LOCALVAR, MOVE_COPY_UP, COPY_DOWN): Set creator to current iptr. * src/vm/jit/stack.h: Cleaned up macros. * src/vm/jit/stack.c: Likewise. 2006-09-08 18:14 edwin * src/vm/jit/codegen-common.h: Removed the NEW_VAR define. * src/vm/jit/stack.c: Likewise. * src/vm/jit/verify/typecheck.c: Likewise. * src/vm/jit/i386/codegen.c: Likewise. * src/vm/jit/parse.c: Likewise. * src/vm/jit/reg.c: Likewise. * src/vm/jit/reg.h: Likewise. * src/vm/jit/jit.c: Likewise. * src/vm/jit/codegen-common.c: Likewise. * src/vm/jit/jit.h: Likewise, and removed the dupslots member from the dst_operand_t union. 2006-09-08 18:12 edwin * src/vm/jit/show.c (new_show_icmd): Removed code for DUPs. 2006-09-08 17:59 edwin * src/vm/jit/verify/typecheck.c: Removed code for DUPs. 2006-09-08 17:57 edwin * src/vm/jit/i386/codegen.c (codegen): Removed code for DUPs. 2006-09-08 17:50 edwin * src/vm/jit/i386/codegen.c (*LOAD, *STORE): Normalized the source == dest check so it always looks the same. (LLOAD, LSTORE): Use M_LNGMOVE, not M_INTMOVE. (DSTORE): Combined with FSTORE, because it now has the same code. 2006-09-08 17:37 edwin * src/vm/jit/i386/codegen.c (codegen): Fix LSTORE: The source == dest test was broken. 2006-09-08 16:41 edwin * src/vm/jit/show.c (new_show_method): Fix display of local table. 2006-09-08 16:26 edwin * src/vm/jit/stack.c (new_stack_analyse): Fix ICMD_RET: The variable index has to be mapped. 2006-09-08 16:07 edwin * src/vm/jit/stack.c (DUP_SLOT): Turn off coalescing. (MOVE_COPY_UP): New macro. (COPY_DOWN): New macro. (interface_map): Changed to array of interface_info. (*STORE): Fix index into last_store_boundary (must be javaindex). (DUP*, SWAP): Eliminate DUPs. (new_stack_analyse): Mark invar interfaces used. * src/vm/jit/show.c (new_show_method): Adapted to new interface_map layout. * src/vm/jit/allocator/simplereg.c (interface_regalloc): Adapted to new interface_map layout. (new_allocate_scratch_registers): Likewise. (new_allocate_scratch_registers): Removed code for DUP* instructions. (ICMD_MOVE, ICMD_COPY): Added. 2006-09-08 16:02 edwin * src/vm/jit/i386/codegen.h (M_FLTMOVE): Only assert(0) if move would have to be performed. 2006-09-08 14:17 edwin * src/vm/jit/show.c (show_variable): Check for invalid flags. 2006-09-08 14:16 edwin * src/vm/jit/i386/codegen.c (codegen): Removed a debug print. 2006-09-08 14:15 edwin * src/vm/jit/stack.c (DST_LOCALVAR): _Really_ turn off coalescing temporarily. 2006-09-08 12:19 edwin * src/vm/jit/allocator/simplereg.c (interface_regalloc): Changed allocation of interface registers. interface_map now contains the necessary flags, and receives a combination of allocated flags and regoff. (new_allocate_scratch_registers): Copy the allocation of the invars and outvars for each basic block. 2006-09-08 12:17 edwin * src/vm/jit/jit.h (LOCAL_UNUSED): Changed (in comment) to UNUSED. 2006-09-08 12:16 edwin * src/vm/jit/stack.c (stackdata_t): New struct for keeping internal data of the stack analysis. This is necessary for converting macros to functions. (various macros): Adapted to use stackdata_t. Removed old code. (DST_LOCALVAR): Temporarily turned off local variable coalescing. (MARKREACHED): Converted to a function. (stack_mark_reached): New function. (last_store_boundary): Use java indices instead of internal local indices into this table. (new_stack_analyse): Removed old code. * src/vm/jit/stack.h (various macros): Adapted to use stackdata_t. (MARKREACHED): Converted to a function. 2006-09-08 12:10 edwin * src/vm/jit/parse.h: Removed old code. * src/vm/jit/parse.c (new_parse): Do not modify m->maxlocals and cd->maxlocals. They refer to the number of javalocals, and that's ok. We have jd->localcount to keep the number of internal locals. 2006-09-08 12:07 edwin * src/vm/jit/show.c (new_show_method): Show isleafmethod. (new_show_method): Pretty interface map printing (prepared for interface register allocation changes). (new_show_method): Print allocation of stack slots. (show_allocation): New function. (show_variable): Mark SAVEDVARs with an exclamation mark. 2006-09-08 01:05 edwin * src/vm/jit/show.c (new_show_method): Only show local table if there are locals. 2006-09-07 23:17 edwin * src/vm/jit/show.c (jit_type): Made types uppercase. (new_show_method): Prettier printing of locals_map and interface_map. (SHOW_STACKVAR): Renamed to SHOW_VARIABLE. (new_show_stackvar): Renamed to show_variable. Cleaned up. 2006-09-07 22:44 edwin * src/vm/jit/allocator/simplereg.c (reg_new_temp_func): Removed old version. (reg_free_temp_func): Likewise. (allocate_scratch_registers): Likewise. 2006-09-07 22:39 edwin * src/vm/jit/allocator/simplereg.c (reg_alloc_dup): Removed. (new_reg_mark_copy): Likewise. 2006-09-07 14:41 edwin * src/vm/jit/i386/codegen.c (ICMD_COPY): Added. (ICMD_MOVE): Likewise. 2006-09-07 14:38 edwin * src/vm/jit/reg.h (varinfo): New field copycount. * src/vm/jit/parse.c (new_parse): Zero jd->var array. 2006-09-07 14:31 edwin * src/vm/jit/parse.c (new_parse): Allocate extra NOPs for stack operations. 2006-09-07 14:25 edwin * src/vm/jit/show.c (ICMD_COPY): Uncommented. (ICMD_MOVE): Likewise. 2006-09-07 14:24 edwin * src/vm/jit/jit.h, src/vm/jit/jit.c (ICMD_COPY): New ICMD. (ICMD_MOVE): Likewise. 2006-09-07 14:00 christian * src/vm/jit/allocator/simplreg: Removed #if defined(NEW_VAR) over some functions. 2006-09-07 13:41 edwin * src/vm/jit/jit.c (ENABLE_VERIFY): Corrected to ENABLE_VERIFIER. 2006-09-07 13:29 christian Unified variables changes for common/i386. 2006-09-07 13:01 edwin Branch for developing unified variables. 2006-09-07 12:52 twisti * src/vm/jit/i386/emit.c: Use IS_INMEMORY macro. * src/vm/jit/i386/codegen.c: Likewise. 2006-09-07 12:26 twisti * src/vm/jit/powerpc/codegen.c (codegen): Use IS_INMEMORY macro. 2006-09-07 12:24 twisti * src/vm/jit/powerpc/emit.c (emit_copy): Eliminate register move if one of the variables resides in memory. 2006-09-07 11:14 twisti * src/vm/jit/alpha/emit.c (emit_copy): Only one not-equal comparison. 2006-09-07 11:09 twisti * src/vm/jit/powerpc64/emit.c (emit_copy): Eliminate register move if one of the variables resides in memory. 2006-09-07 10:59 twisti * src/vm/jit/mips/emit.c (emit_copy): Eliminate register move if one of the variables resides in memory. 2006-09-07 10:46 twisti * src/vm/jit/i386/emit.c (emit_copy): Eliminate register move if one of the variables resides in memory. 2006-09-07 10:16 twisti * src/vm/jit/x86_64/emit.c (emit_copy): Eliminate register move if one of the variables resides in memory. 2006-09-07 10:03 twisti * src/vm/jit/alpha/emit.c (emit_copy): Eliminate register move if one of the variables resides in memory. 2006-09-07 09:40 twisti * src/vm/jit/jit.h (IS_SAVEDVAR): Added. (IS_INMEMORY): Likewise. 2006-09-07 00:32 edwin * src/vm/jit/show.c (new_show_icmd): Separate real arguments and pass-through variables for INVOKE*. 2006-09-07 00:29 edwin * src/vm/jit/show.c (new_show_icmd): Separate real arguments and pass-through variables for BUILTIN. 2006-09-06 23:18 twisti * src/vm/jit/powerpc64/linux/md-abi.h: Bugfixes and changes for new instruction format. * src/vm/jit/powerpc64/linux/md-abi.c: Likewise. * src/vm/jit/powerpc64/emit.c: Likewise. * src/vm/jit/powerpc64/codegen.c: Likewise. * src/vm/jit/powerpc64/codegen.h: Likewise. 2006-09-06 22:34 twisti * src/vm/jit/mips/linux/md-abi.h (REG_A0, REG_A1, REG_A2, REG_A3): Defined. * src/vm/jit/mips/codegen.c: Use REG_A? defines instead of rd->argintreg[] loads. 2006-09-06 22:16 twisti * src/vm/jit/alpha/linux/md-abi.h (REG_A0, REG_A1, REG_A2, REG_A3): Defined. * src/vm/jit/alpha/codegen.c: Use REG_A? defines instead of rd->argintreg[] loads. 2006-09-06 21:56 twisti * src/vm/jit/x86_64/md-abi.h (REG_A0, REG_A1, REG_A2, REG_A3): Defined. * src/vm/jit/x86_64/codegen.c: Use REG_A? defines instead of rd->argintreg[] loads. 2006-09-06 21:40 twisti * src/vm/jit/stack.c (new_stack_analyse): Removed obsolete precedessor calucation. 2006-09-06 21:32 edwin * tests/regression/jasmin/test_dup_x2.j: Split second test into separate file. * tests/regression/jasmin/test_dup_x2_to_dup_x1: New test. 2006-09-06 21:30 edwin * tests/regression/jasmin/runtest: Improved harness script. 2006-09-06 21:17 twisti * src/vm/jit/powerpc/linux/md-abi.h (REG_A0, REG_A1, REG_A2, REG_A3): Defined. * src/vm/jit/powerpc/darwin/md-abi.h: Likewise. * src/vm/jit/powerpc/codegen.c: Use REG_A? defines instead of rd->argintreg[] loads. 2006-09-06 17:05 twisti * src/vm/jit/mips/codegen.c (codegen): Generate the INVOKE/BUILTIN call code in a common place. 2006-09-06 16:43 twisti * src/vm/jit/x86_64/codegen.c (codegen): Generate the INVOKE/BUILTIN call code in a common place. 2006-09-06 16:41 twisti * src/vm/jit/i386/codegen.c (codegen): Don't move the function address into disp for ICMD_BUILTIN. 2006-09-06 16:30 twisti * src/vm/jit/i386/codegen.c (codegen): Generate the INVOKE/BUILTIN call code in a common place. (createnativestub): Removed unused disp variable. 2006-09-06 16:24 twisti * src/vm/jit/alpha/codegen.c (codegen): Generate the INVOKE/BUILTIN call code in a common place. 2006-09-06 16:06 twisti * src/vm/jit/powerpc/codegen.c (codegen): Generate the INVOKE/BUILTIN call code in a common place. 2006-09-06 16:01 edwin * src/vm/jit/jit.h (INS_FLAG_NOCHECK): Reversed to INS_FLAG_CHECK. * src/vm/jit/stack.c: Likewise. * src/vm/jit/stack.h: Likewise. * src/vm/jit/parse.c: Likewise. * src/vm/jit/parse.h: Likewise. 2006-09-06 15:22 edwin * src/vm/jit/parse.h (INSTRUCTIONS_CHECK): New macro. * src/vm/jit/parse.c (new_parse): Merged twisti's reallocation of the instruction array. 2006-09-06 14:38 twisti * src/vm/jit/alpha/codegen.c (ICMD_I2L): Use REG_ITMP1 for dst, this can save a move. (ICMD_LDIV, ICMD_LREM): Use argument registers for s1 and s2 when loaded. 2006-09-06 14:32 edwin Checked in jasmin tests. 2006-09-06 14:01 edwin * src/vm/jit/parse.c (parserdata_t): New type. (parse_setup): New function. (parse_check_instructions): New function. 2006-09-06 13:46 christian * src/vm/jit/stack.c (new_stack_analyse): Ifdeffed handling of new var system. * src/vm/jit/stack.h: Likewise. * src/vm/jit/parse.c (new_parse) : Likewise. * src/vm/jit/parse.h: Likewise. * src/vm/jit/jit.h: Ifdeffed structure entries for new var system. 2006-09-06 12:37 twisti * src/vm/jit/powerpc/codegen.c (codegen): Use M_ISUB in ICMD_ISUBCONST instead of M_IADD. 2006-09-06 11:58 twisti * src/vm/jit/mips/emit.c (emit_copy): Removed accidentally pasted code. 2006-09-06 11:12 edwin * src/vm/jit/stack.h: Removed macros for old instruction format. 2006-09-06 11:01 edwin * src/vm/jit/parse.h: Removed NEW_ prefix from macros. * src/vm/jit/parse.c: Likewise. 2006-09-06 10:56 edwin * src/vm/jit/stack.h (CHECKOVERFLOW): Removed. (NEW_CHECKOVERFLOW): Renamed to CHECKOVERFLOW. * src/vm/jit/stack.c (new_stack_analyse): Removed NEW_ prefix from macro names. 2006-09-06 10:48 edwin * src/vm/jit/x86_64/emit.c: Renamed new_instruction to instruction. * src/vm/jit/x86_64/md-emit.h: Likewise. * src/vm/jit/x86_64/codegen.c: Likewise. 2006-09-06 10:20 christian * src/vm/stack.c (new_stack_analyse): Removed assert to check, that all outvars are STACKVARS. Would be a possible conflict with swap * src/vm/parse.c (new_parse): Data colletion for local var renaming(de-coalescing) * src/vm/parse.h (new_pase): Likewise. * src/vm/jit.h: Likewise. * src/vm/jit/i386/codegen.c (codegen): Ifdefed interface copy in regard to new var system. 2006-09-06 10:16 edwin * src/vm/jit/mips/emit.c (emit_load_s1): Removed obsolete src param. (emit_load_s2): Likewise. (emit_load_s3): Likewise. 2006-09-06 10:14 edwin * src/vm/jit/powerpc64/emit.c (emit_load): New function. (emit_load_s1): Implemented in terms of emit_load. (emit_load_s2): Likewise. (emit_load_s3): Likewise. (emit_store_dst): New function. 2006-09-06 10:09 edwin * src/vm/jit/mips/emit.c (emit_load): New function. (emit_load_s1): Implemented in terms of emit_load. (emit_load_s2): Likewise. (emit_load_s3): Likewise. (emit_store_dst): New function. 2006-09-06 09:57 edwin * src/vm/jit/stack.c (new_stack_analyse): Implement conflict checking and coalescing for *STORE. * src/vm/jit/show.c (new_show_stackvar): Show coalescing info. 2006-09-06 00:18 christian * src/vm/jit/stack.c (new_stack_analyse): Mark all in and out Stackslots of Basic Blocks as STACKVAR. * src/vm/jit/i386/codegen.c (codegen): Removed copy of interfaces to in and from out stackslots. 2006-09-06 00:07 edwin * src/vm/jit/powerpc64/codegen.c (codegen): ++lookup in LOOKUPSWITCH loop. * src/vm/jit/powerpc64/codegen.c (codegen): Ported to new instruction format. 2006-09-05 23:37 edwin * src/vm/jit/i386/codegen.c (codegen): Port LASTORECONST, PUT*CONST. 2006-09-05 23:10 edwin * src/vm/jit/mips/codegen.c (codegen): Ported to new instruction format. 2006-09-05 23:08 twisti * src/vm/jit/powerpc/emit.c: Updated to new instruction format. * src/vm/jit/powerpc/codegen.c: Likewise. 2006-09-05 23:07 twisti * src/vm/builtin.c (builtin_print_argument): Print decimal values for int and long arguments. 2006-09-05 22:51 christian * i386/emit.c: Changed to new instruction format. * i386/codegen.c: Likewise. * i386/codegen.h: Likewise. * parse.c: Likewise. * parse.h: Likewise. * jit.h: Likewise. 2006-09-05 22:42 edwin * src/vm/jit/show.c (new_show_icmd): Show LOOKUPSWITCH targets. 2006-09-05 22:27 edwin * src/vm/jit/alpha/codegen.c (codegen): Port MULTIANEWARRAY. 2006-09-05 22:23 edwin * sarc/vm/jit/parse.c (parse): Check return value of lock_monitor_enter. 2006-09-05 22:22 edwin * src/threads/native/lock.h (lock_monitor_enter): Return bool. * src/threads/native/lock.c (lock_monitor_enter): Check for NullPointerException. 2006-09-05 22:05 twisti * src/vm/jit/cfg.c (cfg_build): It's better to not reuse the loop variable. 2006-09-05 21:53 edwin * src/vm/jit/show.c (new_show_icmd): Show BLOCK_OF tableswitch targets. 2006-09-05 21:50 edwin * src/vm/jit/show.c (new_show_icmd): Show TABLESWITCH targets. 2006-09-05 21:20 edwin * src/vm/jit/alpha/codegen.c (codegen): Port ICMD_CHECKCAST. 2006-09-05 21:20 twisti * src/vm/method.h (methodinfo): Removed members basicblockcount, basicblocks, basicblockindex, instructioncount, instructions, stackcount, and stack. * src/vm/jit/cfg.c: Use jitdata variables instead of methodinfo ones. * src/vm/jit/reorder.c: Likewise. * src/vm/jit/ifconv/ifconv.c: Likewise. * src/vm/jit/allocator/simplereg.c: Likewise. * src/vm/jit/replace.c: Likewise. * src/vm/jit/jit.c: Likewise. 2006-09-05 21:17 twisti * src/vm/jit/powerpc/Makefile.am (libarch_la_SOURCES): Added accidentally removed codegen.c. 2006-09-05 21:16 twisti * src/vm/jit/x86_64/codegen.c (codegen): Use d for return type checks. 2006-09-05 21:15 twisti * src/cacaoh/headers.c: Use a dummy flag for natively overloaded methods. 2006-09-05 21:14 edwin * src/vm/jit/alpha/codegen.c (codegen): Deactivate replacement points. * src/vm/jit/x86_64/codegen.c (codegen): Likewise. 2006-09-05 21:06 edwin * src/vm/jit/alpha/codegen.c (codegen): Set fieldtype in all cases. 2006-09-05 20:58 edwin * src/vm/jit/show.c (new_show_basicblock): Prettier if. 2006-09-05 20:57 edwin * src/vm/jit/alpha/codegen.c (codegen): Use jd->new_basicblocks. 2006-09-05 20:50 edwin * src/vm/jit/alpha/codegen.c: Use invars/outvars instead of instack/outstack. 2006-09-05 20:17 edwin * src/vm/jit/alpha/codegen.c (codegen): Port handling of INVOKE* arguments. 2006-09-05 20:11 edwin * src/vm/jit/alpha/emit.c: Ported to new instruction format. * src/vm/jit/alpha/codegen.c: Likewise. 2006-09-05 19:38 twisti * src/vm/jit/jit.h (instruction): Removed. (new_instruction): Renamed to instruction. * src/vm/builtin.c: Renamed new_instruction to instruction. * src/vm/builtin.h: Likewise. * src/vm/resolve.c: Likewise. * src/vm/resolve.h: Likewise. * src/vm/jit/powerpc/emit.c: Likewise. * src/vm/jit/powerpc/Makefile.am: Likewise. * src/vm/jit/codegen-common.h: Likewise. * src/vm/jit/cfg.c: Likewise. * src/vm/jit/reorder.c: Likewise. * src/vm/jit/emit.h: Likewise. * src/vm/jit/stack.c: Likewise. * src/vm/jit/stack.h: Likewise. * src/vm/jit/show.c: Likewise. * src/vm/jit/dseg.c: Likewise. * src/vm/jit/verify/typecheck.c: Likewise. * src/vm/jit/verify/typeinfo.c: Likewise. * src/vm/jit/show.h: Likewise. * src/vm/jit/allocator/simplereg.c: Likewise. * src/vm/jit/parse.c: Likewise. * src/vm/jit/codegen-common.c: Likewise. 2006-09-05 19:06 edwin * src/vm/jit/powerpc/codegen.c (codegen): Converted with portcodegen.pl. * src/vm/jit/sparc64/codegen.c (codegen): Likewise. * src/vm/jit/alpha/codegen.c (codegen): Likewise. * src/vm/jit/mips/codegen.c (codegen): Likewise. * src/vm/jit/i386/codegen.c (codegen): Likewise. * src/vm/jit/powerpc64/codegen.c (codegen): Likewise. 2006-09-05 18:43 edwin Merge changes from trunk (powerpc64). 2006-09-05 17:42 edwin * src/vm/jit/powerpc/codegen.c (codegen): Use emit_load instead of emit_load_s1/s2 for variable arguments and interface copying. * src/vm/jit/alpha/codegen.c (codegen): Likewise. * src/vm/jit/mips/codegen.c (codegen): Likewise. * src/vm/jit/i386/codegen.c (codegen): Likewise. * src/vm/jit/powerpc64/codegen.c (codegen): Likewise. 2006-09-05 17:21 edwin Merged changes from trunk. 2006-09-05 16:45 edwin * src/vm/jit/powerpc/codegen.c (codegen): ICMD_PUTSTATIC: Use emit_load_s1 to load the first operand. * src/vm/jit/sparc64/codegen.c (codegen): Likewise. * src/vm/jit/alpha/codegen.c (codegen): Likewise. * src/vm/jit/mips/codegen.c (codegen): Likewise. * src/vm/jit/i386/codegen.c (codegen): Likewise. * src/vm/jit/powerpc64/codegen.c (codegen): Likewise. 2006-09-05 16:12 edwin * src/vm/jit/jit.h (basicblock): Changed type of iinstr to new_instruction *. * src/vm/jit/stack.c (new_stack_analyse): Removed obsolete casts. * src/vm/jit/show.c (new_show_basicblock): Likewise. * src/vm/jit/verify/typecheck.c (verify_basic_block): Likewise. * src/vm/jit/allocator/simplereg.c (new_allocate_scratch_registers): Likewise. * src/vm/jit/parse.c (new_parse): Likewise. * src/vm/jit/x86_64/codegen.c (new_parse): Likewise. 2006-09-05 12:42 edwin * src/vm/jit/jit.h (s3_operand_t): Removed arrayvftbl. * src/vm/jit/x86_64/codegen.c (codegen): ICMD_MULTIANEWARRAY: Use s3.c.cls instead of s3.arrayvftbl. 2006-09-05 12:29 edwin * src/vm/jit/jit.h (jitdata): Removed field new_rd. * src/vm/jit/jit.c (jit_compile): Use rd instead of new_rd. (jit_compile_intern): Likewise. * src/vm/jit/verify/typecheck.c (typecheck): Likewise. (verify_basic_block): Removed unused variables. * src/vm/jit/allocator/simplereg.c (new_regalloc): Use rd instead of new_rd. * src/vm/jit/x86_64/codegen.c (codegen): Likewise. 2006-09-05 11:53 edwin * src/vm/jit/x86_64/codegen.c: Ported to new instruction format. * src/vm/jit/x86_64/emit.c: Likewise. * src/vm/jit/x86_64/md-emit.h: Likewise. 2006-09-05 11:50 edwin * src/vm/jit/jit.h (s3_operand_t): Added union field arrayvftbl. 2006-09-05 11:47 edwin * src/vm/jit/jit.c (jit_compile): Test setup for the new x86_64 codegen. (jit_compile_intern): Likewise. 2006-09-05 11:42 edwin * src/vm/jit/emit.h (emit_load*): Changed for new instruction format. (emit_store*): Likewise. (emit_copy*): Likewise. (emit_store_dst): New function. 2006-09-05 11:40 edwin * src/vm/jit/jit.h (basicblock): Added fields invars and outvars. * src/vm/jit/stack.h (MARKREACHED): Set invars. * src/vm/jit/stack.c (new_stack_analyse): Set invars and outvars. * src/vm/jit/show.c (new_show_basicblock): Show invars and outvars. 2006-09-05 11:34 edwin * src/vm/jit/jit.h (NEW_INSTRUCTION_*): Renamed to INSTRUCTION_. The old INSTRUCTION_ and ICMD_ macros are removed. * src/vm/resolve.c (NEW_INSTRUCTION_*): Replaced with INSTRUCTION_. * src/vm/jit/show.c (new_show_icmd): Likewise. * src/vm/jit/allocator/simplereg.c (new_allocate_scratch_registers): Likewise. * src/vm/jit/stack.c (new_stack_analyse): Likewise, and add a call of builtintable_replace_function. 2006-09-05 11:20 edwin * src/vm/jit/verify/typecheck.c: Ported to new instruction format. * src/vm/jit/verify/typeinfo.c (typeinfo_print): Likewise. (typeinfo_print_short): Likewise. 2006-09-05 11:16 edwin * src/vm/builtin.h (builtintable_replace_function): Ported to new instruction format. * src/vm/builtin.c (builtintable_replace_function): Likewise. 2006-09-05 11:13 edwin * src/vm/jit/show.c (new_show_variable_array): New function. (new_show_method): Fixed calculation of lastbptr. Only show code lengths if stage >= SHOW_CODE. 2006-09-05 10:52 edwin * src/vm/resolve.h: Removed code for old instruction format. * src/vm/resolve.c: Likewise. 2006-09-05 10:47 edwin * src/vm/jit/allocator/simplereg.h: Removed code for old instruction format. * src/vm/jit/allocator/simplereg.c: Likewise. 2006-09-05 10:44 edwin * src/vm/jit/show.h: Removed code for old instruction format. * src/vm/jit/show.c: Likewise. 2006-09-05 10:39 edwin * src/vm/jit/stack.h: Removed code for old instruction format. * src/vm/jit/stack.c: Likewise. 2006-09-05 10:37 edwin * src/vm/jit/parse.h: Removed code for old instruction format. * src/vm/jit/parse.c: Likewise. 2006-09-05 10:20 edwin Branch for porting the new instruction format. 2006-09-05 10:15 twisti * src/vm/jit/i386/Makefile.am (noinst_HEADERS): Removed icmd_uses_reg_res.inc. 2006-09-05 10:10 twisti * src/vm/jit/i386/icmd_uses_reg_res.inc: Removed. 2006-09-05 10:09 edwin * src/vm/jit/x86_64/codegen.h (ICONST): Fix this macro so it properly uses its arguments. (LCONST): Likewise. 2006-09-05 10:04 twisti * src/tests/Howdy.java: Removed. 2006-09-05 10:03 twisti * src/vm/jit/x86_64/codegen.c (codegen): Use cd->stackframesize instead of stackframesize (bugfix). (createnativestub): Likewise. 2006-09-05 09:59 edwin * src/vm/jit/codegen-common.h (codegen_reg_of_dst): New function. * src/vm/jit/codegen-common.c (codegen_reg_of_dst): Likewise. Right now this duplicates codegen_reg_of_var's body. We should probably make one of these functions inline the other. 2006-09-05 00:12 edwin * src/vm/jit/ifconv/ifconv.c (ifconv_static): Deactivated show_basicblock calls that will become a problem when code for the old instruction format is removed. (check): Likewise. 2006-09-05 00:02 edwin * src/vm/resolve.c (resolve_field): new_resolve_field_verifier_checks used instead of the old function that will be removed soon. (resolve_method): Use new_resolve_method_verifier_checks instead of the old function that will be removed soon. (new_resolve_method_verifier_checks): Port handling of TYPEINFO_IS_NEWOBJECT. (new_resolve_method_verifier_checks): Likewise. (new_constrain_unresolved_field): Likewise. (new_constrain_unresolved_method): Likewise. 2006-09-04 23:24 edwin * src/vm/jit/parse.c (new_parse): Changed leftover "OP" macro uses to "NEW_OP". 2006-09-04 17:45 twisti * src/vm/jit/mips/emit.c (config.h): Added. [ENABLE_THREADS] (threads/native/lock.h): Likewise. (vm/exceptions.h): Likewise. (vm/stringlocal.h): Likewise. (vm/jit/asmpart.h): Likewise. (vm/jit/dseg.h): Likewise. (vm/jit/replace.h): Likewise. (emit_exception_stubs): New method. (emit_patcher_stubs): Likewise. (emit_replacement_stubs): Likewise. * src/vm/jit/mips/codegen.c (codegen): Use cd->stackframesize instead of stackframesize, use emit functions to generate stubs and call trace code. (createnativestub): Likewise. 2006-09-04 17:12 christian * src/vm/jit/alpha/patcher.c (patcher_wrapper): Patch back machine code. (patcher_aconst): Renamed to patcher_resolve_classref_to_classinfo. (patcher_clinit): Renamed to patcher_initialize_class. (patcher_resolve_native): Renamed to patcher_resolve_native_function. (patcher_athrow_areturn): Renamed to patcher_resolve_class. (patcher_checkcast_instanceof_class): Renamed to patcher_resolve_classref_to_vftbl. (patcher_checkcast_instanceof_flags): Renamed to patcher_resolve_classref_to_flags. (patcher_builtin_multianewarray): Removed. (patcher_builtin_arraycheckcast): Likewise. * src/vm/jit/alpha/codegen.c (codegen): Use new patcher functions. 2006-09-04 16:33 twisti * src/vm/jit/alpha/emit.c (vm/builtin.h): Added. (vm/jit/abi-asm.h): Likewise. (vm/jit/replace.h): Likewise. (emit_verbosecall_enter): New method. (emit_verbosecall_exit): Likewise. * src/vm/jit/alpha/codegen.c (codegen): Use emit functions to generate call trace code. (createnativestub): Likewise. 2006-09-04 15:48 twisti * src/vm/jit/powerpc/emit.c (config.h): Added. [ENABLE_THREADS] (threads/native/lock.h): Likewise. (vm/builtin.h): Likewise. (vm/jit/abi-asm.h): Likewise. (vm/jit/asmpart.h): Likewise. (vm/jit/replace.h): Likewise. (emit_exception_stubs): New method. (emit_patcher_stubs): Likewise. (emit_replacement_stubs): Likewise. (emit_verbosecall_enter): Likewise. (emit_verbosecall_exit): Likewise. * src/vm/jit/powerpc/codegen.c (codegen): Use emit functions to generate stubs and call trace code. (createnativestub): Likewise. 2006-09-04 14:21 twisti * src/vm/jit/powerpc/asmpart.S (asm_call_jit_compiler): We don't save an argument on the stack anymore, offsets adjusted. (asm_handle_exception): Use md_codegen_get_pv_from_pc instead of assembler code and temporary variables as on other RISC architectures. 2006-09-04 12:38 tbfg * src/vm/jit/powerpc64/emit.c (emit_verbosecall_enter): Fixed off by one stackslot overwrite some stuff bug. * src/vm/jit/powerpc64/codegen.c (codegen): Fix parameter passing in. 2006-09-02 14:26 tbfg * src/vm/jit/powerpc64/arch.h: Reenabled platfrom features. * src/vm/jit/powerpc64/codegen.c (codegen): Fixed native calls. (createnativestub): Likewise. 2006-08-31 19:58 tbfg * srv/vm/jit/powerpc64/asmpart.S (asm_vm_call_method): Fixed argument handling. 2006-08-31 13:32 tbfg * src/vm/jit/powerpc64/emit.c (emit_verbosecall_enter): Moved from codegen.c refactored into function, and made it work. (emit_verbosecall_exit): Likewise. * src/vm/jit/powerpc64/codegen.c (codegen_trace_args): Moved into emit.c and renamed it to emit_verbosecall_enter. (codegen): Using emit_verbosecall_* instead of inline code, and various fixes to make verbose:call work. (createnativestub): Likewise. 2006-08-28 19:31 tbfg * src/vm/jit/powerpc64/linux/md-abi.h: New REG_TOC name needed to call builtins due to ppc64 function descriptors (ELF ABI). * src/vm/jit/powerpc64/codegen.c (createnativestub): Big endian requires M_LLD and M_IST to copy s4 values from dseg to stack. (codegen): gen_method needs to create function descriptor call. * src/vm/jit/powerpc64/asmpart.S: When linking statically non function descriptor calls are generated by compiler. Some ifdefs added to fix static linking. 2006-08-28 15:18 twisti * src/vm/jit/patcher.h (patcher_resolve_class): Added. (patcher_initialize_class): Likewise. (patcher_resolve_classref_to_classinfo): Likewise. (patcher_resolve_classref_to_vftbl): Likewise. (patcher_resolve_classref_to_flags): Likewise. (patcher_resolve_native_function): Likewise. * src/vm/jit/powerpc/patcher.c (patcher_wrapper): Patch back machine code. (patcher_aconst): Renamed to patcher_resolve_classref_to_classinfo. (patcher_clinit): Renamed to patcher_initialize_class. (patcher_resolve_native): Renamed to patcher_resolve_native_function. (patcher_athrow_areturn): Renamed to patcher_resolve_class. (patcher_checkcast_class): Renamed to patcher_resolve_classref_to_vftbl. (patcher_checkcast_instanceof_flags): Renamed to patcher_resolve_classref_to_flags. (patcher_builtin_multianewarray): Removed. (patcher_builtin_arraycheckcast): Likewise. (patcher_instanceof_class): Likewise. * src/vm/jit/powerpc/codegen.c (codegen): Use new patcher functions (some of them were already commited accidentally in the last commit). 2006-08-28 13:05 twisti * src/vm/jit/emit.h (emit_verbosecall_enter): Added. (emit_verbosecall_exit): Likewise. * src/vm/jit/powerpc/emit.c (vm/builtin.h): Added. (vm/jit/asmpart.h): Likewise. (vm/jit/replace.h): Likewise. (emit_exception_stubs): New method. (emit_patcher_stubs): Likewise. (emit_replacement_stubs): Likewise. (emit_verbosecall_enter): Likewise. (emit_verbosecall_exit): Likewise. * src/vm/jit/powerpc/codegen.c (vm/jit/abi-asm.h): Added. (codegen_trace_args): Removed. (codegen): Use cd->stackframesize instead of stackframesize, use emit functions to generate stubs and call trace code. (createnativestub): Likewise. 2006-08-25 11:55 tbfg * src/vm/jit/show.c (show_method): Stubs are printed green when using -debug-color. * src/vm/jit/powerpc64/linux/md-os.c (md_signal_handler_sigusr2): Moved into #ifdef ENABLE_THREADS conditional compile, as it depends on threadobject. * src/vm/jit/powerpc64/codegen.h: Added M_LADD_IMM and M_AADD_IMM for better reading of code. Fixed M_CLR. * src/vm/jit/powerpc64/codegen.c (codegen): Some fixes with ?RETURN, some fixes for -verbose:call (still defunc), (createnativestub): Lots of fixes in stackframe calculations. * src/vm/jit/powerpc64/patcher.c (patch_aconst): Correct asm comment. * src/vm/jit/powerpc64/disass.c (disassinstr): Display 64 bit addresses in disassembled code (-sa). * src/vm/jit/powerpc64/asmpart.S (L_asm_vm_call_method_return): Fixed path for methods returning a value. (L_asm_handle_exception): Fixed path for exception handling. (asm_patcher_wrapper): Fixed path for codepatching. 2006-08-25 07:54 twisti * src/vm/exceptions.c (new_illegalmonitorstateexception): Renamed to exceptions_new_illegalmonitorstateexception. (exceptions_throw_illegalmonitorstateexception): New method. * src/vm/exceptions.h: Likewise. * src/threads/native/lock.c (lock_monitor_exit): Use exceptions_throw_illegalmonitorstateexception instead of new_illegalmonitorstateexception. (lock_monitor_wait): Likewise. (lock_monitor_notify): Likewise. * src/cacaoh/headers.c (new_illegalmonitorstateexception): Renamed to exceptions_throw_illegalmonitorstateexception. 2006-08-25 07:29 twisti * src/vm/jit/alpha/emit.c (emit_exception_stubs): Bugfix when reallocating the code area. (emit_patcher_stubs): Reuse the asm_patcher_wrapper call code. (emit_replacement_stubs): Removed savedmcodeptr. 2006-08-25 07:14 twisti * src/vm/jit/alpha/emit.c (emit_exception_stubs): Bugfix when reallocating the code area. (emit_patcher_stubs): Likewise. 2006-08-24 18:42 twisti * src/vm/jit/codegen-common.h (codegendata): Added stackframesize. I think this is more obvious than in jitdata. * src/vm/jit/jit.h (jitdata): Removed stackframesize. * src/vm/jit/alpha/emit.c (emit_exception_stubs): Replaced jd->stackframesize with cd->stackframesize. * src/vm/jit/alpha/codegen.c (codegen): Likewise. (createnativestub): Likewise. * src/vm/jit/i386/emit.c (emit_exception_stubs): Likewise. * src/vm/jit/i386/codegen.c (codegen): Likewise. (createnativestub): Likewise. 2006-08-24 09:29 tbfg srv/vm/jit/powerpc/linux/md-os.c (md_signal_handler_sigusr2): Moved inside ENABLE_THREADS ifdef as is depends on threads. 2006-08-23 16:04 twisti * src/vm/jit/alpha/emit.c [ENABLE_THREADS] (threads/native/lock.h): Added. (vm/jit/asmpart.h): Likewise. (vm/jit/dseg.h): Likewise. (emit_exception_stubs): New function. (emit_patcher_stubs): Likewise. (emit_replacement_stubs): Likewise. * src/vm/jit/i386/codegen.c (codegen): Use jd->stackframesize, removed stub generation code. (createnativestub): Likewise. 2006-08-23 15:55 twisti * src/vm/jit/alpha/asmpart.S (asm_handle_exception): Fixed bug with maybe-leaf stack and use same registers as on MIPS. 2006-08-23 15:45 twisti * src/vm/jit/alpha/asmpart.S (asm_handle_exception): Use md_codegen_get_pv_from_pc. 2006-08-23 15:10 twisti * src/vm/jit/mips/asmpart.S (asm_handle_exception): Changed some comments. 2006-08-23 14:55 twisti * src/vm/jit/alpha/asmpart.S (L_asm_handle_exception_stack_loop): Don't save xpc. 2006-08-23 14:23 twisti * src/boehm-gc/configure.in (AC_C_INLINE): Set CFLAGS properly before. 2006-08-23 14:07 twisti * configure.ac (AC_CONFIG_SUBDIRS): Moved to the end of the file and export OPT_CFLAGS/ARCH_CFLAGS instead of CFLAGS. * src/boehm-gc/configure.in: Pass CFLAGS to Makefile's as for CACAO. * src/boehm-gc/Makefile.am (AM_CXXFLAGS, AM_CFLAGS): Commented. (AM_CPPFLAGS): Added. 2006-08-23 12:57 twisti * src/vm/jit/alpha/emit.c (config.h): Added. [ENABLE_THREADS] (threads/native/lock.h): Likewise. (vm/jit/asmpart.h): Likewise. (vm/jit/dseg.h): Likewise. (emit_exception_stubs): New function. (emit_patcher_stubs): Likewise. (emit_replacement_stubs): Likewise. * src/vm/jit/alpha/codegen.c (codegen): Use jd->stackframesize, use new desg_add_* functions, removed stub generation code. (createnativestub): Likewise. 2006-08-23 12:29 twisti * src/vm/vm.c (OPT_ALL, OPT_METHOD, OPT_SIGNATURE): #ifndef NDEBUG. (usage): Don't print -all, -m, -sig options. 2006-08-23 12:12 twisti * src/vm/jit/emit.h (emit_replacement_stubs): Added. 2006-08-22 20:48 twisti * src/vm/jit/i386/md-emit.h (vm/jit/codegen-common.h): Added. 2006-08-22 19:53 twisti * src/vm/jit/emit.h (emit_exception_stubs): Added. (emit_patcher_stubs): Likewise. * src/vm/jit/jit.h (jitdata): Added member stackframesize. 2006-08-22 15:49 tbfg * src/vm/jit/powerpc64/linux/md-abi.h: Added PA_SIZE and PA_SIZE_IN_POINTERS defines. * src/vm/jit/powerpc64/arch.h: Enabled machine dependend compare_and_swap implementation for ppc64. * src/vm/jit/powerpc64/codegen.c (codegen): Remove lot of PACK_REGS usages, changed stack address calculations from *4 -> *8, added a M_NOP for debugging. * src/vm/jit/powerpc64/machine-instr.h (compare_and_swap): Ported for 64 bit. (atomic_add): Removed. * src/vm/jit/powerpc64/patcher.c (patcher_wrapper): Fixed stack calculations from *4 -> *8 (patcher_aconst): Likewise. (patcher_athrow_areturn): Likewise. (patcher_builtin_arraycheckcast): Likewise. (patcher_builtin_multianewarray): Likewise. (patcher_checkcast_class): Likewise. (patcher_checkcast_instanceof_flags): Likewise. (patcher_checkcast_instanceof_interf): Likewise. (patcher_clinit): Likewise. (patcher_get_putfield): Likewise. (patcher_get_putstatic): Likewise. (patcher_instanceof_class): Likewise. (patcher_invokeinterface): Likewise. (patcher_invokestatic_special): Likewise. (patcher_invokevirtual): Likewise. (patcher_resolve_native): Likewise. * src/vm/jit/powerpc64/asmpart.S (asm_patcher_wrapper): Fixed calling convetions, as we callback C. Fixed 32 bit issues. (asm_call_jit_compiler): PPC64 has additional PA_SIZE on stack - fixed that. 2006-08-22 14:39 twisti * src/native/vm/java_lang_VMThrowable.c (fillInStackTrace): Removed architecture #ifdef's. (getStackTrace): Likewise. 2006-08-22 12:43 twisti * src/native/native.c (dummynativetable): Made non-static, GCC 4.1 optimized the table away. (native_init): Removed dummynativetable-hack. 2006-08-22 09:02 tbfg * src/vm/options.h: Renamed -verbosecolor to -debug-color, opt_colorverbose to opt_debugcolor and OPT_COLORVERBOSE to OPT_DEBUGCOLOR * src/vm/method.c: Same as above. * src/vm/jit/dseg.c: Same as above. * src/vm/vm.c: Same as above. * src/vm/options.c: Same as above. * src/vm/jit/Makefile.am: Removed options.h dependecy, as deps are tracked automatically. 2006-08-21 17:37 twisti * src/lib/vm/reference/gnu/classpath/VMStackWalker.java (firstNonNullClassLoader): Added and made native. * src/native/vm/gnu_classpath_VMStackWalker.c (getClassContext): Removed architecture #ifdef's, as most stacktrace stuff is architecture independent and the dependent stuff is very simple to implement. (getCallingClass): Likewise. (getCallingClassLoader): Likewise. (firstNonNullClassLoader): Added. 2006-08-21 15:25 twisti * src/vm/jit/i386/asmpart.S (L_asm_patcher_wrapper_exception): Removed duplicate add line. 2006-08-21 15:17 twisti * configure.ac (AC_CONFIG_FILES): Added src/vm/jit/i386/darwin/Makefile. * src/vm/jit/i386/codegen.c (createnativestub): Align stack to 16-bytes. * src/vm/jit/i386/darwin/md-os.c: Darwin specific functions. * src/vm/jit/i386/darwin/md-asm.h: Darwin specific assembler defines. * src/vm/jit/i386/darwin/Makefile.am: New file. * src/vm/jit/i386/darwin/.cvsignore: Likewise. * src/vm/jit/i386/linux/md-asm.h: Linux specific assembler defines. * src/vm/jit/i386/freebsd/md-asm.h: FreeBSD specific assembler defines. * src/vm/jit/i386/md-asm.h: Removed. * src/vm/jit/i386/asmpart.S (asm_handle_exception): Align stack to 16-bytes. (asm_abstractmethoderror): Likewise. (asm_patcher_wrapper): Likewise. (asm_builtin_f2i, asm_builtin_d2i, asm_builtin_f2l, asm_builtin_d2l): Likewise. * src/vm/jit/i386/Makefile.am (DIST_SUBDIRS): Added darwin. (AM_CPPFLAGS): Added OS_DIR as include. (noinst_HEADERS): Removed md-asm.h. * src/threads/native/threads.c (threads_cast_darwinstop): Use generic defines and machine dependent structures. 2006-08-21 14:52 twisti * src/vm/jit/powerpc/darwin/md-asm.h (asm_initialize_thread_stack): Define removed. (asm_perform_threadswitch): Likewise. (asm_switchstackandcall): Likewise. 2006-08-18 18:37 tbfg src/vm/options.h: Added the commandlineswitch --verbosecolor which enables colored output of show: -si prints method names in red -sd shows datasegment dump in blue. (use | less -R) src/vm/options.c (options_get): There is a nasty bug in there, read comment. 2006-08-18 13:07 twisti * src/toolbox/util.c (util_current_time_millis): Removed. * src/toolbox/util.h: Likewise. * src/vm/vm.c (vm_create): Use builtin_currenttimemillis instead of util_current_time_millis. 2006-08-18 13:01 twisti * src/vm/exceptions.c (new_arraystoreexception): Renamed to exceptions_new_arraystoreexception. (exceptions_throw_arraystoreexception): New function. * src/vm/exceptions.h: Likewise. * src/vm/builtin.c (builtintable_init): Reimplemented and added builtintable_function. (builtintable_replace_function): New function. (builtin_arraycopy): Likewise. (builtin_currenttimemillis): Likewise. * src/vm/builtin.h (builtintable_entry): Added some extra members. (builtin_asm_get_exceptionptrptr): Removed. (builtintable_replace_function): Added. (builtin_arraycopy): Likewise. (builtin_currenttimemillis): Likewise. * src/vm/builtintable.inc (builtintable_internal): Use new builtintable_entry structure. (builtintable_automatic): Likewise. (builtintable_function): Added. * src/vm/jit/stack.c (stack_analyse): Call builtintable_replace_function. * src/vm/jit/show.c (new_show_icmd): Print correct variable of builtin calls. (show_icmd): Likewise. * src/vm/jit/stacktrace.c (stacktrace_inline_arraystoreexception): Use exceptions_new_arraystoreexception. * src/native/vm/java_lang_VMSystem.c (arraycopy): Removed implementation and use builtin_arraycopy. * src/cacaoh/headers.c (exceptions_throw_arrayindexoutofboundsexception): Added. (exceptions_new_arraystoreexception): Likewise. (exceptions_throw_arraystoreexception): Likewise. 2006-08-18 12:24 twisti * src/vm/class.c (class_java_lang_VMSystem): Added. * src/vm/class.h: Likewise. * src/vm/loader.c (loader_init): Likewise. * src/vm/linker.c (linker_init): Likewise. 2006-08-18 10:22 tbfg src/vm/jit/powerpc64/linux/md-os.c: Ported signal handlers to ppc64 ucontext. 2006-08-17 17:51 tbfg src/vm/jit/powerpc64/md.c (md_get_method_patch_address): Fixed opcodes in casetests. src/vm/jit/powerpc64/arch.h: Temporarily disabled all hardwarefeaturs to make porting easier. src/vm/jit/powerpc64/codegen.c: Started to fix 32/64 bit issues. src/vm/jit/powerpc64/codegen.h: Removing special long handling. src/vm/jit/powerpc64/patcher.c: Changed comment only. 2006-08-17 09:59 twisti * src/vm/jit/i386/asmpart.S (asm_patcher_wrapper): Restore REG_ITMP3 from stub stack. I missed this when I did the last changes. 2006-08-17 09:26 twisti * src/vm/jit/optimizing: Added ignore property. 2006-08-16 15:35 christian * src/vm/jit/optimizing/.cvsignore: New file. 2006-08-16 12:21 christian * src/vm/jit/stack.c (stack_analyse): Use of real PEI data (op_data[opcode][PEI]) to prevent copy propagation to LOCALVAR with ICMD_XSTORE instead of just regarding INVOKES as PEI's. 2006-08-16 12:11 christian * src/toolbox/worklist.h: Comments added. 2006-08-16 12:10 christian * src/toolbox/bitvector.c: Comments added. * src/toolbox/bitvector.h: Comments added. * src/toolbox/worklist.c: Comments added. 2006-08-16 11:35 christian * src/toolbox/worklist.c: Corrected Header information. * src/toolbox/worklist.h: Likewise. * src/toolbox/bitvector.c: Likewise. * src/toolbox/bitvector.h: Likewise. 2006-08-16 11:31 christian * src/vm/jit/allocator/liveness.c: Corrected Header information. * src/vm/jit/allocator/liveness.h: Likewise. * src/vm/jit/allocator/lsra.c: Likewise. * src/vm/jit/allocator/lsra.h: Likewise. 2006-08-16 11:26 christian * src/vm/jit/optimizing/dominators.c: Corrected Header information. * src/vm/jit/optimizing/dominators.h: Likewise. * src/vm/jit/optimizing/graph.c: Likewise. * src/vm/jit/optimizing/graph.h: Likewise. * src/vm/jit/optimizing/lifetimes.c: Likewise. * src/vm/jit/optimizing/lifetimes.h: Likewise. * src/vm/jit/optimizing/lsra.c: Likewise. * src/vm/jit/optimizing/lsra.h: Likewise. * src/vm/jit/optimizing/ssa.c: Likewise. * src/vm/jit/optimizing/ssa.h: Likewise. 2006-08-16 11:18 christian * src/vm/jit/optimizing/ssa.c (ssa_print_phi): Printing now phi functions correctly for debug output. * src/vm/jit/optimizing/ssa.c (dead_code_elimination): No removal of potential exception throwing instructions (PEI) anymore. * src/vm/jit/jit.h: Renamed op_needs_saved[] to op_data[][NEEDS_SAVED] and introduced the new op_data[][PEI]. * src/vm/jit/jit.c (jit_init): Added init of op_data[NEEDS_SAVED|PEI] * src/vm/jit/optimizing/lifetimes.c (LifeOutAtStatement): Renamed op_needs_saved[] to the new op_data[][NEEDS_SAVED] 2006-08-15 14:54 christian * src/vm/jit/optimizing/lifetimes.c (LifenessAnalysis): Ignore variables used in phi functions, if they define itself (x = phi(...,x,...)). * src/vm/jit/i386/codegen.c (codegen): Bugfix in code created for ICMD_IINC for SSA. * src/vm/jit/show.c (new_show_method): Regard ENABLE_SSA like ENABLE_LSRA to suppress output of interfaces. * src/vm/jit/show.c (show_method): likewise. * src/vm/jit/show.c (show_icmd): Regard special operand format for ICMD_IINC with SSA. 2006-08-14 18:14 christian * src/vm/jit/optimizing/: New directory for optimizing compiler (SSA by now - does not work by now, code merging with svn head introduced some hazardous faults). * src/vm/jit/optimizing/dominators.c: Computation of dominators and domination frontier for SSA. * src/vm/jit/optimizing/dominators.h: Include file for dominators.c. * src/vm/jit/optimizing/graph.c: CFG functions needed for SSA. * src/vm/jit/optimizing/graph.h: Include file for graph.c * src/vm/jit/optimizing/lifetimes.c: Scanning lifetimes for SSA. * src/vm/jit/optimizing/lifetimes.h: Include file for lifetimes.c * src/vm/jit/optimizing/lsra.c: LSRA based on SSA. * src/vm/jit/optimizing/lsra.h: Include file for lsra.c. * src/vm/jit/optimizing/Makefile.am: New Makefile.am for this directory. * src/vm/jit/optimizing/ssa.c: Computation of SSA form. * src/vm/jit/optimizing/ssa.h: Include File for ssa.c. 2006-08-14 18:10 christian * src/vm/jit/optimizing: New directory 2006-08-14 17:50 christian * src/vm/jit/optimizing/: New directory for optimizing compiler (SSA by now - does not work by now, code merging with svn head introduced some hazardous faults). * src/vm/jit/optimizing/dominators.c: Computation of dominators and domination frontier for SSA. * src/vm/jit/optimizing/dominators.h: Include file for dominators.c. * src/vm/jit/optimizing/graph.c: CFG functions needed for SSA. * src/vm/jit/optimizing/graph.h: Include file for graph.c * src/vm/jit/optimizing/lifetimes.c: Scanning lifetimes for SSA. * src/vm/jit/optimizing/lifetimes.h: Include file for lifetimes.c * src/vm/jit/optimizing/lsra.c: LSRA based on SSA. * src/vm/jit/optimizing/lsra.h: Include file for lsra.c. * src/vm/jit/optimizing/Makefile.am: New Makefile.am for this directory. * src/vm/jit/optimizing/ssa.c: Computation of SSA form. * src/vm/jit/optimizing/ssa.h: Include File for ssa.c. * src/vm/jit/allocator/lsra.c: Moved from src/vm/jit. Quite complete code change (including: no more allocation of unused reserved registers, possibility of exact lifetime analysis, removal of old lifetime test functions). * src/vm/jit/allocator/lsra.h: Moved from src/vm/jit. * src/vm/jit/allocator/liveness.c: New File. Exact lifetime analysis for LSRA. * src/vm/jit/allocator/liveness.h: New File. Include File for liveness.c. The #define LV enables by now the exact liveness analysis. * src/vm/jit/allocator/Makefile.am: Adopted for new/moved files in src/vm/jit/allocator. * sc/vm/jit/Makefile.am: Adopted for above new/moved files. * configure.ac: Introduced ENABLE_SSA: new option --enable-ssa. Changes for ENABLE_LSRA (--enable-lsra). New Makefile in src/vm/jit/optimizing added. * src/vm/jit/allocator/simplereg.c (reg_make_statistics): Support for ENABLE_SSA for statistics. * src/vm/options.h: opt_lsra is used with ENABLE_SSA like with ENABLE_LSRA. * src/vm/options.c: opt_lsra is used with ENABLE_SSA like with ENABLE_LSRA. * src/vm/global.h: New struct imm for union imm_union to get another operand for IINC in combination with SSA added. * src/vm/vm.c: opt_lsra and the option -lsra is used with ENABLE_SSA like with ENABLE_LSRA. * src/vm/jit/stack.c (stack_analyse): No stack element lifetimes counting anymore for lsra/ssa (m->maxlifetimes). * src/vm/jit/stack.h: No stack lifetime counting anymore for lsra/ssa (m->maxlifetimes). * src/vm/jit/i386/codegen.c: Support for ENABLE_SSA added. * src/vm/jit/i386/codegen.c (codegen_insert_phi_moves): New function to insert phi moves for SSA at the end of Basic Blocks. * src/vm/jit/i386/codegen.c (cg_move): New function to create the instructions for the actual move for codegen_insert_phi_moves). * src/vm/jit/i386/codegen.c (codegen): Logic and calls to use codegen_insert_phi_moves for SSA added. With SSA for parameters in memory this memory positions cannot be reused to avoid copying. Checks added to prevent moves to or from stackslots removed by the dead code elimination. Special handling for the new ICMD_IINC operand format used by SSA added. * src/vm/jit/i386/codegen.h (M_COPY): Checks added to prevent moves to or from stackslots removed by the dead code elimination. Original M_COPY renamed to _M_COPY. * src/vm/jit/jit.c (jit_init): Populate op_needs_saved. Regard ENABLE_SSA. * src/vm/jit/jit.h: Support for ENABLE_SSA added. Added an array which shows which ICMD's need a SAVEDVAR for SSA and the new LSRA with exact liveness analysis. src/toolbox/Makefile.am: Changed to include the following new files: * src/toolbox/bitvector.c: Bitvector implementation for SSA. * src/toolbox/bitvector.h: Include file for bitvector.c. * src/toolbox/worklist.c: Worklist implementation for SSA. * src/toolbox/worklist.h: Include file for worklist.c. 2006-08-14 10:59 twisti * src/vm/jit/codegen-common.c (codegen_findmethod): Renamed to codegen_get_pv_from_pc. * src/vm/jit/codegen-common.h (codegen_findmethod): Likewise. (md_codegen_findmethod): Renamed to md_codegen_get_pv_from_pc. * src/vm/jit/stacktrace.c (stacktrace_create_stackframeinfo): Likewise. (stacktrace_create_inline_stackframeinfo): Likewise. (stacktrace_create_extern_stackframe): Likewise. (stacktrace_create): Likewise. * src/vm/jit/alpha/md.c (md_codegen_findmethod): Renamed to md_codegen_get_pv_from_pc. * src/vm/jit/i386/md.c: Likewise. * src/vm/jit/mips/md.c: Likewise. * src/vm/jit/powerpc/md.c: Likewise. * src/vm/jit/powerpc64/md.c: Likewise. * src/vm/jit/sparc64/md.c: Likewise. * src/vm/jit/x86_64/md.c: Likewise. * src/vm/jit/i386/asmpart.S: Likewise. * src/vm/jit/mips/asmpart.S: Likewise. * src/vm/jit/powerpc/asmpart.S: Likewise. * src/vm/jit/x86_64/asmpart.S: Likewise. * src/vm/jit/intrp/asmpart.c: Likewise. * src/vm/jit/i386/patcher.c (patcher_wrapper): Fixed comment. * src/vm/jit/x86_64/patcher.c: Likewise. 2006-08-11 13:11 tbfg * src/vm/jit/powerpc64/linux/md-abi.h: LA_WORD_SIZE renamed to LA_SIZE_IN_POINTERS, value fixed * src/vm/jit/powerpc64/linux/md-abi.c: LA_SIZE_IN_POINTERS rename * src/vm/jit/powerpc64/linux/md.c (md_codegen_findmethod): PPC64 uses r14 instead of r13 (as PPC) for PV so opcodes changed. * src/vm/jit/powerpc64/asmpart.S: Using LA_SIZE instead of LA_WORD_SIZE, LA_SIZE_IN_POINTERS for SAVE_*_REGISTERS macros only. 2006-08-11 10:13 twisti * src/vm/jit/powerpc/linux/md-abi.h (LA_WORD_SIZE): Renamed to LA_SIZE_IN_POINTERS. * src/vm/jit/powerpc/darwin/md-abi.h (LA_WORD_SIZE): Likewise. * src/vm/jit/powerpc/linux/md-abi.c (md_param_alloc): Use LA_SIZE_IN_POINTERS instead of LA_WORD_SIZE. * src/vm/jit/powerpc/darwin/md-abi.c (md_param_alloc): Likewise. * src/vm/jit/powerpc/asmpart.S: Likewise. * src/vm/jit/stack.c (new_stack_analyse): Likewise. (stack_analyse): Likewise. * src/vm/jit/reg.c (reg_setup): Likewise. 2006-08-10 19:45 tbfg * src/vm/jit/powerpc64/linux/md-abi.h: fixed linkage area defines for 64bit abi. * src/vm/jit/powerpc64/linux/md-asm.h: fixed register name defines and SAVE/RESTORE macros. * src/vm/jit/powerpc64/asmpart.S (asm_vm_call_method): fixed no argument method call path, coming back to C now. 2006-08-10 09:10 twisti * src/boehm-gc/darwin_stop_world.c: Updated to version 6.8. * src/boehm-gc/doc/README.changes: Likewise. * src/boehm-gc/doc/README: Likewise. * src/boehm-gc/include/gc.h: Likewise. * src/boehm-gc/include/gc_config_macros.h: Likewise. * src/boehm-gc/include/private/gcconfig.h: Likewise. * src/boehm-gc/configure.in: Likewise. * src/boehm-gc/version.h: Likewise. * src/boehm-gc/malloc.c: Likewise. * src/boehm-gc/pthread_support.c: Likewise. * src/boehm-gc/os_dep.c: Likewise. * src/boehm-gc/dyn_load.c: Likewise. 2006-08-09 15:11 twisti * src/vm/jit/i386/codegen.c (codegen): Fixed ICMD_LMUL bug. 2006-08-09 15:10 twisti * src/vm/jit/i386/emit.c (emit_load_s1): Coding style changes. (emit_load_s2): Likewise. (emit_load_s3): Likewise. (emit_load_s1_low): Likewise. (emit_load_s2_low): Likewise. (emit_load_s1_high): Likewise. (emit_store): Likewise. 2006-08-08 19:57 edwin * src/vm/jit/jit.c (stackreq): Initialize this table statically. (jit_init): Removed dynamic initialization of stackreq table. 2006-08-08 19:23 edwin * src/native/vm/java_lang_reflect_Method.c (Java_java_lang_reflect_Method_invokeNative): Removed unused variables. * src/native/vm/java_lang_reflect_Constructor.c (vm/access.h): Include to fix warning. 2006-08-08 19:18 edwin * src/native/vm/java_lang_reflect_Field.c (cacao_get_field_address): Use access_check_caller. 2006-08-08 16:21 edwin * src/vm/access.h, src/vm/access.c (access_check_caller): Added. * src/native/vm/java_lang_reflect_Method.c (Java_java_lang_reflect_Method_invokeNative): Use access_check_caller for the access check. * src/native/vm/java_lang_reflect_Constructor.c (Java_java_lang_reflect_Constructor_constructNative): Likewise. This should fix the mauve test case java.lang.reflect.AccessibleObject.security. * src/cacaoh/headers.c (stacktrace_getClassContext): Added dummy implementation. 2006-08-08 14:24 twisti * src/vm/jit/parse.h (new_block_insert): Renamed to NEW_MARK_BASICBLOCK. (block_insert): Renamed to MARK_BASICBLOCK. * src/vm/jit/parse.c (new_fillextable): Likewise. (fillextable): Likewise. (new_parse): Likewise. (parse): Likewise. 2006-08-08 13:25 twisti * src/vm/jit/stack.c (new_stack_analyse): Replaced debug_nr with nr. * src/vm/jit/verify/typecheck.c (typestate_reach): Likewise. (verify_basic_block): Likewise. * src/vm/jit/i386/codegen.c (codegen): Likewise. * src/vm/jit/powerpc/codegen.c (codegen): Likewise. * src/vm/jit/x86_64/codegen.c (codegen): Likewise. 2006-08-08 13:03 twisti * src/vm/jit/cfg.c (cfg_insert_predecessors): New method. (cfg_build): Use cfg_insert_predecessors for TABLESWITCH and LOOKUPSWITCH. 2006-08-08 13:01 edwin * src/vm/resolve.h, src/vm/resolve.c (new_resolve_method_lazy): Removed curstack parameter. (new_resolve_field_lazy): Likewise. (new_constrain_unresolved_field): New function. (new_constrain_unresolved_method): Likewise. * src/vm/jit/parse.c (new_parse): Use new_resolve_field_lazy and new_resolve_method_lazy. 2006-08-08 12:56 edwin * src/vm/jit/stack.c (new_stack_analyse): For INVOKE* instructions, store the live-through stack slots as additional arguments after the live-in slots. These live-through slots are needed by the verifier and by on-stack replacement in order to create a replacement point at the call site. NOTE: Currently the live-through slots are also stored for builtins. This should change in the final version. 2006-08-08 12:46 edwin * src/vm/jit/jit.h (NEW_INSTRUCTION_IS_RESOLVED): New macro. (NEW_INSTRUCTION_IS_UNRESOLVED): Likewise. (NEW_INSTRUCTION_MUST_CHECK): Likewise. 2006-08-08 12:45 twisti * src/vm/jit/cfg.h (CFG_UNKNOWN_PREDECESSORS): Defined. * src/vm/jit/stack.c (vm/jit/cfg.h): Added. (new_stack_analyse): Set predecessorcount for EXH blocks to CFG_UNKNOWN_PREDECESSORS. (stack_analyse): Likewise. * src/vm/jit/show.c (new_show_basicblock): Print predecessor block numbers. (show_basicblock): Likewise. 2006-08-07 16:10 twisti * src/vm/jit/reorder.c (reorder): Iterate to m->basicblockcount + 1, so we kind of set the last basic block too. 2006-08-07 15:30 twisti * src/vm/jit/jit.h (basicblock): Renamed debug_nr to nr. (BASICBLOCK_INIT): Likewise. * src/vm/jit/reorder.c (reorder_place_next_unplaced_block): Likewise. (reorder): Likewise. * src/vm/jit/show.c (new_show_method): Likewise. (show_method): Likewise. (new_show_basicblock): Likewise. (show_basicblock): Likewise. (SHOW_TARGET): Likewise. (show_icmd): Likewise. * src/vm/jit/ifconv/ifconv.c (check): Likewise. * src/vm/jit/loop/analyze.c (insert_exception): Likewise. (copy_handler): Likewise. (create_static_checks): Likewise. * src/vm/jit/verify/typecheck.c (verify_basic_block): Likewise. (typecheck_reset_flags): Likewise. (typecheck): Likewise. * src/vm/jit/verify/typeinfo.c (typeinfo_print): Likewise. (typeinfo_print_short): Likewise. (typeinfo_print_stacktype): Likewise. 2006-08-07 15:12 tbfg * src/vm/jit/powerpc64/asmpart.S (asm_vm_call_method, asm_cacheflush): ppc64 abi needs function descriptor for function called from other relocateable modules and uses direct calling for module intern calls. 2006-08-07 11:15 twisti * src/vm/jit/reorder.c (reorder): #ifdef debug output. 2006-08-07 11:12 twisti * src/vm/jit/Makefile.am (libjit_la_SOURCES): Add cfg.[ch] and reorder.[ch] for debugging. 2006-08-07 11:10 twisti * src/vm/jit/jit.c (vm/jit/cfg.h): Added. (vm/jit/reorder.h): Likewise. (jit_recompile): Set JITDATA_FLAG_REORDER flag. (jit_compile_intern): Call cfg_build and reorder. (jit_complement_condition): New function. * src/vm/jit/jit.h (basicblock): Changed type of predecessors and successors. (jit_complement_condition): Added. * src/vm/jit/cfg.c (cfg_allocate_predecessors): New method. (cfg_allocate_successors): Likewise. (cfg_build): Finished implementation. * src/vm/jit/reorder.c (reorder_place_next_unplaced_block): New function. (reorder): Improved, still not working. * src/vm/jit/show.c (new_show_method): Walk the basic block chain to find the last block, as this may change. (show_method): Likewise. 2006-08-04 14:50 twisti * src/vm/jit/reorder.c: New file. * src/vm/jit/reorder.h: Likewise. 2006-08-04 14:42 twisti * src/vm/jit/parse.c (new_parse): MZERO basicblock array. (parse): Likewise. * src/vm/jit/jit.h (JITDATA_FLAG_REORDER): Added. (JITDATA_HAS_FLAG_REORDER): Likewise. (basicblock): Removed pre_count and added predecessorcount, successorcount, predecessors, successors. (BASICBLOCK_INIT): Don't zero fields. * src/vm/jit/stack.c (new_stack_analyse): Renamed pre_count to predecessorcount. (stack_analyse): Likewise and removed predecessor count calculation. * src/vm/jit/show.c (new_show_basicblock): Likewise. (show_basicblock): Likewise. * src/vm/jit/ifconv/ifconv.c (ifconv_static): Likewise. 2006-08-04 14:27 twisti * src/vm/jit/cfg.c: New file. * src/vm/jit/cfg.h: Likewise. 2006-08-04 14:10 twisti * src/vm/options.c (opt_foo): Added. This is a development option. * src/vm/options.h (opt_foo): Likewise. * src/vm/vm.c (vm_create): Added OPT_FOO. 2006-08-01 20:38 twisti * autogen.sh: Recognize autoconf 2.60. 2006-08-01 15:51 twisti * src/vm/jit/codegen-common.c (codegen_createnativestub): Set JITDATA_FLAG_INSTRUMENT for opt_prof. 2006-08-01 15:08 twisti * src/vm/jit/recompile.c (recompile_thread): Check return value of jit_recompile and print the exception in error case. 2006-08-01 13:10 twisti * src/vm/jit/parse.c (new_parse): Replaced opt_verify with JITDATA_HAS_FLAG_VERIFY, because on recompilation we don't turn verifying on. 2006-07-31 20:42 twisti * src/vm/jit/x86_64/codegen.c (codegen): Load address for INVOKESTATIC from data segment and pass the displacement to the patcher. * src/vm/jit/x86_64/patcher.c (patcher_get_putstatic): Use displacement from patcher, not from the instruction. (patcher_builtin_multianewarray): Don't patch BUILTIN_multianewarray address, it's not required. (patcher_invokestatic_special): Use displacement passed and patch the data segment. * src/vm/jit/x86_64/md.c (md_stacktrace_get_returnaddress): Changed to new INVOKESTATIC calling sequence. 2006-07-31 16:30 twisti * src/native/native.c (native/include/java_lang_management_VMManagementFactory.h): Added. (dummynativetable): Added VMManagementFactory methods. 2006-07-31 16:26 twisti * src/native/include/.cvsignore: Added java_lang_management_VMManagementFactory.h. 2006-07-31 16:25 twisti * src/native/vm/java_lang_management_VMManagementFactory.c: New file. * src/native/vm/Makefile.am (libnativevm_la_SOURCES): Added java_lang_management_VMManagementFactory.c. * src/native/include/Makefile.am (ADDITIONAL_IMPLEMENTED_VM_CLASSES_HEADERS): Added java_lang_management_VMManagementFactory.h. 2006-07-31 15:35 twisti * src/native/include/Makefile.am (DO_HEADER_FILES): Do not depend on CACAO_VM_ZIP. 2006-07-31 15:27 twisti * src/native/include/.cvsignore: Added gnu_java_lang_management_VMThreadMXBeanImpl.h and java_lang_management_ThreadInfo.h. 2006-07-31 15:26 twisti * src/native/vm/gnu_java_lang_management_VMThreadMXBeanImpl.c: New file. * src/native/vm/Makefile.am (libnativevm_la_SOURCES): Added gnu_java_lang_management_VMThreadMXBeanImpl.c. * src/native/include/Makefile.am (ADDITIONAL_IMPLEMENTED_VM_CLASSES_HEADERS): Added gnu_java_lang_management_VMThreadMXBeanImpl.h and java_lang_management_ThreadInfo.h. (VM_ZIP): Removed. * src/native/jni.h (_Jv_JavaVM): Added total_started_thread_count. * src/threads/native/threads.c (threads_startup_thread): Count total_started_thread_count. * src/cacao/cacao.c (main): Likewise. * src/cacaoh/headers.c (_Jv_jvm): Added. 2006-07-31 14:43 twisti * src/native/include: Updated ignore property. 2006-07-31 14:35 twisti * src/native/vm/gnu_java_lang_management_VMClassLoadingMXBeanImpl.c: New file. * src/native/vm/Makefile.am (libnativevm_la_SOURCES): Added gnu_java_lang_management_VMClassLoadingMXBeanImpl.c. * src/native/include/Makefile.am (ADDITIONAL_IMPLEMENTED_VM_CLASSES_HEADER_FILES): Added gnu_java_lang_management_VMClassLoadingMXBeanImpl.h. * src/native/include/.cvsignore: Likewise. * src/native/jni.h (_Jv_JavaVM): Added Java_gnu_java_lang_management_VMClassLoadingMXBeanImpl_verbose. * src/native/native.c (native/include/gnu_java_lang_management_VMClassLoadingMXBeanImpl.h): Added. (native/include/gnu_java_lang_management_VMMemoryMXBeanImpl.h): Likewise. (dummynativetable): Added VMClassLoadingMXBeanImpl and VMMemoryMXBeanImpl functions. 2006-07-31 14:21 twisti * src/vm/classcache.c (classcache_number_of_loaded_classes): New internal function. (classcache_get_loaded_class_count): New function. (classcache_jvmti_GetLoadedClasses): Renamed to classcache_get_loaded_classes and reimplemented. * src/vm/classcache.h (classcache_get_loaded_class_count): Added. (classcache_jvmti_GetLoadedClasses): Renamed to classcache_get_loaded_classes. 2006-07-31 12:29 twisti * src/native/include/.cvsignore: Added gnu_java_lang_management_VMMemoryMXBeanImpl.h and java_lang_management_MemoryUsage.h. 2006-07-31 12:28 twisti * src/lib/vm/reference/gnu/java/lang/management/VMMemoryMXBeanImpl.java: New file. * src/lib/Makefile.am (VM_JAVA_FILES): Added gnu/java/lang/management/VMMemoryMXBeanImpl.java. (VM_CLASS_FILES): Likewise. * src/native/include/Makefile.am (ADDITIONAL_IMPLEMENTED_VM_CLASSES_HEADERS): Added gnu_java_lang_management_VMMemoryMXBeanImpl.h and java_lang_management_MemoryUsage.h. * src/native/vm/Makefile.am (libnativevm_la_SOURCES): Added gnu_java_lang_management_VMMemoryMXBeanImpl.c. * src/native/vm/gnu_java_lang_management_VMMemoryMXBeanImpl.c (vm/loader.h): Added. 2006-07-31 12:25 twisti * src/mm/boehm.c (gc_get_total_bytes): New function. * src/mm/boehm.h (gc_get_total_bytes): Added. 2006-07-31 12:17 twisti * src/lib/vm/reference/java/lang/VMClassLoader.java: Merged GNU Classpath changes. 2006-07-31 12:15 twisti * src/native/Makefile.am (nativetable.inc): Renamed VM_ZIP to CACAO_VM_ZIP. 2006-07-28 13:24 twisti * src/vm/jit/dseg.c (desg_increase): Removed. (dseg_finish): New function. (dseg_find_s4): Likewise. (dseg_find_s8): Likewise. (dseg_find_float): Likewise. (dseg_find_double): Likewise. (dseg_find_address): Likewise. (dseg_add_s4_intern): Likewise. (dseg_add_unique_s4): Likewise. (dseg_add_s4): Likewise. (dseg_add_s8_intern): Likewise. (dseg_add_unique_s8): Likewise. (dseg_add_s8): Likewise. (dseg_add_float_intern): Likewise. (dseg_add_unique_float): Likewise. (dseg_add_float): Likewise. (dseg_add_double_intern): Likewise. (dseg_add_unique_double): Likewise. (dseg_add_double): Likewise. (dseg_add_address_intern): Likewise. (dseg_add_unique_address): Likewise. (dseg_add_address): Likewise. * src/vm/jit/dseg.h (dsegentry): New structure. * src/vm/jit/codegen-common.c (codegen_setup): Don't allocate memory for data segment. (codegen_finish): Call dseg_finish. * src/vm/jit/codegen-common.h (codegendata): Removed dsegtop and dsegsize, added dseg. * src/vm/jit/powerpc/codegen.c: Use new dseg function names. * src/vm/jit/powerpc/emit.c (vm/jit/dseg.h): Added. (emit_iconst): Use new dseg function names. 2006-07-28 10:54 twisti * src/vm/jit/powerpc/linux/md-abi.h (REG_ITMP23_PACKED): New define. * src/vm/jit/powerpc/darwin/md-abi.h (REG_ITMP23_PACKED): Likewise. 2006-07-28 10:12 twisti * src/vm/loader.c (load_class_from_classbuffer): Enable "Extra bytes at the end of class file"-check, since we are something like Java 1.5. 2006-07-26 15:20 twisti * src/vm/jit/jit.h (INSTRUCTION_UNRESOLVED_CLASS): Defined. * src/vm/jit/alpha/codegen.c (codegen): First changes for duplicate patcher removal. 2006-07-26 14:50 twisti * src/vm/jit/show.c (new_show_method): Print stub length in method header. (show_method): Likewise. * src/vm/jit/codegen-common.c (codegen_addpatchref): Don't cast to u1*. 2006-07-26 13:27 twisti * src/vm/jit/parse.h (code_get_u1, code_get_s1, code_get_u2) (code_get_s2, code_get_u4, code_get_s4): Removed. * src/vm/suck.h (SUCK_BE_S1, SUCK_BE_S2, SUCK_BE_S4, SUCK_BE_S8): Defined. * src/vm/jit/parse.c (vm/suck.h): Added. (new_parse): Use SUCK_BE_* macros instead of code_get_*. (parse): Likewise. 2006-07-26 11:04 twisti * src/vm/builtin.c (builtin_print_argument): #ifndef NDEBUG. 2006-07-26 10:16 twisti * src/vm/jit/powerpc/linux/md-asm.h: Added register defines. 2006-07-26 10:06 twisti * src/vm/jit/powerpc/darwin/md-asm.h: Added fr register defines again, we need them. * src/vm/jit/powerpc/asmpart.S (asm_replacement_out): Use internal register defines instead of numbers, as darwin does not understand it. (asm_replacement_in): Likewise. 2006-07-26 09:59 twisti * src/vm/jit/powerpc/darwin/md-asm.h (mach/ppc/asm.h): Removed. Don't define the fr register names. 2006-07-26 09:43 twisti * src/vm/jit/powerpc/linux/md-asm.h (asm/ppc_asm.h): Removed, it's not an official kernel header. * src/vm/jit/powerpc/asmpart.S: Use CACAO internal register defines or simple register numbers. 2006-07-25 18:30 twisti * src/vm/global.h (IS_FLT_TYPE): Added. (IS_DBL_TYPE): Likewise. 2006-07-25 16:00 twisti * src/vm/jit/i386/md-emit.h (emit_ialu): Removed. (emit_ialuconst): Likewise. (emit_lalu): Likewise. (emit_laluconst): Likewise. (emit_ishift): Likewise. (emit_ishiftconst): Likewise. (emit_ifcc_iconst): Likewise. 2006-07-25 15:57 twisti * src/vm/jit/jit.h (ICMD_ELSE_ICONST): Removed. (ICMD_IFEQ_ICONST): Likewise. (ICMD_IFNE_ICONST): Likewise. (ICMD_IFLT_ICONST): Likewise. (ICMD_IFGE_ICONST): Likewise. (ICMD_IFGT_ICONST): Likewise. (ICMD_IFLE_ICONST): Likewise. * src/vm/jit/jit.c (icmd_names): Set removed ICMDs to UNDEF. * src/vm/jit/allocator/simplereg.c (new_allocate_scratch_registers): Removed ICMDs. (allocate_scratch_registers): Likewise. * src/vm/jit/verify/typecheck.c (verify_basic_block): Likewise. * src/vm/jit/stack.c (new_stack_analyse): Likewise. (stack_analyse): Likewise. * src/vm/jit/show.c (new_show_icmd): Likewise. (show_icmd): Likewise. * src/vm/jit/alpha/arch.h (CONDITIONAL_LOADCONST): Removed. * src/vm/jit/i386/arch.h: Likewise. * src/vm/jit/mips/arch.h: Likewise. * src/vm/jit/powerpc/arch.h: Likewise. * src/vm/jit/powerpc64/arch.h: Likewise. * src/vm/jit/sparc64/arch.h: Likewise. * src/vm/jit/x86_64/arch.h: Likewise. * src/vm/jit/alpha/codegen.c (codegen): Removed ICMDs. * src/vm/jit/i386/codegen.c: Likewise. * src/vm/jit/mips/codegen.c: Likewise. * src/vm/jit/sparc64/codegen.c: Likewise. * src/vm/jit/x86_64/codegen.c: Likewise. * src/vm/jit/i386/emit.c (emit_ifcc_iconst): Removed. 2006-07-25 15:33 twisti * src/vm/jit/x86_64/md.c (md_signal_handler_sigusr2): Fixed comment. * src/vm/jit/i386/linux/md-os.c (md_signal_handler_sigusr2): New function. 2006-07-25 13:52 twisti * src/vm/jit/jit.h (TYPE_INT, TYPE_LNG, TYPE_FLT, TYPE_DBL, TYPE_ADR) (IS_INT_LNG_TYPE, IS_FLT_DBL_TYPE, IS_2_WORD_TYPE) (IS_INT_TYPE, IS_LNG_TYPE, IS_ADR_TYPE, IS_VOID_TYPE): Removed. * src/vm/global.h (TYPE_LONG, TYPE_FLOAT, TYPE_DOUBLE, TYPE_ADDRESS): Removed. (TYPE_INT, TYPE_LNG, TYPE_FLT, TYPE_DBL, TYPE_ADR) (IS_INT_LNG_TYPE, IS_FLT_DBL_TYPE, IS_2_WORD_TYPE) (IS_INT_TYPE, IS_LNG_TYPE, IS_ADR_TYPE, IS_VOID_TYPE): Added. * src/vm/loader.c (load_field): Use short TYPE_* defines. (load_newly_created_array): Likewise. * src/vm/descriptor.c (descriptor_to_basic_type): Likewise. (descriptor_typesize): Likewise. (descriptor_to_typedesc): Likewise. (descriptor_pool_parse_method_descriptor): Likewise. (descriptor_debug_print_typedesc): Likewise. * src/vm/jit/verify/typecheck.c (typestack_copy): Likewise. (typestack_put_retaddr): Likewise. (typestack_merge): Likewise. (verify_basic_block): Likewise. (verify_init_locals): Likewise. * src/vm/jit/verify/typeinfo.c (typevectorset_copymergedtype): Likewise. (typevectorset_store_retaddr): Likewise. (typevectorset_store_twoword): Likewise. (typevector_merge): Likewise. (typeinfos_init_from_methoddesc): Likewise. (typeinfo_test_parse): Likewise. (typeinfo_print_type): Likewise. (typeinfo_print_stacktype): Likewise. * src/vm/jit/verify/typeinfo.h (TYPE_IS_RETURNADDRESS): Likwise. (TYPE_IS_REFERENCE): Likwise. * src/native/jni.c (_Jv_jni_vmargs_from_objectarray): Likewise. 2006-07-25 12:33 twisti * src/mm/memory.c (memory_cnew): When MAP_ANONYMOUS and MAP_ANON are not defined, we use simply malloc. This is required for IRIX. 2006-07-25 11:38 twisti * configure.ac (AC_FUNC_MMAP): Added. (AC_CHECK_FUNCS): Removed mprotect. * src/mm/memory.c (DEFAULT_CODEMEM_SIZE): Renamed to DEFAULT_CODE_MEMORY_SIZE. (codememlock): Renamed to lock_code_memory. (codememptr): Renamed to code_memory. (codememsize): Renamed to code_memory_size. (pagesize): Added global static variable. (memory_init): Use new variable names and set pagesize. (memory_cnew): Don't use malloc/mprotect as this makes some problems with selinux enabled distributions. Instead use mmap. 2006-07-21 14:40 twisti * src/boehm-gc/configure.in (MY_CFLAGS): Commented. We want to use the top-level CFLAGS. * src/boehm-gc/Makefile.am (LTCOMPILE): Likewise. (LINK): Likewise. 2006-07-21 14:15 twisti * src/vm/jit/powerpc/linux/md-asm.h (__ASSEMBLY__): Defined. It's required for on my Debian system. 2006-07-21 10:09 twisti * src/vm/exceptions.c (new_verifyerror): Renamed to exceptions_new_verifyerror. (exceptions_throw_verifyerror): New function. * src/vm/exceptions.h (new_verifyerror): Renamed to exceptions_new_verifyerror. (exceptions_throw_verifyerror): Added. * src/vm/resolve.c: Use exceptions_throw_verifyerror instead of new_verifyerror. * src/vm/jit/parse.c: Likewise. * src/vm/jit/stack.c: Likewise. * src/vm/jit/verify/typecheck.c: Likewise. * src/vm/jit/verify/typeinfo.c: Likewise. * src/cacaoh/headers.c (new_verifyerror): Renamed to exceptions_throw_verifyerror. 2006-07-21 09:24 twisti * src/vm/builtin.c (builtin_asm_get_exceptionptrptr): Removed. * src/vm/builtin.h (builtin_get_exceptionptrptr): Likewise. 2006-07-19 15:54 twisti * src/vm/jit/mips/patcher.c (assert.h): Added. (vm/exceptions.h): Added. (vm/jit/methodheader.h): Likewise. (patcher_wrapper): New function. (patcher_get_putstatic): Removed monitor enter/exit, this is now done by the wrapper. (patcher_get_putfield): Likewise. (patcher_aconst): Likewise. (patcher_builtin_multianewarray): Likewise. (patcher_builtin_arraycheckcast): Likewise. (patcher_invokestatic_special): Likewise. (patcher_invokevirtual): Likewise. (patcher_invokeinterface): Likewise. (patcher_checkcast_instanceof_flags): Likewise. (patcher_checkcast_instanceof_interface): Likewise. (patcher_checkcast_instanceof_class): Likewise. (patcher_clinit): Likewise. (patcher_athrow_areturn): Likewise. (patcher_resolve_native): Likewise. * src/vm/jit/mips/asmpart.S (asm_call_jit_compiler): Use exceptions_get_and_clear_exception. (asm_abstractmethoderror): Added missing .ent/.end. (asm_wrapper_patcher): Use patcher_wrapper. 2006-07-19 13:38 twisti * src/vm/jit/show.c (new_show_method): Print data length. (show_method): Likewise. 2006-07-19 13:07 tbfg * src/vm/jit/powerpc64/* (global): changed all powerpc references to powerpc64. 2006-07-19 12:09 twisti * src/vm/jit/show.c (new_show_method): Print method's code length. (show_method): Likewise. 2006-07-19 09:13 twisti * src/vm/jit/alpha/patcher.c (patcher_wrapper): Patch back the original instruction on successful returns. (patcher_get_putstatic): Removed instruction patching. (patcher_get_putfield): Likewise. (patcher_aconst): Likewise. (patcher_builtin_multianewarray): Likewise. (patcher_builtin_arraycheckcast): Likewise. (patcher_invokestatic_special): Likewise. (patcher_invokevirtual): Likewise. (patcher_invokeinterface): Likewise. (patcher_checkcast_instanceof_flags): Likewise. (patcher_checkcast_instanceof_interface): Likewise. (patcher_checkcast_instanceof_class): Likewise. (patcher_clinit): Likewise. (patcher_athrow_areturn): Likewise. (patcher_resolve_native): Likewise. 2006-07-18 18:38 tbfg * src/vm/jit/powerpc64/linux/md-abi.c (md_return_alloc): isleafmethod has been moved to jitdata. * src/vm/jjit/powerpc64/codegen.c (global): fixes for isleafmethod changes, BUILTIN_monitor* renamed to LOCK_monitor_* codegen_add_classcastexception_ref api changed. * src/vm/jit/powerpc64/asmpart.S (global): fixed R_PPC64_ADDR32 issues (32 bit adresses) all jump tables data types from long to quad and synched with powerpc asmpart.S. 2006-07-18 14:05 twisti * src/mm/memory.c (memory_cfree): New function. * src/mm/memory.h (CFREE): Define to memory_cfree. (memory_cfree): Added. 2006-07-18 11:09 twisti * src/native/jvmti/Makefile.am (lib_LTLIBRARIES): Removed libjdwp.la. (libjdwp_la_SOURCES): Removed. * src/native/jvmti/VMjdwp.c: Removed. * src/native/jvmti/VMjdwp.h: Likewise. * src/native/vm/Makefile.am [ENABLE_JVMTI] (lib_LTLIBRARIES): Added libjdwp.la. (libjdwp_la_SOURCES): Added. * src/native/vm/VMFrame.c: Removed. * src/native/vm/VMMethod.c: Likewise. * src/native/vm/VMVirtualMachine.c: Likewise. * src/native/vm/VMjdwp.c: Added. * src/native/vm/VMjdwp.h: Likewise. * src/native/vm/gnu_classpath_jdwp_VMVirtualMachine.c: Likewise. * src/native/vm/gnu_classpath_jdwp_VMFrame.c: Likewise. * src/native/vm/gnu_classpath_jdwp_VMMethod.c: Likewise. 2006-07-18 11:02 motse * src/native/jvmti/VMjdwp.c (Breakpoint): adapt BreakpointEvent signature to changed gnu classpath jdwp implementation. (fillidcache): idem 2006-07-18 08:56 twisti * src/vm/builtin.c (builtin_trace_args): Added missing TRACE_ARGS_NUM >= 4 case. 2006-07-18 08:36 twisti * src/vm/jit/powerpc/darwin/md-asm.h (asm_wrapper_patcher): Renamed to asm_patcher_wrapper. 2006-07-18 08:19 twisti * src/native/vm/Makefile.am (libnativevm_la_SOURCES): Added package prefix to filenames. * src/native/vm/VMClassLoader.c: Removed. * src/native/vm/VMThrowable.c: Likewise. * src/native/vm/VMAccessController.c: Likewise. * src/native/vm/VMString.c: Likewise. * src/native/vm/VMObject.c: Likewise. * src/native/vm/VMStackWalker.c: Likewise. * src/native/vm/Field.c: Likewise. * src/native/vm/VMSystem.c: Likewise. * src/native/vm/VMSystemProperties.c: Likewise. * src/native/vm/VMClass.c: Likewise. * src/native/vm/VMThread.c: Likewise. * src/native/vm/Method.c: Likewise. * src/native/vm/VMProxy.c: Likewise. * src/native/vm/Constructor.c: Likewise. * src/native/vm/VMRuntime.c: Likewise. * src/native/vm/gnu_classpath_VMStackWalker.c: Added. * src/native/vm/java_lang_VMSystem.c: Likewise. * src/native/vm/java_lang_reflect_Method.c: Likewise. * src/native/vm/java_lang_VMObject.c: Likewise. * src/native/vm/java_lang_VMString.c: Likewise. * src/native/vm/gnu_classpath_VMSystemProperties.c: Likewise. * src/native/vm/java_lang_VMRuntime.c: Likewise. * src/native/vm/java_lang_reflect_Field.c: Likewise. * src/native/vm/java_lang_VMThrowable.c: Likewise. * src/native/vm/java_lang_VMClassLoader.c: Likewise. * src/native/vm/java_lang_VMClass.c: Likewise. * src/native/vm/java_lang_VMThread.c: Likewise. * src/native/vm/java_security_VMAccessController.c: Likewise. * src/native/vm/java_lang_reflect_VMProxy.c: Likewise. * src/native/vm/java_lang_reflect_Constructor.c: Likewise. 2006-07-18 08:16 twisti * src/native/vm/gnu_java_lang_management_VMMemoryMXBeanImpl.c: New file. 2006-07-18 08:14 twisti * src/native/vm/gnu_java_lang_management_VMRuntimeMXBeanImpl.c (vm/vm.h): Added. (getStartTime): Implemented. 2006-07-18 08:05 twisti * src/native/vm/VMSystemProperties.c (preInit): Added gnu.java.compiler.name property. 2006-07-17 16:11 twisti * src/vm/jit/jit.h (IS_VOID_TYPE): Added. * src/vm/builtin.c (builtin_print_argument): New function. (builtin_trace_args): Rewritten. Uses builtin_trace_args and prints arguments much better. (builtin_displaymethodstop): Likewise. 2006-07-17 15:14 twisti * src/native/jvmti/.cvsignore (TAGS): Added. (cacaodbgserver): Likewise. 2006-07-17 15:11 twisti * configure.ac (CACAO_LIBDIR): Added. * src/vm/classcache.c [ENABLE_JVMTI] (lock_hashtable_classcache): Don't export it. (classcache_jvmti_GetLoadedClasses): New method. * src/vm/classcache.h (CLASSCACHE_LOCK): Don't define it. (CLASSCACHE_UNLOCK): Likewise. (lock_hashtable_classcache): Don't export it. (classcache_jvmti_GetLoadedClasses): Added. * src/vm/vm.c (vm_create): Use CACAO_LIBDIR in OPT_XRUNJDWP. * src/native/jvmti/jvmti.c (GetLoadedClasses): Use classcache_jvmti_GetLoadedClasses. (jvmti_agentload): Some code cleanup. 2006-07-17 13:50 twisti * src/native/include/include/Makefile.am (GEN_JVMTI_HEADER_FILES): Reordered. * src/native/include/include/.cvsignore (gnu_classpath_jdwp_VMMethod.h): Added. (gnu_classpath_jdwp_util_VariableTable.h): Likewise. 2006-07-17 11:48 twisti * src/vm/jit/asmpart.h (asm_wrapper_patcher): Renamed to asm_patcher_wrapper. * src/vm/jit/alpha/codegen.c (codegen): Likewise. (createnativestub): Likewise. * src/vm/jit/alpha/asmpart.S (asm_wrapper_patcher): Likewise. * src/vm/jit/i386/codegen.c (codegen): Likewise. (createnativestub): Likewise. * src/vm/jit/i386/asmpart.S (asm_wrapper_patcher): Likewise. * src/vm/jit/mips/codegen.c (codegen): Likewise. (createnativestub): Likewise. * src/vm/jit/mips/asmpart.S (asm_wrapper_patcher): Likewise. * src/vm/jit/powerpc/codegen.c (codegen): Likewise. (createnativestub): Likewise. * src/vm/jit/powerpc/asmpart.S (asm_wrapper_patcher): Likewise. * src/vm/jit/powerpc64/codegen.c (codegen): Likewise. (createnativestub): Likewise. * src/vm/jit/powerpc64/asmpart.S (asm_wrapper_patcher): Likewise. * src/vm/jit/x86_64/codegen.c (codegen): Likewise. (createnativestub): Likewise. * src/vm/jit/x86_64/asmpart.S (asm_wrapper_patcher): Likewise. 2006-07-17 11:09 twisti * src/mm/boehm.c (heap_allocate): Changed signature. Some cleanup. * src/mm/boehm.h (heap_allocate): Likewise. 2006-07-17 10:00 twisti * src/native/vm/VMRuntime.c (maxMemory): Comment fix. (availableProcessors): Likewise. 2006-07-17 09:47 twisti * src/vm/jit/x86_64/patcher.c (vm/jit/x86_64/codegen.h): Added. (vm/exceptions.h): Likewise. (patcher_get_putstatic): Removed monitor enter/exit and return address calculation, this is now done by the wrapper. (patcher_get_putfield): Likewise. (patcher_putfieldconst): Likewise. (patcher_aconst): Likewise. (patcher_builtin_multianewarray): Likewise. (patcher_builtin_arraycheckcast): Likewise. (patcher_invokestatic_special): Likewise. (patcher_invokevirtual): Likewise. (patcher_invokeinterface): Likewise. (patcher_checkcast_instanceof_flags): Likewise. (patcher_checkcast_instanceof_interface): Likewise. (patcher_checkcast_class): Likewise. (patcher_instanceof_class): Likewise. (patcher_clinit): Likewise. (patcher_athrow_areturn): Likewise. (patcher_resolve_native): Likewise. * src/vm/jit/x86_64/asmpart.S (asm_wrapper_patcher): Use patcher_wrapper. 2006-07-16 15:58 twisti * src/native/jvmti/jvmti.c (DestroyRawMonitor): Don't pass threadobject to lock_monitor_exit. (RawMonitorEnter): Changed builtin_monitorenter to lock_monitor_enter. (RawMonitorExit): Changed builtin_monitorexit to lock_monitor_exit. 2006-07-16 15:38 twisti * src/vm/jit/recompile.c (recompile_threadobject): Renamed to recompile_vmthread and changed type to java_lang_VMThread. (recompile_start_thread): Changed initialization of the thread object. This fixes the not-exit bug. * src/vm/jit/profile/profile.c (profile_threadobject): Renamed to profile_vmthread. (profile_thread): Call codegen_get_pv_from_pc_nocheck instead of codegen_findmethod. (profile_start_thread): Changed initialization of the thread object. * src/vm/jit/codegen-common.c (codegen_findmethod): Print a stacktrace if no function was found and exit the VM. (codegen_get_pv_from_pc_nocheck): New function. Like codegen_findmethod, but can return NULL. * src/vm/jit/codegen-common.h (codegen_get_pv_from_pc_nocheck): Added. 2006-07-14 17:08 edwin * src/vm/jit/allocator/simplereg.c (new_allocate_scratch_registers): Fixed dupslots indices for ICMD_SWAP. 2006-07-14 17:07 edwin * src/vm/jit/show.c (new_show_icmd): General handling of INS_FLAG_UNRESOLVED. 2006-07-14 17:06 edwin * src/vm/jit/show.c (new_show_icmd): Fixed showing of LASTORECONST. 2006-07-14 17:05 edwin * src/vm/jit/stack.c (new_stack_analyse): Fixed propagation of INS_FLAG_UNRESOLVED for PUTFIELDCONST/PUTSTATICCONST. 2006-07-14 17:03 edwin * src/vm/jit/stack.c (DUP_SLOT): Copy only TEMPVARs directly. 2006-07-14 17:02 edwin * src/vm/jit/parse.c (new_parse): No exception check for MONITORENTER. 2006-07-14 16:58 edwin * src/vm/jit/show.c (new_show_stackvar): Show varkind and varnum for variables with an invalid varkind. 2006-07-14 16:56 edwin * src/vm/jit/stack.c (new_stack_analyse): Use POPANY for DUP* instructions, in order to set varkind correctly. The repeated POPANY macros should probably be replaced by more efficient code. 2006-07-14 16:54 edwin * src/vm/jit/allocator/simplereg.c (new_allocate_scratch_registers): Fixed dupslots indices for ICMD_DUP_X1. 2006-07-14 16:52 edwin * src/vm/jit/parse.h (NEW_OP_STORE_ONEWORD): Store index in dst, not in s1. (NEW_OP_STORE_TWOWORD): Likewise. 2006-07-13 11:54 twisti * src/vm/jit/powerpc/codegen.c (codegen): Use lock_monitor_enter/exit instead of builtin_monitorenter/exit. 2006-07-13 11:17 motse * doc/handbook/jvmti.tex: documentation of the cacao jvmti implementation added to the cacao handbook * doc/handbook/arch.eps: idem * doc/handbook/cacao.tex: idem * doc/handbook/java.bib: idem * doc/handbook/arm.tex: added bounding box for arm-double-memory.png 2006-07-13 10:26 twisti * src/vm/jit/mips/codegen.c (codegen): Use lock_monitor_enter/exit instead of builtin_monitorenter/exit. (createnativestub): Don't use builtin_get_exceptionptrptr, but codegen_finish_native_call for exception check. 2006-07-12 22:55 twisti * src/mm/memory.c (vm/vm.h): Added. (memory_cnew): Replaced throw_cacao_exception_exit with vm_abort. (dump_release): Likewise. * src/toolbox/util.c (_Jv_getcwd): Likewise. 2006-07-12 22:12 twisti * src/vm/jit/alpha/codegen.c (codegen): Use lock_monitor_enter/exit instead of builtin_monitorenter/exit. 2006-07-12 21:59 twisti * src/vm/jit/i386/codegen.c (codegen): Use lock_monitor_enter/exit instead of builtin_monitorenter/exit. 2006-07-12 21:45 twisti * src/vm/builtin.c (builtin_monitorenter): Removed. (builtin_staticmonitorenter): Likewise. (builtin_monitorexit): Likewise. * src/vm/builtin.h: Likewise. * src/threads/native/lock.c (lock_monitor_enter): Don't pass threadobject, get it in this function. (lock_monitor_exit): Likewise. * src/threads/native/lock.h (lock_monitor_enter): Changed signature. (lock_monitor_exit): Likewise. (LOCK_monitor_enter): Defined. (LOCK_monitor_exit): Likewise. (LOCK_MONITOR_ENTER): Likewise. (LOCK_MONITOR_EXIT): Likewise. * src/vm/suck.c: Use lock_monitor_enter/exit instead of builtin_monitorenter/exit. * src/vm/string.c: Likewise. * src/vm/finalizer.c: Likewise. * src/vm/classcache.c: Likewise. * src/vm/initialize.c: Likewise. * src/vm/jit/recompile.c: Likewise. * src/vm/jit/show.c: Likewise. * src/vm/jit/patcher.h: Likewise. * src/vm/jit/parse.c: Likewise. * src/vm/jit/x86_64/md.c: Likewise. * src/vm/jit/x86_64/codegen.c: Likewise. * src/vm/jit/jit.c: Likewise. * src/vm/builtintable.inc: Likewise. * src/vm/exceptions.c: Likewise. * src/vm/linker.c: Likewise. * src/vm/utf8.c: Likewise. * src/native/jni.c: Likewise. * src/native/native.c: Likewise. * src/toolbox/avl.c: Likewise. * src/toolbox/list.c: Likewise. * src/mm/memory.c: Likewise. * src/cacaoh/headers.h: Likewise. 2006-07-12 21:33 twisti * src/threads/Makefile.am: Added path to header. 2006-07-12 21:32 twisti * src/vm/jit/Makefile.am (RECOMPILE_SOURCES): Added, compile recompile only if threads are enabled. * src/vm/vm.c (vm_create): Call recompile_init only if threads are enabled. 2006-07-12 21:27 twisti * src/threads/none/.cvsignore: New file. 2006-07-12 21:26 twisti * src/threads/none/Makefile.am: New file. * src/threads/none/lock.h: Likewise. * src/threads/Makefile.am (DIST_SUBDIRS): Added. * configure.ac (AC_CONFIG_FILES): Added src/threads/none/Makefile. 2006-07-12 20:27 twisti * src/vm/jit/powerpc/darwin/md-abi.c (md_return_alloc): Use jd->isleafmethod. 2006-07-12 20:14 twisti * src/vm/jit/powerpc/codegen.c (codegen): Use jd->isleafmethod. * src/vm/jit/powerpc/linux/md-abi.c (md_return_alloc): Likewise. 2006-07-12 15:02 twisti * src/vm/jit/recompile.c (recompile_replace_vftbl): #ifndef NDEBUG debugging code. 2006-07-12 14:55 twisti * src/vm/jit/powerpc/linux/md-abi.c (vm/jit/abi.h): Added. * src/vm/jit/powerpc/netbsd/md-abi.c: Likewise. * src/vm/jit/powerpc/darwin/md-abi.c: Likewise. * src/vm/jit/alpha/md-abi.c: Likewise. * src/vm/jit/powerpc64/linux/md-abi.c: Likewise. * src/vm/jit/i386/md-abi.c: Likewise. * src/vm/jit/sparc64/md-abi.c: Added GNU header. (vm/jit/abi.h): Added. 2006-07-12 14:53 twisti * src/vm/jit/mips/codegen.c (codegen): Use jd->isleafmethod. Pass register number to codegen_add_classcastexception_ref. * src/vm/jit/mips/md-abi.c (vm/jit/abi.h): Added. (md_return_alloc): Changed signature. 2006-07-12 14:42 edwin * src/vm/jit/emit.h (emit_load): New function. This is a general function for emitting loads that will keep its stackvar argument after switching to the new instruction format. It will be used for instructions with variable arguments, for example. * src/vm/jit/x86_64/emit.c (emit_load): New function. 2006-07-12 13:52 twisti * src/vm/jit/x86_64/codegen.c (codegen): Use jd->isleafmethod. * src/vm/jit/x86_64/md-abi.c (md_return_alloc): Likewise. 2006-07-12 13:47 twisti * src/vm/jit/code.c (code_get_stack_frame_size): Commented code, we need another implementation. 2006-07-11 22:23 twisti * src/vm/jit/x86_64/asmpart.S (asm_call_jit_compiler): Use exceptions_get_and_clear_exception. (asm_wrapper_patcher): Likewise. 2006-07-11 19:17 twisti * src/vm/jit/i386/emit.c: Changed prefix from i386_ to emit_. (vm/jit/emit.h): Added. (emit_load_s1_low): New function. (emit_load_s2_low): New function. * src/vm/jit/i386/md.c (md_get_method_patch_address): Changed instruction byte. * src/vm/jit/i386/md-emit.h: Changed prefix from i386_ to emit_. Added architecture defines. * src/vm/jit/i386/codegen.c Changed the code generator to produce RISC-like code. These are way too much changes to name them. * src/vm/jit/i386/codegen.h: Removed a lot of architecture stuff. * src/vm/jit/i386/patcher.c (vm/exceptions.h): Added. (patcher_wrapper): New function. (patcher_get_putstatic): Removed monitor enter/exit and return address calculation, this is now done by the wrapper. (patcher_getfield): Likewise. (patcher_putfield): Likewise. (patcher_putfieldconst): Likewise. (patcher_aconst): Likewise. (patcher_builtin_multianewarray): Likewise. (patcher_builtin_arraycheckcast): Likewise. (patcher_invokestatic_special): Likewise. (patcher_invokevirtual): Likewise. (patcher_invokeinterface): Likewise. (patcher_checkcast_instanceof_flags): Likewise. (patcher_checkcast_instanceof_interface): Likewise. (patcher_checkcast_class): Likewise. (patcher_instanceof_class): Likewise. (patcher_clinit): Likewise. (patcher_athrow_areturn): Likewise. (patcher_resolve_native): Likewise. * src/vm/jit/i386/asmpart.S (asm_vm_call_method): Changed calling sequence of asm_call_jit_compiler. (asm_call_jit_compiler): Use jit_asm_compile. (asm_wrapper_patcher): Use patcher_wrapper. 2006-07-11 18:39 twisti * src/vm/jit/emit.h [SIZEOF_VOID_P == 4] (emit_store_low): Added. [SIZEOF_VOID_P == 4] (emit_store_high): Likewise. 2006-07-11 18:35 twisti * src/vm/jit/i386/md-asm.h (mptr): Added. 2006-07-11 18:34 twisti * src/vm/jit/i386/md-abi.h (REG_METHODPTR): Added. (REG_ITMP12_PACKED): Likewise. (REG_ITMP13_PACKED): Likewise. (REG_ITMP23_PACKED): Likewise. (REG_RESULT_PACKED): Likewise. (EAX_EDX_PACKED): Likewise. 2006-07-11 17:10 twisti * src/vm/jit/alpha/patcher.c (patcher_wrapper): Added return address calculation. (patcher_get_putstatic): Removed return address calculation. (patcher_get_putfield): Likewise. (patcher_aconst): Likewise. (patcher_builtin_multianewarray): Likewise. (patcher_builtin_arraycheckcast): Likewise. (patcher_invokestatic_special): Likewise. (patcher_invokevirtual): Likewise. (patcher_invokeinterface): Likewise. (patcher_checkcast_instanceof_flags): Likewise. (patcher_checkcast_instanceof_interface): Likewise. (patcher_checkcast_instanceof_class): Likewise. (patcher_clinit): Likewise. (patcher_athrow_areturn): Likewise. (patcher_resolve_native): Likewise. 2006-07-10 17:22 twisti * configure.ac (disassembler): Disabled by default, made too many problems. * src/vm/vm.c (toolbox/util.h): Added. (vm_create): Save VM start time, #ifdef disassembler stuff. * src/native/jni.h (_Jv_JavaVM): Added starttime and Java_gnu_java_lang_management_VMMemoryMXBeanImpl_verbose. * src/toolbox/util.c (config.h): Added. (sys/time.h): Likewise. (vm/vm.h): Likewise. (util_current_time_millis): New function. * src/toolbox/util.h (config.h): Added. (vm/types.h): Likewise. (util_current_time_millis): New function. 2006-07-10 14:47 twisti * src/vm/jit/alpha/codegen.c codegen): CHECKCAST: Load s1 again before exception check. 2006-07-10 14:42 twisti * src/vm/jit/i386/emit.c (i386_call_mem): Removed. 2006-07-10 14:41 twisti * src/vm/jit/i386/codegen.c (codegen): CHECKCAST: Load s1 again before exception check. (callgetexceptionptrptr): Removed. 2006-07-10 14:22 twisti * src/vm/jit/i386/codegen.c (codegen): Use jd->isleafmethod. 2006-07-10 14:20 twisti * src/vm/jit/jit.c (jit_jitdata_new): New function. (jit_compile): Use jit_jitdata_new. (jit_recompile): Likewise. 2006-07-10 14:11 twisti * NEWS: Added ClassCastException and system assertions. * src/vm/jit/stack.c (new_stack_analyse): Changed missing jd->isleafmethod. (stack_analyse): Likewise. 2006-07-10 14:02 twisti * src/vm/jit/code.h (codeinfo): Removed basicblocks and isleafmethod. * src/vm/jit/jit.h (jitdata): Added isleafmethod. * src/vm/jit/alpha/codegen.c (codegen): Use jd->isleafmethod. Pass register number to codegen_add_classcastexception_ref. * src/vm/jit/allocator/simplereg.c (interface_regalloc): Use jd->isleafmethod. (local_regalloc): Likewise. * src/vm/jit/parse.c (new_parse): Likewise. (parse): Likewise. * src/vm/jit/parse.h (NEW_OP_BUILTIN_CHECK_EXCEPTION): Likewise. (NEW_OP_BUILTIN_NO_EXCEPTION): Likewise. (NEW_OP_BUILTIN_ARITHMETIC): Likewise. (BUILTIN): Likewise. 2006-07-10 13:53 twisti * src/vm/jit/powerpc64/linux/.cvsignore: New file. * src/vm/jit/powerpc64/.cvsignore: Likewise. 2006-07-10 13:51 twisti * src/vm/jit/alpha/patcher.c (assert.h): Added. (vm/exceptions.h): Added. (vm/jit/methodheader.h): Likewise. (patcher_wrapper): New function. (patcher_get_putstatic): Removed monitor enter/exit, this is now done by the wrapper. (patcher_get_putfield): Likewise. (patcher_aconst): Likewise. (patcher_builtin_multianewarray): Likewise. (patcher_builtin_arraycheckcast): Likewise. (patcher_invokestatic_special): Likewise. (patcher_invokevirtual): Likewise. (patcher_invokeinterface): Likewise. (patcher_checkcast_instanceof_flags): Likewise. (patcher_checkcast_instanceof_interface): Likewise. (patcher_checkcast_instanceof_class): Likewise. (patcher_clinit): Likewise. (patcher_athrow_areturn): Likewise. (patcher_resolve_native): Likewise. * src/vm/jit/alpha/asmpart.S (asm_wrapper_patcher): Use patcher_wrapper. * src/vm/jit/alpha/md-abi.c (md_return_alloc): Changed signature. 2006-07-10 13:36 twisti * src/vm/statistics.c (count_class_infos): Renamed to size_classinfo. (size_fieldinfo): Added. (size_methodinfo): Likewise. (size_codeinfo): Likewise. (print_stats): Print new variables. * src/vm/statistics.h (count_class_infos): Renamed to size_classinfo. (size_fieldinfo): Added. (size_methodinfo): Likewise. (size_codeinfo): Likewise. * src/vm/class.c (class_create_classinfo): Renamed count_class_infos to size_classinfo. * src/vm/loader.c (load_class_from_classbuffer): Likewise and use new variables. * src/vm/jit/code.c [ENABLE_STATISTICS] (code_codeinfo_new): Add codeinfo size. [ENABLE_STATISTICS] (code_codeinfo_free): Subtract codeinfo size. 2006-07-10 10:18 twisti * src/vm/jit/x86_64/codegen.c (codegen): Pass register number to codegen_add_classcastexception_ref. 2006-07-10 10:01 twisti * src/lib/vm/reference/java/lang/VMClassLoader.java (defaultAssertionStatus): Made native. * src/native/vm/VMClassLoader.c (defaultAssertionStatus): Added. * src/native/jni.h (_Jv_JavaVM): Added Java_java_lang_VMClassLoader_defaultAssertionStatus. * src/vm/vm.c (OPT_ESA): Added. (OPT_DSA): Likewise. 2006-07-08 22:07 twisti * src/vm/jit/methodheader.h (ExEntrySize): Removed. (ExStartPC): Likewise. (ExEndPC): Likewise. (ExHandlerPC): Likewise. (ExCatchType): Likewise. 2006-07-08 20:32 twisti * src/vm/jit/i386/codegen.c (codegen): Pass register number to codegen_add_classcastexception_ref. 2006-07-08 20:16 twisti * src/vm/utf8.c (utf_java_lang_ClassCastException): Added. (utf8_init): Initialize utf_java_lang_ClassCastException. * src/vm/utf8.h (utf_java_lang_ClassCastException): Added. * src/vm/class.c (class_java_lang_ClassCastException): Added. * src/vm/class.h (class_java_lang_ClassCastException): Likewise. * src/vm/exceptions.c (exceptions_init): Initialize class_java_lang_ClassCastException. (new_classcastexception): Renamed to exceptions_new_classcastexception, pass the failing class name to the exception. * src/vm/exceptions.h (exceptionptr): Use thread object directly. (new_classcastexception): Renamed to exceptions_new_classcastexception. * src/vm/jit/stacktrace.c (stacktrace_inline_classcastexception): Changed signature. * src/vm/jit/stacktrace.h (stacktrace_inline_classcastexception): Likewise. * src/vm/jit/codegen-common.c (codegen_add_classcastexception_ref): Likewise. * src/vm/jit/codegen-common.h (codegen_add_classcastexception_ref): Likewise. * src/vm/jit/powerpc/codegen.c (codegen): Pass register number to codegen_add_classcastexception_ref. 2006-07-08 19:08 twisti * src/vm/jit/i386/codegen.c (createnativestub): Don't use builtin_get_exceptionptrptr, but codegen_finish_native_call for exception check. 2006-07-08 18:28 twisti * configure.ac: Use ARCH_CFLAGS and OPT_CFLAGS instead of CFLAGS and pass the flags via AM_CFLAGS to Makefile's. 2006-07-08 14:20 twisti * src/vm/jit/stacktrace.c (stacktrace_create): Added another code == NULL check. 2006-07-06 22:52 twisti * src/vm/jit/powerpc/darwin/md-abi.h (REG_ITMP12_PACKED): Added. (REG_RESULT_PACKED): Added. * src/vm/jit/powerpc/darwin/md-asm.h (patcher_wrapper): Added. * src/vm/jit/powerpc/darwin/md-abi.c (md_return_alloc): Changed signature. * src/vm/jit/powerpc/asmpart.S (L_patcher_wrapper$stub): Added. 2006-07-06 14:19 twisti * src/vm/jit/x86_64/codegen.c (codegen): Use code variables. (createnativestub): Likewise and don't use builtin_get_exceptionptrptr, but codegen_finish_native_call for exception check. * src/vm/jit/x86_64/codegen.h (PROFILE_CYCLE_START): Use code variables. (PROFILE_CYCLE_STOP): Likewise. * src/vm/jit/x86_64/md-abi.c (md_return_alloc): Changed signature. 2006-07-06 14:10 tbfg fixed isleafmethod is now part of code issues 2006-07-06 13:59 tbfg powerpc64 compiles arch.h and md-abi.h: modified PV register assignment 2006-07-06 12:42 twisti * src/vm/jit/i386/codegen.c (codegen): Use code->isleafmethod. * src/vm/jit/i386/md-abi.c (md_return_alloc): Changed signature. 2006-07-06 11:36 twisti * src/vm/method.h (methodinfo): Removed isleafmethod, frequency, bbfrequency and cycles. * src/vm/jit/powerpc/linux/md-abi.c (md_return_alloc): Changed signature, use code->isleafmethod. * src/vm/jit/powerpc/linux/md-abi.h (REG_IFTMP): Changed from 0 to 16. (REG_ITMP12_PACKED): Added. (REG_RESULT_PACKED): Likewise. * src/vm/jit/powerpc/codegen.c (vm/jit/methodheader.h): Added. (codegen): Use code->isleafmethod, added instrumentation code. * src/vm/jit/abi.h (md_return_alloc): Added. * src/vm/jit/stack.c (new_stack_analyse): Use code->isleafmethod. (stack_analyse): Likewise. * src/vm/jit/stack.h (md_return_alloc): Removed. * src/vm/jit/code.c (code_codeinfo_new): Don't memset as NEW already does that, set isleafmethod to true. * src/vm/jit/code.h (codeinfo): Added basicblockcount and basicblocks. * src/vm/jit/allocator/simplereg.c (interface_regalloc): Use code->isleafmethod. (local_regalloc): Likewise. * src/vm/jit/parse.c (new_parse): Likewise. (parse): Likewise. * src/vm/jit/parse.h (NEW_OP_BUILTIN_CHECK_EXCEPTION): Likewise. (NEW_OP_BUILTIN_NO_EXCEPTION): Likewise. (NEW_OP_BUILTIN_ARITHMETIC): Likewise. (BUILTIN): Likewise. * src/vm/jit/replace.c (replace_create_replacement_points): Don't set code->isleafmethod, it's already set. * src/vm/jit/profile/profile.c (profile_printstats): Use code variables. * src/vm/jit/jit.c (jit_compile_intern): Don't set m->isleafmethod. * src/cacaoh/headers.c: Use stackcount instead of isleafmethod. 2006-07-05 11:48 twisti * src/vm/descriptor.h: Removed space. 2006-07-04 19:06 twisti * src/vm/jit/powerpc/darwin/md-asm.h (builtin_asm_get_exceptionptrptr): Removed. (_no_threads_exceptionptr): Likewise. (exceptions_get_and_clear_exception): Added. * src/vm/jit/powerpc/patcher.c (vm/exceptions.h): Added. (vm/jit/methodheader.h): Likewise. (patcher_wrapper): New function. (patcher_get_putstatic): Removed monitor enter/exit, this is now done by the wrapper. (patcher_get_putfield): Likewise. (patcher_aconst): Likewise. (patcher_builtin_multianewarray): Likewise. (patcher_builtin_arraycheckcast): Likewise. (patcher_invokestatic_special): Likewise. (patcher_invokevirtual): Likewise. (patcher_invokeinterface): Likewise. (patcher_checkcast_instanceof_flags): Likewise. (patcher_checkcast_instanceof_interface): Likewise. (patcher_checkcast_class): Likewise. (patcher_instanceof_class): Likewise. (patcher_clinit): Likewise. (patcher_athrow_areturn): Likewise. (patcher_resolve_native): Likewise. * src/vm/jit/powerpc/asmpart.S (asm_call_jit_compiler): Use exceptions_get_and_clear_exception. (asm_wrapper_patcher): Likewise, use patcher_wrapper. (L_builtin_asm_get_exceptionptrptr$stub): Removed. (L_exceptions_get_and_clear_exception$stub): Added. * src/vm/jit/patcher.h (assert.h): Added. (PATCHER_FLAG_PATCHED): Likewise. (PATCHER_MONITORENTER): Added assert and return NULL. (PATCHER_MARK_PATCHED_MONITOREXIT): Use PATCHER_FLAG_PATCHED. (patcher_wrapper): Added. 2006-07-04 18:24 twisti * src/vm/jit/powerpc/codegen.c (createnativestub): Don't use builtin_get_exceptionptrptr, but codegen_finish_native_call for exception check. 2006-07-04 16:56 twisti * tests/regression/codepatching/test.java: Catch only thrown exceptions. 2006-07-04 16:05 twisti * src/vm/jit/powerpc/darwin/md-os.c (md_signal_handler_sigusr2): New function. * src/vm/jit/powerpc/darwin/md-asm.h (asm_handle_nullptr_exception): Removed. (asm_abstractmethoderror): Added. (exceptions_asm_new_abstractmethoderror): Likewise. * src/vm/jit/powerpc/asmpart.S (L_exceptions_asm_new_abstractmethoderror$stub): Added. 2006-07-04 16:02 twisti * src/vm/jit/powerpc/darwin/md-abi.c (md_param_alloc): Code beautifying. 2006-07-03 14:06 twisti * src/vm/jit/alpha/asmpart.S (asm_call_jit_compiler): Use exceptions_get_and_clear_exception. (asm_wrapper_patcher): Likewise. 2006-07-03 13:49 twisti * src/vm/jit/codegen-common.c (codegen_finish_native_call): Check for exception and return it. * src/vm/jit/codegen-common.h (codegen_finish_native_call): Changed signature. * src/vm/jit/alpha/codegen.c (createnativestub): Don't use builtin_get_exceptionptrptr, but codegen_finish_native_call for exception check. * src/vm/jit/alpha/codegen.h (M_ASUB_IMM): Added. 2006-07-03 13:46 twisti * src/vm/jit/alpha/md-abi.c (nregdescint): Added comments. 2006-07-03 13:45 twisti * src/vm/jit/alpha/linux/md-os.c (md_signal_handler_sigusr2): New method. (thread_restartcriticalsection): Code cleanup. 2006-07-03 12:06 twisti * src/vm/jit/alpha/asmpart.S (asm_abstractmethoderror): New method. 2006-07-03 10:18 twisti * src/vm/exceptions.c (exceptions_get_and_clear_exception): New function. * src/vm/exceptions.h (exceptions_get_and_clear_exception): Added. 2006-07-02 18:31 twisti * src/lib/vm/reference/gnu/java: Added. * src/lib/vm/reference/gnu/java/lang: Likewise. * src/lib/vm/reference/gnu/java/lang/management: Likewise. * src/lib/vm/reference/gnu/java/lang/management/VMRuntimeMXBeanImpl.java: New file. * src/lib/Makefile.am (VM_JAVA_FILES): Added src/lib/vm/reference/gnu/java/lang/management/VMRuntimeMXBeanImpl.java. (VM_CLASS_FILES): Added classes/gnu/java/lang/management/VMRuntimeMXBeanImpl.class. (vm.zip, nozip): Removed ecj check. * src/native/vm/gnu_java_lang_management_VMRuntimeMXBeanImpl.c: New file. * src/native/vm/Makefile.am (libnativevm_la_SOURCES): Added gnu_java_lang_management_VMRuntimeMXBeanImpl.c. * src/native/include/.cvsignore: Added gnu_java_lang_management_VMRuntimeMXBeanImpl.h. * src/native/include/Makefile.am (ADDITIONAL_IMPLEMENTED_VM_CLASSES_HEADER_FILES): Added gnu_java_lang_management_VMRuntimeMXBeanImpl.h. * src/native/native.c (native/include/gnu_java_lang_management_VMRuntimeMXBeanImpl.h): Added. (dummynativetable): Added Java_gnu_java_lang_management_VMRuntimeMXBeanImpl_getInputArguments and Java_gnu_java_lang_management_VMRuntimeMXBeanImpl_getStartTime. 2006-07-02 18:24 twisti * m4/ac_prog_javac.m4 (AC_PROG_JAVAC): Add -1.5 option when using ecj. 2006-07-02 11:00 twisti * m4/ac_prog_javac.m4 (AC_PROG_JAVAC): Added bootclasspath to compiler checks. 2006-07-02 10:42 twisti * src/vm/jit/mips/asmpart.S (asm_abstractmethoderror): New function. 2006-06-28 22:47 twisti * NEWS: Added new release. 2006-06-28 22:38 twisti * src/lib/vm/reference/java/lang/VMThread.java: Updated to GNU Classpath version. 2006-06-28 21:52 twisti * src/vm/jit/powerpc/asmpart.S (asm_abstractmethoderror): New function. 2006-06-28 21:51 twisti * src/vm/exceptions.c (exceptions_handle_exception): Typo. 2006-06-28 21:46 twisti * src/vm/linker.c (link_class_intern): Fixed compiler warning, added comment. (linker_addinterface): Fixed compiler warning. 2006-06-28 21:44 edwin * src/vm/linker.c (link_class_intern): Converted the check against creating a stubroutine twice into an assert. The check became obsolete because abstract methods do no longer get compiler stubs. 2006-06-28 21:01 edwin * src/vm/linker.c (link_class_intern): Do not generate compiler stubs for abstract methods. 2006-06-28 20:33 edwin * src/vm/jit/intrp/codegen.c (intrp_codegen): Changed MethodPointer in method header to CodeinfoPointer. (intrp_createcompilerstub): Likewise. (intrp_createnativestub): Likewise. (createcalljavafunction): Likewise. * src/vm/jit/intrp/asmpart.c (intrp_asm_handle_exception): Changed MethodPointer in method header to CodeinfoPointer. 2006-06-28 19:43 twisti * src/vm/exceptions.c (exceptions_asm_new_abstractmethoderror): New function. * src/vm/exceptions.h (exceptions_asm_new_abstractmethoderror): Added. * src/vm/jit/x86_64/asmpart.S (asm_abstractmethoderror): Use exceptions_asm_new_abstractmethoderror. * src/vm/jit/i386/asmpart.S (asm_abstractmethoderror): Likewise. 2006-06-28 19:11 twisti * src/vm/utf8.c (utf_java_lang_AbstractMethodError): Added. (utf8_init): Initialize utf_java_lang_AbstractMethodError. * src/vm/utf8.h (utf_java_lang_AbstractMethodError): Added. * src/vm/class.c (class_java_lang_AbstractMethodError): Added. (class_resolveclassmethod): Use exceptions_throw_abstractmethoderror. * src/vm/class.h (class_java_lang_AbstractMethodError): Added. * src/vm/exceptions.c (exceptions_init): Initialize class_java_lang_AbstractMethodError. (exceptions_new_abstractmethoderror): New function. (exceptions_throw_abstractmethoderror): Likewise. * src/vm/exceptions.h (exceptions_new_abstractmethoderror) (exceptions_throw_abstractmethoderror): Added. * src/vm/resolve.c (resolve_method_invokespecial_lookup): Use exceptions_throw_abstractmethoderror. * src/vm/jit/asmpart.h (asm_abstractmethoderror): Added. * src/vm/jit/i386/asmpart.S (asm_abstractmethoderror): New function. * src/vm/jit/x86_64/asmpart.S (asm_abstractmethoderror): Likewise. * src/vm/linker.c (link_class_intern): Fill empty slots in vftbl with the AbstractMethodError stub. (linker_addinterface): Insert the AbstractMethodError stub if no suitable method was found. * src/cacaoh/headers.c (asm_abstractmethoderror): Added. (exceptions_throw_abstractmethoderror): Likewise. 2006-06-28 17:05 twisti * src/vm/jit/jit.h (JITDATA_FLAG_INSTRUMENT) (JITDATA_HAS_FLAG_INSTRUMENT): Likewise. (ICMD_OPCODE_MASK, ICMD_CONDITION_MASK): Removed. * src/vm/jit/allocator/simplereg.c (allocate_scratch_registers): Removed ICMD_OPCODE_MASK. * src/vm/jit/show.c (show_icmd): Commented conditional stuff, maybe I need it again someday. * src/vm/jit/x86_64/emit.c (emit_store): Likewise. (emit_cmovxx): Likewise. * src/vm/jit/codegen-common.c (codegen_reg_of_var): Likewise. 2006-06-28 15:39 twisti * src/vm/jit/x86_64/md.c [ENABLE_THREADS] (threads/native/threads.h): Added. (md_signal_handler_sigusr2): New function. (thread_restartcriticalsection): Code cleanup. 2006-06-28 08:24 twisti * src/scripts/.cvsignore: Removed cacao, jarsigner, javac and keytool. * src/scripts: Updated svn:ignore. * src/scripts/Makefile.am (bin_SCRIPTS): Removed jarsigner and keytool, there are now wrappers in GNU Classpath. * src/scripts/javac.in: Removed. * src/scripts/jarsigner.in: Likewise. * src/scripts/cacao.in: Likewise. * src/scripts/keytool.in: Likewise. * configure.ac (AC_CONFIG_FILES): Removed src/scripts/jarsigner and src/scripts/keytool. 2006-06-23 12:07 twisti * src/vm/string.c (javastring_toutf): Check for NULL and return utf_null. (literalstring_u2): Replaced list_addfirst with list_add_first. * src/vm/builtin.h (BUILTIN_MONITOR_ENTER, BUILTIN_MONITOR_EXIT): Defined. * src/vm/jit/powerpc/codegen.c (codegen): Don't use BUILTIN_staticmonitorenter, use JITDATA_HAS_FLAG_VERBOSECALL instead of opt_verbosecall. (createnativestub): Likewise. * src/vm/jit/code.c: Smaller changes. * src/vm/jit/code.h (codeinfo): Added optlevel. * src/vm/jit/Makefile.am (libjit_la_SOURCES): Added recompile.[ch]. * src/vm/jit/recompile.c: New file. * src/vm/jit/recompile.h: Likewise. * src/vm/jit/show.c (new_show_method, show_method) (new_show_basicblock, show_basicblock): Use JITDATA_HAS_FLAG_SHOWDISASSEMBLE instead of opt_showdisassemble. * src/vm/jit/profile/profile.c (vm/jit/jit.h): Added. (list_method_entry): Moved to src/vm/jit/recompile.h. (profile_thread): First real implementation. (profile_start_thread): Better code. (profile_printstats): Use codeinfo frequencies. * src/vm/jit/jit.c (jit_compile): Set jd->flags properly. Moved codeinfo memory freeing before dump_release because we need jd, which is allocated on dump memory. (jit_recompile): New function. (jit_compile_intern): Use jd->flags. * src/vm/jit/codegen-common.c (codegen_createnativestub): Set jd->flags. * src/vm/jit/jit.h (JITDATA_FLAG_PARSE, JITDATA_FLAG_VERIFY) (JITDATA_FLAG_SHOWINTERMEDIATE, JITDATA_FLAG_SHOWDISASSEMBLE) (JITDATA_FLAG_VERBOSECALL): Added. (JITDATA_HAS_FLAG_PARSE, JITDATA_HAS_FLAG_VERIFY) (JITDATA_HAS_FLAG_IFCONV, JITDATA_HAS_FLAG_SHOWINTERMEDIATE) (JITDATA_HAS_FLAG_SHOWDISASSEMBLE, JITDATA_HAS_FLAG_VERBOSECALL): Likewise. (jit_recompile): Likewise. * src/vm/vm.c (vm/jit/recompile.h): Added. (vm_create): Call recompile_init and recompile_start_thread. * src/toolbox/list.h (config.h, vm/types.h, vm/global.h): Added. (list): Added lock. (list_init): Renamed to list_create. (list_addfirst): Renamed to list_add_first. (list_addlast): Renamed to list_add_last. (list_add_last_unsynced): New function. * src/toolbox/list.c (mm/memory.h, threads/native/threads.h) (vm/builtin.h): Added. (list_init): Renamed to list_create. (list_addfirst): Renamed to list_add_first and made synchronized. (list_addlast): Likewise. (list_add_last_unsynced): Likewise. (list_add_before): Made synchronized. (list_remove): Likewise. (list_first): Likewise. (list_last): Likewise. (list_next): Likewise. (list_prev): Likewise. * src/vm/suck.c (suck_init): Replaced list_init with list_create. (suck_add): Replaced list_addlast with list_add_last. * src/vm/loader.c (load_constantpool): Replaced list_addfirst with list_add_first. (load_newly_created_array): Likewise. * src/vm/properties.c (properties_init): Replaced list_init with list_create. (properties_add): Use list_add_last_unsynced, as this is required during bootstrapping. * src/threads/native/threads.h (THREAD_FLAG_JAVA) (THREAD_FLAG_INTERNAL): Added. (threadobject): Added flags. * src/threads/native/threads.c (threads_init): Flag main thread as Java thread (required for profiling sampling). (threads_startup_thread): Flag threads as Java or internal thread. 2006-06-23 09:23 twisti * src/vm/linker.c (vm/vm.h): Added. 2006-06-22 18:48 twisti * src/vm/utf8.c, src/vm/utf8.h (utf_null): Added. 2006-06-22 14:39 twisti * src/vm/utf8.c (utf8_init): Compile fix with ENABLE_STATISTICS. 2006-06-21 16:29 ajordan * configure.ac: Added support for compiling on sparc64 * src/vm/jit/Makefile.am: Added sparc64 subdirectory * src/vm/jit/sparc64/*: Added files for the sparc64 JIT (which won't compile yet) 2006-06-21 08:30 twisti * src/vm/jit/mips/linux/.cvsignore: Added TAGS. 2006-06-20 15:50 twisti * src/vm/jit/mips/codegen.c (codegen): Use codeinfo instead of methodinfo. (createcompilerstub): Likewise. (createnativestub): Likewise. * src/vm/jit/mips/asmpart.S (asm_vm_call_method): Likewise. 2006-06-20 11:55 twisti * src/vm/jit/alpha/codegen.c (codegen): Use codeinfo instead of methodinfo. (createcompilerstub): Likewise. (createnativestub): Likewise. * src/vm/jit/alpha/asmpart.S (asm_vm_call_method): Likewise. 2006-06-20 09:10 twisti * src/vm/jit/x86_64/codegen.c (codegen): Use codeinfo instead of methodinfo. (createcompilerstub): Likewise. (createnativestub): Likewise. * src/vm/jit/x86_64/asmpart.S (asm_vm_call_method): Likewise. 2006-06-19 22:53 twisti * src/vm/jit/i386/codegen.c (codegen): Use codeinfo instead of methodinfo. (createcompilerstub): Likewise. (createnativestub): Likewise. * src/vm/jit/i386/asmpart.S (asm_vm_call_method): Likewise. 2006-06-19 22:23 twisti * src/threads/native/threads.h (threadobject): Added pc. 2006-06-19 22:22 twisti * src/vm/jit/methodheader.h (MethodPointer): Removed. (CodeinfoPointer): Added. * src/vm/method.c (method_vftbl_lookup): Use CodeinfoPointer. * src/vm/jit/powerpc/codegen.c (codegen): Use codeinfo instead of methodinfo. (createcompilerstub): Likewise. (createnativestub): Likewise. * src/vm/jit/powerpc/asmpart.S: Likewise. * src/vm/jit/stacktrace.c (stacktrace_create_stackframeinfo): Likewise. (stacktrace_create_native_stackframeinfo): Likewise. (stacktrace_add_method): Likewise. (stacktrace_create): Likewise. * src/vm/exceptions.c (exceptions_handle_exception): Likewise. * src/vm/jit/codegen-common.c (codegen_findmethod): Define for all architectures. Removed assert, we have to check that somewhere else. (codegen_finish): Add the method for all architectures. * src/vm/jit/codegen-common.h (methodtree_element): Likewise. * src/vm/jit/profile/profile.c (profile_thread): First implementation. * src/vm/jit/profile/profile.h (vm/global.h): Added. * src/vm/signal.c (signal_init): Install SIGUSR2 for profiling. * src/vm/signallocal.h (md_signal_handler_sigusr2): Added. * src/vm/jit/powerpc/linux/md-os.c (md_signal_handler_sigusr2): New method. * src/vm/vm.c (vm_create): Call profile_start_thread only with opt_prof. * src/cacaoh/headers.c (exceptions_throw_nosuchmethoderror): Added. 2006-06-19 21:39 twisti * src/vm/class.c (class_resolveinterfacemethod_intern): Smaller changes. (class_resolveclassmethod): Likewise. 2006-06-19 21:04 twisti * src/vm/linker.c (link_class_inter): Smaller changes. (linker_addinterface): Likewise, added some comments about checks we should do. 2006-06-19 21:00 twisti * src/vm/jit/powerpc/patcher.c (assert.h): Added. (patcher_invokeinterface): Added XXX comments. 2006-06-19 20:51 twisti * configure.ac (profiling): Disable by default. 2006-06-19 12:36 twisti * src/native/jni.c (AttachCurrentThread): Removed dummy implementation. (GetEnv): Use switch instead of if's. 2006-06-14 18:55 motse * src/native/native.c (native_resolve_function): fix/add to my last incomplete commit. 2006-06-14 18:36 motse * src/vm/loader.c (load_class_from_classloader): Add call to jvmti Class Load and Prepare event. * src/native/jni.c (RegisterNatives): Add comment for calling jvmti Native Method Bind event. * src/native/vm/VMClassLoader.c (defineClass): Add call to jvmti Class File Load Hook event. * src/native/vm/VMObject.c (wait): Add call to jvmti Monitor Wait and Waited event. * src/native/native.c (native_resolve_function): Add call to jvmti Native Method Bind event. * src/native/jvmti/cacaodbg.c (jvmti_ClassFileLoadHook): new function to supprt event. (jvmti_ClassLoadPrepare): idem (jvmti_MonitorContendedEntering): idem (jvmti_MonitorWaiting): idem (jvmti_ThreadStartEnd): idem (jvmti_NativeMethodBind): idem * src/native/jvmti/cacaodbg.h: Add function headers for jvmti_ClassFileLoadHook, jvmti_ClassLoadPrepare, jvmti_MonitorContendedEntering, jvmti_MonitorWaiting, jvmti_ThreadStartEnd, jvmti_NativeMethodBind. * src/native/jvmti/jvmti.c (execute_callback): Add support for Class File Load Hook event. (GetOwnedMonitorInfo): Adapt lock record iteration to new data structure. (GetCurrentContendedMonitor): idem * src/threads/native/lock.c (lock_monitor_enter): Add call to jvmti Monitor Contended Enter and Entered event * src/threads/native/threads.c (threads_startup_thread): replace breakpoint by direct call to jvmti Thread Start/End event * src/cacaoh/headers.c add dummy functions jvmti_ThreadStartEnd, jvmti_ClassLoadPrepare and jvmti_MonitorContendedEntering 2006-06-13 10:41 twisti * src/lib/vm/reference/java/lang/VMThread.java: Updated and removed our old thread variables. * src/native/include/java_lang_VMThread.h: Regenerated. 2006-06-12 21:34 edwin * src/vm/jit/stack.c (new_stack_analyze): Fixed warnings about directive in macro argument. 2006-06-12 21:27 edwin * src/vm/jit/show.c (new_show_basicblock): Fixed warnings. (new_show_stackvar): Likewise. 2006-06-12 21:14 edwin * src/vm/jit/stack.c (new_stack_analyse): Set dst field for IINC. * src/vm/jit/show.c (new_show_method): Use jitdata.new_rd. Only show locals and interfaces if available. (new_show_basicblock): Changed basicblock output format. (new_show_stackvar): Copied&pasted full stackvar printing. (new_show_icmd): Show some more ICMD operands. * src/vm/jit/allocator/simplereg.c (new_reg_mark_copy): Fixed bug for the case nthrough != 0. 2006-06-12 18:50 edwin * src/vm/jit/allocator/simplereg.h, src/vm/jit/allocator/simplereg.c (new_regalloc): New function for new instruction format. (new_allocate_scratch_registers): Likewise. * src/vm/jit/show.c (new_show_stackvar): Show allocated register for stage SHOW_REGS and above. * src/vm/jit/jit.h (jitdata): Added field new_rd for testing the new simplereg allocator. 2006-06-12 14:23 edwin * src/vm/jit/stack.c (new_stack_analyse): Fixed new stack analysis for ICMD_JSR. * src/vm/jit/show.c (new_show_icmd): Show operands of new instruction format. (new_show_basicblock): Removed obsolete stack display. 2006-06-10 14:53 edwin * src/vm/jit/stack.c (IF_INTRP): New macro. (IF_JIT): New macro. (STATISTICS_STACKDEPTH_DISTRIBUTION): New macro. (new_stack_analyse): New function. Implemented stack analysis for new instruction format. (Not used, yet.) * src/vm/jit/stack.h (NEWSTACK): Enclosed in do { } while(0). * src/vm/jit/show.h, src/vm/jit/show.c (new_show_method): New function. (new_show_basicblock): New function. (new_show_icmd): New function. * src/vm/jit/parse.c (new_fillextable): New function. (parse): Parsing of JSR changed. Fixed bptr->icount setting. * src/vm/jit/jit.h (new_instruction): New field s3.jsrtarget. New field dst.dupslots. 2006-06-08 07:26 twisti * tests/regression/codepatching/test.java (aastoreconst): Fixed skip case. 2006-06-07 12:51 twisti * src/vm/suck.c (suck_add_from_property): Always set namelist to NULL before scandir. 2006-06-07 12:19 twisti * src/vm/global.h (bool): Changed to `unsigned int', as the MIPS Pro compiler complains about signed bit fields. And I think that warning is really ok. * src/vm/suck.c (scandir_filter): Changed the signature define, as only linux seems to use const. 2006-06-07 12:10 twisti * src/vm/suck.c (suck_add_from_property): Check for scandir return value in error case, as on some systems, like Linux, it returns NULL. 2006-06-06 21:13 motse src/native/vm/VMVirtualMachine.c (unregisterEvent): print error message src/native/jvmti/cacaodbg.c (jvmti_cacao_debug_init): set variable jvmti src/native/jvmti/VMjdwp.c: add jmethodID and jclass cache variables. Add new callback functions to jvmti_jdwp_EventCallbacks (ThreadStart/ThreadEnd/ClassPrepare/Breakpoint): add ThreadStart/ThreadEnd event callbackes implementation who notify jdwp. (Exception/MethodEntry): dummy implementation. There are no jdwp exeception/MethodEntry events in gnu classpath yet. (setup_jdwp_thread): use cache variables. FINDCLASSWITHEXCEPTION/GETMIDWITHEXCEPTION: helper macros to ease jni findclass and getmethodid. (fillidcache): new function that fills valid jmethodIDs and jclasses in the cache variables. (VMInit): add call to fillidcache. (Agent_OnLoad): do not enable all jvmti callbacks anymore. Only enable needed VMInit callback. The other callbacks will be enable with VMVirtualMachine.registerEvent by need. src/native/jvmti.c (dofireEvent): check if a valid event callback is available before executing it. (SetEventNotificationMode): ThreadStart/End event are no more implemented as breakpoints but have direct function calls to dofireEvent. (SuspendThread/ResumeThread/getcacaostacktrace): sketch for further implementation of this function. Final threads_suspend* functions are not yet available. (GetArgumentsSize): new implementation using parsed descriptors. (GetMethodLocation): add checks for JVMTI_ERROR_NATIVE_METHOD (Samuel Vinson). And return -1 as return values for this dummy implementation. (GetJLocationFormat): JLocationFormat probably will be JVMTI_JLOCATION_OTHER src/native/jvmti/VMjdwp.h: add jdwpthread which stores the thread object for the jdwp listening thread. src/threads/native/threads.h: remove jvmti_get_threads_breakpoints beacause ThreadStart/End events are implemented as direct function calls by now. src/threads/native/threads.c (threads_startup_thread): replace ThreadStart/End event implementation. (jvmti_get_threads_breakpoints): removed. src/cacaoh/headers.c (jvmti_fireEvent): added dummy implementation to enable linking of cacaoh. 2006-06-06 18:51 twisti * tests/regression/extest.java: Get the maximum heap size and use it for OOM checks. * tests/regression/extest.2output: Updated. 2006-06-06 18:05 twisti * src/vm/jit/alpha/arch.h (SUPPORT_LONG_DIV_POW2) (SUPPORT_LONG_REM_POW2): Added, as we probably support these two instructions while the architecture does not support long division. * src/vm/jit/i386/arch.h: Likewise. * src/vm/jit/mips/arch.h: Likewise. * src/vm/jit/powerpc/arch.h: Likewise. * src/vm/jit/x86_64/arch.h: Likewise. * src/vm/jit/stack.c (stack_analyse): Use SUPPORT_LONG_DIV_POW2 and SUPPORT_LONG_REM_POW2 instead of SUPPORT_LONG_DIV. 2006-06-06 14:32 michi * doc/handbook/arm.tex: Added. * doc/handbook/arm-double-memory.png: Image describing doubles in memory. * doc/handbook/cacao.tex, doc/handbook/Makefile.am: Added arm.tex. 2006-06-06 13:13 twisti * tests/regression/Makefile.am (JAVAFLAGS): Use flat vm classes and CLASSPATH_GLIBJ_ZIP. * tests/regression/codepatching/Makefile.am: Likewise. * tests/regression/native/Makefile.am: Likewise. 2006-06-06 12:17 twisti * .externalToolBuilders/CacaoConfigure.launch: Updated to new configure options. 2006-06-06 11:22 twisti * configure.ac (VM_ZIP_STRING): Removed. (--with-vm-zip): Added. (--with-classpath-glibj-zip): Added. (--with-flat-classpath): Removed. * contrib/setenvinstalled.in (BOOTCLASSPATH): Use hardcoded vm.zip and @CLASSPATH_GLIBJ_ZIP@. * contrib/setenvsource.in: Likewise. * src/vm/global.h (CACAO_VM_ZIP_PATH): Removed. (CLASSPATH_GLIBJ_ZIP_PATH): Likewise. * src/vm/vm.c (CACAO_VM_ZIP_PATH): Replaced with CACAO_VM_ZIP. (CLASSPATH_GLIBJ_ZIP_PATH): Replaced with CLASSPATH_GLIBJ_ZIP. * src/cacaoh/cacaoh.c: Likewise. * src/lib/Makefile.am (GLIBJ_ZIP): Removed and replaced with CLASSPATH_GLIBJ_ZIP. * src/native/include/Makefile.am (VM_ZIP): Removed and replaced with flat classes in builddir. (GLIBJ_ZIP): Removed and replaced with CLASSPATH_GLIBJ_ZIP. * src/native/Makefile.am: Likewise. 2006-06-01 22:53 edwin * src/vm/jit/stack.h (NEW_CHECKOVERFLOW): New macro. 2006-06-01 22:52 edwin * src/vm/jit/parse.c (new_parse): Use temporary fields in jitdata, instead of methodinfo fields. Check exceptions for MONITORENTER/EXIT. Cleaned up. 2006-06-01 22:49 edwin * src/vm/jit/parse.h (new_block_insert): New macro. 2006-06-01 22:46 edwin * src/vm/jit/jit.h (jitdata): Added temporary fields for development of new instruction format. (NEW_INSTRUCTION_GET_METHODDESC): New macro. 2006-06-01 16:00 edwin * src/vm/resolve.c (new_resolve_field_lazy): New method. This will become the resolve_field_lazy for the new instruction format. (new_resolve_method_lazy): New method. This will become the resolve_method_lazy for the new instruction format. (new_create_unresolved_field): New method. This will become the create_unresolved_field for the new instruction format. (new_create_unresolved_method): New method. This will become the create_unresolved_method for the new instruction format. * src/vm/jit/parse.c (new_parse): Further work for new format. * src/vm/jit/jit.h (NEW_INSTRUCTION_GET_FIELDREF): New macro. (NEW_INSTRUCTION_GET_METHODREF): New macro. 2006-06-01 15:09 edwin * src/vm/jit/jit.c (jcommandsize): Reformatted prettily. Use comments instead of duplicated #defines. 2006-06-01 14:36 edwin * src/vm/jit/jit.h (ICMD_CHECKNULL_POP): New ICMD. * src/vm/jit/jit.c (ICMD_CHECKNULL_POP): Likewise. * src/vm/jit/parse.c (new_parse): Further work on parsing for new instruction format. Zero flags where necessary. Clarify policy of at most one instruction per byte of original bytecode. Use the new ICMD_CHECKNULL_POP for MONITORENTER/EXIT without threads. 2006-06-01 13:00 edwin * src/vm/jit/parse.h: Reworked and documented macros for new instruction set. 2006-05-31 23:18 edwin * src/vm/jit/jit.h: Whitespace cleanup and comments. 2006-05-31 23:03 edwin * src/vm/jit/parse.c (parse): Removed unnecessary variable `s4ptr`. 2006-05-31 22:56 edwin * src/vm/jit/parse.c (new_parse): Implement LOOKUPSWITCH and TABLESWITCH for the new instruction format. * src/vm/jit/jit.h (branch_target_t): New union. (lookup_target_t): New struct. (s3_operand_t): lookupdefault is now a branch_target_t. (dst_operand_t): Changed some field names and types. 2006-05-31 22:07 twisti * src/native/jvmti/Makefile.am (INCLUDES): Renamed to AM_CPPFLAGS. (LIBS): Added, required for darwin. (libjdwp_la_SOURCES): Removed trailing \. 2006-05-31 21:31 edwin * src/vm/jit/ifconv/ifconv.c (show.h): Include this instead of stack.h. * src/vm/jit/verify/typecheck.c (show.h): Likewise. * src/vm/jit/inline/inline.c (show.h): Include. * src/vm/jit/jit.c (show.h): Include. 2006-05-31 21:10 edwin * src/vm/jit/show.c (show_init): Do not define this function for NDEBUG. 2006-05-31 20:28 edwin * src/vm/jit/show.h: New file. * src/vm/jit/show.c: New file. * src/vm/jit/stack.h (stack_show_method): Moved to show.h, renamed to show_method. (stack_show_basicblock): Moved to show.h, renamed to show_basicblock. (stack_show_icmd): Moved to show.h, renamed to show_icmd. * src/vm/jit/stack.c (lock_stack_show_icmd): Moved to show.c, renamed to show_global_lock. (stack_show_method): Moved to show.c, renamed to show_method. (stack_show_basicblock): Moved to show.c, renamed to show_basicblock. (stack_show_icmd): Moved to show.c, renamed to show_icmd. (stack_init): This function is now empty. * src/vm/jit/ifconv/ifconv.c (stack_show_basicblock): Renamed to show_basicblock. * src/vm/jit/inline/inline.c (stack_show_method): Renamed to show_method. (stack_show_icmd): Renamed to show_icmd. * src/vm/jit/inline/inline_debug.inc (stack_show_icmd): Renamed to show_icmd. * src/vm/jit/jit.c (jit_init): Call show_init. (stack_show_method): Renamed to show_method. * src/vm/jit/Makefile.am (show.c): Added. (show.h): Added. * src/threads/native/lock.h (pthread.h): Included. 2006-05-31 19:25 edwin * src/vm/jit/jit.h (s3_operant_t): Typo fixed to s3_operand_t. Thanks, twisti. 2006-05-31 13:53 motse src/native/vm/VMVirtualMachine.c (suspendThread): print error message with printjvmtierror (resumeThread): idem (getAllLoadedClassCount): idem (getAllLoadedClasses): idem (getClassStatus): idem (getAllClassMethods): idem (getFrameCount): idem (getThreadStatus): idem (getSourceFile): idem (registerEvent): idem src/native/vm/VMMethod.c (printjvmtierror): new helper function for getting and print error messages (getName): print error message with printjvmtierror, remove signature, generic signature (getSignature): print error message with printjvmtierror, remove name, generic signature (getModifiers): print error message with printjvmtierror (getlinetable): idem (fillVariableTable): new function for converting jvmtiLocalVariableEntry to arguments for gnu.classpath.jdwp.util.VariableTable constructor (getVariableTable): new implementation. tries to get local variable table and return gnu.classpath.jdwp.util.VariableTable. src/native/include/Makefile.am: add VariableTable src/native/jvmti/VMjdwp.c (printjvmtierror) new function (duplicate) - this is a work around (VMInit): print error message with printjvmtierror src/native/jvmti/jvmti.c (InterruptThread): new implentation (GetThreadInfo): switch form using javastring_tochar (uses malloc) to javastring_toutf/utf_sprint_convert_to_latin1 (GetOwnedMonitorInfo): fix error handling (GetFrameLocation): idem (DestroyRawMonitor): use heap_free (GetClassSignature): fix error handling (GetSourceFileName): use utf_bytes (GetFieldName): fix error handling (GetFieldDeclaringClass): add error handling (GetFieldModifiers): idem (GetMethodName): fix error handling (GetClassLoaderClasses): idem (GenerateEvents): add CHECK_CAPABILITY can_generate_compiled_method_load_events src/native/jvmti/VMjdwp.h add printjvmtierror 2006-05-31 13:10 twisti * src/vm/jit/x86_64/md-emit.h (IS_IMM8, IS_IMM32): Removed. * src/vm/jit/emit.h (IS_IMM8, IS_IMM32): Added. 2006-05-31 12:33 twisti * src/vm/jit/x86_64/emit.c: Use new emit methods, saves about 6k code size. (emit_membase32): New method. (emit_memindex): Likewise. * src/vm/jit/x86_64/md-emit.h (emit_membase32): Removed. (emit_memindex): Likewise. 2006-05-30 23:38 edwin * src/vm/jit/parse.c (new_parse): Worked on implementing parsing for the new instruction format. (Not used, yet.) * src/vm/jit/parse.h: Likewise. * src/vm/jit/jit.h (INS_FLAG_UNRESOLVED, INS_FLAG_CLASS) (INS_FLAG_ARRAY, INS_FLAG_NOCHECK): Added flag constants for new instruction format. 2006-05-30 12:24 edwin * src/vm/jit/parse.h (new_instruction): Moved `bte` field to s3. * src/vm/jit/jit.h: Likewise. 2006-05-29 23:59 edwin * src/vm/jit/jit.h (subroutineinfo): Removed unused typedef. 2006-05-29 23:47 edwin * src/vm/jit/parse.h: New macros for new instruction format (not used, yet). * src/vm/jit/jit.h (new_instruction, ...): Further development of new instruction format (not used, yet). 2006-05-29 22:37 edwin * src/vm/jit/parse.h: Reordered and commented macros. No functional changes. (Changes): Added my name. 2006-05-29 21:48 edwin * src/vm/jit/parse.c (new_parse): New function. This will become the parse function for the new instruction format. (parse): Removed obsolete variable `gp`. (Was used for old inlining). * src/vm/jit/jit.h (jitdata): Added temporary fields `new_instructions` and `new_instructioncount` for parallel development of the new instruction format. 2006-05-29 20:22 edwin * src/vm/jit/jit.h (new_instruction): Committed the new instruction struct (with name `new_instruction` so it can co-exist with the old format `instruction`). (resolve.h): Include for new instruction format. * src/vm/resolve.h (typeinfo.h): Include to resolve dependencies. * src/vm/jit/parse.h: Added a reminder comment. 2006-05-29 19:28 twisti * configure.ac (AC_INIT): Changed to 0.96+svn. (CFLAGS): Changed to -O0. 2006-05-29 18:53 twisti * ChangeLog: Updated. 2006-05-29 18:52 twisti * configure.ac (AC_INIT): Changed to version 0.96. (CFLAGS): Changed to -O2. * NEWS: Changed date. 2006-05-29 15:51 twisti * src/vm/vm.c (usage): Removed new-line. 2006-05-29 15:37 twisti * src/vm/vm.c (OPT_GLIBJ): Added. (Xusage): Added help for -Xglibj. (version): Changed signature for conditional exit. (main): Added OPT_GLIBJ. Print version after all commandline arguments have been handled. 2006-05-29 15:21 edwin * src/vm/linker.c (link_class_intern): On i386 align all fields to just 4 bytes as gcc does. This makes the offsets of Java fields match the offset of native headers. This fixes a bug (java.lang.Double.value had been at offset 16, but java_lang_Double.value is offset 12). 2006-05-29 15:17 twisti * src/threads/native/critical.h (signal.h): Added, build fix for some older Darwin systems. 2006-05-29 14:32 twisti * NEWS: Added a lot of stuff. 2006-05-29 14:31 twisti * src/cacao/Makefile.am: Renamed libcacaovm.so to libjvm.so to be binary compatible with Sun. 2006-05-29 09:41 motse src/native/jni.c: removed jvmti.h included cacaodbg.h for GetEnv - jvmti src/native/vm/VMVirtualMachine.c: formatting changes/removed debug statements src/native/vm/VMMethod.c: (getName/getSignature/getModifiers/getLineTable): (Samuel Vinson) new implementation. (partially changed by motse) src/native/jvmti/cacaodbg.h: removed unused function declarations src/native/jvmti/jvmti.c (getcacaostacktrace): new implementation - does not yet handle traces of not current threads correctly. (GetMethodName): fix: return JVMTI_ERROR_NULL_POINTER only on method == NULL (GetFrameCount/GetStackTrace): fixed check for valid thread argument. 2006-05-26 16:24 edwin * src/toolbox/logging.h (stdarg.h): Include it here, instead of in logging.c. * src/toolbox/logging.c: See above. 2006-05-26 12:58 twisti * src/vm/jit/powerpc/linux/md-os.c (thread_restartcriticalsection): Removed assert. * src/vm/jit/powerpc/darwin/md-os.c (thread_restartcriticalsection): Compile fix. Removed assert. 2006-05-26 12:46 edwin * NEWS: Added unicode cleanup. 2006-05-26 12:44 edwin * NEWS: Added tasuki locks and other news. 2006-05-26 12:31 motse src/native/jvmti/jvmti.c (GetClassStatus): bugfix - only compare class state 2006-05-26 12:26 edwin * src/vm/jit/stacktrace.c (stacktrace_remove_stackframeinfo): Commented. 2006-05-26 12:25 twisti * src/vm/jit/powerpc/linux/md-os.c (thread_restartcriticalsection): Implemented. * src/vm/jit/powerpc/darwin/md-os.c: Likewise. 2006-05-26 12:19 edwin * src/vm/builtin.c (builtin_init): Documented. (builtin_trace_args): Documented. (builtin_displaymethodstop): Documented. * src/vm/jit/alpha/md-abi.c (md_param_alloc): Documented. * src/vm/jit/allocator/simplereg.c (allocate_scratch_registers): Documented. * src/vm/jit/codegen-common.c (methodtree_comparator): Documented. (codegen_insertmethod): Documented. * src/toolbox/util.c (getcwd): Documented. 2006-05-26 12:09 edwin * src/vm/loader.h: Comment update. * src/vm/jit/verify/typecheck.c (verify_basic_block): Removed obsolete inlining check. * src/vm/jit/replace.c: Typo fixed. * src/vm/jit/reg.c: Avoid XXX as wildcard in comments. * src/vm/jit/jit.h: Likewise. 2006-05-26 11:57 twisti * src/vm/properties.c (properties_system_add): Changed javastring_new_from_ascii to javastring_new_from_utf_string. * src/native/jni.c (ThrowNew): Use a variable for clazz. (JNI_CreateJavaVM): Release allocated memory if vm_create fails. * src/threads/native/threads.c: Comments reformatted. 2006-05-26 11:48 edwin * src/vm/class.c (class_resolveclassmethod): Removed obsolete XXX comments. (class_resolveinterfacemethod): Likewise. (class_resolvefield): Likewise. * src/vm/classcache.h: Removed obsolete XXX comment. * src/vm/jit/allocator/lsra.h: Changed TYPE_XXX to TYPE_* in comments. * src/vm/jit/jit.c: Likewise. * src/native/vm/VMObject.c (Java_java_lang_VMObject_clone): Removed obsolete XXX comment. * src/mm/memory.c (dump_release): Removed obsolete debugging code. 2006-05-26 11:22 edwin * src/native/jni.c (DefineClass): Use javastring_new_from_utf_string. (ThrowNew): Likewise. 2006-05-26 09:30 twisti * src/mm/boehm.c (stackcall_malloc_atomic): Removed. (stackcall_malloc_uncollectable): Likewise. (heap_alloc_uncollectable): Use macros directly. (heap_allocate): Likewise. * src/vm/vm.c: Added -jvm options, which is available on darwin. * src/vm/suck.c (scandir_filter): Changed signature for darwin. 2006-05-25 21:59 motse src/vm/vm.c(usage): added information for jvmti agent for jdwp (vm_create): jdwp code move to jvmti agent for jdwp (VMjdwp.c) src/cacao/cacao.c (main): jdwp code move to jvmti agent for jdwp. execute jvmti_set_phase only if needed src/native/jvmti/cacaodbg.c (setup_jdwp_thread): jdwp code move to jvmti agent for jdwp src/native/jvmti/VMjdwp.c: change this to a jvmti complaint agent by using jni/jvmti function instead of cacao specific functions and implement a Agent_OnLoad as main entry point. Include setup_jdwp_thread function. src/native/jvmti/Makefile.am: add libjdwp.so src/native/jvmti/cacaodbg.h: remove no more needed global jdwp related variables src/native/jvmti/jvmti.c: (Resume/SuspendThread(List)): add temporary implementation for trying jdwp (jvmti_agentload): bugfix in getting/passing libname/arguments 2006-05-25 12:28 twisti * vm/jit/intrp/intrp.h (global_sp): Added space, yeah, whatever... * vm/jit/intrp/dynamic-super.c (vm/builtin.h): Added. (vm/jit/disass.h): Likewise. (gen_inst): Fixed compiler warnings. * vm/jit/intrp/java.vmg: Fixed compiler warnings with stacktrace_create_stackframeinfo. * threads/native/threads.h (threadobject): Changed type of _global_sp to u1*. 2006-05-25 12:22 twisti * NEWS: Sorry. 2006-05-25 12:21 twisti * src/vm/vm.c (HEAP_MAXSIZE): Changed to 128MB. (STACK_SIZE): Changed to 64kB. (Xusage): Calculate default sizes. * NEWS: New stuff added. 2006-05-25 11:29 twisti * src/vm/jit/x86_64/md-emit.h (emit_movl_reg_reg): Added. 2006-05-25 11:24 edwin * configure.ac: Disable inlining and lsra by default. 2006-05-24 14:11 twisti * src/threads/native/threads.c (threads_startup_thread): Allocate Java stack on Java heap instead of hardware stack. 2006-05-24 14:08 twisti * configure.ac: Added INTRP_CFLAGS. * src/vm/jit/intrp/Makefile.am (CFLAGS): Set to INTRP_CFLAGS. 2006-05-24 11:00 motse src/vm/vm.c (vm_exit): only set JVMTI_PHASE_DEAD if a jvmti agent or a jvmti environment is loaded. src/native/jvmti/cacaodbg.c (jvmti_cacaodbgserver_quit): bugfix: set dbgcom = NULL only if all environments have been disposed. src/native/jvmti/jvmti.c (GetLoadedClasses): remove debug statement 2006-05-23 19:52 motse src/vm/classcache.c: export CLASSCACHE_LOCK/UNLOCK and lock_hashtable_classcache src/vm/classcache.h: idem src/native/jvmti/jvmti.c (GetLoadedClasses) implemented (sv/motse) (GetClassSignature) fixed 2006-05-23 15:31 motse src/vm/vm.c (vm_create): rename jvmti function calls src/cacao/cacao.c (main): rename jvmti function calls src/native/jni.c (GetEnv): rename jvmti function calls. jvmti version changed to JVMTI_VERSION_INTERFACE_JVMTI src/native/vm/VMVirtualMachine.c (getAllLoadedClassesCount): (Samuel Vinson) implemented. (getAllLoadedClassesCount): jvmti Deallocate call added. (sv): CallObjectMethod fix (getAllClassMethods): (Samuel Vinson) implemented. (getClassMethod): (Samuel Vinson) implemented. src/native/jvmti/jvmti.h: added JVMTI_VERSION interface and mask src/native/jvmti/cacaodbgserver.h: msg queue/shared mem related things removed. gdb related defines added. src/native/jvmti/dbg.h: remove ptrace related things src/native/jvmti/cacaodbg.c change setsysbrkpt name to jvmti_set_system_breakpoint, addbrkpt to jvmti_add_breakpoint, allthreads to jvmti_get_all_threads (jvmti_cacao_debug_init): new function where fork/exec of cacaodbgserver takes place (jvmti_set_system_breakpoint): added functionality for brkpt delete and asm label for cacaodbgserver support (jvmti_cacaodbgserver_quit): new function for killing cacaodbgserver properly (jvmti_cacao_generic_breakpointhandler): new function. This is the entry point for every breakpointhandler and start for a new jvmti event (jvmti_cacao_debug_init): new function for starting up cacaodbgserver process. src/native/jvmti/VMjdwp.c (jvmti_VMjdwpInit): function renamed src/native/jvmti/Makefile.am: delete dbg.c. (sv) add compile/install support for cacaodbgserver. src/native/jvmti/cacaodbg.h: breakpoint counter added to struct _brkpt. change setsysbrkpt name to jvmti_set_system_breakpoint, addbrkpt to jvmti_add_breakpoint, allthreads to jvmti_get_all_threads, fireEvent to jvmti_fireEvent, agentload to jvmti_agentload agentunload to jvmti_agentunload, getcurrentthread to jvmti_get_current_thread, set_jvmti_phase to jvmti_set_phase, new_jvmtienv to jvmti_new_environment, VMjdwpinit to jvmti_VMjdwpInit. added breakpoint table constants. removed global jdwp, jvmti, suspend, transport, agentarg variables src/native/jvmti/jvmti.c all jvmti-environment function changed to static functions. execcallback renamed to execute_callback. fireEvent renamed to jvmti_fireEvent. (execute_callback): add phase checks (GetClassMethods): bugfix in copying jmethodIDs (DisposeEnvironment): relocate work to jvmti_cacaodbgserver_quit (jvmti_new_environment) : relocate forking new process to jvmti_cacao_debug_init (CHECK_ADD_CAPABILITY): bugfix in adding capabilities (GetClassMethods): bugfix coping methodinfo pointers (SetEventNotificationMode): setsysbrkpt calls added. rename jvmti function names. src/native/jvmti/cacaodbgserver.c changed to support gdb insted of using ptrace directly. (getchildprocptrace): removed (waitloop): removed (startgdb): new function. start a new gdb session. (getgdboutput): new helper function for getting gdb output. (dataevaluate): new helper function for getting value for a given expression (commonbreakpointhandler): new function which handles SIGTRAPs and gdb breakpoint hits. (controlloop) : new function handle communication with gdb (main): removed old code. added calls to startgdb and controlloop src/native/jvmti/dbg.c removed src/threads/native/threads.h: removed threads_set_current_threadobject. added jvmti_get_threads_breakpoints src/threads/native/threads.c: (threads_startup_thread) add thread start/end asm lables (threads_set_current_threadobject): removed jvmti thread start support. (jvmti_get_threads_breakpoints) new function that gets addresses of asm lables. src/threads/native/lock.h: added definition of lock_global_pool_lock and lock_global_pool 2006-05-23 08:51 twisti * src/vm/jit/x86_64/codegen.c: Changed the code generator to produce RISC-like code. These are way too much changes to name them. (createnativestub): Bugfix in argument saving. * src/vm/jit/x86_64/codegen.h: Likewise. * src/vm/jit/x86_64/emit.c: Likewise. * src/vm/jit/x86_64/md-emit.h: Likewise. 2006-05-23 08:42 twisti * src/vm/options.c (opt_heapmaxsize, opt_heapstartsize): Added. * src/vm/options.h: Likewise. * src/vm/vm.c (version): Print heap and stack information. (vm_create): Use global option variables. 2006-05-23 08:25 twisti * src/vm/jit/x86_64/emit.c (emit_movl_reg_reg): New function. * src/vm/jit/x86_64/codegen.c (ICMD_L2I): Only move the low 32-bit. Otherwise this may cause a bug with e.g. array accesses, as the index registers are treated as 64-bit. * src/vm/jit/x86_64/codegen.h (gen_bound_check): Bugfix: only read 32-bit. (M_IMOV): Added. (M_ICMP_MEMBASE): Likewise. 2006-05-22 16:14 twisti * configure.ac: Added --with-classpath-includedir. 2006-05-22 09:07 twisti * NEWS: Some news. 2006-05-22 09:06 twisti * src/vm/vm.c (vm_abort): New method. * src/vm/vm.h: Likewise. * src/cacaoh/headers.c: Likewise. * src/toolbox/logging.c (log_vprint): Made non-static. * src/toolbox/logging.h (log_vprint): Added. * src/threads/native/threads.c (threads_sem_init): Use vm_abort. (threads_sem_wait): Likewise. (threads_sem_post): Likewise. (threads_current_time_is_earlier_than): Likewise. (threads_init): Check for pthread_attr_init error. (threads_start_thread): Check for errors of pthread calls. Set the threads stack size. 2006-05-18 14:33 edwin * src/threads/native/lock.h, src/threads/native/lock.c: Tasuki lock implementation (without lock deflation). This is a straight-forward implementation that uses an extra word in java_objectheader for the FLC (flat lock contention) bit. * src/vm/global.h (java_objectheader): Added field `flcword`. * src/threads/native/lock.h (Authors): Changed to myself, as there is none of the old code remaining in this file. * src/vm/jit/powerpc/codegen.c, src/vm/jit/alpha/codegen.c, src/vm/jit/mips/codegen.c, src/vm/jit/i386/codegen.c, src/vm/jit/x86_64/codegen.c (codegen, createnativestub): Add the FLC word when creating the fake object header for patcher synchronization. 2006-05-18 14:06 twisti * src/vm/properties.c (properties_get): Search the list backwards to get the newest entry. 2006-05-18 12:50 twisti * src/vm/vm.c (version): Print default and runtime classpath variables. (vm_create): Add a default java.endorsed.dirs property. 2006-05-17 22:06 twisti * configure.ac: Don't export BOOTCLASSPATH, that makes problems. 2006-05-17 12:10 twisti * src/vm/jit/powerpc/codegen.c (createnativestub): Fixed bug and changed argument saving and restoring. * src/vm/jit/powerpc/asmpart.S (asm_vm_call_method): Partially implemented Darwin bits. Still some bugs with testarguments. 2006-05-16 13:08 twisti * src/vm/jit/powerpc/codegen.c (codegen): Bugfix: use REG_ITMP3 in ICMD_L{DIV,REM} for function address. This fixes gnu.testlet.java.math.BigInteger.divide. 2006-05-16 01:49 edwin * src/threads/native/lock.c: Fixed comment formatting. 2006-05-15 23:37 edwin * src/vm/jit/i386/machine-instr.h (compare_and_swap): Fixed comment. 2006-05-15 23:31 twisti * configure.ac: Export BOOTCLASSPATH for javac check. * src/cacao/Makefile.am (cacao_SOURCES)Removed cacao.h. * src/vm/jit/inline/Makefile.am (libinline_la_SOURCES): Added inline_debug.inc. * src/vm/jit/powerpc/Makefile.am (DIST_SUBDIRS): Added netbsd. 2006-05-15 23:22 edwin * src/vm/jit/inline/inline_debug.c: Renamed to src/vm/jit/inline/inline_debug.inc. * src/vm/jit/inline/inline.c: #include changed to src/vm/jit/inline/inline_debug.inc. * src/vm/resolve.c: Typo fixed. 2006-05-15 21:48 edwin * src/threads/native/lock.c (lock_record_remove_waiter): Made static. (lock_monitor_wait): Likewise. 2006-05-15 21:32 edwin * src/threads/native/lock.h, src/threads/native/lock.c (lock_does_thread_hold_lock): Renamed to lock_is_held_by_current_thread and removed thread argument, as reliable checking is only possible for the current thread, anyway. * src/native/vm/VMThread.c (lock_does_thread_hold_lock): Changed to lock_is_held_by_current_thread. * src/native/jvmti/jvmti.c (lock_does_thread_hold_lock): Changed to lock_is_held_by_current_thread. 2006-05-15 18:24 edwin * configure.ac (src/threads/green/Makefile): Removed from AC_CONFIG_FILES. 2006-05-15 15:06 edwin * src/threads/native/lock.h (lock_record_pool_header_t): Documented. (lock_record_pool_t): Documented. * src/threads/native/lock.c: Minor whitespace cleanup. 2006-05-15 14:40 twisti * THIRDPARTY: Removed green threads stuff. 2006-05-15 14:39 twisti * src/vm/jit/alpha/asmpart.S (asm_perform_threadswitch) (asm_initialize_thread_stack, asm_switchstackandcall): Removed (2nd part of green threads removal). * src/vm/jit/mips/asmpart.S: Likewise. * src/vm/jit/i386/asmpart.S: Likewise. * src/vm/jit/x86_64/asmpart.S: Likewise. 2006-05-15 14:24 twisti * src/vm/hashtable.h, src/vm/class.c,, src/vm/suck.c, src/vm/loader.c, src/vm/builtin.c, src/vm/string.c, src/vm/suck.h, src/vm/builtin.h, src/vm/loader.h, src/vm/finalizer.c, src/vm/classcache.c, src/vm/initialize.c, src/vm/jit/powerpc/linux/md-os.c, src/vm/jit/powerpc/netbsd/md-os.c, src/vm/jit/powerpc/darwin/md-os.c, src/vm/jit/powerpc/darwin/md-asm.h, src/vm/jit/powerpc/codegen.c, src/vm/jit/powerpc/asmpart.S, src/vm/jit/codegen-common.h, src/vm/jit/alpha/codegen.c, src/vm/jit/alpha/linux/md-os.c, src/vm/jit/alpha/asmpart.S, src/vm/jit/alpha/freebsd/md-os.c, src/vm/jit/stack.c, src/vm/jit/code.c, src/vm/jit/verify/typecheck.c, src/vm/jit/mips/codegen.c, src/vm/jit/mips/linux/md-os.c, src/vm/jit/mips/asmpart.S, src/vm/jit/mips/irix/md-os.c, src/vm/jit/patcher.h, src/vm/jit/inline/inline.c, src/vm/jit/allocator/simplereg.c, src/vm/jit/i386/codegen.c, src/vm/jit/i386/linux/md-os.c, src/vm/jit/i386/asmpart.S, src/vm/jit/i386/freebsd/md-os.c, src/vm/jit/parse.c, src/vm/jit/intrp/intrp.h, src/vm/jit/intrp/codegen.c, src/vm/jit/intrp/engine.c, src/vm/jit/intrp/asmpart.c, src/vm/jit/intrp/dynamic-super.c, src/vm/jit/intrp/java.vmg, src/vm/jit/asmpart.h, src/vm/jit/x86_64/md.c, src/vm/jit/x86_64/codegen.c, src/vm/jit/x86_64/asmpart.S, src/vm/jit/profile/profile.c, src/vm/jit/stacktrace.c, src/vm/jit/jit.c, src/vm/jit/stacktrace.h, src/vm/jit/codegen-common.c, src/vm/jit/jit.h, src/vm/global.h, src/vm/builtintable.inc, src/vm/signal.c, src/vm/exceptions.c, src/vm/vm.c, src/vm/linker.c, src/vm/exceptions.h, src/vm/utf8.c, src/vm/hashtable.c, src/cacao/cacao.c, src/cacao/Makefile.am, src/native/tools/Makefile.am, src/native/tools/gennativetable.c, src/native/jni.c, src/native/vm/VMObject.c, src/native/vm/VMThread.c, src/native/jni.h, src/native/native.c, src/native/jvmti/cacaodbg.c, src/native/jvmti/cacaodbg.h, src/native/jvmti/jvmti.c, src/toolbox/avl.c, src/toolbox/logging.c, src/toolbox/avl.h, src/mm/boehm.h, src/mm/memory.c, src/mm/boehm.c, src/threads/green, src/threads/native/threads.h, src/threads/native/threads.c, src/threads/Makefile.am, src/cacaoh/cacaoh.c, src/cacaoh/headers.h, src/cacaoh/Makefile.am, src/cacaoh/headers.c, configure.ac: Green threads removal, USE_THREADS renamed to ENABLE_THREADS, NATIVE_THREADS define removed. 2006-05-15 13:13 twisti * src/vm/jit/asmpart.h (calljava_xhandler2): Not required anymore. 2006-05-15 12:23 twisti * src/threads/native/threads.c (sem_init, sem_post, sem_wait) (sem_destroy): Added a pthread implementation (taken from Boehm-GC) for Darwin, as Darwin does not have an implementation for these functions. * src/threads/native/threads.h (sem_t): Added structure for Darwin. * src/threads/native/lock.h (semaphore.h): Removed. 2006-05-15 12:14 edwin * src/threads/native/lock.c (THIN_UNLOCKED): Abstracted out the thin unlocked state so we can toggle the shape bit meaning if we want. (lock_pre_compute_thinlock): Likewise. (lock_get_initial_lock_word): Likewise. (lock_monitor_enter): Made void. Might save an instruction here and there. (lock_monitor_wait): lock_monitor_enter no longer returns the lock record. Assert that it is still the same fat lock (it must be). 2006-05-15 11:34 edwin * src/threads/native/lock.c: Added reference to thin lock paper and explained the lockword format. 2006-05-14 22:41 edwin * src/threads/native/lock.c: Thin lock implementation. * src/threads/native/threads.h (threadobject): Added thinlock field. (Authors, Changes): Moved myself to Authors because of rewrite. * src/threads/native/threads.c (threads_preinit): Init index and thinlock field of mainthreadobj here. (Needed early.) (threads_table_add): Init pre-computed thinlock field here. * src/threads/native/lock.h (lock_pre_compute_thinlock): New function. 2006-05-14 22:36 edwin * src/threads/native/lock.c (lock_record_free_pools): Assert that this function is not called. It does not match the new way lock records are handled. We must find another way to free them. * src/threads/native/threads.c (threads_init): Do not call lock_record_free_pools. (threads_table_add): Removed debug code. (threads_startup_thread): Likewise. 2006-05-14 15:34 edwin * src/threads/native/threads.c (threads_table_init): New function. (threads_table_add): New function. (threads_table_remove): New function. (threads_table_dump): New function. (threads_table): New global variable. (threads_preinit): Call threads_table_init. Call threads_table_add to add main thread. (threads_init_threadobject): Initialize index to 0. (threads_startup_thread): Call threads_table_add to add the thread to the table, and threads_table_remove to remove if afterwards. 2006-05-14 14:02 edwin * src/threads/native/threads.h, src/threads/native/threads.c (nativethread): Removed. This struct is now inlined in threadobject. (threads_table_entry_t): New type. (threads_table_t): New type. Some further cleanup. * src/vm/builtin.h (THREADINFO): Becomes THREADOBJECT. * src/vm/jit/intrp/intrp.h (THREADINFO): Becomes THREADOBJECT. * src/vm/jit/stacktrace.c (_stackframeinfo): This is now directly a field of threadobject. * src/vm/jit/stacktrace.h (THREADINFO): Becomes THREADOBJECT. * src/native/jni.h (THREADINFO): Becomes THREADOBJECT. * src/native/jvmti/jvmti.c (isSleeping): Renamed to sleeping. 2006-05-14 12:22 edwin * src/threads/native/lock.c, src/threads/native/lock.h: Rewritten as a very basic fat lock implementation. * src/vm/jit/powerpc64/arch.h (USE_MD_THREAD_STUFF): Renamed to USE_FAKE_ATOMIC_INSTRUCTIONS. * src/vm/jit/intrp/engine.c (USE_MD_THREAD_STUFF): Renamed to USE_FAKE_ATOMIC_INSTRUCTIONS. * src/threads/native/threads.c (USE_MD_THREAD_STUFF): Renamed to USE_FAKE_ATOMIC_INSTRUCTIONS. (ee.lrpool): Renamed to ee.lockrecordpools. 2006-05-14 12:15 edwin * src/threads/native/threads.c (threads_calc_absolute_time): Optimize waiting for the maximum 64-bit number of milliseconds to an unbounded wait. This also avoids an overflow problem we seem to have with timed waits. 2006-05-13 23:25 edwin * src/threads/native/lock.c (lock_init_thread_lock_record_pool): Renamed to lock_init_execution_env. Cleanup and Comments. * src/threads/native/lock.h (lock_init_thread_lock_record_pool): Renamed to lock_init_execution_env. * src/threads/native/threads.c (lock_init_thread_lock_record_pool): Renamed to lock_init_execution_env. 2006-05-13 23:10 edwin * src/threads/native/threads.c, src/threads/native/threads.c: Further cleanup. Still no functional changes. Renamed external symbols are listed below. * src/threads/native/critical.h, src/threads/native/critical.c: Cleanup. * src/threads/native/lock.h: Cleanup. * src/vm/jit/profile/profile.c (thread_sleep): Renamed to threads_sleep. * src/vm/vm.c (joinAllThreads): Renamed to threads_join_all_threads. * src/native/jni.c (thread_getself): Renamed to threads_get_current_threadobject. * src/native/vm/VMThread.c (thread): Typedef `thread` has been removed. (interruptThread): Renamed to threads_interrupt_thread. (isInterruptedThread): Renamed to threads_thread_has_been_interrupted. (setPriorityThread): Renamed to threads_java_lang_Thread_set_priority. (yieldThread): Renamed to threads_yield. (interruptedThread): Renamed to threads_check_if_interrupted_and_reset. * src/native/jvmti/cacaodbg.c (thread_getself): Renamed to threads_get_current_threadobject. (setthreadobject): Renamed to threads_set_current_threadobject. * src/native/jvmti/jvmti.c (setthreadobject): Renamed to threads_set_current_threadobject. * src/threads/green/threads.h (yieldThread): Renamed to threads_yield. (setPriorityThread): Renamed to threads_java_lang_Thread_set_priority. * src/threads/green/threads.c (yieldThread): Renamed to threads_yield. (setPriorityThread): Renamed to threads_java_lang_Thread_set_priority. 2006-05-12 16:49 edwin * src/threads/native/threads.c: The Big Thread Cleanup. No functional changes, only code motion, renaming, documenting. This file has been split into threads.c, lock.c, and critical.c. Externally used symbols that were renamed are listed below. Static symbol renames are not listed. * src/threads/native/threads.h: The Big Thread Cleanup. No functional changes, only code motion, renaming, documenting. This file has been split into threads.h, lock.h, and critical.h. * src/cacaoh/cacaoh.c (initLocks): Renamed to lock_init (green threads). * src/cacaoh/headers.c (threadcritnode): Renamed to critical_section_node_t. * src/mm/memory.c (initObjectLock): Renamed to lock_init_object_lock. * src/native/jvmti/jvmti.c (lockRecordPool): Renamed to lock_record_pool_t. (pool_lock): Renamed to lock_global_pool_lock. (global_pool): Renamed to lock_global_pool. (ownerThread): Renamed to owner. (threadHoldsLock): Renamed to lock_does_thread_hold_lock. (monitorExit): Renamed to lock_monitor_exit. (wait_cond_for_object): Renamed to lock_wait_for_object. (signal_cond_for_object): Renamed to lock_notify_object. (broadcast_cond_for_object): Renamed to lock_notify_all_object. * src/native/tools/gennativetable.c (initLocks): Renamed to lock_init (green threads). * src/native/vm/VMObject.c (initObjectLock): Renamed to lock_init_object_lock. (wait_cond_for_object): Renamed to lock_wait_for_object. (signal_cond_for_object): Renamed to lock_notify_object. (broadcast_cond_for_object): Renamed to lock_notify_all_object. * src/native/vm/VMThread.c (threadHoldsLock): Renamed to lock_does_thread_hold_lock. * src/threads/green/locks.c, src/threads/green/locks.h (initLocks): Renamed to lock_init. (wait_cond_for_object): Renamed to lock_wait_for_object. (signal_cond_for_object): Renamed to lock_notify_object. (broadcast_cond_for_object): Renamed to lock_notify_all_object. (internal_broadcast_cond_for_object): Renamed to internal_lock_notify_all_object. * src/threads/green/threads.c (initLocks): Renamed to lock_init. (internal_broadcast_cond_for_object): Renamed to internal_lock_notify_all_object. * src/threads/native/Makefile.am (lock.c, lock.h): Added new files. (critical.c, critical.h): Added new files. (Changes): Added my name. * src/threads/native/critical.c: New file. * src/threads/native/critical.h: New file. * src/threads/native/lock.c: New file. * src/threads/native/lock.h: New file. * src/toolbox/avl.c (initObjectLock): Renamed to lock_init_object_lock. * src/vm/builtin.c (initObjectLock): Renamed to lock_init_object_lock. (monitorEnter): Renamed to lock_monitor_enter. (monitorExit): Renamed to lock_monitor_exit. * src/vm/class.c (initObjectLock): Renamed to lock_init_object_lock. * src/vm/classcache.c (initObjectLock): Likewise. * src/vm/finalizer.c (initObjectLock): Likewise. (wait_cond_for_object): Renamed to lock_wait_for_object. (signal_cond_for_object): Renamed to lock_notify_object. * src/vm/global.h (monitorLockRecord): Renamed to lock_record_t. * src/vm/hashtable.c (initObjectLock): Renamed to lock_init_object_lock. * src/vm/jit/asmpart.h: Added #include "threads/native/critical.h" (threadcritnode): Renamed to critical_section_node_t. * src/vm/jit/code.c: Comment changed. * src/vm/jit/codegen-common.c, src/vm/jit/codegen-common.h (threadcritnode): Renamed to critical_section_node_t. (threadcritnodetemp): Renamed to codegen_critical_section_t. * src/vm/jit/alpha/codegen.c (get_dummyLR): Renamed to lock_get_initial_lock_word. * src/vm/jit/alpha/freebsd/md-os.c (thread_checkcritical): Renamed to critical_find_restart_point. * src/vm/jit/alpha/linux/md-os.c (thread_checkcritical): Renamed to critical_find_restart_point. * src/vm/jit/i386/codegen.c (get_dummyLR): Renamed to lock_get_initial_lock_word. * src/vm/jit/i386/freebsd/md-os.c (thread_checkcritical): Renamed to critical_find_restart_point. * src/vm/jit/i386/linux/md-os.c (thread_checkcritical): Renamed to critical_find_restart_point. * src/vm/jit/intrp/dynamic-super.c (initObjectLock): Renamed to lock_init_object_lock. * src/vm/jit/mips/codegen.c (get_dummyLR): Renamed to lock_get_initial_lock_word. * src/vm/jit/mips/irix/md-os.c (thread_checkcritical): Renamed to critical_find_restart_point. * src/vm/jit/mips/linux/md-os.c (thread_checkcritical): Renamed to critical_find_restart_point. * src/vm/jit/powerpc/codegen.c (get_dummyLR): Renamed to lock_get_initial_lock_word. * src/vm/jit/profile/profile.c (wait_cond_for_object): Renamed to lock_wait_for_object. * src/vm/jit/stack.c (initObjectLock): Renamed to lock_init_object_lock. * src/vm/jit/x86_64/codegen.c (get_dummyLR): Renamed to lock_get_initial_lock_word. * src/vm/jit/x86_64/md.c (thread_checkcritical): Renamed to critical_find_restart_point. * src/vm/loader.c (initObjectLock): Renamed to lock_init_object_lock. (initLocks): Renamed to lock_init (green threads). * src/vm/string.c (initObjectLock): Renamed to lock_init_object_lock. * src/vm/vm.c (initLocks): Renamed to lock_init (green threads). 2006-05-12 14:32 twisti * src/vm/jit/emit.h: Replaced __POWERPC__ #ifdef with SIZEOF_VOID_P == 4. 2006-05-11 14:02 twisti * src/native/vm/VMClassLoader.c (nativeGetResources): Bugfix: utf_new should be utfname. 2006-05-11 13:43 twisti * src/vm/jit/mips/codegen.c: Changed mcodeptr from u4* to u1*. * src/vm/jit/mips/codegen.h: Likewise. 2006-05-11 13:09 twisti * src/vm/jit/mips/asmpart.S (asm_call_jit_compiler): Use new jit_asm_compile method. 2006-05-11 12:48 edwin * src/threads/native/threads.c (monitorExit): Added an assert to check that no existing waiter is overwritten by the suspicious assignment. 2006-05-11 12:36 edwin * src/lib/vm/reference/java/lang/VMClassLoader.java (getBootPackages): Merged patch to VMClassLoader.java of the reference implementation. getBootPackages now works in the presence of endorsed jars. 2006-05-11 12:18 twisti * src/native/jni.c (DeleteGlobalRef): Bugfix: handle the removal of the first entry in the chain properly. 2006-05-11 09:18 twisti * src/vm/hashtable.c (threads/native/threads.h): Added. (hashtable_create): Initialize lock object. (hashtable_resize): New function. (hashtable_free): Likewise. * src/vm/hashtable.h (hashtable): Added header pointer. (hashtable_resize): Added. (hashtable_free): Likewise. * src/vm/vm.c (vm_create): Call jni_init before threads_init. * src/vm/utf8.c (lock_hashtable_utf): Removed. (utf8_init): Allocate hashtable on heap. (utf_new): Use new hashtable stuff. * src/native/native.c (native_init): Use new hashtable stuff. (native_hashtable_library_add): Likewise. * src/native/jni.c (jni_init): Removed Java IdentityHashMap stuff and create a hashtable. (NewGlobalRef): Implemented with native hashtable. (DeleteGlobalRef): Likewise. * src/native/jni.h (hashtable_global_ref_entry): Added. * src/vm/string.c (literalstring_u2): Removed check for class_java_lang_String, we have an assert there. 2006-05-10 16:14 twisti * src/vm/jit/alpha/codegen.c: Changed mcodeptr from u4* to u1*. * src/vm/jit/alpha/codegen.h: Likewise. 2006-05-10 15:51 twisti * src/vm/jit/codegen-common.h (codegendata): Use an u1* mcodeptr for all architectures. This is necessary for the interpreter. * src/vm/jit/codegen-common.c (codegen_setup): Removed #ifdef. (codegen_increase): Likewise. * src/vm/jit/powerpc/codegen.c: Changed mcodeptr from u4* to u1*. * src/vm/jit/powerpc/codegen.h: Likewise. 2006-05-10 15:09 edwin * src/vm/jit/inline/inline.c (inline_write_exception_handlers): Correct cast for abused instruction->target. 2006-05-10 13:12 twisti * src/vm/jit/alpha/asmpart.S (asm_call_jit_compiler): Use new jit_asm_compile method. 2006-05-08 11:09 twisti * configure.ac (AC_CONFIG_FILES): Added src/scripts/keytool. * src/scripts/Makefile.am (bin_SCRIPTS): Added keytool. * src/scripts/.cvsignore: Likewise. * src/scripts/keytool.in: New file. 2006-05-08 11:05 twisti * src/vm/jit/powerpc/asmpart.S (asm_vm_call_method): Handle argument passing properly for SysV ABIs. Darwin is left to do. 2006-05-08 11:03 twisti * tests/regression/native/testarguments.java: Added new test. * tests/regression/native/testarguments.c: Likewise. * tests/regression/native/testarguments.output: Likewise. 2006-05-06 18:29 motse * src/vm/vm.c (vm_create): make agentlib/agentpath work * src/cacao/cacao.c (main): changes for jvmti/jdwp startup due to removal of jdwp process * src/native/jni.c (JNI_CreateJavaVM): change order vm_create and initialization of _Jv_jvm due to jvmti agent support. * src/native/vm/VMVirtualMachine.c: change name of jvmtienv and bugfixes of Samuel Vinson * src/native/include/Makefile.am: add VMMethod.h * src/native/jvmti/Makefile.am: removal of cacaodbgserver * src/native/jvmti/jvmti.c: remove jdwp process and convert to thread * src/native/jvmti/cacaodbg.h: idem * src/native/jvmti/jvmti.h: idem * src/native/jvmti/dbg.h: idem * src/native/jvmti/cacaodbg.c: idem * src/native/jvmti/dbg.c: idem * src/native/jvmti/cacaodbgserver.c: change to a autonomous program and removal of jdwp thread. * src/native/jvmti/VMjdwp.c (VMInit): different invocation due to removal of jdwp thread * src/native/jvmti/VMjdwp.h: export jvmti environment and event callbacks. * src/native/vm/VMMethod.c: initial/dummy implementation of VMMetod native method 2006-05-06 14:13 edwin * src/native/vm/VMRuntime.c (Java_java_lang_VMRuntime_mapLibraryName): Use new utf_ functions. (Changes): Added my name. (vim boilerplate): Added. 2006-05-06 10:10 edwin * src/native/vm/VMClassLoader.c (Java_java_lang_VMClassLoader_nativeGetResources): Really create a new utf string to search for if the trailing .class is stripped. 2006-05-06 00:16 edwin * src/vm/classcache.c (classcache_merge_class_entries): Use utf_cat_classname. (classcache_store): Likewise. (classcache_store_defined): Likewise. 2006-05-06 00:11 edwin * src/native/vm/VMClassLoader.c (Java_java_lang_VMClassLoader_nativeGetResources): Fixed and cleaned up. Skip leading '/'. Remove '.class' only at end. Free char buffer. Use correct utf_ functions. Check for exceptions. * src/vm/zip.c (zip_find): Documented. 2006-05-05 19:31 edwin * src/vm/utf8.h: Moved #include "config.h" up front. 2006-05-05 19:22 edwin * src/toolbox/logging.c (Changes): Added my name. (vim boilerplate): Added. 2006-05-05 19:21 edwin * src/toolbox/logging.c (log_message_utf): Use new utf_ functions. (log_message_class_message_class): Likewise. (log_message_method): Likewise. 2006-05-05 19:13 edwin * src/vm/builtin.c (builtin_throw_exception): Use new utf_ functions. (builtin_trace_exception): Likewise. (builtin_trace_args): Likewise. (builtin_displaymethodstop): Likewise. 2006-05-05 18:58 edwin * src/vm/suck.c (suck_start): Use new utf_ functions. 2006-05-05 18:49 edwin * src/vm/utf8.h, src/vm/utf8.c: Fixed header. 2006-05-05 18:14 edwin * src/vm/loader.c (load_class_from_classbuffer): Use new utf_ functions. 2006-05-05 18:08 edwin * src/vm/resolve.c (resolve_class_from_name): Use new utf_ functions. (resolve_subtype_check): Likewise. (resolve_field_verifier_checks): Likewise. (resolve_method_verifier_checks): Likewise. 2006-05-05 17:34 edwin * src/vm/utf8.h, src/vm/utf8.c: The Big utf_* Renaming. The purpose of this change is to give the utf_* functions names that make clear what these functions _really_ have been doing all the time. I'm sure most callers would be surprised if they knew. All call sites should be reviewed! (utf_display): Renamed to utf_display_printable_ascii. (utf_display_classname): Renamed to utf_display_printable_ascii_classname. (utf_sprint): Renamed to utf_sprint_convert_to_latin1. (utf_sprint_classname): Renamed to utf_sprint_convert_to_latin1_classname. (utf_strcat): Renamed to utf_strcat_convert_to_latin1. (utf_strcat_classname): Renamed to utf_strcat_convert_to_latin1_classname. (utf_fprint): Renamed to utf_fprint_printable_ascii. (utf_fprint_classname): Renamed to utf_fprint_printable_ascii_classname. * src/vm/class.c, src/vm/suck.c, src/vm/loader.c, src/vm/builtin.c, src/vm/descriptor.c, src/vm/resolve.c, src/vm/method.c, src/vm/classcache.c, src/vm/jit/stack.c, src/vm/jit/verify/typeinfo.c, src/vm/jit/allocator/lsra.c, src/vm/jit/intrp/disass.c, src/vm/jit/stacktrace.c, src/vm/jit/codegen-common.c, src/vm/exceptions.c, src/vm/field.c, src/cacao/cacao.c, src/native/tools/gennativetable.c, src/native/vm/VMClassLoader.c, src/native/vm/VMRuntime.c, src/native/native.c, src/toolbox/logging.c, src/threads/green/threads.c, src/threads/native/threads.c, src/cacaoh/headers.c: The Big utf_ Renaming. All call sites of the renamed functions should be reviewed! Calls outside debugging code are probably incorrect and should use one of the new utf_ functions that copies byte-for-byte. 2006-05-05 17:09 edwin * src/vm/exceptions.c (new_exception): Documented. (new_exception_message): Documented. Use new_exception_javastring. (new_exception_throwable): Documented. (new_exception_utfmessage): Documented. Use new_exception_javastring. (new_exception_javastring): Documented. (new_exception_int): Documented. (new_classformaterror): Documented. Use new byte-for-byte UTF-8 functions. (exceptions_throw_classformaterror): Documented. (new_classnotfoundexception): Documented. Check return value of javastring_new. (new_noclassdeffounderror): Documented. Check return value of javastring_new. (new_internalerror): Documented. (exceptions_new_linkageerror): Documented. Use new byte-for-byte UTF-8 functions. (exceptions_new_nosuchmethoderror): Documented. Use new byte-for-byte UTF-8 functions. (exceptions_throw_nosuchmethoderror): Documented. (new_unsupportedclassversionerror): Documented. Use new byte-for-byte UTF-8 functions. (new_verifyerror): Likewise. (exceptions_throw_verifyerror_for_stack): Likewise. (exceptions_handle_exception): Documented. 2006-05-05 16:51 edwin * src/vm/utf8.c, src/vm/utf8.h (utf_copy): New function. (utf_cat): New function. (utf_copy_classname): New function. (utf_cat_classname): New function. These new functions copy the UTF-8 content byte-for-byte and thus do not lead to losses by conversion like the utf_strcpy, etc. functions. 2006-05-05 15:26 edwin * src/vm/string.c, src/vm/stringlocal.h, src/vm/utf8.c, src/vm/utf8.h (Changes): Added my name. (vim boilerplate): Added. 2006-05-05 15:14 edwin * src/vm/string.c, src/vm/stringlocal.h (javastring_new_from_utf_buffer): New function. (javastring_new_from_utf_string): New function. * src/vm/utf8.c (utf_get_number_of_u2s_for_buffer): New function. (utf_get_number_of_u2s): Documented that this function may throw exception.s. * src/vm/utf8.h (utf_get_number_of_u2s_for_buffer): New function. 2006-05-05 14:36 edwin * src/vm/string.c, src/vm/stringlocal.h (java_string_new_char): Renamed to `java_string_new_from_ascii` to make more clear what this function does. It is wrong to use this function to create a java.lang.String from a buffer of UTF-8 characters! * src/vm/finalizer.c (finalizer_start_thread): Legitimate use. * src/vm/jit/profile/profile.c (profile_start_thread): Likewise. * src/vm/exceptions.c (exceptions_new_linkageerror): Definitely INCORRECT use. (exceptions_new_nosuchmethoderror): Likewise. * src/native/vm/VMRuntime.c (Java_java_lang_VMRuntime_mapLibraryName): Likewise. * src/vm/exceptions.c (new_exception_message): Probably INCORRECT use. * src/native/jni.c (DefineClass): Likewise. (ThrowNew): Likewise. * src/native/vm/VMClassLoader.c (Java_java_lang_VMClassLoader_nativeGetResources): Likewise. * src/vm/properties.c (properties_system_add): Needs review. * src/cacao/cacao.c (getmainclassnamefromjar): Likewise. * src/native/jvmti/cacaodbg.c (setup_jdwp_thread): Likewise. * src/native/jvmti/jvmti.c (CreateRawMonitor, GetSystemProperty) (SetSystemProperty): Likewise. 2006-05-05 13:56 edwin * src/vm/utf8.c, src/vm/utf8.h (utf_bytes): New function. Use this function to query the number of octets of a utf string. This function will become the correct replacement for the old utf_strlen in most places. The calling code will have to be reviewed for that, however, and it will also require fixing utf_strcat, utf_sprint, and so on, to do the right thing. 2006-05-05 13:48 edwin * src/vm/utf8.c, src/vm/utf8.h (utf_strlen): Renamed to `utf_get_number_of_u2s` in order to reflect what this function _really_ does. A long name was chosen intentionally to make it obvious that this is _not_ the function to use as the normal strlen. Most current uses of this function are invalid, as it must only be used when the utf string will be **converted to UTF-16**. * src/vm/suck.c (suck_start): Renamed utf_strlen. RECONSIDER USE! * src/vm/loader.c (load_class_from_classbuffer): Likewise. * src/vm/builtin.c (various functions): Likewise. * src/vm/resolve.c (various functions): Likewise. * src/vm/exceptions.c (various functions): Likewise. * src/native/vm/VMClassLoader.c (Java_java_lang_VMClassLoader_nativeGetResources): Likewise. * src/native/vm/VMRuntime.c (Java_java_lang_VMRuntime_mapLibraryName): Likewise. * src/native/native.c (native_resolve_function): Likewise. * src/toolbox/logging.c (various functions): Likewise. * src/cacaoh/headers.c (various functions): Likewise. * src/vm/string.c (javastring_new): Legitimate use. (javastring_new_slash_to_dot): Likewise. (literalstring_new) Likewise. 2006-05-03 23:04 edwin * src/threads/native/threads.c (wakeWaiters): Renamed to threads_wake_waiters. Documented. 2006-05-03 22:58 edwin * src/threads/native/threads.c (handleWaiter): Renamed arguments. Commented. (monitorEnter): Documented. (notifyOneOrAll): Cleaned up. 2006-05-03 22:46 edwin * src/threads/native/threads.c (setPriority): Renamed to threads_set_thread_priority. (removeFromWaiters): Renamed to threads_remove_waiter. (timespec_less): Renamed to threads_timespec_earlier. (timeIsEarlier): Renamed to threads_current_time_is_earlier_than. (waitWithTimeout): Renamed to threads_wait_with_timeout. Removed unused argument `lr`. (thread_sleep): There is no need to create a lock record for calling threads_wait_with_timeout, as that does not use the lock record anyway (formerly waitWithTimeout). (various function): Lots of documentation and cleanup. 2006-05-02 16:16 twisti * src/vm/jit/stack.c (stack_analyse): Check for val.a == NULL on SUPPORT_CONST_STORE_ZERO_ONLY architectures for ICMD_PUTSTATIC and ICMD_PUTFIELD. 2006-05-01 23:14 edwin * src/threads/native/threads.c: Cleanup and documentation. 2006-05-01 21:40 edwin * src/threads/native/threads.h (threads_sem_init): New function. (threads_sem_post): New function. * src/threads/native/threads.c (threads_sem_init): New function. (threads_sem_wait): Added assertion. (threads_sem_post): New function. (various function): Use threads_sem_init and threads_sem_post. * src/native/jvmti/cacaodbg.c (getworkingdatalock): Use threads_sem_post. (cacaodbgfork): Use threads_sem_init. * src/native/jvmti/cacaodbgserver.c (contchild, waitloop). Use threads_sem_post. 2006-05-01 12:40 edwin * src/threads/native/threads.c (threads_sem_wait): New function. This function performs a non-interruptible sem_wait. This fixes segfaults and deadlocks that resulted from sem_wait calls returning prematurely. (cast_stopworld): Use threads_sem_wait. (threads_startup_thread): Likewise. (threads_start_thread): Likewise. (queueOnLockRecord): Likewise. * src/threads/native/threads.h (threads_sem_wait): New function. * src/native/jvmti/cacaodbg.c (msgqsendevent): Use threads_sem_wait instead of sem_wait. * src/native/jvmti/cacaodbgserver.c (contchild, waitloop): Use threads_sem_wait instead of sem_wait. 2006-04-30 17:18 twisti * configure.ac (AC_CONFIG_FILES): Added src/scripts/jarsigner. * src/scripts/Makefile.am (bin_SCRIPTS): Added jarsigner. * src/scripts/.cvsignore: Likewise. * src/scripts/jarsigner.in: New file. 2006-04-30 16:17 edwin * src/vm/resolve.c (resolve_method_verifier_checks) (constrain_unresolved_method): Use ICMD_ACONST_CLASSREF_OR_CLASSINFO. * src/vm/jit/powerpc/codegen.c, src/vm/jit/alpha/codegen.c, src/vm/jit/mips/codegen.c, src/vm/jit/i386/codegen.c, src/vm/jit/intrp/codegen.c, src/vm/jit/x86_64/codegen.c (codegen): Changes for new ACONST format. * src/vm/jit/stack.c (stack_analyse): Changes for new ACONST format. * src/vm/jit/verify/typecheck.c (verify_invocation): Use the new macros. (verify_builtin, verify_multianewarray, verify_basic_block): Changes for new ACONST format. * src/vm/jit/verify/typeinfo.h (TYPEINFO_INIT_JAVA_LANG_CLASS): Take a classref_or_classinfo as argument. * src/vm/jit/verify/typeinfo.c (typeinfo_init_class): Typo fixed. (typeinfo_print): Changes for new ACONST format. * src/vm/jit/inline/inline.c (inline_write_exception_handlers): Changes for new ACONST format. * src/vm/jit/parse.c (parse): Changes for new ACONST format. * src/vm/jit/parse.h (LOADCONST_A_CLASS): Removed. (LOADCONST_A_BUILTIN): Changes for new ACONST format. * src/vm/jit/jit.h (INSTRUCTION_IS_RESOLVED, INSTRUCTION_IS_UNRESOLVED): Only check least significant bit of target (provisory flag). (ICMD_ACONST_IS_CLASS, ICMD_ACONST_CLASSREF_OR_CLASSINFO) (ICMD_ACONST_RESOLVED_CLASSINFO, ICMD_ACONST_UNRESOLVED_CLASSREF): New macros. 2006-04-30 15:58 edwin * src/vm/jit/loop/tracing.c (tracing): Adapted to new format of INVOKE instructions. * src/vm/jit/allocator/lsra.c (lsra_scan_registers_canditates) (_test_lifetimes): Likewise. 2006-04-28 12:25 edwin * src/vm/jit/parse.c (parse): Added a comment. 2006-04-28 12:24 twisti * src/vm/jit/stack.c (stack_analyse): We need to split AASTORECONST and PUT{STATIC,FIELD}CONST as they can store different values. I hope the checks are correct now (until we get our new instruction format). Edwin: Hint! Hint! Hint! (stack_show_icmd): Again a smaller change. 2006-04-28 11:50 twisti * src/vm/jit/stack.c (stack_analyse): Check for {AASTORE,PUTSTATIC,PUTFIELD}CONST if the instruction is resolved. We don't have a patcher for that case. (stack_show_icmd): Smaller change. 2006-04-28 11:37 twisti * tests/regression/codepatching/test.java: Added new test. * tests/regression/codepatching/Makefile.am: Files updated. * tests/regression/codepatching/putfieldconstIF.java, tests/regression/codepatching/putfieldconstJDL.java: Removed. * tests/regression/codepatching/putstaticconstJ.java, tests/regression/codepatching/putstaticconstL.java, tests/regression/codepatching/putfieldconstD.java, tests/regression/codepatching/putfieldconstF.java, tests/regression/codepatching/putstaticconstC.java, tests/regression/codepatching/putfieldconstJ.java, tests/regression/codepatching/putfieldconstL.java, tests/regression/codepatching/putstaticconstI.java, tests/regression/codepatching/putfieldconstC.java, tests/regression/codepatching/putstaticconstD.java, tests/regression/codepatching/putfieldconstI.java, tests/regression/codepatching/putstaticconstF.java: New file. 2006-04-28 11:24 edwin * src/vm/resolve.c (resolve_method_lazy): Turn INVOKEVIRTUAL into INVOKESPECIAL for monomorphic calls. 2006-04-28 00:46 edwin * src/vm/jit/intrp/asmpart.c (intrp_asm_vm_call_method_int): Fix build errors. TWISTI, please review these changes. 2006-04-28 00:31 edwin * regression/codepatching/test.java: Added test for AASTORECONST with unresolved class constant. Currently exposes a bug when test.java is compiled with -target 1.5. * regression/codepatching/aastoreconstClass.java: New file. 2006-04-27 23:03 twisti * src/vm/jit/stacktrace.h (STACKFRAMEINFO): Added parenthesis. * src/vm/global.h (java_objectheader): Changed type of monitorPtr to monitorLockRecord. * src/vm/vm.h (vm_arg): Added union. * src/vm/vm.c (vm_vmargs_from_valist): Use union of vm_arg's data. * src/native/jni.c (_Jv_jni_vmargs_from_objectarray): Likewise. * src/threads/native/threads.h (nativethread): Changed type of _stackframeinfo to stackframeinfo*. * src/threads/native/threads.c (monitorEnter): Cast compare_and_swap return value correctly. 2006-04-27 12:33 twisti * src/vm/jit/x86_64/emit.c: Changed x86_64 function prefix to emit. And some other stuff too. * src/vm/jit/x86_64/md-emit.h: Likewise. * src/vm/jit/x86_64/codegen.c: Likewise. * src/vm/jit/x86_64/codegen.h: Likewise. 2006-04-27 11:05 twisti * src/native/vm/VMSystemProperties.c (preInit): Append "/jre" to java.home property, as all JDKs and JREs do that. Fixed a problem with jonas testsuite. General cleanup. 2006-04-27 10:32 twisti * src/vm/jit/powerpc/darwin/md-asm.h (jit_asm_compile): Renamed from jit_compile. * src/vm/jit/powerpc/asmpart.S: Likewise. 2006-04-26 15:44 edwin * src/vm/jit/stacktrace.c (stacktrace_getClassContext): Reverted the hack that removes the first entry if this function is called by java.lang.SecurityManager. This (undocumented) hack probably was done to solve a problem that no longer exists. 2006-04-26 14:09 twisti * src/vm/jit/i386/Makefile.am (libarch_la_SOURCES): Removed emitfuncs.c, emitfuncs.h and added emit.c, md-emit.h. * src/vm/jit/i386/emit.c (emit_load_s1): New method. (emit_load_s2): Likewise. (emit_load_s3): Likewise. (emit_store): Likewise. (emit_copy): Likewise. * src/vm/jit/i386/codegen.c (codegen): Use emit_load/store functions instead of macros. * src/vm/jit/i386/codegen.h (M_LNGMOVE): Added. (M_LNGMEMMOVE): Removed. (var_to_reg_int): Removed. (var_to_reg_lng): Likewise. (var_to_reg_flt): Likewise. (store_reg_to_var_int): Likewise. (store_reg_to_var_lng): Likewise. (store_reg_to_var_flt): Likewise. (M_FLD): Added. (M_DLD): Likewise. (M_FLD32): Likewise. (M_DLD32): Likewise. (M_FST): Likewise. (M_DST): Likewise. 2006-04-26 11:02 twisti * src/vm/jit/i386/md-emit.h: Moved from src/vm/jit/i386/emitfuncs.h. * src/vm/jit/i386/emit.c: Moved from src/vm/jit/i386/emitfuncs.c. 2006-04-26 09:02 twisti * configure.ac (AC_CONFIG_FILES): Added src/scripts/rmic. * src/scripts/Makefile.am (bin_SCRIPTS): Added rmic. * src/scripts/java.in: Use ${1+"$@"} instead of $@. * src/scripts/rmiregistry.in: Likewise. * src/scripts/rmic.in: Updated to new rmic location. 2006-04-26 08:57 twisti * m4/ac_prog_javac.m4: Default to ecj. * src/lib/Makefile.am: If JAVAC is ecj, use the -1.5 flag. This produces much faster code regarding class$ (e.g. jonas startup time). 2006-04-25 18:02 edwin * src/vm/jit/disass-common.c (disass_printf): Avoid compiler warning. * src/vm/jit/profile/profile.c (profile_printstats): Avoid compiler warnings. 2006-04-25 17:57 edwin * src/vm/jit/i386/disass.c (disassinstr): Avoid compiler warning. 2006-04-25 17:53 edwin * src/vm/jit/stack.c (stack_show_icmd): Removed unused variable `um`. 2006-04-25 17:48 edwin * src/vm/loader.c (load_method): Simplify initialization of methodinfo by clearing it explicitely in load_class_from_classbuffer, instead of zeroing individual fields here. (load_class_from_classbuffer): MZERO methodinfo array. (load_newly_created_array): Initialize `params` to NULL for the clone method. 2006-04-25 17:45 edwin * src/mm/memory.h (MZERO): Added macro MZERO for convenient memory cleaning. 2006-04-25 17:42 edwin * src/native/vm/VMSystemProperties.c (Java_gnu_classpath_VMSystemProperties_preInit): Use strcpy instead of strcat, since there is nothing to concat to and we may want to lift the assertion that MSET clears memory. 2006-04-25 15:46 edwin * src/vm/jit/i386/md.c (md_get_method_patch_address): Avoid compiler warning. 2006-04-25 15:31 edwin * src/cacao/cacao.c (main): Avoid warning about unused label. Cleaned up whitespace. 2006-04-25 15:26 edwin * src/vm/exceptions.c (exceptions_throw_verifyerror_for_stack): Avoid compiler warning. 2006-04-25 12:35 edwin * src/vm/jit/verify/typecheck.c (typecheckverbose): Renamed to opt_typecheckverbose. * src/vm/jit/verify/typeinfo.h: Likewise. * src/vm/vm.c (OPT_VERBOSETC): Only define if both ENABLE_VERIFIER and TYPECHECK_VERBOSE are defined. (typecheckverbose): Renamed to opt_typecheckverbose. 2006-04-25 12:25 edwin * src/vm/options.h, src/vm/options.c (getloadingtime): Renamed to opt_getloadingtime. Only defined for ENABLE_STATISTICS. (getcompilingtime): Renamed to opt_getcompilingtime. Only defined for ENABLE_STATISTICS. * src/vm/loader.c (getloadingtime, getcompilingtime): Renamed. * src/vm/jit/jit.c: Likewise. * src/vm/linker.c: Likewise. * src/native/vm/VMClassLoader.c: Likewise. * src/vm/vm.c (OPT_TIME): Only defined for ENABLE_STATISTICS. * configure.ac (--enable-statistics): Now statistics are disabled by default. 2006-04-25 12:00 edwin * src/vm/options.h (opt_verify): Only declare for ENABLE_VERIFIER. (opt_liberalutf): Removed. * src/vm/options.c (opt_verify): Only declare for ENABLE_VERIFIER. (opt_liberalutf): Removed. * src/vm/jit/inline/inline.c (test_inlining): Only verify if ENABLE_VERIFIER. * src/vm/jit/parse.c (parse): Only check opt_verify if ENABLE_VERIFIER. * src/vm/global.h (ENABLE_VERIFIER): Removed. This is now defined in config.h. * src/vm/vm.c (OPT_NOVERIFY): Only define this option if ENABLE_VERIFIER. (OPT_LIBERALUTF): Removed. * configure.ac (--disable-verifier): Added configure option. * src/vm/jit/stacktrace.c (stacktrace_getStack): Gather a wider range for the cycle count statistics. 2006-04-25 10:36 edwin * src/vm/cycles-stats.h (CYCLES_STATS_COUNT_OVER): Added. 2006-04-24 18:28 edwin * src/vm/cycles-stats.c: Cleaned up whitespace. 2006-04-24 18:22 edwin * src/vm/cycles-stats.c (cycles_stats_print_percentile): Also perform measurement overhead compensation for cumulated cycle counts. 2006-04-24 17:16 edwin * src/vm/global.h (ACC_CLASS_REFLECT_MASK): Added. (ACC_CLASS_HAS_POINTERS): Likewise. (vim boilerplate): Added. * src/vm/loader.c (load_field): Set ACC_CLASS_HAS_POINTERS flag. * src/vm/linker.c (link_class_intern): OR ACC_CLASS_HAS_POINTERS flag. * src/vm/builtin.c (builtin_new): Use ACC_CLASS_HAS_POINTERS to determine which kind of memory to allocate. * src/native/vm/VMClass.c (Java_java_lang_VMClass_getModifiers): Mask reported access flags with ACC_CLASS_REFLECT_MASK. 2006-04-24 16:24 twisti * src/vm/jit/x86_64/emit.c (x86_64_emit_ifcc): Changed signature of codegen_addreference. (x86_64_emit_if_lcc): Likewise. (x86_64_emit_if_icmpcc): Likewise. (x86_64_emit_if_lcmpcc): Likewise. 2006-04-24 16:10 twisti * src/vm/jit/i386/codegen.c (codegen): Don't initialize mcode variables. New dseg_addlinenumber signature fix. (createnativestub): Don't initialize mcode variables. 2006-04-24 16:06 twisti * src/vm/jit/codegen-common.c (codegen_increase): Changed signature. (codegen_addreference): Likewise. (codegen_add_exception_ref): Likewise. (codegen_add_arithmeticexception_ref): Likewise. (codegen_add_arrayindexoutofboundsexception_ref): Likewise. (codegen_add_arraystoreexception_ref): Likewise. (codegen_add_classcastexception_ref): Likewise. (codegen_add_nullpointerexception_ref): Likewise. (codegen_add_fillinstacktrace_ref): Likewise. (codegen_addpatchref): Likewise. (codegen_finish): Likewise. * src/vm/jit/codegen-common.h: Likewise. * src/vm/jit/dseg.c (dseg_increase): Made static. (dseg_adds4): Use dseg_increase. (dseg_adds8): Likewise. (dseg_addfloat): Likewise. (dseg_adddouble): Likewise. (dseg_adds4_increase): Removed. (dseg_adds8_increase): Likewise. (dseg_addfloat_increase): Likewise. (dseg_adddouble_increase): Likewise. (dseg_addlinenumber): Changed signature. (dseg_addlinenumber_inline_start): Likewise. (dseg_adddata): Likewise. * src/vm/jit/dseg.h: Likewise. * src/vm/jit/alpha/emit.c (vm/jit/alpha/emit.h): Removed. (vm/jit/emit.h): Added. (emit_lconst): New method. * src/vm/jit/alpha/Makefile.am (libarch_la_SOURCES): Added emit.c * src/vm/jit/alpha/codegen.c (vm/jit/emit.h): Added. (codegen): Use cd->mcodeptr instead of mcodeptr, and emit_load/store functions instead of macros. Saves over 50kB object code size. Use new signatures of codegen-common and dseg functions. * src/vm/jit/alpha/codegen.h (var_to_reg_int): Removed. (var_to_reg_flt): Likewise. (store_reg_to_var_int): Likewise. (store_reg_to_var_flt): Likewise. * src/vm/jit/i386/codegen.c: Use new signatures of codegen-common and dseg functions. * src/vm/jit/i386/codegen.h: Likewise. * src/vm/jit/intrp/codegen.c: Likewise. * src/vm/jit/intrp/codegen.h: Likewise. * src/vm/jit/mips/codegen.c: Likewise. * src/vm/jit/mips/codegen.h: Likewise. * src/vm/jit/powerpc/codegen.c: Likewise. * src/vm/jit/powerpc/codegen.h: Likewise. * src/vm/jit/x86_64/codegen.c: Likewise. * src/vm/jit/x86_64/codegen.h: Likewise. 2006-04-24 15:43 edwin * src/vm/jit/stacktrace.c (stacktrace_create): Do not free dump memory here, this is now done in the parent functions. Also removed the copy to gc memory. (stacktrace_fillInStackTrace): Copy stacktrace to gc memory. Free dump memory. (stacktrace_getClassContext): Free dump memory. (stacktrace_getCurrentClass): Likewise. (stacktrace_getStack): Likewise. (stacktrace_dump_trace): Likewise. 2006-04-24 11:40 edwin * src/vm/jit/stacktrace.c (stacktrace_fillInStackTrace) (stacktrace_getClassContext, stacktrace_getCurrentClass) (stacktrace_getStack): Added cycle count statistics. (stacktrace_print_cycles_stats): Added. * src/vm/jit/stacktrace.h (stacktrace_print_cycles_stats): Added. * src/vm/vm.c (vm_exit_handler): Call stacktrace_print_cycles_stats. 2006-04-24 11:36 edwin * src/vm/cycles-stats.h (CYCLES_STATS_END_WITH_OVERHEAD): Fix arguments of empty macro definition. 2006-04-24 11:27 edwin * src/vm/cycles-stats.h (CYCLES_STATS_DECLARE_AND_START) (CYCLES_STATS_DECLARE_AND_START_WITH_OVERHEAD) (CYCLES_STATS_END, CYCLES_STATS_END_WITH_OVERHEAD): Added convenience macros. * src/vm/cycles-stats.c (cycles_stats_print): Fixed divide-by-zero. Minor output changes. 2006-04-24 10:08 twisti * src/vm/jit/mips/md.c (md_get_method_patch_address): Renamed from md_assembler_get_patch_address. * src/vm/jit/mips/asmpart.S (asm_call_jit_compiler): Renamed md_assembler_get_patch_address to md_get_method_patch_address. 2006-04-24 10:00 twisti * src/vm/jit/powerpc/md.c (md_get_method_patch_address): New method. * src/vm/jit/powerpc/asmpart.S (asm_call_jit_compiler): Use new jit_asm_compile method. This fixes the ecj bugs seens with some mauve tests and eclipse. 2006-04-24 09:58 twisti * src/vm/jit/powerpc/codegen.c (codegen): Replaced those ugly M_TINTMOVE macros. Use M_LLD macros where possible. * src/vm/jit/powerpc/codegen.h (M_LNGMOVE): Check for equal registers. (M_TINTMOVE): Removed. 2006-04-24 00:19 edwin * src/vm/jit/i386/asmpart.S (asm_get_cycle_count): Omit the stackframe. This saves a couple of cycles of measurement overhead. 2006-04-23 23:03 twisti * src/vm/jit/alpha/md.c (md_get_method_patch_address): Renamed from md_assembler_get_patch_address. * src/vm/jit/alpha/asmpart.S (asm_call_jit_compiler): Renamed md_assembler_get_patch_address to md_get_method_patch_address. 2006-04-23 19:18 edwin * src/vm/cycles-stats.c (cycles_stats_print_percentile): Better extrapolation. * src/vm/cycles-stats.h (CYCLES_STATS_DECLARE, CYCLES_STATS_COUNT) (CYCLES_STATS_PRINT, CYCLES_STATS_PRINT_OVERHEAD): Added total cycles counter. 2006-04-23 19:16 edwin * src/vm/builtin.c (builtin_new): Renamed rt-timing identifier. (builtin_newarray): Added rt-timing. * src/vm/rt-timing.h: Added rt-timing for builtin_newarray. * src/vm/rt-timing.c: Likewise. 2006-04-23 16:11 edwin * src/vm/builtin.c (builtin_print_cycles_stats): Use CYCLES_STATS_PRINT_OVERHEAD. * src/vm/cycles-stats.h (CYCLES_STATS_PRINT_OVERHEAD): Added. * src/vm/cycles-stats.c (cycles_stats_print_percentile): Added. (cycles_stats_print): Added `overhead` argument and automatic measurement overhead compensation. 2006-04-23 15:39 edwin * src/vm/builtin.c (builtin_new): Added rt-timing. (builtin_print_cycles_stats): Removed unused variable. (builtin_monitorenter): Removed rt-timing. (builtin_monitorexit): Likewise. * src/vm/rt-timing.c: rt-timing for buitin_new. * src/vm/rt-timing.h: Likewise. 2006-04-23 15:31 edwin * src/vm/cycles-stats.c (cycles_stats_get_cpu_MHz): Better error handling. 2006-04-23 15:24 edwin * src/vm/builtin.c (builtin_new): Gather cycle count statistics. (CYCLES_STATS_DECLARE): Moved declarations to beginning of file. * src/vm/cycles-stats.c (cycles_stats_get_cpu_MHz): Added function for automatic CPU frequency detection via /proc/cpuinfo. (cycles_stats_print): Calculate estimated CPU times. 2006-04-22 09:35 edwin * src/vm/cycles-stats.c (cycles_stats_print): Made count, floor, and ceiling of type u8. This should avoid overflow problems. * src/vm/cycles-stats.h (cycles_stats_print): Made count an u8. 2006-04-21 21:36 edwin * src/vm/cycles-stats.c: New file. Better cycle count statistics. * src/vm/cycles-stats.h (CYCLES_STATS_PRINT): This is now a wrapper for cycles_stats_print. * src/vm/Makefile.am (cycles-stats.c): Added to sources. 2006-04-21 14:32 edwin * src/vm/jit/stacktrace.c (stacktrace_inline_fillStackTrace): Assert that there is an exception before dereferencing it. (stacktrace_create): Document that this function may return NULL. (stacktrace_getClassContext): Check return value of stacktrace_create. (stacktrace_getCurrentClass): Likewise. (stacktrace_getStack): Likewise. Document that this function may return NULL. 2006-04-21 13:08 edwin * src/vm/jit/stacktrace.c (stacktrace_getClassContext): Document that return value may be NULL (in case of an exception). * src/native/vm/VMStackWalker.c (Java_gnu_classpath_VMStackWalker_getCallingClass): Check return value of stacktrace_getClassContext. (Java_gnu_classpath_VMStackWalker_getCallingClassLoader): Likewise. * src/native/vm/Field.c (cacao_get_field_address): Check return value of stacktrace_getClassContext. * src/native/vm/Method.c (Java_java_lang_reflect_Method_invokeNative): Check return value of stacktrace_getClassContext. 2006-04-21 11:07 twisti * src/vm/jit/i386/md.c (md_get_method_patch_address): New method. (md_icacheflush): Added. (md_dcacheflush): Likewise. 2006-04-21 10:54 twisti * src/vm/jit/jit.c (jit_asm_compile): New method. * src/vm/jit/jit.h (jit_asm_compile): Added. (md_get_method_patch_address): Likewise. * src/vm/jit/x86_64/asmpart.S (asm_vm_call_method): Store asm_call_jit_compiler on stack as for the other architectures. (asm_call_jit_compiler): Use new jit_asm_compile. * src/vm/jit/x86_64/codegen.c (codegen): Use REG_ITMP3 for calling methods. This is required for asm_vm_call_method to work. * src/vm/jit/x86_64/md.c (md_get_method_patch_address): New method. (md_icacheflush): Added. (md_dcacheflush): Added. * src/vm/jit/x86_64/md-asm.h (mptr): Defined. 2006-04-21 10:45 twisti * src/vm/jit/stacktrace.c (stacktrace_add_method_intern): Reformatted comments. 2006-04-21 00:00 edwin * src/vm/linker.c (link_class_intern): Impose loading constraints on the more general types of the overwritten method, instead of on the over- writing method. Don't impose loading constraints when "overwriting" the instance initializaton method , as it is not called virtually. 2006-04-20 22:28 edwin * src/vm/classcache.c (classcache_add_constraint): Also constrain the return type of the given method. 2006-04-20 21:47 edwin * src/vm/linker.c (linker_addinterface): Add loading constraints when an interface method is overwritten. (link_class_intern): Check new return value of linker_addinterface. 2006-04-20 20:40 edwin * src/vm/linker.c (link_class_intern): Only record loading constraints for ENABLE_VERIFIER. 2006-04-20 20:38 edwin * src/vm/classcache.c (classcache_add_constraints_for_params): Added. (classcache_add_constraint): Only define for ENABLE_VERIFIER. * src/vm/classcache.h (classcache_add_constraints_for_params): Added. (classcache_add_constraint): Only define for ENABLE_VERIFIER. * src/vm/linker.c (link_class_intern): When overwriting a method, record loading constraints for the parameter types, as required by the spec. 2006-04-20 19:18 edwin * src/mm/memory.c (Changes): Added my name. (vim boilerplate): Added. 2006-04-20 18:59 edwin * src/mm/memory.c: Added comments and some cleanup. 2006-04-20 18:04 edwin * configure.ac (ENABLE_LOOP): Changed default to "no". * src/vm/options.h (opt_loops): Only define for ENABLE_LOOP. * src/vm/options.c (opt_loops): Only define for ENABLE_LOOP. * src/vm/vm.c (-oloop, -i): Only recognize these options if enabled with ENABLE_LOOP/ENABLE_INLINING. * src/vm/jit/allocator/lsra.c (opt_loops): Only use for ENABLE_LOOP. 2006-04-20 10:55 twisti * src/vm/jit/x86_64/codegen.h (M_ALD32): Added. 2006-04-20 10:42 twisti * src/vm/jit/x86_64/md-abi.h (REG_METHODPTR): Added. 2006-04-20 08:45 twisti * src/lib/vm/reference/java/lang/VMClassLoader.java: Updated to GNU Classpath version. 2006-04-19 01:05 edwin * src/vm/builtin.c (builtin_print_cycles_stats): Added. (builtin_monitorenter): Gather cycle count statistics. (builtin_monitorexit): Likewise. * src/vm/builtin.h (builtin_print_cycles_stats): Added. * src/vm/jit/i386/asmpart.S (asm_get_cycle_count): Added. * src/vm/jit/asmpart.h (asm_get_cycle_count): Added. * src/vm/vm.c (vm_exit_handler): Call builtin_print_cycles_stats. * src/vm/cycles-stats.h: New file. * src/vm/Makefile.am (CYCLES_STATS_SOURCE): Added. * src/cacaoh/headers.c (asm_get_cycle_count): Dummy implementation added. * configure.ac (--enable-cycles-stats): Added configure option. 2006-04-18 21:16 twisti * src/vm/jit/x86_64/emitfuncs.c: Moved to emit.c. * src/vm/jit/x86_64/emitfuncs.h: Moved to md-emit.h * src/vm/jit/x86_64/codegen.c (vm/jit/x86_64/emitfuncs.h): Removed. (vm/jit/x86_64/md-emit.h): Added. * src/vm/jit/x86_64/Makefile.am (libarch_la_SOURCES): Added emit.c and md-emit.h, removed emitfuncs.c and emitfuncs.h. 2006-04-18 20:36 twisti * src/vm/jit/jit.h (IS_ADR_TYPE): Changed to use ==. (IS_INT_TYPE): Added. (IS_LNG_TYPE): Likewise. 2006-04-18 20:34 twisti * src/vm/jit/x86_64/codegen.c (vm/jit/emit.h): Added. (codegen): Use emit_load/store functions instead of macors. Saves over 25kB object code size. * src/vm/jit/x86_64/codegen.h (ALIGNCODENOP): Added. (var_to_reg_int): Removed. (var_to_reg_flt): Likewise. (store_reg_to_var_int): Likewise. (store_reg_to_var_flt): Likewise. (M_INEG, M_LNEG, M_INEG_MEMBASE, M_LNEG_MEMBASE): Added. (M_CMOVEQ_MEMBASE, M_CMOVNE_MEMBASE, M_CMOVLT_MEMBASE) (M_CMOVLE_MEMBASE, M_CMOVGE_MEMBASE, M_CMOVGT_MEMBASE): Likewise. * src/vm/jit/x86_64/emitfuncs.c (emit_load_s1): Added. (emit_load_s2): Likewise. (emit_load_s3): Likewise. (emit_store): Likewise. (emit_copy): Likewise. (emit_cmovxx): Likewise. * src/vm/jit/x86_64/emitfuncs.h (emit_cmovxx): Added. 2006-04-18 20:20 twisti * src/vm/jit/x86_64/md-abi.h (REG_IFTMP): Defined. 2006-04-18 20:17 edwin * src/vm/jit/stack.c (stack_show_icmd): Updated to use the correct macros for (un)resolved methods. Minor output format changes. * src/vm/field.c (field_print): Print the class name. 2006-04-18 20:10 twisti * src/vm/jit/alpha/Makefile.am (DISASS_SOURCES): Added. * src/vm/jit/mips/Makefile.am: Likewise. 2006-04-18 15:55 twisti * configure.ac (intl): Check on NetBSD too. 2006-04-18 15:40 twisti * configure.ac: Fixed typos. 2006-04-18 13:36 twisti * src/vm/jit/mips/codegen.h (M_FLTMOVE): Removed. (M_TFLTMOVE): Likewise. (M_TFLD): Likewise. (M_TFST): Likewise. (M_CCFLTMOVE): Likewise. (M_CCFLD): Likewise. (M_CCFST): Likewise. * src/vm/jit/mips/codegen.c (codegen): Use float and double explicitely. * src/vm/jit/mips/emit.c: Likewise. 2006-04-17 15:49 edwin * src/vm/jit/intrp/codegen.c (intrp_codegen): Cast mcodeptr to u1*. This should fix intrp on archs with u4* mcodeptr. 2006-04-17 15:20 edwin * src/vm/builtin.c (builtin_monitorenter, builtin_monitorexit): Added rt-timing. * src/vm/rt-timing.c, src/vm/rt-timing.h: rt-timing for locks. 2006-04-17 11:47 twisti * src/vm/jit/codegen-common.h (codegendata): Define lastmcodeptr on all architectures. I think it does not matter. 2006-04-14 23:50 edwin * src/vm/jit/codegen-common.h: Typo fix. 2006-04-14 23:48 edwin * src/vm/jit/parse.c (parse): Removed unused variable `mi`. 2006-04-14 23:46 edwin * src/vm/rt-timing.c: include stdlib.h to fix warning. 2006-04-14 12:40 twisti * src/vm/jit/mips/emit.c: New file. * src/vm/jit/mips/Makefile.am (libarch_la_SOURCES): Added emit.c * src/vm/jit/mips/codegen.c (vm/jit/emit.h): Added. (codegen): Use cd->mcodeptr instead of mcodeptr, and emit_load/store functions instead of macors. Saves over 50kB object code size. * src/vm/jit/mips/codegen.h (var_to_reg_int): Removed. (var_to_reg_flt): Likewise. (store_reg_to_var_int): Likewise. (store_reg_to_var_flt): Likewise. 2006-04-14 11:57 twisti * src/vm/jit/codegen-common.c (codegen_setup): Fixed compiler warnings, set lastmcodeptr. (codegen_increase): Fixed compiler warnings. (codegen_finish): Likewise. (codegen_createnativestub): Likewise. 2006-04-14 11:28 twisti * src/vm/jit/alpha/emit.h: Removed. There's now a common one in src/vm/jit/. 2006-04-14 11:20 twisti * src/vm/jit/emit.h: New file. * src/vm/jit/Makefile.am (noinst_HEADERS): Added emit.h. * src/vm/jit/powerpc/emit.c: New file. * src/vm/jit/powerpc/Makefile.am (libarch_la_SOURCES): Added emit.c. * src/vm/jit/powerpc/codegen.c (vm/jit/emit.h): Added. (codegen): Use cd->mcodeptr instead of mcodeptr, and emit_load/store functions instead of macors. Saves over 100kB object code size. * src/vm/jit/powerpc/codegen.h (var_to_reg_int): Removed. (var_to_reg_lng): Likewise. (var_to_reg_lng_low): Likewise. (var_to_reg_lng_high): Likewise. (var_to_reg_flt): Likewise. (var_to_reg_dbl): Likewise. (store_reg_to_var_int): Likewise. (store_reg_to_var_lng): Likewise. (store_reg_to_var_adr): Likewise. (store_reg_to_var_flt): Likewise. (store_reg_to_var_dbl): Likewise. (M_LLD_INTERN): Added. (M_LLD): Likewise. (M_LST_INTERN): Likewise. (M_LST): Likewise. 2006-04-13 20:45 edwin * src/vm/loader.c (load_class_from_classloader): Detailed rt-timing. (load_class_bootstrap): Likewise. * src/vm/rt-timing.c: Added rt-timing for loading from classloaders. * src/vm/rt-timing.h: Likewise. 2006-04-13 18:21 edwin * src/vm/loader.c (load_class_from_classbuffer): Separate timing for descriptor_pool_new. * src/vm/rt-timing.c: Likewise. * src/vm/rt-timing.h: Likewise. 2006-04-13 18:00 edwin * src/vm/loader.c (load_class_from_classbuffer): Added real-time loading time measurements. * src/vm/rt-timing.c: Likewise. * src/vm/rt-timing.h: Likewise. 2006-04-13 17:23 edwin * src/vm/rt-timing.c: Added timing of linker stages. * src/vm/rt-timing.h: Likewise. * src/vm/linker.c: Likewise. 2006-04-13 16:58 edwin * src/vm/rt-timing.h (RT_TIMING_TIME_DIFF): Added. * src/vm/jit/jit.c (jit_compile_intern): Use RT_TIMING_TIME_DIFF. * src/vm/linker.c (link_class): Use rt-timing for measuring link time. * src/cacaoh/Makefile.am (cacaoh_LDFLAGS): Link with librt for ENABLE_RT_TIMING. 2006-04-13 16:48 edwin * src/vm/rt-timing.c (rt_timing_stat): Added field `totalindex`. (rt_timing_stat_defs): Likewise. (rt_timing_diff): Renamed to rt_timing_time_diff. (rt_timing_print_time_stats): Use `totalindex` to calculate percentage. * src/vm/rt-timing.h (RT_TIMING_LINK_TOTAL): Added. (rt_timing_diff): Renamed to rt_timing_time_diff. 2006-04-13 14:09 twisti * src/vm/jit/alpha/emit.c: New file. * src/vm/jit/alpha/emit.h: Likewise. 2006-04-13 13:10 twisti * src/vm/jit/codegen-common.h (codegendata): Changed mcodeend to u1*. Define mcodeptr to u4* for non-i386/x86_64 architectures. 2006-04-13 09:32 twisti * src/vm/jit/x86_64/codegen.c (codegen): Use argument registers directly in exception stubs, instead of temporary ones. This reduces code-size about 150kB for -all. 2006-04-13 09:19 twisti * src/vm/jit/x86_64/emitfuncs.c (x86_64_emit_ishift): Bugfixes found by javver. (x86_64_emit_lshift): Likewise. 2006-04-12 22:20 edwin * src/vm/rt-timing.c: Added file. * src/vm/rt-timing.h: Likewise. * src/vm/jit/jit.c: Moved real-time timing stuff to rt-timing.[ch] * src/vm/jit/jit.h: Likewise. * src/vm/vm.c (vm_exit_handler): Call rt_timing_print_time_stats. * src/vm/Makefile.am (rt-timing.c, rt-timing.h): Added. 2006-04-12 22:16 edwin * src/vm/jit/allocator/simplereg.c (allocate_scratch_registers): Fixed compiler warning. 2006-04-12 20:06 edwin * src/vm/jit/parse.c (parse): New unresolved reference scheme: Data structures for unresolved fields/methods are only created if really needed. Otherwise a lazy resolving is done on-the-fly. This reduced compile time by over 10% for SpecJVM98 and eclipse. * src/vm/resolve.c (resolve_subtype_check): Added. (resolve_lazy_subtype_checks): Likewise. (resolve_and_check_subtype_set): Use resolve_subtype_check. Return resolve_result_t instead of bool. Removed `checked` argument. (resolve_class): Use resolve_subtype_check. (resolve_field_verifier_checks): Added. (resolve_field_lazy): Added. (resolve_field): Use resolve_field_verifier_checks. (resolve_method_invokespecial_lookup): Added. (resolve_method_verifier_checks): Added. (resolve_method_lazy): Added. (resolve_method): Use resolve_method_invokespecial_lookup and resolve_method_verifier_checks. (constrain_unresolved_method): Adapted to new unresolved reference scheme. (constrain_unresolved_field): Likewise. (unresolved_field_debug_dump): Likewise. (unresolved_method_debug_dump): Likewise. * src/vm/jit/patcher.h (intrp_patcher_get_putstatic_clinit): Added. * src/vm/jit/intrp/intrp.h (vm_Cell2afi): Added. (vm_afi2Cell): Likewise. (printarg_afi): Added. (vim boilerplate): Added. (Changes): Added my name. * src/vm/jit/intrp/patcher.c (intrp_patcher_get_putstatic_clinit): Added. * src/vm/jit/intrp/disass.c (printarg_afi): Added. (Changes): Added my name. (vim boilerplate): Added. * src/vm/jit/intrp/java.vmg (GETSTATIC_CELL, GETSTATIC_INT, GETSTATIC_FLOAT) (GETSTATIC_LONG, PUTSTATIC_CELL, PUTSTATIC_INT, PUTSTATIC_FLOAT) (PUTSTATIC_LONG, GETFIELD_CELL, GETFIELD_INT, GETFIELD_FLOAT) (GETFIELD_LONG, PUTFIELD_CELL, PUTFIELD_INT, PUTFIELD_FLOAT) (PUTFIELD_LONG): Now take a fieldinfo instead of an unresolved_field. (INVOKEVIRTUAL, INVOKESTATIC, INVOKESPECIAL, INVOKEINTERFACE): Now take a methodinfo instead of an unresolved_method. (PATCHER_GETSTATIC_CLINIT_INT, PATCHER_GETSTATIC_CLINIT_FLOAT) (PATCHER_GETSTATIC_CLINIT_LONG, PATCHER_GETSTATIC_CLINIT_CELL): Added. (PATCHER_PUTSTATIC_CLINIT_INT, PATCHER_PUTSTATIC_CLINIT_FLOAT) (PATCHER_PUTSTATIC_CLINIT_LONG, PATCHER_PUTSTATIC_CLINIT_CELL): Added. * src/vm/jit/allocator/simplereg.c (allocate_scratch_registers): Use INSTRUCTION_GET_METHODDESC to get method descriptor. * src/vm/jit/stack.c (stack_analyse): Ported to new unresolved reference scheme. (stack_show_icmd): Likewise. * src/vm/jit/verify/typecheck.c (verify_invocation): Ported to new unresolved reference scheme. (verify_basic_block): Likewise. * src/vm/jit/powerpc/codegen.c (codegen): Ported to new unresolved reference scheme. * src/vm/jit/alpha/codegen.c (codegen): Ported to new unresolved reference scheme. * src/vm/jit/mips/codegen.c (codegen): Ported to new unresolved reference scheme. * src/vm/jit/i386/codegen.c (codegen): Ported to new unresolved reference scheme. * src/vm/jit/x86_64/codegen.c (codegen): Ported to new unresolved reference scheme. * src/vm/jit/intrp/codegen.c (codegen): Ported to new unresolved reference scheme. (Changes): Added my name. * src/vm/jit/intrp/codegen.h (vim boilerplate): Added. 2006-04-12 18:07 edwin * src/vm/resolve.h (resolve_result_t): Added. (resolve_method_lazy): Added prototype. (resolve_field_lazy): Added prototype. (resolve_and_check_subtype_set): Removed prototype. This function is becoming static. 2006-04-12 17:51 edwin * src/vm/class.c (class_showconstantpool): Use the new functions method_methodref_print and field_fieldref_print. * src/vm/loader.c (load_constantpool): Use p.index in constant_FMIref. (load_class_from_classbuffer): Likewise. * src/vm/jit/stack.c (stack_show_icmd): Use p.index in constant_FMIref. * src/vm/jit/verify/typecheck.c (verify_invocation): Use p.index in constant_FMIref. * src/vm/resolve.c (resolve_field, resolve_method, constrain_unresolved_field) (unresolved_field_debug_dump, unresolved_method_debug_dump): Use p.index in constant_FMIref. * src/vm/method.c, src/vm/method.h (method_methodref_print): Added. (method_methodref_println): Likewise. * src/vm/field.c, src/vm/field.h (field_fieldref_print): Added. (field_fieldref_println): Likewise. * src/vm/references.h (constant_FMIref): Changed field `classref` into a union that is used for caching of already resolved fields/methods. (IS_FMIREF_RESOLVED): Added. (METHODREF_CLASSNAME): Added. (FIELDREF_CLASSNAME): Added. * src/vm/jit/jit.h (INSTRUCTION_IS_RESOLVED): Added. This is a preparation for the lazy resolving rewrite. (INSTRUCTION_IS_UNRESOLVED): Likewise. (INSTRUCTION_GET_FIELDREF): Likewise. (INSTRUCTION_GET_METHODREF): Likewise. (INSTRUCTION_GET_FIELDDESC): Likewise. (INSTRUCTION_GET_METHODDESC): Likewise. (INSTRUCTION_UNRESOLVED_METHOD): Likewise. (INSTRUCTION_UNRESOLVED_FIELD): Likewise. (INSTRUCTION_RESOLVED_FMIREF): Likewise. (INSTRUCTION_RESOLVED_FIELDINFO): Likewise. (INSTRUCTION_RESOLVED_METHODINFO): Likewise. * src/vm/jit/intrp/disass.c (printarg_auf): Use METHODREF_CLASSNAME. 2006-04-12 11:51 twisti * src/vm/jit/alpha/codegen.c (codegen): Use directly argument registers in exception stubs, instead of temporary ones. This reduces code-size about 200kB for -all. 2006-04-12 09:49 twisti * src/vm/jit/powerpc/codegen.c (codegen): Fixed displacement overflow problem when restoring LR. We can't use r0 here. 2006-04-12 09:30 twisti * NEWS: Line-number fix added. 2006-04-12 09:20 edwin * src/vm/jit/parse.c (parse): Skip line number entries that span over zero bytecode instructions. 2006-04-12 08:52 edwin * src/vm/method.h (methodinfo): Forward declaration moved to refereneces.h. * src/vm/field.h (fieldinfo): Forward declaration moved to refereneces.h. * src/vm/references.h (methodinfo, fieldinfo): Added forward references. 2006-04-12 08:34 edwin * src/vm/class.c (class_showconstanti): Removed. (class_showconstantpool): Documented. (class_showmethods): Documented. (vim boilerplate): Added. (Changes): Finally added my name. 2006-04-11 13:13 twisti * src/vm/jit/x86_64/codegen.c (codegen): Changed signature to use jitdata. Renamed reg_of_var by codegen_reg_of_var. * src/vm/jit/x86_64/codegen.h (M_COPY): Likewise. 2006-04-11 10:54 twisti * tests/regression/clinitexception.2output: Updated. * tests/regression/native/checkjni.output: Likewise. * tests/regression/extest.2output: Likewise. 2006-04-11 10:20 twisti * src/vm/builtin.c (builtin_throw_exception): Changed return type and return NULL. This is less error-prone in asm_vm_call_method. * src/vm/builtin.h: Likewise. * src/vm/jit/alpha/asmpart.S (asm_vm_call_method_exception_handler): Don't set v0 to NULL. This is now done in builtin_throw_exception. * src/vm/jit/i386/asmpart.S: Likewise. * src/vm/jit/mips/asmpart.S: Likewise. * src/vm/jit/powerpc/asmpart.S: Likewise. * src/vm/jit/x86_64/asmpart.S: Likewise. 2006-04-11 10:04 twisti * src/vm/jit/ifconv/ifconv.c (ifconv_static): Keep compiler happy. 2006-04-11 09:00 edwin * src/vm/jit/stack.c (stack_print_stack): Only use `regs` if ENABLE_DISASSEMBLER is defined. (stack_show_method): Likewise. * src/vm/jit/replace.c (replace_executionstate_println): Likewise. 2006-04-11 05:10 edwin * src/vm/jit/intrp/asmpart.c (intrp_asm_handle_exception): Do not trace exception when NDEBUG. * src/vm/jit/intrp/dynamic-super.c (disassemble_prim): Only enable for ENABLE_DISASSEMBLER. (dynamic_super_init): Only call disassemble_prim for ENABLE_DISASSEMBLER. * src/vm/jit/intrp/java.vmg: Disable builtin_displaymethodstop and builtin_trace_args for NDEBUG. 2006-04-06 12:54 twisti * src/vm/jit/mips: Added TAGS. * src/vm/jit/mips/irix: Likewise. * src/vm/jit/mips/irix/.cvsignore: Likewise. * src/vm/jit/mips/.cvsignore: Likewise. 2006-04-06 12:51 twisti * src/vm/jit/mips/codegen.c (codegen): Changed signature to use jitdata. Renamed reg_of_var by codegen_reg_of_var. (createcompilerstub): Replaced docacheflush by md_cacheflush. * src/vm/jit/mips/codegen.h (M_COPY): Likewise. * src/vm/jit/mips/md.c (sys/mman.h): Removed. (docacheflush): Likewise. 2006-04-06 00:33 edwin * configure.ac: Added host type `armv5l`. 2006-04-05 20:31 edwin * src/vm/jit/parse.h, src/vm/jit/parse.c (OP1LOAD): Split into OP1LOAD_ONEWORD and OP1LOAD_TWOWORD. Index is only checked if ENABLE_VERIFIER. (OP1STORE): Split into OP1STORE_ONEWORD and OP1STORE_TWOWORD. Index is only checked if ENABLE_VERIFIER. 2006-04-05 19:58 edwin * src/vm/jit/parse.c (parse): Cleaned up and reordered an if. 2006-04-05 19:44 edwin * src/vm/jit/parse.c (parse): Remove the `if (!iswide)` check for each opcode by making JAVA_WIDE continue directly to the label fetch_opcode. (This also removed a part of the iswide check at the end of the loop.) 2006-04-05 18:48 edwin * src/vm/jit/alpha/codegen.c (codegen, createnativestub): Remove opt_verbosecall code for NDEBUG builds. 2006-04-05 18:13 edwin * src/vm/jit/parse.c (parse): Only do verifier checks if ENABLE_VERIFIER. Cleaned up an obsolete printf. 2006-04-05 12:56 edwin * configure.ac (ENABLE_RT_TIMING): Added. * src/vm/jit/jit.c (ENABLE_RT_TIMING): Added code for real-time timing of compiler passes. * src/vm/jit/jit.h (jit_print_time_stats): Added. * src/vm/vm.c (vm_exit_handler): Call jit_print_time_stats. 2006-04-05 11:32 edwin * src/vm/jit/inline/inline.c (create_block): Use BASICBLOCK_INIT. 2006-04-05 10:02 twisti * src/vm/jit/alpha/asmpart.S (asm_vm_call_method): Removed !NDEBUG as builtin_throw_exception actually posts the thrown exception to the VM system. * src/vm/jit/powerpc/asmpart.S: Likewise. * src/vm/jit/mips/asmpart.S: Likewise. * src/vm/jit/x86_64/asmpart.S: Likewise. 2006-04-05 09:57 edwin * src/vm/jit/jit.h (instruction): Removed `method` field. (insinfo_inline): Added. (basicblock): Added `method` field. * src/vm/jit/dseg.c (dseg_addlinenumber_inline_start) (dseg_addlinenumber_inline_end): Use new insinfo_inline struct. * src/vm/jit/verify/typecheck.c (verify_basic_block): Removed unused variable `myclass`. * src/vm/jit/inline/inline.c (emit_inlining_prolog, emit_inlining_epilog): Use insinfo_inline struct. (inline_write_exception_handlers): Removed `method` field. * src/vm/jit/i386/codegen.c (codegen): Use insinfo_inline struct. * src/vm/jit/parse.h (several macros): Removed `method` field from instruction. * src/vm/jit/stack.c (stack_show_icmd): Adapted to new insinfo_inline struct. 2006-04-05 09:54 twisti Fixes GCC Bugzilla Bug #26990. * src/vm/vm.c (vm_exit): Don't check for exception of System.exit(). 2006-04-04 21:31 edwin * src/vm/builtin.c (builtin_throw_exception): No twisti, we don't turn off exceptions just because it is NDEBUG ;) * src/vm/jit/i386/asmpart.S (asm_vm_call_method_exception_handler): Likewise. 2006-04-04 18:14 edwin * src/vm/jit/i386/Makefile.am: Do not build disassebmler for --disable-disassembler * src/vm/jit/i386/codegen.c (codegen): disable verbosecall code for NDEBUG 2006-04-04 18:11 edwin * src/vm/jit/ifconv/ifconv.c (ifconv_static): #ifdef debug code. (check): Likewise. 2006-04-04 09:17 twisti * src/threads/native/threads.c (tablelock): Removed. (tables_lock, tables_unlock): Likewise. (criticalcompare): Removed tablelock initialization. * src/vm/hashtable.h (tables_lock, tables_unlock): Removed. * src/vm/global.h (VFTBLINTERFACETABLE): Likewise. (cast_lock, cast_unlock): Likewise. 2006-04-04 09:14 twisti * src/vm/exceptions.c (exceptions_new_nosuchmethoderror): Print classname with dots. (exceptions_handle_exception): Compiler warning fix. 2006-04-04 09:13 edwin * src/vm/jit/verify/typeinfo.c (CLASSINFO_IMPLEMENTS_INTERFACE): Removed the single use of the macro VFTBLINTERFACETABLE 2006-04-04 08:45 twisti * src/native/vm/VMClass.c: Reordered methods like in the VMClass.java. This eases the 1.5 changes addition. 2006-04-04 08:30 edwin * src/vm/jit/parse.c (parse): Removed obsolete variable `skipBasicBlockChange`. 2006-04-04 08:24 edwin * src/vm/jit/parse.c (parse): Removed obsolete variable `firstlocal`. (Was used for the old inliner.) 2006-04-03 15:36 twisti * src/vm/jit/powerpc/codegen.c (codegen): Changed signature to use jitdata. Renamed reg_of_var by codegen_reg_of_var. * src/vm/jit/powerpc/codegen.h (M_COPY): Likewise. 2006-04-03 13:59 twisti * src/vm/jit/powerpc/codegen.c (codegen): Renamed parentargs_base to stackframesize. (codegen_trace_args): Likewise. 2006-04-02 16:17 edwin * src/vm/jit/i386/codegen.c (codegen): Implemented inlining of synchronized methods (INLINE_START, INLINE_END do monitorenter/exit). 2006-04-02 16:16 edwin * src/vm/jit/inline/inline.c (inline_node): Added fields for inlining synchronized methods. (inline_context): Added `master` pointer to outermost caller. Added field `calls_others`. (Leaf method detection should really be done after inlining). (several methods): Implemented inlining of synchronized methods. (inline_new_stackslot): Added. (inline_write_exception_handlers): Added. 2006-04-01 21:03 edwin * src/vm/jit/intrp/codegen.c (createcalljavafunction): Create codeinfo with the right methodinfo pointer. 2006-04-01 21:00 edwin * src/vm/jit/codegen-common.h (intrp_createnativestub): Takes a `jitdata *` now. * src/vm/jit/intrp/codegen.c (intrp_codegen, intrp_createnativestub) (createcalljavafunction): Use jitdata. 2006-03-31 12:38 edwin * src/vm/jit/inline/inline.c, src/vm/jit/inline/inline_debug.c: Adapted to twisti's jitdata changes. 2006-03-31 07:50 twisti * src/vm/jit/powerpc/asmpart.S (asm_vm_call_method): Replaced $stub symbols with old symbols and define them for darwin in the corresponding md-asm.h. (asm_call_jit_compiler): Likewise. (asm_wrapper_patcher): Likewise. (asm_replacement_out): Likewise. * src/vm/jit/powerpc/darwin/md-asm.h (builtin_asm_get_exceptionptrptr) (builtin_throw_exception, exceptions_handle_exception, jit_compile) (replace_me, stacktrace_create_extern_stackframeinfo) (stacktrace_remove_stackframeinfo): Changed to $stub symbol. (stacktrace_extern_fillInStackTrace): Removed. * src/vm/jit/powerpc/linux/md-abi.c (regs): Added. 2006-03-31 07:14 twisti * src/vm/jit/powerpc/patcher.c (patcher_checkcast_instanceof_interface): Compile fix (typo). 2006-03-30 12:01 twisti * src/vm/jit/alpha/asmpart.S (vm/jit/abi.h): Changed to vm/jit/abi-asm.h. * src/vm/jit/mips/asmpart.S: Likewise. * src/vm/jit/i386/asmpart.S: Likewise. * src/vm/jit/x86_64/asmpart.S: Likewise. 2006-03-30 11:59 twisti * src/vm/jit/powerpc/codegen.c (codegen): Changed signature to use jitdata. Renamed reg_of_var by codegen_reg_of_var. * src/vm/jit/powerpc/codegen.h (M_COPY): Likewise. * src/vm/jit/powerpc/asmpart.S (vm/jit/abi.h): Changed to vm/jit/abi-asm.h. (asm_vm_call_method_exception_handler): Export it. (asm_vm_call_method): Don't put label addresses into the "data-segment", as it's located in the .text area and that may be read-only. Changed to use PIC code. Linux stuff is still missing. * src/vm/jit/powerpc/Makefile.am (DISASS_SOURCES): Added. * src/vm/jit/powerpc/disass.c (regs): Removed. 2006-03-30 10:26 twisti * src/vm/jit/ifconv/Makefile.am (AM_CPPFLAGS): Added OS_DIR. (LIBS): Added. 2006-03-30 10:23 twisti * src/vm/jit/Makefile.am (noinst_HEADERS): Added abi-asm.h. * src/vm/jit/abi.h (vm/jit/abi-asm.h): Added. (nregdescint, regs, nregdescfloat): Added. * src/vm/jit/abi-asm.h: New file. * src/vm/jit/reg.h (nregdescint, nregdescfloat): Removed. * src/vm/jit/reg.c (vm/jit/abi.h): Added. * src/vm/jit/replace.c: Likewise. * src/vm/jit/allocator/lsra.c: Likewise. * src/vm/jit/powerpc/darwin/md-asm.h (asm_vm_call_method_exception_handler): Added. * src/vm/jit/powerpc/darwin/md-abi.c (regs): Added. 2006-03-30 10:14 twisti * src/vm/jit/codegen-common.c: Use ENABLE_DISASSEMBLER. * src/vm/jit/codegen-common.h: Likewise. * src/vm/jit/stack.c: Likewise. Plus ENABLE_LSRA. * src/vm/jit/disass.h: Likewise. * src/vm/jit/jit.c: Likewise. Plus ENABLE_LOOP. 2006-03-30 10:10 twisti * src/vm/jit/powerpc/patcher.c (patcher_invokevirtual): Use disp variable for code patching. This will ease the overflow code comming. (patcher_invokeinterface): Likewise. (patcher_checkcast_instanceof_interface): Likewise. 2006-03-30 09:52 twisti * src/vm/exceptions.c (exceptions_handle_exception): Check for special * start/endpc-NULL case. This makes asmpart stuff much easier, like on * Darwin or IRIX. * src/vm/jit/asmpart.h (asm_vm_call_method_exception_handler): Added. * src/vm/jit/alpha/asmpart.S (asm_vm_call_method_exception_handler): Export it. (asm_vm_call_method): Don't put label addresses into the "data-segment", as it's located in the .text area and that may be read-only. * src/vm/jit/i386/asmpart.S: Likewise. * src/vm/jit/mips/asmpart.S: Likewise. * src/vm/jit/x86_64/asmpart.S: Likewise. 2006-03-30 09:20 twisti * src/vm/jit/mips/asmpart.S (asm_vm_call_method): Return NULL for exception. 2006-03-30 08:48 twisti * configure.ac (opcodes): Check for disassembler symbol as init_disassemble_info isn't defined everywhere, like NetBSD. 2006-03-29 23:11 twisti * src/vm/jit/powerpc/netbsd: New directory. * src/vm/jit/powerpc/netbsd/md-abi.h: New file. * src/vm/jit/powerpc/netbsd/md-os.c: Likewise. * src/vm/jit/powerpc/netbsd/md-asm.h: Likewise. * src/vm/jit/powerpc/netbsd/Makefile.am: Likewise. * src/vm/jit/powerpc/netbsd/md-abi.c: Likewise. * src/vm/jit/powerpc/netbsd/.cvsignore: Likewise. * configure.ac (host_os): Added NetBSD. (AC_CONFIG_FILES): Added src/vm/jit/powerpc/netbsd/Makefile. 2006-03-28 15:43 twisti * tests/regression/codepatching/test.java: Made functions static final. --This line, and those below, will be ignored-- M test.java 2006-03-28 15:41 twisti * src/vm/jit/i386/codegen.c (codegen): Changed signature to use jitdata. Renamed reg_of_var by codegen_reg_of_var. * src/vm/jit/i386/codegen.h (M_COPY): Likewise. 2006-03-28 15:14 twisti * configure.ac (AC_CONFIG_FILES): Added src/vm/jit/ifconv/Makefile. 2006-03-28 15:10 twisti * src/vm/jit/Makefile.am (DIST_SUBDIRS): Added ifconv. * src/vm/jit/ifconv: New directory. * src/vm/jit/ifconv/ifconv.c: New file. * src/vm/jit/ifconv/Makefile.am: Likewise. * src/vm/jit/ifconv/ifconv.h: Likewise. * src/vm/jit/ifconv/.cvsignore: Likewise. 2006-03-28 14:52 twisti * src/vm/method.h (vm/jit/code.h): Added. (codeinfo, rplpoint, executionstate, sourcestate): typedef's removed. * src/vm/jit/codegen-common.c (codegendata): Removed code. (codegen_setup, codegen_finish, createnativestub, codegen) (intrp_codegen): Changed signature to use jitdata. (reg_of_var): Renamed to codegen_reg_of_var. Changed signature. (codegen_free): Removed. * src/vm/jit/codegen-common.h: Likewise. * src/vm/jit/stack.c (lock_show_icmd): Renamed to lock_stack_show_icmd. (analyse_stack): Renamed to stack_analyse. Changed signature to use jitdata. (ICMD_IF_ICMPxx): Make ICMD_IFxx last instruction in basic block. This is required for if-conversion. (stack_print): Renamed to stack_print_stack. (show_icmd_method): Renamed to stack_show_method. Changed signature to use jitdata. (show_icmd_block): Renamed to stack_show_basicblock. Changed signature to use jitdata. (show_icmd): Renamed to stack_show_icmd. * src/vm/jit/stack.h: Likewise. * src/vm/jit/code.h (codeinfo): Added typedef. * src/vm/jit/dseg.c (assert.h): Moved. (dseg_resolve_datareferences, dseg_display): Changed signature to use jitdata. * src/vm/jit/dseg.h: Likewise. * src/vm/jit/verify/typecheck.c (typecheck): Changed signature to use jitdata. * src/vm/jit/verify/typecheck.h: Likewise. * src/vm/jit/loop/loop.c (analyseGraph): Changed signature to use jitdata. * src/vm/jit/loop/loop.h: Likewise. * src/vm/jit/loop/graph.c (depthFirst): Likewise. * src/vm/jit/loop/graph.h: Likewise. * src/vm/jit/loop/analyze.c (optimize_loops): Likewise. * src/vm/jit/loop/analyze.h: Likewise. * src/vm/jit/allocator/lsra.c (lsra): Likewise. * src/vm/jit/allocator/lsra.h: Likewise. * src/vm/jit/allocator/simplereg.c (interface_regalloc) (local_regalloc,allocate_scratch_registers): Likewise. * src/vm/jit/allocator/simplereg.h: Likewise. * src/vm/jit/parse.c (parse): Likewise. * src/vm/jit/replace.c (replace_create_replacement_points): Likewise. * src/vm/jit/intrp/codegen.c (intrp_codegen): Likewise. * src/vm/jit/reg.c (reg_setup): Likewise. * src/vm/jit/reg.h: Likewise. * src/vm/jit/jit.c (jit_compile): Use new function signatures and jitdata structure. (jit_compile_intern): Changed signature to use jitdata. * src/vm/jit/jit.h (jitdata): Added. (ICMD_OPCODE_MASK): Likewise. (ICMD_CONDITION_MASK): Likewise. * src/vm/jit/replace.h (rplpoint, executionstate, sourcestate): typedef's added. (replace_create_replacement_points): Changed signature to use jitdata. * src/vm/jit/parse.h (INDEX_ONEWORD, INDEX_TWOWORD): Use goto. (parse): Changed signature to use jitdata. 2006-03-28 14:31 twisti * src/vm/jit/x86_64/md.c (md_signal_handler_sigsegv) (md_signal_handler_sigfpe): Comment changes. 2006-03-28 14:30 twisti * src/vm/jit/i386/codegen.c (createnativestub): Replaced _exceptionptr by _no_threads_exceptionptr. 2006-03-28 14:22 twisti * NEWS: Added upcoming 0.96 release. Added miranda-methods fix. 2006-03-28 14:21 twisti * src/tests/regression/native/checkjni.c (PushLocalFrame): New method. * src/tests/regression/native/checkjni.java (PushLocalFrame): Likewise. (equal(int,int)): Likewise. * src/tests/regression/native/Makefile.am (NOTESTNAMES): Added. 2006-03-28 11:54 twisti * src/vm/jit/x86_64/codegen.c (codegen): Renamed parentargs_base to stackframesize. * tests/regression/extest.2output: Updated. 2006-03-28 10:42 twisti * src/vm/Makefile.am (noinst_LTLIBRARIES): Reformatted. 2006-03-28 10:21 twisti * src/native/vm/VMClassLoader.c (loadClass): Smaller changes. 2006-03-28 09:41 twisti * src/native/native.c (dummynativetable): Renamed getModifiers functions to getModifiersInternal due to GNU Classpath VM interface changes. * src/native/vm/Constructor.c (getModifiers): Renamed to getModifiersInternal. * src/native/vm/Field.c (getModifiers): Likewise. * src/native/vm/Method.c (getModifiers): Likewise. 2006-03-27 11:37 twisti * src/vm/class.c: Don't initialize classes to NULL. * src/vm/loader.c (loader_load_all_classes): Added NDEBUG. * src/vm/builtin.c (builtin_new): Likewise. * src/vm/jit/codegen-common.c (codegen_createnativestub): Likewise. (codegen_disassemble_nativestub): Likewise. * src/vm/jit/codegen-common.h (codegen_disassemble_nativestub): Likewise. * src/vm/jit/stack.c (stack_print): Likewise. * src/vm/jit/stack.h (stack_print, show_icmd_method, show_icmd_block) (show_icmd): Likewise. * src/vm/exceptions.c (exceptions_handle_exception): Likewise. * src/vm/linker.c (link_class_intern): Likewise. * src/cacao/cacao.c (main): Likewise. * src/vm/jit/x86_64/codegen.c: Likewise. * src/vm/jit/x86_64/asmpart.S (asm_vm_call_method): Likewise. * src/vm/jit/x86_64/Makefile.am (DISASS_SOURCES): Added. Put into ENABLE_DISASSEMBLER. * src/vm/jit/jit.c (jit_compile_intern): Added ENABLE_LOOP. * src/vm/vm.c (vm_create): Added ENABLE_PROFILING. (vm_exit_handler): Likewise. * configure.ac (AC_ENABLE_SHARED, AC_DISABLE_STATIC): Removed. Set it manually. (EXPORT_SYMBOLS_FLAGS): Removed. (--enable-disassembler): Added. (--ensable-loop): Likewise. (--ensable-profiling): Likewise. (--ensable-libjvm): Likewise. (--ensable-inlining): Moved. * src/vm/jit/Makefile.am (LOOP_LIB): Added. Put into ENABLE_LOOP. (PROFILE_LIB): Put into ENABLE_PROFILING. * src/cacao/Makefile.am (cacao_LDFLAGS): Use -export-dynamic and let libtool do the work. Add -all-static for ENABLE_STATICVM. * src/lib/Makefile.am: Made it -j aware. * src/vm/resolve.c (config.h, vm/global.h): Added. * src/vm/classcache.c (config.h): Moved to top. * src/vm/exceptions.h: Small change. 2006-03-27 11:15 twisti * src/vm/utf8.c: Removed superfluous comment. 2006-03-24 11:50 motse * src/cacao/cacao.c (main): remove debug code 2006-03-23 12:48 edwin * src/vm/jit/parse.h (bound_check): Renamed to CHECK_BYTECODE_INDEX, made a NOP for ENABLE_VERIFIER undefined. (bound_check_exclusive): Renamed to CHECK_BYTECODE_INDEX_EXCLUSIVE, made a NOP for ENABLE_VERIFIER undefined. * src/vm/jit/parse.c (fillextable): Cleaned up. (bound_check): Renamed to CHECK_BYTECODE_INDEX. (bound_check_exclusive): Renamed to CHECK_BYTECODE_INDEX_EXCLUSIVE. (parse): Only do checks if ENABLE_VERIFIER is defined. 2006-03-23 11:22 edwin * src/vm/jit/parse.c (CHECK_END_OF_BYTECODE): Added a macro for checking the end of the bytecode that becomes a NOP if ENABLE_VERIFIER is undefined. 2006-03-23 02:06 edwin * src/vm/jit/parse.c (parse): Uncuddled else's. 2006-03-23 00:56 edwin * src/vm/jit/powerpc/darwin/md-asm.h (_asm_replacement_out) (_asm_replacement_in, _replace_me): Added #defines for Darwin. 2006-03-23 00:30 edwin * src/vm/jit/stack.h (CHECK_STACK_DEPTH): Added. Uses goto to a common label for stack depth mismatches. (MARKREACHED): Use CHECK_STACK_DEPTH, which becomes a NOP if ENABLE_VERIFIER is undefined. * src/vm/jit/stack.c (anaylse_stack): Use CHECK_STACK_DEPTH. Added common label `throw_stack_depth_error` for stack depth mismatches. Uncuddled else's. 2006-03-23 00:08 edwin * src/vm/global.h (TYPECHECK_STACK_COMPCAT): Replaced by ENABLE_VERIFIER. The separation made no sense, anyway. * src/vm/jit/stack.c (TYPECHECK_STACK_COMPCAT): Replaced by ENABLE_VERIFIER. (analyse_stack): Removed code duplication by branching to a common label for all computational category errors: throw_stack_category_error. 2006-03-22 23:51 edwin * src/vm/jit/stack.h (BBEND): Inlined this macro (used only once) at its call site in stack.c. * src/vm/jit/stack.c (analyse_stack): Inlined BBEND macro and cleaned up the code. 2006-03-22 23:29 edwin * src/vm/jit/stack.c (analyse_stack): Removed obsolete label `icmd_store`. 2006-03-22 23:27 edwin * src/vm/jit/jit.h (ICMD_READONLY_ARG, ICMD_CLEAR_ARGREN): Removed. * src/vm/jit/stack.c (analyse_stack): Removed obsolete argument renaming. * src/vm/jit/verify/typecheck.c (verify_basic_block): Removed ICMD_READONLY_ARG and ICMD_CLEAR_ARGREN. 2006-03-22 23:17 edwin * src/vm/jit/stack.h (TYPE_VERIFYERROR): Changed to CHECK_BASIC_TYPE. This macro now becomes a NOP if ENABLE_VERIFIER is undefined. Otherwise it uses a goto to the common label throw_stack_type_error in order to save space. * src/vm/jit/stack.c (analyse_stack): Added variable `expectedtype` for use by CHECK_BASIC_TYPE. Added label throw_stack_type_error. 2006-03-22 20:59 edwin * src/vm/jit/i386/asmpart.S (asm_vm_call_method): Save/restore stack pointer properly. Fixed copy&paste error in restoring callee-save registers. 2006-03-22 18:32 edwin * src/vm/jit/stack.c (analyse_stack): Added throw_stack_overflow label. * src/vm/jit/stack.h (CHECKOVERFLOW): Make this a NOP if ENABLE_VERIFIER is undefined. (REQUIRE): Use #if defined(...) 2006-03-22 17:25 edwin * src/vm/jit/stack.h (REQUIRE): Made a NOP if ENABLE_VERIFIER is undefined. * src/vm/jit/stack.c (analyse_stack): Only define throw_stack_underflow if ENABLE_VERIFIER is defined. (jit_type): Do not define that for NDEBUG. 2006-03-22 17:14 edwin * src/vm/jit/stack.h (REQUIRE): Avoid duplication of exception throwing code. * src/vm/jit/stack.c (analyse_stack): Added label throw_stack_underflow for the REQUIRE macro. 2006-03-22 15:30 edwin * src/vm/jit/powerpc/md.c (DISASSINSTR): #ifdef'ed * src/vm/jit/alpha/md.c (DISASSINSTR): #ifdef'ed * src/vm/jit/i386/md.c (DISASSINSTR): #ifdef'ed * src/vm/jit/x86_64/md.c (DISASSINSTR): #ifdef'ed * src/vm/jit/mips/md.c (DISASSINSTR): #ifdef'ed 2006-03-22 12:35 edwin * src/vm/jit/inline/inline.c (stack_depth): Moved here from inline_debug.c. (NDEBUG): Put debug stuff inside #ifndef NDEBUG. * src/vm/jit/inline/inline_debug.c (stack_depth): Moved to inline.c 2006-03-22 09:19 edwin * src/vm/jit/inline/inline_debug.c (debug_dump_stack): Fixed warning on platforms that don't define NULL as a pointer. 2006-03-22 01:22 edwin * src/vm/jit/inline/inline.c (relocate_stack_ptr_inter, rewrite_method): Fixed warnings. * src/vm/jit/inline/inline_debug.c (DEBUG_SLOT, dump_inline_tree): Fixed warnings. 2006-03-21 14:07 twisti * src/vm/jit/i386/codegen.h (ALIGNCODENOP): Added. * src/vm/jit/i386/codegen.c (codegen): Renamed to parentargs_base to stackframesize. Align stack to 16-bytes. (ICMD_GOTO): Use ALIGNCODENOP. * src/vm/jit/i386/asmpart.S (asm_vm_call_method): Align stack to 16-bytes. Use register defines for better readability. 2006-03-21 11:58 twisti * src/vm/jit/Makefile.am: Removed ifconv. Again... 2006-03-21 11:50 twisti * configure.ac (AC_INIT): Changed cvs to svn. (--enable-inlining): Added. * src/vm/jit/Makefile.am (DIST_SUBDIRS): Added ifconv. (ENABLE_IFCONV): Added. Use IFCONV_LIB. (USE_INLINING): Renamed to ENABLE_INLINING. 2006-03-21 07:57 edwin * src/vm/jit/alpha/codegen.c (codegen): Comment 16-byte stack alignment. * src/vm/jit/alpha/asmpart.S (asm_replacment_out): Fix comment about stack layout. 2006-03-21 07:42 edwin * src/vm/jit/alpha/asmpart.S (REPLACEMENT_ROOM): Fixed deleted characters. 2006-03-21 04:14 edwin * src/vm/jit/inline/Makefile.am (AM_CPPFLAGS): Added OS include dir. 2006-03-21 03:15 edwin * src/vm/jit/inline/inline_debug.c: Added file. 2006-03-21 00:13 edwin * src/vm/jit/inline/inline.c: Committed the inliner. This code works but it is still in prototyping stage. * src/vm/jit/parse.c (parse): Added (#if 0-ed) code for storing the exception table that the inliner uses. 2006-03-21 00:04 motse major rework of jvmti. now we have three processes in jvmti mode. there are still many debug statements 2006-03-20 23:56 edwin * src/vm/jit/code.h (codeinfo): Comment that profiling fields will be removed. 2006-03-20 15:41 edwin * src/vm/jit/alpha/asmpart.S (asm_replacement_out): 16-byte align stack. 2006-03-20 15:37 edwin * doc/stack_frames.txt: Some fixes, described PowerPC stack frames. 2006-03-20 15:12 twisti * src/vm/jit/alpha/codegen.c (codegen): Align stack to 16-bytes in replacement stub. * src/vm/jit/alpha/asmpart.S (asm_replacement_out): Load GP before symbolic jumps. 2006-03-20 14:43 twisti * autogen.sh, src/boehm-gc/autogen.sh: Prefix all shell variables with CACAO_ to prevent problems on OpenBSD. 2006-03-20 14:27 twisti * src/boehm-gc/darwin_stop_world.c, src/boehm-gc/threadlibs.c, src/boehm-gc/doc/README.changes, src/boehm-gc/doc/README, src/boehm-gc/doc/gcinterface.html, src/boehm-gc/mark.c, src/boehm-gc/include/gc.h, src/boehm-gc/include/gc_cpp.h, src/boehm-gc/include/gc_pthread_redirects.h, src/boehm-gc/include/leak_detector.h, src/boehm-gc/include/gc_config_macros.h, src/boehm-gc/include/private/gc_priv.h, src/boehm-gc/include/private/gcconfig.h, src/boehm-gc/include/private/gc_pmark.h, src/boehm-gc/include/private/gc_locks.h, src/boehm-gc/configure.in, src/boehm-gc/allchblk.c, src/boehm-gc/powerpc_darwin_mach_dep.s, src/boehm-gc/dbg_mlc.c, src/boehm-gc/version.h, src/boehm-gc/pthread_stop_world.c, src/boehm-gc/malloc.c, src/boehm-gc/headers.c, src/boehm-gc/pthread_support.c, src/boehm-gc/Makefile.direct, src/boehm-gc/os_dep.c, src/boehm-gc/Makefile.am, src/boehm-gc/dyn_load.c, src/boehm-gc/alloc.c, src/boehm-gc/misc.c: Updated to upstream version 6.7. 2006-03-19 19:46 edwin * src/vm/jit/code.c (code_get_stack_frame_size): Implement stack alignment for MIPS. * src/vm/jit/mips/md.c (md_patch_replacement_point): Added. * src/vm/jit/mips/codegen.c (codegen): Handle replacement points. 8-byte align blocks that start with replacement points. * src/vm/jit/mips/asmpart.S (asm_replacement_out): Added. (asm_replacement_in): Likewise. * src/vm/jit/replace.c (replace_activate_replacement_point): Activated for MIPS. (replace_deactivate_replacement_poin): Likewise. (replace_me): Likewise. (replace_read_executionstate): MIPS also keeps returnAddress in ITMP1. (replace_write_executionstate): Likewise. * doc/stack_frames.txt: Documented MIPS stack frames. * src/vm/jit/powerpc/asmpart.S (asm_replacement_out): Fixed comment. 2006-03-18 04:14 edwin * src/vm/jit/powerpc/md.c (md_patch_replacement_point): Added. * src/vm/jit/powerpc/codegen.c (codegen): Handle replacement points. * src/vm/jit/powerpc/asmpart.S (asm_replacement_out): Added. (asm_replacement_in): Likewise. * src/vm/jit/alpha/codegen.c (codegen): Added missing initialization of `replacementpoint`. * src/vm/jit/alpha/asmpart.S (asm_replacement_out): Store PV register. * src/vm/jit/code.c (code_get_sync_slot_count): Ported to PowerPC. (code_get_stack_frame_size): Likewise. * src/vm/jit/replace.c (replace_activate_replacement_point) (replace_deactivate_replacement_poin): Activated for PowerPC. (replace_read_value, replace_write_value): Added. (replace_read_executionstate): Ported to PowerPC, more complete data type handling. (replace_write_executionstate): Ported to Ported, more complete data type handling, fixed missing initialization of `topslot`. (replace_me): Activated for PowerPC. 2006-03-16 23:32 edwin * src/vm/jit/alpha/codegen.c (codegen): Use `disp` for displacement. 2006-03-16 21:12 edwin * src/vm/jit/alpha/md.c (Changes): Added my name. 2006-03-16 21:11 edwin * src/vm/jit/alpha/md.c (md_patch_replacement_point): Added. (vim boilerplate): Added. * src/vm/jit/replace.c (replace_activate_replacement_point) (replace_deactivate_replacement_point, replace_me): Activated replacement for alpha. 2006-03-16 20:31 edwin * src/vm/jit/alpha/asmpart.S (asm_replacement_out) (asm_replacement_in): Use stt/ldt for float registers. * src/vm/jit/alpha/codegen.c (codegen): Put replacement-out stub generation in correct scope. Fix warnings. 2006-03-16 19:55 edwin * src/vm/jit/alpha/codegen.c (codegen): Handle replacement points. * src/vm/jit/alpha/asmpart.S (asm_replacement_out): Added. (asm_replacement_in): Likewise. (vim boilerplate): Added. 2006-03-16 19:36 edwin * src/vm/jit/replace.c (replace_read_executionstate) (replace_write_executionstate): Position of synchronization slot must be calculated from low addresses up, instead of backwards from stack base. 2006-03-16 19:00 edwin * src/vm/jit/replace.c (replace_create_replacement_points): Set isleafmethod. 2006-03-16 18:57 edwin * src/vm/jit/code.c (code_codeinfo_new): Set codeinfo.isleafmethod. 2006-03-16 18:44 edwin * src/vm/jit/x86_64/codegen.c (codegen): Reuse `disp` variable. * src/vm/jit/i386/codegen.c (codegen): Likewise. 2006-03-16 18:38 edwin * src/vm/jit/i386/asmpart.S (asm_replacement_out): Added pv. * src/vm/jit/x86_64/asmpart.S (asm_replacement_out): Added pv. * src/vm/jit/replace.c (replace_read_executionstate) (replace_write_executionstate): Prepared for alpha. Some cleanup. * src/vm/jit/replace.c (replace_write_executionstate): Calculate stack pointer from given stack base. (replace_executionstate_println): Added pv. (replace_sourcestate_println): Added stackbase. * src/vm/jit/replace.h (executionstate): Added pv. (sourcestate): Added stackbase. * src/vm/jit/tools/genoffsets.c (main): Added offes_pv. * doc/stack_frames.txt: Clarifications. 2006-03-16 18:32 edwin * src/vm/jit/code.c (code_get_sync_slot_count): No synchronization slots if USE_THREADS is undefined. (code_get_stack_frame_size): Added x86_64 alignment slot. 2006-03-16 17:29 edwin * doc/stack_frames.txt: Added description of x86_64 stack frames. 2006-03-16 17:24 twisti * src/vm/jit/mips/md.c (sys/cachectl.h): Added. (md_cacheflush, md_icacheflush, md_dcacheflush): New method. * src/vm/jit/mips/codegen.c: Use new exception stubs. * src/vm/jit/mips/codegen.h (gen_nullptr_check, gen_bound_check) (gen_div_check): Use new add reference functions. * src/vm/jit/mips/patcher.c: Replaced cacheflush with md_icacheflush or md_dcacheflush. * src/vm/jit/mips/asmpart.S: (asm_calljavafunction): Removed. (asm_calljavafunction2): Renamed to asm_vm_call_method. Pointer to vm_arg block is now in a2. Use new defines. 2006-03-16 17:22 edwin * doc/stack_frames.txt: Added description of alpha stack frames. 2006-03-16 17:16 twisti * src/vm/vm.c (version): Check if __VERSION__ is defined. 2006-03-16 15:36 twisti * src/vm/jit/x86_64/md.c (md_cacheflush): New method. 2006-03-16 15:28 edwin * src/vm/jit/alpha/codegen.c (codegen): Cast to avoid compiler warning. 2006-03-16 15:19 twisti * src/vm/jit/alpha, src/vm/jit/alpha/linux, src/vm/jit/alpha/linux/.cvsignore, src/vm/jit/alpha/freebsd, src/vm/jit/alpha/freebsd/.cvsignore, src/vm/jit/alpha/.cvsignore: Added TAGS. 2006-03-16 15:16 twisti * src/vm/jit/alpha/md.c (md_cacheflush, md_icacheflush): New method. * src/vm/jit/alpha/asmpart.S (asm_sync_instruction_cache): Renamed to asm_cacheflush. * src/vm/jit/alpha/patcher.c: Replaced asm_sync_instruction_cache with md_icacheflush. 2006-03-16 14:29 twisti * src/vm/jit/i386/md.c (md_cacheflush): New method. 2006-03-16 14:23 twisti * src/vm/jit/powerpc, src/vm/jit/powerpc/linux, src/vm/jit/powerpc/linux/.cvsignore, src/vm/jit/powerpc/darwin, src/vm/jit/powerpc/darwin/.cvsignore, src/vm/jit/powerpc/.cvsignore: Added TAGS. 2006-03-16 14:19 twisti * src/vm/jit/jit.h (md_cacheflush, md_icacheflush, md_dcacheflush): Added. * src/vm/jit/asmpart.h (asm_sync_instruction_cache): Removed. * src/vm/jit/codegen-common.c (codegen_finish): Call md_cacheflush for the dynamic superinstructions (intrp) and the generated code. * src/vm/jit/powerpc/codegen.c: Use new exception stubs. * src/vm/jit/powerpc/codegen.h (gen_nullptr_check, gen_bound_check): Use new add reference functions. * src/vm/jit/powerpc/md.c (vm/jit/asmpart.h): Added. (md_cacheflush, md_icacheflush, md_dcacheflush): New function. * src/vm/jit/powerpc/patcher.c: Use new cache flush functions. 2006-03-16 14:00 twisti * src/cacao/cacao.c (mm/boehm.h, mm/memory.h): Removed. 2006-03-16 13:59 twisti * src/vm/jit/intrp/engine.c (USE_spTOS): Define it for __POWERPC__, __POWERPC64__, __SPARC__. We know we need it there. 2006-03-16 13:56 twisti * tests/regression/native/Makefile.am (AM_CPPFLAGS): Added OS_DIR. 2006-03-16 12:53 twisti * src/vm/jit/tools/Makefile.am, src/vm/jit/verify/Makefile.am, src/vm/jit/loop/Makefile.am, src/vm/jit/profile/Makefile.am, src/cacao/Makefile.am, src/native/tools/Makefile.am, src/native/vm/Makefile.am, src/native/Makefile.am, src/toolbox/Makefile.am, src/mm/Makefile.am, src/cacaoh/Makefile.am (AM_CPPFLAGS): Added OS_DIR. 2006-03-16 12:03 twisti * src/vm/jit/alpha/codegen.c: Use new exception stubs. * src/vm/jit/alpha/codegen.h (gen_nullptr_check, gen_bound_check): Use new add reference functions. 2006-03-16 04:38 edwin * src/vm/jit/replace.h (RPLPOINT_SBR): Removed obsolete flag constant. 2006-03-16 04:17 edwin * src/vm/jit/code.c (code_codeinfo_new): Commented. (code_get_sync_slot_count): Added. (code_get_stack_frame_size): Commented. (code_codeinfo_free): Commented. (code_free_code_of_method): Commented. Some cleanup. * src/vm/jit/code.h (code_get_sync_slot_count): Added. * src/vm/jit/i386/codegen.c (codegen): Use cd->lastmcodeptr to avoid patching over basic block boundaries. * src/vm/jit/x86_64/codegen.c (codegen): Likewise. * src/vm/jit/replace.h (rplpoint): `type` and `flags` added, `hashlink` removed. (sourcestate): Added slots for synchronized methods. * src/vm/jit/replace.c (replace_create_replacement_points): Store basicblock type. (replace_read_executionstate, replace_write_executionstate): Handle 2-word locals. Special handling for BBTYPE_SBR and BBTYPE_EXH blocks. Transfer synchronization slots. 2006-03-16 00:05 edwin * src/vm/jit/code.c (code_get_stack_frame_size): Deal with 4/8-byte stackslots. * src/vm/jit/tools/genoffsets.c (main): Offsets of intregs and fltregs. * src/vm/jit/i386/asmpart.S (asm_replacement_out): Renamed regs to intregs. Some cleanup. * src/vm/jit/replace.c (replace_activate_replacement_point) (replace_deactivate_replacement_point): Enabled on x86_64. (replace_read_executionstate, replace_write_executionstate): Deal with 4/8-byte stackslots. Handle float registers. (replace_executionstate_println, replace_sourcestate_println): Print register names where possible. * src/vm/jit/x86_64/md.c (md_patch_replacement_point): Added. (vim boilerplate): Added. * src/vm/jit/x86_64/codegen.c (codegen): Handle replacement points. Generate replacement-out stubs. * src/vm/jit/x86_64/asmpart.S (asm_replacement_out, asm_replacement_in): Added. (vim boilerplate): Added. * src/vm/jit/replace.h (executionstate): Separate registers into int and float registers. Some cleanup, use INT_REG_CNT, FLT_REG_CNT macros. 2006-03-15 21:27 edwin * src/vm/jit/replace.c (replace_read_executionstate): Commented. (replace_write_executionstate): Likewise, and set new PC here. (replace_me): Target PC is now set in replace_write_executionstate. 2006-03-15 20:53 edwin * src/vm/jit/code.h (codeinfo): Changed regalloc to use rplalloc structs. Added fields storing stack slot counts. * src/vm/jit/code.c, src/vm/jit/code.h (code_get_stack_frame_size): Added. * src/vm/jit/replace.c (replace_create_replacement_points): Store full allocation info for locals and stack slots in rplalloc structs. Store number of stack slots. * src/vm/jit/replace.c (replace_read_executionstate): Added. (replace_write_executionstate): Likewise. * src/vm/jit/replace.c (replace_me): Use dump memory for sourcestate. Read an write executionstate. Do actual replace by calling asm_replace_in. * src/vm/jit/replace.c (replace_replacement_point_println) (replace_executionstate_println): Print new fields. Show correct number of stack slots. (replace_sourcestate_println): Added. * src/vm/jit/replace.h (rplalloc): Added. (rplpoint): Changed regalloc fields to use rplalloc structs. (executionstate): Removed saved regs. (sourcestate): Added saved regs. (replace_executionstate_println): Now takes codeinfo* argument. (replace_sourcestate_println): Added. 2006-03-15 20:43 edwin * doc/stack_frames.txt: Added arrows indicating increasing addresses/indices. 2006-03-15 20:42 edwin * src/vm/jit/asmpart.h (asm_replacement_in): Added prototype. 2006-03-15 20:40 edwin * src/vm/jit/i386/asmpart.S (asm_replacement_out): Save all integer registers, add space between stack frame and executionstate to accomodate changing stack frame size. * src/vm/jit/i386/asmpart.S (asm_replacement_in): Added. 2006-03-15 20:38 edwin * src/vm/jit/tools/genoffsets.c (main): Added offset of pc and sp in executionstate. 2006-03-15 17:17 twisti * src/vm/jit/i386/codegen.c: Use new exception stubs. Don't cast with M_MOV_IMM. * src/vm/jit/i386/codegen.h (M_MOV_IMM, M_IST_IMM, M_IST32_IMM) (M_PUSH_IMM): Added cast. (M_CMP, M_CMP_MEMBASE, M_CMP_IMM_MEMBASE): Added. 2006-03-15 16:36 twisti * src/vm/jit/codegen-common.h (branchref): Removed. (codegendata): Removed xboundrefs, xnullrefs, xcastrefs, xstorerefs, xdivrefs and xexceptionrefs. Added exceptionrefs. (codegen_addxboundrefs, codegen_addxcastrefs, codegen_addxdivrefs) (codegen_addxstorerefs, codegen_addxnullrefs) (codegen_addxexceptionrefs): Removed. (codegen_add_arithmeticexception_ref) (codegen_add_arrayindexoutofboundsexception_ref) (codegen_add_arraystoreexception_ref) (codegen_add_classcastexception_ref) (codegen_add_nullpointerexception_ref) (codegen_add_fillinstacktrace_ref): New function. * src/vm/jit/codegen-common.c: Likewise. * src/vm/jit/dseg.h (exceptionref): New structure. * src/vm/jit/x86_64/codegen.c: Use new exception stubs. Don't cast with M_MOV_IMM. * src/vm/jit/x86_64/codegen.h (M_MOV_IMM, M_IMOV_IMM): Added cast. * src/vm/jit/stacktrace.c (stacktrace_inline_fillInStackTrace): Moved. * src/vm/jit/stacktrace.h (STACKTRACE_inline_arithmeticexception) (STACKTRACE_inline_arrayindexoutofboundsexception) (STACKTRACE_inline_arraystoreexception) (STACKTRACE_inline_classcastexception) (STACKTRACE_inline_nullpointerexception) (STACKTRACE_inline_fillInStackTrace): Added functionptr defines. * src/vm/jit/jit.h (branchref): Added. 2006-03-15 12:14 edwin * doc/stack_frames.txt: Added slots for synched methods. 2006-03-15 12:04 edwin * doc/stack_frames.txt: Added file. * src/vm/jit/code.h (codeinfo): Rearranged fields. * src/vm/jit/i386/md.c, src/vm/jit/i386/asmpart.S, src/vm/jit/replace.c: Comment changes. 2006-03-15 11:38 edwin * src/vm/jit/i386/md.c (md_patch_replacement_point): Generalized to activation and deactivation of replacement points. * src/vm/jit/i386/codegen.c (codegen): Prepare machine code for patching replacement points. * src/vm/jit/replace.c, src/vm/jit/replace.h (replace_deactivate_replacement_point): Added. * src/vm/jit/replace.c (replace_replacement_point_println): Print machine code. * src/vm/jit/replace.h (rplpoint): Added `mcode` field. 2006-03-15 11:18 twisti * src/vm/jit/i386/codegen.c (GETFIELD, PUTFIELD, PUTFIELDCONST): Use M_ILD32 and M_LLD32 macros. (patcher): Save REG_ITMP3. Don't allocate a codegendata structure, just do it as on Alpha. * src/vm/jit/i386/codegen.h (var_to_reg_lng): Added. (store_reg_to_var_lng): Likewise. (M_ILD32, M_LLD, M_LLD32, M_IST32, M_IST32_IMM, M_LST, M_LST32) (M_LST_IMM, M_LST32_IMM): Likewise. * src/vm/jit/i386/patcher.c: Changed position of return address due to saving of REG_ITMP3. * src/vm/jit/i386/asmpart.S (asm_wrapper_patcher): Changed due to saving of REG_ITMP3. 2006-03-15 10:34 edwin * src/vm/jit/replace.c (replace_create_replacement_points): Don't use rd->locals in the interpreter -- it's NULL there. 2006-03-15 05:13 edwin * src/vm/jit/codegen-common.c (codegen_finish): Removed a compiler warning. 2006-03-15 05:08 edwin * src/vm/jit/replace.h, src/vm/jit/i386/md.c (md_patch_replacement_point): Fixed return type. * src/vm/jit/replace.c (replace_activate_replacement_point): Only call md_patch_replacement_point if ENABLE_JIT is defined. 2006-03-15 04:57 edwin * src/vm/jit/replace.c (replace_activate_replacement_point): Do not use the symbol md_patch_replacement_point on platforms where it does not exist, yet. 2006-03-15 04:43 edwin * src/vm/jit/replace.h, src/vm/jit/replace.c (replace_activate_replacement_point): Added. (replace_activate): Added prototype. (md_patch_replacement_point): Added prototype. (replace_me): Added. (replace_replacement_point_println): Added. (replace_show_replacement_points): Cleaned up. (replace_executionstate_println): Added. * src/vm/jit/i386/codegen.c (codegen): Generate replacement-out stubs. * src/vm/jit/codegen-common.c (codegen_finish): Resolve replacement points. * src/vm/jit/asmpart.h, src/vm/jit/i386/asmpart.S (asm_replacement_out): Added. * src/vm/method.h (executionstate): Typo fixed. * src/vm/jit/stack.c (src/vm/jit/stack.c): Minor output change. * src/vm/jit/tools/genoffsets.c (executionstate): Added size and offset. * src/vm/jit/i386/md.c (md_patch_replacement_point): Added. 2006-03-15 01:50 edwin * src/vm/jit/replace.h, src/vm/jit/replace.c (replace_replacement_info_print): Renamed to replace_show_replacement_points. * src/vm/jit/stack.c: Likewise. 2006-03-15 01:39 edwin * src/vm/jit/replace.c, src/vm/jit/replace.h (replace_create_replacement_points): Added. (replace_free_replacement_points): Added. (replace_replacement_info_print): Added. * src/vm/jit/replace.h (rplpoint): Changed fields, made fixed length. * src/vm/jit/code.h (codeinfo): Changed replacement point fields. * src/vm/jit/jit.c (jit_compile_intern): Create replacement points. * src/vm/jit/jit.c (jit_compile_intern): Use already allocated codeinfo for do-nothing methods. * src/vm/jit/code.c (code_codeinfo_free): Free replacement points. * src/vm/jit/stack.c (show_icmd_method): Print replacement points. 2006-03-15 00:06 edwin * src/vm/jit/stack.c, src/vm/jit/stack.h (icmd_print_stack): Renamed to stack_print. Documented. (show_icmd_method, show_icmd_block, show_icmd): Documented. (show_icmd_block): Print basicblock.bitflags. * src/vm/jit/stack.h (MARKREACHED): Mark targets of backward branches as replacement points (BBFLAG_REPLACEMENT) 2006-03-14 23:49 edwin * src/vm/jit/jit.h (basicblock): Added `bitflags` field. Note: The flags of this struct should really be cleaned up. * src/vm/jit/jit.h (BASICBLOCK_INIT): Added, so we have a central place where to put initialization of the fields. * src/vm/jit/parse.c (parse): Cleaned up basicblock allocation. 2006-03-14 23:16 edwin * src/vm/jit/jit.h (basicblock): Comment. 2006-03-14 23:00 edwin * src/vm/jit/parse.c (fillextable): Removed unused label_index. (parse): Likewise. * src/vm/jit/replace.h: Comment moved. 2006-03-14 22:30 edwin * src/native/jvmti/jvmti.c (GetMethodLocation): Use the new m->code field to get to the location of the method. 2006-03-14 22:16 edwin * src/vm/method.h (methodinfo): Moved `entrypoint` to `codeinfo`. * src/vm/loader.c (load_method): Likewise. * src/vm/loader.c (load_newly_created_array): Use codeinfo.entrypoint. * src/vm/builtin.c (builtin_trace_exception): Likewise. Note: Currently we always use the current codeinfo. This is preliminary. * src/vm/jit/powerpc/codegen.c (codegen): Use cd->code->entrypoint. * src/vm/jit/alpha/codegen.c (createnativestub): Likewise. * src/vm/jit/dseg.c (dseg_resolve_datareferences): Likewise. * src/vm/jit/mips/codegen.c (codegen, createnativestub): Likewise. * src/vm/jit/i386/codegen.c (createnativestub): Likewise. * src/vm/jit/intrp/codegen.c (intrp_codegen, intrp_createnativestub) (createcalljavafunction): Likewise. * src/vm/jit/x86_64/codegen.c (createnativestub): Likewise. * src/vm/jit/intrp/codegen.c (nativecall): Use m->code->entrypoint. * src/vm/jit/codegen-common.h, src/vm/jit/codegen-common.c, src/cacaoh/headers.c (codegen_createnativestub): Now returns the created codeinfo instead of the entrypoint. * src/vm/jit/stacktrace.c (stacktrace_add_method): Find the codeinfo that contains the current PC. Note: This is preliminary. We should find the codeinfo * via the PV of the code containing the PC. * src/vm/jit/jit.c (jit_compile): Use m->code. Create a codeinfo for native stubs and the do-nothing stub * src/vm/jit/codegen-common.c (codegen_finish): Set entrypoint in codeinfo instead of in methodinfo. 2006-03-14 20:59 edwin * src/vm/jit/code.c, src/vm/jit/replace.c, src/vm/jit/replace.h: Added GPL header and boilerplate. 2006-03-14 20:57 edwin * src/vm/jit/code.h: Added GPL header and boilerplate. 2006-03-14 20:51 edwin * src/vm/jit/code.c, src/vm/jit/code.h: Files added. * src/vm/jit/replace.c, src/vm/jit/replace.h: Files added. * src/vm/jit/Makefile.am (code.[ch], replace.[ch]): Added. * src/vm/method.h (methodinfo): Added field `code`. Each method may now have zero or more codeinfo:s associated with it. A codeinfo represents the machine code of a particular version of the compiled method. Note: Some fields in methodinfo that may need to be moved to codeinfo where marked XXX. * src/vm/jit/codegen-common.h (codegendata): Added field `code`. * src/vm/jit/codegen-common.c (codegen_setup): Allocate a new codeinfo. (codegen_finish): Use `code` field of codegendata. (codegen_createnativestub): Likewise. * src/vm/jit/stack.c (show_icmd_method, show_icmd_block): Use `code` field of codegendata. * src/vm/jit/dseg.c (dseg_display): Likewise. * src/vm/jit/jit.c (jit_compile_intern): Likewise. Switch current codeinfo after compilation is complete. * src/cacaoh/headers.c (code_free_code_of_method): Added stub. * src/vm/method.c (method_free): Free codeinfo:s of method. * src/vm/loader.c (load_method): Initialize m->code. 2006-03-14 16:40 twisti * src/cacao/Makefile.am (ENABLE_STATICVM): Added cacao_LDFLAGS, otherwise the sumbols are not exported. * src/native/include/Makefile.am (ENABLE_STATICVM): Renamed to WITH_STATIC_CLASSPATH. 2006-03-14 16:30 twisti * src/vm/jit/stacktrace.c (stacktrace_create): We have to check for an OOM when allocating from the heap. Fixes a crash in Jonas. 2006-03-14 15:00 edwin * doc/design_onstack_replacement.txt: More design options added. 2006-03-13 21:26 edwin * design_onstack_replacement.txt: Added file. 2006-03-13 11:35 twisti * src/vm/vm.c (vm_create): Only put .jar file into classpath. Fixes startup bug with knopflerfish. 2006-03-13 08:02 edwin * src/native/vm/VMClass.c (Java_java_lang_VMClass_getComponentType): Link class before accessing c->vftbl->arraydesc. 2006-03-13 07:06 edwin * src/native/vm/VMClass.c (Java_java_lang_VMClass_getSuperclass): We must not assume that the class is already linked, so we have to resolve the super class reference. This fixes a NPE bug with Jonas. 2006-03-12 23:23 twisti * src/vm/suck.c (suck_start): We really should close class files after reading it. 2006-03-11 21:34 edwin * src/vm/resolve.c (resolve_class_from_typedesc): Safer check for reference types. 2006-03-11 20:41 edwin * src/vm/jit/codegen-common.c (codegen_finish): When setting the entrypoint of a method, be sure not to overwrite an already set entrypoint. 2006-03-11 20:34 edwin * src/vm/references.h (IS_XCLASSREF): Commented. 2006-03-11 20:32 edwin * src/vm/references.h (IS_XCLASSREF): Added. (CLASSREF_OR_CLASSINFO_NAME): Added. 2006-03-11 20:30 edwin * src/vm/class.c, src/vm/class.h (class_classref_print): Added. (class_classref_println): Added. 2006-03-11 16:06 edwin * src/vm/jit/jit.c (jit_compile_intern): Check if the method has been compiled during static class initialization. 2006-03-11 15:03 edwin * src/vm/method.c (vim boilerplate): Added. 2006-03-11 15:01 edwin * src/vm/method.c (method_vftbl_lookup): Check ACC_INTERFACE on the class, instead of on the method, where it is not set. Do not check ACC_ABSTRACT here, because non-interface ACC_ABSTRACT methods are looked up just like non-abstract non-interface methods. 2006-03-10 22:22 twisti * src/native/vm/VMRuntime.c (vm/options.h): Added. (nativeLoad): Print dlerror output when dlopen fails. 2006-03-09 16:13 twisti * autogen.sh: Fixed typo. 2006-03-09 13:51 twisti * src/vm/jit/powerpc/darwin/md-asm.h (asm_calljavafunction): Removed. (asm_calljavafunction_int): Likewise. (asm_calljavafunction2): Likewise. (asm_calljavafunction2int): Likewise. (asm_calljavafunction2long): Likewise. (asm_calljavafunction2float): Likewise. (asm_calljavafunction2double): Likewise. (_exceptionptr): Likewise. (asm_vm_call_method): Define added. (asm_vm_call_method_int): Likewise. (asm_vm_call_method_long): Likewise. (asm_vm_call_method_float): Likewise. (asm_vm_call_method_double): Likewise. 2006-03-09 13:46 twisti * src/vm/jit/powerpc/patcher.c (patcher_get_putfield): Check for the instruction order on long fields. 2006-03-09 13:26 twisti * autogen.sh: Check for installed programs and exit if no proper one was found. * src/boehm-gc/autogen.sh: Use the programs found by top-level autogen. 2006-03-08 09:44 twisti * src/native/jni.c (PushLocalFrame): Implemented. (PopLocalFrame): Likewise. (DeleteLocalRef): Walk through all local frames. (NewLocalRef): Allocate a new local frame if the current frame is out of space. (EnsureLocalCapacity): Implemented. * src/vm/jit/codegen-common.c (codegen_finish_native_call): Release all local reference frames. 2006-03-07 20:44 twisti * src/native/vm/VMClassLoader.c (nativeGetResources): Check if resource is a directory and don't add it. 2006-03-07 19:32 twisti * src/vm/vm.c (usage): Small change. * src/native/vm/VMSystemProperties.c (preInit): Set java.ext.dirs to $JAVA_HOME/jre/lib/ext. 2006-03-07 18:18 twisti * src/cacaoh/headers.c (intrp_main_stack): Changed type. 2006-03-07 17:21 twisti test 2006-03-07 17:19 twisti test 2006-03-07 10:48 twisti * src/native/jni.c (_Jv_jni_CallIntMethodA): New function. (CallBooleanMethodA): Implemented. 2006-03-07 10:36 twisti * src/vm/string.c (string_java_lang_StringIndexOutOfBoundsException): Added. * src/vm/stringlocal.h: Likewise. * src/vm/exceptions.c (exceptions_new_stringindexoutofboundsexception): New function. (exceptions_throw_stringindexoutofboundsexception): Likewise. * src/vm/exceptions.h: Likewise. * src/native/jni.c (GetStringRegion): Implemented. 2006-03-07 09:40 twisti * src/vm/vm.c (_Jv_jvm): Changed type to _Jv_JavaVM. * src/vm/vm.h (_Jv_jvm): Added. * src/native/jni.c (ptr_jvm): Removed. (ptr_env): Likewise. (CallStaticObjectMethodA): Implemented. (GetJavaVM): Return _Jv_jvm as vm. (AttachCurrentThread): Return _Jv_env as env. (GetEnv): Likewise. (JNI_JavaVMTable): Renamed to _Jv_JNIInvokeInterface. (JNI_JNIEnvTable): Renamed to _Jv_JNINativeInterface. (JNI_CreateJavaVM): Allocate a _Jv_JavaVM structure and set it up correctly, this fixes the usage in C++ programs. * src/native/jni.h (_Jv_JavaVM): Added. * src/native/jvmti/jvmti.c: Renamed JNI_JavaVMTable to _Jv_JNIInvokeInterface and JNI_JNIEnvTable to _Jv_JNINativeInterface. 2006-03-06 18:45 christian * src/vm/jit/stack.c (analyse_stack): Bugfix for copy elimination. 2006-03-06 13:03 twisti * src/vm/jit/powerpc/linux/Makefile.am (LIBS): Added defined empty, as * this makes problems on darwin and actually we do not need to link * the configured libraries into convenience libraries. * src/vm/jit/powerpc/darwin/Makefile.am: Likewise. * src/vm/jit/powerpc/Makefile.am: Likewise. * src/vm/jit/alpha/linux/Makefile.am: Likewise. * src/vm/jit/alpha/Makefile.am: Likewise. * src/vm/jit/alpha/freebsd/Makefile.am: Likewise. * src/vm/jit/tools/Makefile.am: Likewise. * src/vm/jit/verify/Makefile.am: Likewise. * src/vm/jit/mips/linux/Makefile.am: Likewise. * src/vm/jit/mips/Makefile.am: Likewise. * src/vm/jit/mips/irix/Makefile.am: Likewise. * src/vm/jit/loop/Makefile.am: Likewise. * src/vm/jit/inline/Makefile.am: Likewise. * src/vm/jit/allocator/Makefile.am: Likewise. * src/vm/jit/i386/linux/Makefile.am: Likewise. * src/vm/jit/i386/Makefile.am: Likewise. * src/vm/jit/i386/freebsd/Makefile.am: Likewise. * src/vm/jit/schedule/Makefile.am: Likewise. * src/vm/jit/intrp/Makefile.am: Likewise. * src/vm/jit/x86_64/Makefile.am: Likewise. * src/vm/jit/profile/Makefile.am: Likewise. * src/vm/jit/Makefile.am: Likewise. * src/vm/Makefile.am: Likewise. * src/native/tools/Makefile.am: Likewise. * src/native/vm/Makefile.am: Likewise. * src/native/Makefile.am: Likewise. * src/toolbox/Makefile.am: Likewise. * src/mm/Makefile.am: Likewise. * src/threads/native/Makefile.am: Likewise. * src/fdlibm/Makefile.am: Likewise. * src/cacaoh/Makefile.am (INCLUDES): Renamed to AM_CPPFLAGS. 2006-03-06 00:30 twisti * src/vm/jit/powerpc/asmpart.S (asm_calljavafunction): Removed. (asm_calljavafunction2): Renamed to asm_vm_call_method. 2006-03-05 23:53 twisti * src/vm/jit/alpha/asmpart.S (asm_calljavafunction): Removed. (asm_calljavafunction2): Renamed to asm_vm_call_method. 2006-03-05 23:35 twisti * src/vm/jit/codegen-common.c (codegen_init): Removed asm_calljavafunction. * src/vm/jit/i386/asmpart.S (asm_calljavafunction): Removed. (asm_calljavafunction2): Renamed to asm_vm_call_method. 2006-03-05 23:24 twisti * src/vm/vm.c (vm_call_method_intern): Removed. (vm_vmargs_from_valist): Added. (vm_vmargs_from_jvalue): Likewise. (vm_call_method): New function. (vm_call_method_valist): Likewise. (vm_call_method_jvalue): Likewise. (vm_call_method_vmarg): Likewise. (vm_call_method_int): Likewise. (vm_call_method_int_valist): Likewise. (vm_call_method_int_jvalue): Likewise. (vm_call_method_int_vmarg): Likewise. (vm_call_method_long): Likewise. (vm_call_method_long_valist): Likewise. (vm_call_method_long_jvalue): Likewise. (vm_call_method_long_vmarg): Likewise. (vm_call_method_float): Likewise. (vm_call_method_float_valist): Likewise. (vm_call_method_float_jvalue): Likewise. (vm_call_method_float_vmarg): Likewise. (vm_call_method_double): Likewise. (vm_call_method_double_valist): Likewise. (vm_call_method_double_jvalue): Likewise. (vm_call_method_double_vmarg): Likewise. * src/vm/vm.h: Likewise. * src/native/jni.c (_Jv_jni_fill_vmargs_from_vargs): Removed. (_Jv_jni_vmargs_from_args): Likewise. (_Jv_jni_CallObjectMethodA): New function. (_Jv_jni_CallObjectMethod): Use vm_call_method. (_Jv_jni_CallIntMethod): Likewise. (_Jv_jni_CallLongMethod): Likewise. (_Jv_jni_CallFloatMethod): Likewise. (_Jv_jni_CallDoubleMethod): Likewise. (_Jv_jni_CallVoidMethod): Likewise. (_Jv_jni_CallVoidMethodA): Likewise. (_Jv_jni_invokeNative): Likewise. (CallObjectMethodA): Implemented. * src/vm/loader.c (load_class_from_sysloader): Replaced vm_call_method_intern by vm_call_method. (load_class_from_classloader): Likewise. * src/vm/finalizer.c (finalizer_run): Likewise. * src/vm/initialize.c (initialize_class_intern): Likewise. * src/vm/jit/stacktrace.c (stacktrace_inline_fillInStackTrace): Likewise. * src/vm/exceptions.c (throw_exception_exit_intern): Likewise. (new_arrayindexoutofboundsexception): Likewise. * src/vm/properties.c (properties_system_add): Likewise. * src/cacao/cacao.c (setup_debugger_process): Likewise. (getmainclassnamefromjar): Likewise. (main): Likewise. * src/native/vm/VMClassLoader.c (nativeGetResources): Likewise. * src/native/native.c (native_new_and_init): Likewise. (native_new_and_init_string): Likewise. (native_new_and_init_int): Likewise. (native_new_and_init_throwable): Likewise. * src/threads/native/threads.c (threads_init): Likewise. (threads_startup_thread): Likewise. * src/cacaoh/headers.c: Likewise. * src/vm/jit/x86_64/asmpart.S (asm_calljavafunction): Removed. (asm_calljavafunction2): Renamed to asm_vm_call_method. * src/vm/jit/intrp/asmpart.c: Likewise. * src/vm/jit/asmpart.h: Likewise. 2006-03-05 23:05 twisti * tests/regression/native/testarguments.c (nlsub): Use %llx on all architectures. (ndsub): Likewise. 2006-03-05 21:54 christian * src/vm/jit/allocator/simplereg.c (allocate_scratch_registers): Bugfix and reformatting. 2006-03-05 15:51 twisti * src/vm/jit/i386/asmpart.S (asm_calljavafunction2): Pointer to vm_arg block is now in a2. Use new defines. 2006-03-04 18:35 twisti * src/vm/jit/alpha/asmpart.S (asm_calljavafunction2): Pointer to vm_arg block is now in a2. Use new defines. 2006-03-04 18:01 twisti * src/vm/jit/powerpc/asmpart.S (asm_calljavafunction2): Pointer to vm_arg block is now in a2. Use new defines. 2006-03-04 17:19 twisti * src/vm/jit/asmpart.h (ASM_CALLJAVAFUNCTION): Removed. (ASM_CALLJAVAFUNCTION_ADR): Likewise. (ASM_CALLJAVAFUNCTION_INT): Likewise. (ASM_CALLJAVAFUNCTION2): Likewise. (ASM_CALLJAVAFUNCTION2_ADR): Likewise. (ASM_CALLJAVAFUNCTION2_INT): Likewise. (ASM_CALLJAVAFUNCTION2_LONG): Likewise. (ASM_CALLJAVAFUNCTION2_FLOAT): Likewise. (ASM_CALLJAVAFUNCTION2_DOUBLE): Likewise. (asm_calljavafunction2int): Changed signature. (asm_calljavafunction2long): Likewise. (asm_calljavafunction2float): Likewise. (asm_calljavafunction2double): Likewise. 2006-03-04 17:15 twisti * src/vm/global.h (jni_callblock): Removed. * src/vm/vm.c (vm/vm.h): Added. (vm_call_method_intern): New function. (vm_call_method_intern_int): Likewise. (vm_call_method): Likewise. (vm_call_method_int): Likewise. (vm_call_method_long): Likewise. (vm_call_method_float): Likewise. (vm_call_method_double): Likewise. * src/vm/vm.h (vm_arg): Structure added. (vm_call_method_intern): New function. (vm_call_method_intern_int): Likewise. (vm_call_method): Likewise. (vm_call_method_int): Likewise. (vm_call_method_long): Likewise. (vm_call_method_float): Likewise. (vm_call_method_double): Likewise. * src/vm/jit/tools/genoffsets.c (vm/vm.h): Added. (sizejniblock): Renamed to sizevmarg. (offjniitemtype): Renamed to offvmargtype. (offjniitem): Renamed to offvmargdata. * src/vm/jit/x86_64/asmpart.S (asm_calljavafunction2): Pointer to vm_arg block is now in a2. Use new defines. * src/vm/jit/stacktrace.c (vm/vm.h): Added. (ASM_CALLJAVAFUNCTION): Replaced with vm_call_method_intern. * src/vm/exceptions.c: Likewise. * src/vm/properties.c: Likewise. * src/vm/loader.c: Likewise. * src/vm/finalizer.c: Likewise. * src/vm/initialize.c: Likewise. * src/cacao/cacao.c: Likewise. * src/native/vm/VMClassLoader.c: Likewise. * src/threads/native/threads.c: Likewise. * src/cacaoh/headers.c (asm_calljavafunction): Removed. (intrp_asm_calljavafunction): Likewise. (vm_call_method_intern): New function. * src/native/jni.c (fill_callblock_from_vargs): Renamed to _Jv_jni_vmargs_from_vargs. (fill_callblock_from_objectarray): Renamed to _Jv_jni_vmargs_from_objectarray. (_Jv_jni_vmargs_from_objectarray): New function. (_Jv_jni_CallVoidMethodA): Likewise. (ASM_CALLJAVAFUNCTION2): Replaced with appropriate vm_call_method function. (NewObjectA): Implemented. (CallVoidMethodA): Likewise. (CallNonvirtualVoidMethodA): Likewise. (CallStaticVoidMethodA): Likewise. 2006-03-03 00:00 twisti * src/vm/linker.c (link_class_intern): Handle miranda methods properly. * src/vm/global.h (ACC_MIRANDA): Defined. * src/native/vm/VMClass.c (getDeclaredMethods): Don't return miranda methods. 2006-03-01 17:00 twisti * src/vm/options.c: Renamed runverbose to opt_verbosecall. * src/vm/options.h: Likewise. * src/vm/jit/alpha/codegen.c: Likewise. * src/vm/jit/i386/codegen.c: Likewise. * src/vm/jit/intrp/codegen.c: Likewise. * src/vm/jit/mips/codegen.c: Likewise. * src/vm/jit/powerpc/codegen.c: Likewise. * src/vm/jit/x86_64/codegen.c: Likewise. * src/vm/jit/intrp/asmpart.c: Likewise. * src/vm/jit/intrp/dynamic-super.c: Likewise. * src/vm/jit/intrp/java.vmg: Likewise. * src/vm/builtin.c (builtin_trace_exception): Renamed runverbose to opt_verbosecall. Removed stacktrace printing code. * src/vm/exceptions.c (exceptions_handle_exception): Renamed runverbose to opt_verbosecall. Print exception stacktrace when caught. * src/vm/vm.c: Support Sun's commandline options and ignore them if not supported. Reordered options. * src/native/vm/VMObject.c (notify): Removed debug output. (notifyAll): Likewise. (wait): Likewise. * src/native/vm/VMThread.c (suspend): Likewise. (resume): Likewise. (nativeSetPriority): Likewise. (nativeStop): Likewise. (yield): Likewise. * src/native/vm/VMThrowable.c (fillInStackTrace): Renamed par1 to t. 2006-02-23 14:08 twisti * src/vm/jit/intrp/dynamic-super.c (disassemble_prim): New function. (dynamic_super_init): Added disassembling of IADD, ILOAD and GETFIELD_INT. 2006-02-22 14:03 twisti * src/vm/jit/i386/codegen.c (createnativestub): Renamed _exceptionptr to _no_threads_exceptionptr. 2006-02-22 13:34 twisti * src/vm/jit/i386/codegen.c (mm/memory.h): Added. 2006-02-21 16:17 twisti * configure.ac (VERSION_CONFIGURE_ARGS, VERSION_CC, VERSION_CFLAGS): Added define. * src/vm/vm.c (version): Print configure options, compiler version and CFLAGS. 2006-02-21 16:06 twisti * src/vm/jit/intrp/java.vmg (MULTIANEWARRAY): Use malloc instead of a dynamic-sized array (-fomit-frame-pointer). 2006-02-21 13:43 twisti * src/vm/jit/intrp/codegen.c (cacao/cacao.h): Removed. (vm/vm.h): Added. (createnativestub): Replaced ENABLE_STATICVM with WITH_STATIC_CLASSPATH and &env by _Jv_env. * src/vm/jit/intrp/patcher.c: Replaced ENABLE_STATICVM by WITH_STATIC_CLASSPATH. * src/vm/jit/intrp/java.vmg: Likewise. * src/vm/vm.c (mm/memory.h): Added. (vm_create): Allocate the main thread interpreter stack on the Java heap. 2006-02-21 13:40 twisti * src/vm/jit/jit.c (jit_compile_intern): Replaced ENABLE_STATICVM by WITH_STATIC_CLASSPATH. 2006-02-21 13:39 twisti * src/cacao/cacao.c (main): Added main utf variable for better debugability. 2006-02-21 13:37 twisti * src/native/native.c: Small changes. 2006-02-21 13:35 twisti * src/vm/loader.c (load_class_from_classloader): Added name java.lang.String variable for better debugability. 2006-02-21 12:41 twisti * src/vm/jit/powerpc/asmpart.S: Rewritten for PIC code. 2006-02-21 10:47 twisti * src/vm/jit/alpha/asmpart.S: Rewritten for PIC code. 2006-02-21 10:39 twisti * src/vm/jit/x86_64/codegen.c (cacao/cacao.h): Removed. (vm/vm.h): Added. (createnativestub): Replaced ENABLE_STATICVM with WITH_STATIC_CLASSPATH and &env by _Jv_env. 2006-02-21 10:25 twisti * src/vm/jit/i386/.cvsignore, src/vm/jit/i386/linux/.cvsignore: Added TAGS. 2006-02-21 09:34 twisti * src/vm/jit/i386/asmpart.S: Rewritten for PIC code. 2006-02-21 09:31 twisti * src/threads/native/threads.c (vm/vm.h): Added. (threads_startup_thread): Compiler warning fix. 2006-02-21 09:25 twisti * src/vm/jit/stacktrace.c (stacktrace_getCurrentClassLoader): Renamed to stacktrace_getCurrentClass and it returns the first Java method's class on the stack. * src/vm/jit/stacktrace.h (stacktrace_getCurrentClassLoader): Likewise. 2006-02-21 09:18 twisti * src/vm/jit/intrp/engine.c (cacao/cacao.h): Removed. 2006-02-21 09:14 twisti * configure.ac (AC_CONFIG_FILES): Remvoed ifconv, not yet. 2006-02-21 09:11 twisti * configure.ac: Default to AC_ENABLE_SHARED and AC_DISABLE_STATIC. (ifconv): Added. (jni.h): Check for jni.h in GNU Classpath. (static-classpath): Added. * src/vm/vm.c, src/vm/vm.h: New files, contain the JVM startup code. * src/vm/Makefile.am (libvm_la_SOURCES): Added vm.[ch]. * src/cacao/cacao.c: Removed JVM startup code. * src/cacao/cacao.h: Removed. * src/cacao/Makefile.am: Replaced ENABLE_STATICVM by WITH_STATIC_CLASSPATH. (ENABLE_STATICVM): Build a shared library when not defined. * src/vm/options.c, src/vm/options.h (mm/memory.h, native/jni.h): Added. (native/jni.h): Added. (opt_ind): Renamed to opt_index. (opt_jar, opt_run, opt_method, opt_signature, opt_ifconv): Added. (get_opt): Renamed to options_get. (options_prepare): New method. * src/cacaoh/cacaoh.c (main): Use new option handling. * src/vm/jit/alpha/codegen.c, src/vm/jit/arm/codegen.c, src/vm/jit/i386/codegen.c, src/vm/jit/mips/codegen.c, src/vm/jit/powerpc/codegen.c (cacao/cacao.h): Removed. (vm/vm.h): Added. (createnativestub): Replaced ENABLE_STATICVM with WITH_STATIC_CLASSPATH and &env by _Jv_env. * src/vm/jit/patcher.h, src/vm/jit/alpha/patcher.c, src/vm/jit/arm/patcher.c, src/vm/jit/i386/patcher.c, src/vm/jit/mips/patcher.c, src/vm/jit/powerpc/patcher.c, src/vm/jit/x86_64/patcher.c: Replaced ENABLE_STATICVM by WITH_STATIC_CLASSPATH. * src/vm/jit/x86_64/asmpart.S: Rewritten for PIC code. * src/vm/signal.c (cacao/cacao.h): Removed. (vm/vm.h): Added. (signal_handler_sigint): Use vm_* functions. * src/native/native.c: Replaced ENABLE_STATICVM by WITH_STATIC_CLASSPATH. (cacao/cacao.h): Removed. (native_resolve_function): Smaller changes. * src/native/vm/VMRuntime.c: Replaced ENABLE_STATICVM by WITH_STATIC_CLASSPATH. (cacao/cacao.h): Removed. (vm/vm.h): Added. (execInternal): Removed. (exit): Use vm_shutdown. * src/native/native.h: Replaced ENABLE_STATICVM by WITH_STATIC_CLASSPATH. * src/native/Makefile.am: Likewise. * src/native/vm/VMSystemProperties.c: Likewise. * src/threads/native/threads.c (cacao/cacao.h): Removed. * src/native/jni.h: Removed our JNI stuff and include GNU Classpath's. * src/native/jni.c: Adapt to the new jni.h header. (ReleaseArrayElements): Copy correct element type. (GetArrayRegion): Likewise. (SetArrayRegion): Likewise. 2006-02-20 23:35 twisti * src/vm/global.h: Sorted java_array definitions. 2006-02-20 23:31 twisti * src/vm/linker.c (link_class_intern): Comment reformatted. 2006-02-20 15:19 twisti * src/vm/jit/intrp/engine.c (USE_spTOS): Disable per default. 2006-02-20 14:08 twisti * src/vm/classcache.c (classcache_new_name): Keep c89 compilers happy. 2006-02-19 22:27 christian * src/vm/jit/jit.h: added define STKEEP * src/vm/jit/simplereg.c (reg_free_tmp_func): SAVEDTMP and TMPARG flags are not cleared anymore from Stackslots. (reg_alloc_dup): TEMPVARs are not reused as SAVEDVARs anymore. This has to be checked for conflicts. (reg_mark_copy): Added. TEMPVAR Destination Stackslots are marked here with STCOPY, if they use a duplicated register/memory location. Not reused register/memory locations of TEMPVAR source Stacklots are freed again. (allocate_scratch_registers): ICMD_DUPx and ICMD_SWAP use now the new reg_mark_copy. 2006-02-16 19:39 christian * src/vm/jit/stack.h (COPY): Prevent setting varkind to STACKVAR for stackslots copied by DUPx and SWAP. (DUP) Likewise. * src/vm/jit/stack.c (analyse_stack): Copy elimination and needed conflict resolution was implemented as described in the CACAO paper. As "potential exception throwing instruction" for now only INVOKE*s are regarded. Conflict resolution over DUPx and SWAP should be refined to be less conservative. * src/vm/jit/jit.c (jit_init): Stackreq for JAVA_IINC is set to 0 again, since no dummy stackslot is needed anymore for conflict resolution with XSTORE. * src/vm/jit/allocator/simplereg.c (interface_regalloc): Reuse unused float and int argument registers for interfaces, too. (reg_free_temp): Regard the new stackslot flag STCOPY, before freeing a register/memory location. (reg_alloc_dup): New function to allocate, if possible, the same register/memory location for stackslot copied by DUPx and SWAP. (allocate_scratch_registers): The new function reg_alloc_dup is used now for allocation at ICMD_DUPx and ICMD_SWAP, if possible. * src/vm/jit/jit.h: Added STCOPY as stackslot flag to mark simultanously live stackslots with same register after DUPx and SWAP. * doc/stack.txt: Updated invariants to show the change with IINC (no dummy stacklot anymore). 2006-02-14 20:27 edwin * src/native/jni.c (_Jv_jni_invokeNative): Cleanup. * src/native/jni.c (Changes): Added my name. * src/native/jni.c (vim boilerplate): Added. 2006-02-14 20:10 edwin * src/native/jni.c (_Jv_jni_invokeNative): Look up _all_ instance methods in the vftbl. 2006-02-14 20:09 edwin * src/vm/linker.c (link_class_intern): Do not override package-private methods from other packages. * src/vm/linker.c (vim boilerplate): Added. 2006-02-14 15:53 edwin * src/vm/classcache.c, src/vm/classcache.h: Merge cache entries when they are resolved to the same class. 2006-02-14 15:34 edwin * src/vm/utf8.c, src/vm/utf8.h (utf_full_hashkey): Added. 2006-02-14 11:01 twisti * configure.ac (AC_INIT): Changed version number to 0.95+cvs. (CFLAGS): Changed optimization back to -O0. 2006-02-14 10:30 twisti * ChangeLog: Updated for release 0.95. 2006-02-14 10:14 twisti * configure.ac: Updated version to 0.95, set optimization level to -O2, some indent changes. * ChangeLog-2005: Removed 2006 entries. 2006-02-14 01:10 twisti * src/vm/jit/profile/profile.c (profile_thread): Fixed compiler warning. 2006-02-14 01:05 twisti * src/vm/jit/intrp/codegen.c (createcompilerstub): Store the methodinfo pointer in the same place as in the methodheader for compiled methods. 2006-02-14 00:41 twisti * src/vm/jit/x86_64/codegen.c (createcompilerstub): Store the methodinfo pointer in the same place as in the methodheader for compiled methods. 2006-02-14 00:33 twisti * contrib/svn2cl.xsl: New file. * THIRDPARTY (contrib/svn2cl.xsl): Added copyright message. 2006-02-14 00:05 twisti * NEWS: Updated 0.95 release notes. 2006-02-14 00:03 twisti * src/vm/loader.c (load_field): Removed f->xta. * src/vm/class.h (vm/method.h): Added. (vm/jit/inline/sets.h): Removed. * src/vm/method.h (vm/jit/inline/parseXTA.h): Removed. * src/vm/field.h (vm/jit/inline/parseXTA.h): Likewise. (fieldinfo): Removed member xta. * src/lib/Makefile.am (EXTRA_DIST): Fixed typo. 2006-02-14 00:01 twisti * src/vm/jit/inline/sets.c, src/vm/jit/inline/parseRTstats.c, src/vm/jit/inline/parseRT.c, src/vm/jit/inline/parseRTflags.h, src/vm/jit/inline/parseRTprint.h, src/vm/jit/inline/sets.h, src/vm/jit/inline/parseRTstats.h, src/vm/jit/inline/parseRT.h, src/vm/jit/inline/parseXTA.c, src/vm/jit/inline/parseXTA.h: Removed. 2006-02-13 23:45 twisti * src/vm/class.c (class_findmethod_approx): Removed. * src/vm/class.h (class_findmethod_approx): Likewise. (class_resolvemethod_approx): Likewise. 2006-02-13 23:16 edwin * NEWS: Added JNI method resolution fix. 2006-02-13 18:55 twisti * src/vm/method.c (assert.h): Added. (vm/linker.h): Likewise. (vm/jit/methodheader.h): Likewise. (method_vftbl_lookup): New method. * src/vm/method.h (vm/linker.h): Added. (method_vftbl_lookup): New method. Fixes bug #17 and #18. * src/native/jni.c: Complete rewrite of Call*Method code. 2006-02-13 10:53 twisti * src/vm/utf8.c (utf_display): Some reformatting. (utf_display_classname): Likewise. 2006-02-13 00:12 twisti * src/vm/jit/mips/codegen.c (createcompilerstub): Store the methodinfo pointer in the same place as in the methodheader for compiled methods. 2006-02-12 23:43 twisti * src/vm/jit/alpha/md.c (md_assembler_get_patch_address): New method. (md_codegen_findmethod): Use assert's directly. * src/vm/jit/mips/md.c (md_assembler_get_patch_address): Likewise. (md_codegen_findmethod): Likewise. * src/vm/jit/alpha/codegen.c (createcompilerstub): Store the methodinfo pointer in the same place as in the methodheader for compiled methods and pass the pointer in REG_ITMP1. * src/vm/jit/alpha/md-asm.h (mptr): Defined. * src/vm/jit/powerpc/asmpart.S (asm_call_jit_compiler): methodinfo pointer is passed via itmp1. Use md_assembler_get_patch_address to get the patch address. (asm_calljavafunction, asm_calljavafunction2): Pass methodinfo pointer via itmp1. 2006-02-12 23:22 twisti * src/vm/jit/powerpc/codegen.c (createcompilerstub): Store the methodinfo pointer in the same place as in the methodheader for compiled methods. * src/vm/jit/powerpc/asmpart.S (asm_call_jit_compiler): methodinfo pointer is passed via itmp1. (asm_calljavafunction, asm_calljavafunction2): Pass methodinfo pointer via itmp1. 2006-02-12 22:08 edwin * src/threads/native/threads.c (threads_dump): Removed unused variable 'ee'. 2006-02-12 21:57 edwin * src/native/vm/VMClass.c (Java_java_lang_VMClass_getDeclaredMethods): Cast to java_lang_Class in order to avoid compiler warning. * src/native/vm/VMClass.c (Changes): Added my name. * src/native/vm/VMClass.c (vim biolerplate): Added. 2006-02-12 21:47 edwin * src/threads/native/threads.c (allocLockRecordSimple): Fixed declaration after code error. 2006-02-12 16:28 twisti * src/vm/jit/i386/codegen.c (createcompilerstub): Store the methodinfo* in the same place as in the methodheader for compiled methods. 2006-02-12 16:24 edwin * NEWS: Added directory check bugfix. 2006-02-12 16:10 edwin * NEWS: Added two bugfixes. 2006-02-12 16:02 edwin * src/vm/loader.c, src/vm/loader.h (vim boilerplate): Added. 2006-02-12 13:11 twisti * src/vm/zip.c (zip_open): Don't add directories to the zipfile hashtable. We use the trailing `/' to identify a directory (i hope that's correct). 2006-02-12 12:59 christian * src/vm/jit/x86_64/md-abi.c (md_param_alloc): Regard use of A0 for returning float values. 2006-02-12 02:18 edwin * src/native/vm/VMClassLoader.c (vim boilerplate): Added. 2006-02-12 02:17 edwin * src/vm/classcache.c (classcache_store): Made classcache_store idempotent. * src/native/vm/VMClassLoader.c (Java_java_lang_VMClassLoader_defineClass): Store defined class with classcache_store instead of just with classcache_store_defined, so it an initiating loader is recorded for the class. This should solve problems with classes that are defined outside of a loadClass context (e.g. by java.lang.reflect.Proxy). 2006-02-12 00:30 twisti * src/native/vm/VMClass.c (getDeclaredMethods): Set the method's class in java.lang.reflect.Method. * src/native/vm/Method.c (toolbox/logging.h, vm/jit/stacktrace.h): Removed. * src/native/vm/VMSystem.c (identityHashCode): Use casts. 2006-02-12 00:25 twisti * src/vm/exceptions.c, src/vm/exceptions.h (exceptions_throw_nosuchmethoderror): New method. 2006-02-11 21:25 christian * src/vm/jit/stack.h (COPY) All copied stackslots set to TEMPVAR. This prevents conflicts with LOCALVAR and (DUP) Likewise. STACKVARS. 2006-02-07 23:18 edwin * src/vm/jit/stack.h (TYPE_VERIFYERROR): Converted most of body to a function. * src/vm/exceptions.c, src/vm/exceptions.h (exceptions_throw_verifyerror_for_stack): Added. * src/vm/exceptions.c, src/vm/exceptions.h (vim boilerplate): Added. 2006-02-07 21:27 edwin * src/vm/jit/stack.h (vim boilerplate): Fixed. 2006-02-07 21:15 twisti * NEWS: Added some stuff. 2006-02-07 17:28 edwin * src/vm/jit/intrp/codegen.c (createcalljavafunction): Removed t_inlining_globals. 2006-02-07 17:22 edwin * src/vm/jit/codegen-common.c, src/vm/jit/codegen-common.h (codegen_setup): Removed t_inlining_globals argument. * src/vm/jit/codegen-common.c (codegen_finish): Prepared for inlined line number tables. References with line number <-3 will not be relocated. * src/vm/jit/codegen-common.c (codegen_createnativestub): Removed t_inlining_globals and inlining_setup. * src/vm/jit/codegen-common.h (Changes): Added my name to 'Changes'. * src/vm/jit/inline/inline.c, src/vm/jit/inline/inline.h: Ripped out old inliner. * src/vm/jit/jit.c: Removed inlining headers. * src/vm/jit/jit.c (INLINE_GOTO): Added instruction name to table. * src/vm/jit/jit.c (jit_compile_intern): Removed t_inlining_globals argument. * src/vm/jit/codegen-common.c, src/vm/jit/codegen-common.h, src/vm/jit/inline/inline.c, src/vm/jit/inline/inline.h (vim boilerplate): Added. 2006-02-07 16:52 edwin * src/vm/jit/i386/codegen.c (codegen): Prepared for inlining. The icmds ICMD_INLINE_START, ICMD_INLINE_END, ICMD_INLINE_GOTO were implemented, and at the start of exception handlers the indepth is no longer assumed to be 1. 2006-02-07 16:47 edwin * src/vm/jit/jit.h (Changes): Fixed tabs. 2006-02-06 21:06 twisti * src/threads/native/threads.c, src/threads/native/threads.h (sleepThread): Renamed to thread_sleep. 2006-02-06 21:01 twisti * src/cacao/cacao.c (vm/jit/profile.h): Changed to vm/jit/profile/profile.h. (main): profile_init and profile_start_thread calls added. 2006-02-06 18:50 twisti * configure.ac (AC_CONFIG_FILES): Added src/vm/jit/profile/Makefile. 2006-02-06 18:49 twisti * src/vm/jit/Makefile.am (DIST_SUBDIRS): Added profile. (PROFILE_LIB): Added. (PROFILE_SOURCES): Removed. 2006-02-06 18:48 twisti * src/vm/jit/profile/profile.c (profile_init): New method. (profile_thread): Likewise. (profile_start_thread): Likewise. * src/vm/jit/profile/profile.h (profile_init): Added. (profile_start_thread): Likewise. * src/vm/jit/profile/Makefile.am: New file. * src/vm/jit/profile/.cvsignore: Likewise. 2006-02-06 18:34 twisti * src/vm/jit/profile.h: Moved to src/vm/jit/profile/. 2006-02-06 18:33 twisti * src/vm/jit/profile.c: Moved to src/vm/jit/profile/. * src/vm/jit/profile: Added. 2006-02-06 18:32 twisti * src/vm/jit/profile: Ooops. 2006-02-06 18:31 twisti * src/vm/jit/profile.c: Moved to src/vm/jit/profile/. 2006-02-06 18:14 twisti * src/vm/jit/allocator/Makefile.am: Use tabs instead of space. (INCLUDE): Renamed to AM_CPPFLAGS. 2006-02-06 08:22 edwin * doc/Makefile.am (EXTRA_DIST): Added inlining_stacktrace.txt and native_threads.txt. 2006-02-06 06:49 edwin * src/threads/native/threads.c: Minor cleanup. 2006-02-06 06:46 edwin * src/threads/native/threads.c: Uncuddled `else`s and other cleanup. 2006-02-06 06:16 edwin * doc/inlining_stacktrace.txt: Clarified, added entry after the inlined body for the rest of the line after the call. 2006-02-06 05:00 edwin * src/vm/jit/i386/machine-instr.h (compare_and_swap): Commented. 2006-02-06 04:50 edwin * doc/native_threads.txt: Added. 2006-02-06 04:46 edwin * src/threads/native/threads.c (allocLockRecordPool): Relink the free list of lock records when reusing a pool from the global_pool. This avoids cross-linking of lock record owned by different threads, and hopefully fixes our long-standing deadlock problem. * src/threads/native/threads.c (allocLockRecordSimple, recycleLockRecord) (initObjectLock): Temporarily added assertions to shake out possible further bugs in the free list handling. * src/threads/native/threads.c (monitorEnter, monitorExit): Commented. * src/threads/native/threads.c (Changes): Added my name to 'Changes'. * src/threads/native/threads.c (vim boilerplate): Added. 2006-02-06 01:28 edwin * src/vm/jit/stacktrace.c (stacktrace_add_method_intern): Added. (stacktrace_add_method): Documented. Now uses stacktrace_add_method_intern. (stacktrace_getCurrentClassLoader): Documented. (stacktrace_dump_trace): Removed unused variable. (Changes): Added my name to 'Changes'. 2006-02-06 01:08 edwin * src/vm/jit/verify/typecheck.c (verify_basic_block): Teach the verifier about the new inline instructions ICMD_INLINE_START, ICMD_INLINE_END, and ICMD_INLINE_GOTO. 2006-02-06 01:02 edwin * src/vm/jit/stack.c (analyse_stack): Set bptr->stack for each visited block. (show_icmd): Implemented printing of new inline instructions. 2006-02-06 00:02 edwin * src/vm/jit/allocator/simplereg.c (ICMD_INLINE_GOTO): Added. (Changes): Added my name to 'Changes'. (vim boilerplate): Added. 2006-02-05 23:34 edwin * src/vm/jit/allocator/lsra.c, src/vm/jit/allocator/lsra.h (lsra, lsra_init): Removed t_inlining_globals argument. (Changes): Added my name to 'Changes'. (vim boilerplate): Added. * src/vm/jit/jit.c (lsra): Removed t_inlining_globals argument. 2006-02-05 23:24 edwin * src/vm/jit/jit.c (reg_setup): Removed t_inlining_globals argument. * src/vm/jit/codegen-common.c (reg_setup): Removed t_inlining_globals argument. * src/vm/jit/reg.c, src/vm/jit/reg.h (reg_setup): Removed t_inlining_globals argument. (Changes): Added my name to 'Changes'. (vim boilerplate): Added. 2006-02-05 23:09 edwin * src/vm/jit/jit.h (Changes): Added my name to 'Changes'. 2006-02-05 23:07 edwin * src/vm/jit/jit.h (ICMD_INLINE_GOTO): Added. Not used, yet. * src/vm/jit/jit.h (basicblock): Added 'stack' field. Not used, yet. * src/vm/jit/jit.h, src/vm/jit/jit.c (vim boilerplate): Added. 2006-02-05 23:02 edwin * src/vm/jit/parse.c (parseRT.h, parseXTA.h, inline.h, parseRTprint.h): No longer included. (parse): Removed t_inlining_globals * from arguments. * src/vm/jit/jit.c (parse): Removed t_inlining_globals * from arguments. 2006-02-05 22:47 edwin * src/vm/jit/parse.c, src/vm/jit/parse.h (inline_env): Removed most occurences. (bound_check1): Renamed to bound_check_exclusive. 2006-02-05 22:22 edwin * src/vm/jit/parse.c (useinlining): Removed. 2006-02-05 17:36 edwin * doc/inlining_stacktrace.txt: Added warning about signedness. Fixed copy&paste errors. 2006-02-05 15:26 edwin * doc/inlining_stacktrace.txt: Added. * src/vm/jit/dseg.c (dseg_addlinenumber_inline_start): Added. (dseg_addlinenumber_inline_end): Added. (dseg_addlinenumber): Commented. (vim boilerplate): Added. * src/vm/jit/dseg.h (linenumberref): Changed for inlining stacktraces. Made targetmpc a ptrint, made linenumber s4, reordered fields. (dseg_addlinenumber_inline_start): Added. (dseg_addlinenumber_inline_end): Added. (vim boilerplate): Added. 2006-02-05 13:52 stefan * src/threads/native/threads.h: waiting is correctly typed now (previous checkin was wrong). 2006-02-05 13:39 stefan * src/threads/native/threads.c: Let's see if this improves the dead lock situation (waiter handling changed slightly). 2006-02-05 12:22 twisti * tests/regression/native/.cvsignore (*.h, *.so): Added. 2006-02-05 12:20 twisti * tests/regression/native/Makefile.am, tests/regression/codepatching/Makefile.am, tests/regression/Makefile.am (JAVAFLAGS): Use VM_ZIP_STRING and GLIBJ_ZIP_STRING. 2006-02-05 12:03 twisti * src/vm/jit/powerpc/asmpart.S, src/vm/jit/alpha/asmpart.S, src/vm/jit/mips/asmpart.S, src/vm/jit/i386/asmpart.S, src/vm/jit/x86_64/asmpart.S, src/vm/jit/arm/asmpart.S: Disable executable stacks, this is required for Gentoo and we actually don't need them. 2006-02-05 00:40 twisti * src/vm/jit/stacktrace.c (stacktrace_create): Get the value of _no_threads_stackframeinfo, since it's a pointer, not a structure. (stacktrace_print_trace): Check for NULL value and return. * src/vm/exceptions.c (exceptions_handle_exception): Compiler warning fixed. (exceptions_print_exception): Check for NULL value, print it and return. 2006-02-05 00:16 twisti * src/mm/memory.h (string.h): Moved after config.h. (OFFSET): Use internal datatypes. (NEW, MNEW): Use the proper GC macro when Gc is disabled. 2006-02-05 00:13 twisti * src/mm/nogc.c (config.h): Moved in front of system headers. (heap_allocate): Call exceptions_throw_outofmemory_exit. (nogc_init): Likewise. 2006-02-05 00:01 twisti * src/threads/none/: New. * src/threads/none/threads.h: New file. We need this one for e.g. stacktrace.c where we use thread stuff in the code. 2006-02-04 23:59 twisti * src/vm/access.c (assert.h): Move after config.h. * src/vm/properties.c (mm/memory.h): Added. * src/vm/jit/stacktrace.c (mm/memory.h): Likewise. (threads.h): Added. (stacktrace_create): Handle stackframeinfo when threads disabled properly. 2006-02-04 23:56 twisti * src/vm/jit/allocator/simplereg.c (allocate_scratch_registers): Generate an exception instead of exiting. * src/vm/jit/allocator/lsra.c (lsra_scan_registers_canditates): Likewise. 2006-02-04 20:15 twisti * src/vm/jit/stacktrace.h (stacktrace_getCallingClassLoader): Renamed to stacktrace_getCurrentClassLoader. * src/cacaoh/headers.c (nativelyoverloaded): Fixed compiler warning. 2006-02-04 19:09 twisti * src/native/native.c (native_resolve_function): Print failed is the symbol was not found. 2006-02-04 19:08 twisti * src/vm/jit/stacktrace.h (STACKTRACE_CAPACITY_DEFAULT) (STACKTRACE_CAPACITY_INCREMENT): Changed default from 40 to 80, seems this is what eclipse and tomcat want. (stacktracebuffer): Changed entries from an array to a pointer. 2006-02-04 19:04 twisti * src/vm/jit/stacktrace.c (stacktrace_add_entry): Reallocate to stb->entries. (stacktrace_create): Do two dump and heap allocs, does not affect performance. (stacktrace_getCallingClassLoader): Renamed to stacktrace_getCurrentClassLoader. * src/native/jni.c (FindClass): Renamed stacktrace_getCallingClassLoader to stacktrace_getCurrentClassLoader. * src/native/vm/VMStackWalker.c (getCallingClassLoader): Revert to old implementation. 2006-02-04 17:39 edwin * doc/stack.txt: Typos fixed. 2006-02-04 17:31 edwin * doc/stack.txt: Expanded tabs. * doc/Makefile.am (stack.txt): Added EXTRA_DIST entry for stack.txt. 2006-02-04 17:25 edwin * doc/stack.txt: Added. This file describes some details about the stack representation. 2006-02-04 00:43 twisti * src/native/Makefile.am (CLEANFILES): Always clean nativetable.inc. ($(srcdir)/native.c): Moved inside if ENABLE_STATICVM where it belongs! Dammit! 2006-02-04 00:33 twisti * src/native/Makefile.am: Accidentally moved the library into if ENABLE_STATICVM. * src/native/include/Makefile.am: Enable accidentally removed dependencies. 2006-02-04 00:13 edwin * src/vm/jit/verify/typecheck.c (logging): Adapted to new logging API. 2006-02-04 00:08 edwin * src/vm/jit/stack.h (MARKREACHED): Use BBREACHED for readability. (vim boilerplate): Added. 2006-02-04 00:04 edwin * src/vm/method.h (methodinfo): Fixed copy&paste error in comment. (vim boilerplate): Added. 2006-02-04 00:00 edwin * src/vm/jit/stacktrace.c (vim boilerplate): Added. 2006-02-03 22:57 twisti * configure.ac (VM_ZIP_STRING): Added. (GLIBJZ): Renamed to GLIBJ_ZIP_STRING. * src/vm/global.h (CACAO_VM_ZIP_PATH): Use GLIBJ_ZIP_STRING. * src/lib/Makefile.am (GLIBJ_ZIP): Likewise. * src/native/include/Makefile.am, src/native/Makefile.am (VM_ZIP): Use VM_ZIP_STRING. (GLIBJ_ZIP): Use GLIBJ_ZIP_STRING. * contrib/setenvinstalled.in, contrib/setenvsource.in: Likewise. 2006-02-03 22:53 twisti * src/native/vm/VMRuntime.c (nativeLoad): #ifdef ENABLE_STATICVM warning fix. 2006-02-03 22:24 twisti * src/vm/global.h (CACAO_VM_ZIP_PATH): Removed accidentally commited VM_ZIP_FILE. * src/native/Makefile.am (VM_ZIP): Likewise. * src/native/include/Makefile.am (VM_ZIP): Likewise. 2006-02-03 22:03 twisti * src/vm/global.h (CACAO_VM_ZIP_PATH): Set correctly for ifndef ENABLE_ZLIB. * src/lib/Makefile.am (JAVA_VM_FILES): Renamed to VM_JAVA_FILES. (VM_CLASS_FILES): Added. (pkgdata_DATA): Set to class files for ifndef ENABLE_ZLIB. * src/native/include/Makefile.am (VM_ZIP): Set correctly for ifndef ENABLE_ZLIB. * src/native/Makefile.am (VM_ZIP): Likewise. 2006-02-03 21:58 twisti * src/vm/suck.c (suck_add): Fixed compiler warning with #ifndef ENABLE_ZLIB. 2006-02-03 21:51 twisti * src/native/tools/.cvsignore (TAGS): Added. 2006-02-03 20:54 twisti * src/native/Makefile.am (VM_ZIP, GLIBJ_ZIP, CLASSPATH): Added. 2006-02-03 20:53 twisti * src/native/tools/gennativetable.c (main): Don't free bootclasspath, do proper initalization of subsystems, don't link classes. 2006-02-03 19:44 twisti * src/native/Makefile.am (nativetable.inc): Pass classpath on commandline, environment variable support was removed. 2006-02-03 19:42 twisti * src/native/tools/gennativetable.c: Updated to work again. 2006-02-03 19:27 twisti * src/cacao/Makefile.am (INCLUDES): Renamed to AM_CPPFLAGS. (CLASSPATH_PREFIX): Renamed to CLASSPATH_LIBDIR. 2006-02-03 18:45 twisti * configure.ac (ENABLE_SOFTFLOAT): Added. (NDEBUG): Bugfix for AM_CONDITIONAL. 2006-02-03 14:14 twisti * src/vm/jit/stacktrace.c (stacktrace_entry): Wrong return value, added some checks. 2006-02-03 13:19 twisti * src/vm/jit/stacktrace.c, src/vm/jit/stacktrace.h (lineNumberTableEntry): Renamed to linenumbertable_entry. (addEntry): Renamed to stacktrace_add_entry. (stacktrace_fillInStackTrace_methodRecursive): Removed. (stacktrace_fillInStackTrace_method): Renamed to stacktrace_add_method. (cacao_stacktrace_fillInStackTrace): Renamed to stacktrace_create. (stackTraceCollector): Removed. (cacao_stacktrace_NormalTrace): Renamed to stacktrace_fillInStackTrace. (classContextCollector): Removed. (cacao_createClassContextArray): Renamed to stacktrace_getClassContext. (stacktrace_classLoaderCollector): Removed. (cacao_currentClassLoader): Renamed to stacktrace_getCallingClassLoader. (getStackCollector): Removed. (cacao_getStackForVMAccessController): Renamed to stacktrace_getStack. * src/native/jni.c (jni_init): Use new GCNEW. (FindClass): Renamed cacao_currentClassLoader to stacktrace_getCallingClassLoader. * src/native/vm/VMAccessController.c (getStack): Renamed cacao_getStackForVMAccessController to stacktrace_getStack. * src/native/vm/VMStackWalker.c (getClassContext): Renamed cacao_createClassContextArray to stacktrace_getClassContext. (getCallingClass): Likewise. (getCallingClassLoader): Call stacktrace_getCallingClassLoader. * src/native/vm/Method.c (config.h): Added. (invokeNative): Renamed cacao_createClassContextArray to stacktrace_getClassContext. * src/native/vm/Field.c (config.h): Added. (cacao_get_field_address): Renamed cacao_createClassContextArray to stacktrace_getClassContext. Check for CLASS_INITIALIZED. * src/native/vm/VMThrowable.c (native/include/gnu_classpath_Pointer.h): Added. (fillInStackTrace): Call stacktrace_fillInStackTrace. (getStackTrace): Adapted. * src/mm/memory.h (GCNEW): Use only 1 parameter, like NEW. (GCMNEW): Added. 2006-02-03 12:46 twisti * src/threads/native/threads.h (THREADOBJECT): Don't cast to java_lang_VMThread*, we don't need that. 2006-02-03 12:38 twisti * src/vm/method.c (method_printflags, method_print): Check for NULL. * src/vm/field.c (field_printflags, field_print) Likewise. (stdio.h): Added. * src/vm/class.c (class_printflags, class_print): Likewise. 2006-02-02 09:16 twisti * configure.ac (AC_PROG_JAR): Added. * m4/ac_prog_jar.m4: New file. * src/lib/Makefile.am (VM_ZIP): Added. (vm.zip): Check if $(JAR) is zip or jar type. 2006-02-02 08:51 twisti * src/vm/loader.c (loader_load_all_classes): Added missing #ifde ENABLE_ZLIB. 2006-02-02 08:45 twisti * configure.ac (NDEBUG): Added missing WITH_BINUTILS_DISASSEMBLER conditional. (zlib): Fixed handling. 2006-01-31 23:54 twisti * src/vm/jit/i386/codegen.c (codegen): Added basic block frequency count code. 2006-01-31 23:45 twisti * src/vm/jit/profile.c ("mm/memory.h,vm/options.h): Added. (list_method_entry): Likewise. (profile_printstats): Sort methods into a list and print it sorted, added basic block frequency output. 2006-01-31 23:43 twisti * src/vm/method.h (methodinfo): Renamed executioncount to frequency. Added bbfrequency and cycles. * src/vm/jit/x86_64/codegen.c (codegen): Added cycle profiling code. * src/vm/jit/x86_64/codegen.h (M_FMOV): Added. (M_IADD_MEMBASE, M_IADC_MEMBASE, M_ISUB_MEMBASE, M_ISBB_MEMBASE): Likewise. (M_RDTSC, PROFILE_CYCLE_START, PROFILE_CYCLE_STOP): Likewise. * src/vm/jit/x86_64/emitfuncs.c (x86_64_inc_membase) (x86_64_incl_membase): Fixed. (emit_rdtsc): Added. * src/vm/jit/jit.c (jit_compile): Free m->bbfrequency memory. (jit_compile_intern): Allocate m->bbfrequency memory. * src/vm/jit/jit.h: Reformatting. 2006-01-31 23:29 twisti * src/vm/statistics.c, src/vm/jit/inline/inline.c: Removed inlining statistics stuff. 2006-01-31 23:27 twisti * src/vm/options.c, src/vm/options.h (opt_rt, opt_xta, opt_vta): Removed. (opt_prof_bb): Added. * src/cacao/cacao.c: Likewise. (OPT_PROF_OPTION): Added. 2006-01-31 22:31 twisti * src/vm/jit/stack.c (show_icmd_block): Print the basic block type. 2006-01-31 22:27 twisti * src/toolbox/list.c, src/toolbox/list.h (list_add_before): Added. 2006-01-31 15:41 twisti * src/vm/jit/powerpc/codegen.c, src/vm/jit/alpha/codegen.c, src/vm/jit/mips/codegen.c, src/vm/jit/i386/codegen.c (codegen): Use CLASS_IS_OR_ALMOST_INITIALIZED macro, saves some code space. 2006-01-31 15:35 twisti Fixes Debian bug #350729 * src/vm/jit/i386/asmpart.S (asm_md_init): Added, puts the FPU to 64-bit precision mode. * src/vm/jit/i386/md.c (md_init): Call asm_md_init. * src/vm/jit/asmpart.h (asm_md_init): Added. (has_no_x_instr_set): Removed. * src/vm/options.c, src/vm/options.h (has_ext_instr_set): Removed. * src/vm/jit/jit.c (jit_init): Removed has_no_x_instr_set call. * src/vm/jit/alpha/asmpart.S (has_no_x_instr_set): Renamed to asm_md_init. * src/vm/jit/alpha/md.c (has_ext_instr_set): Added. (md_init): Call asm_md_init. * src/vm/jit/alpha/md.h (has_ext_instr_set): Added. 2006-01-31 15:18 edwin * src/vm/classcache.c: Added a formal description of the classcache. 2006-01-31 14:24 twisti * src/vm/signal.c (signal_handler_sigint): Typo, reported by Chris Burdess on irc. 2006-01-30 16:25 twisti * src/vm/jit/i386/codegen.c (codegen): Added profiling code. (ICMD_IINC): Use macros. * src/vm/jit/i386/codegen.h (ucontext.h): Removed. (thread_restartcriticalsection): Likewise. (M_IADD_IMM_MEMBASE): Added. 2006-01-30 15:44 twisti * src/vm/options.h, src/vm/options.c (opt_prof): Added. * src/cacao/cacao.c (OPT_PROF): Added. (exit_handler): Added profile_printstats when opt_prof is enabled. * src/vm/class.h (classinfo): Members classUsed and impldBy removed. * src/vm/loader.c (load_class_from_classbuffer): Likewise. * src/vm/linker.c (link_primitivetype_table): Likewise. (link_class_intern): Likewise. * src/vm/jit/inline/inline.c: Likewise. * src/vm/method.h (methodinfo): Added member executioncount. * src/vm/jit/x86_64/codegen.c (codegen): Added profiling code. Some code reordering, using more macros and save some code space. * src/vm/jit/x86_64/codegen.h (M_ILD32, M_LLD32, M_IST_IMM, M_IST32) (M_LST32, M_IST32_IMM, M_LST32_IMM32, M_IINC_MEMBASE, M_ITEST) (M_CMP_IMM_MEMBASE, M_ICMP, M_ICMP_IMM, M_ICMP_IMM_MEMBASE, M_CMOVEQ) (M_CMOVNE, M_CMOVLT, M_CMOVLE, M_CMOVGE, M_CMOVGT, M_CMOVB, M_CMOVA) (M_CMOVP, M_CLR): Added. * src/vm/jit/x86_64/emitfuncs.c (x86_64_emit_ifcc): Use macros. (x86_64_call_mem): Changed mem argument to ptrint type. * src/vm/jit/x86_64/emitfuncs.h (x86_64_call_mem): Likewise. * src/vm/jit/profile.c, src/vm/jit/profile.h: New files. * src/vm/jit/Makefile.am (DISASS_OBJ): Renamed to DISASS_SOURCES. (PROFILE_SOURCES): Added. 2006-01-30 14:24 christian * src/vm/jit/allocator/simplereg.c (interface_regalloc): Used m->parseddesc->arg[int|flt|adr]reguse to enable use of unused argumentregisters in leadmethods. (local_regalloc): Likewise. (reg_init_temp): Likewise. 2006-01-30 11:26 christian * src/vm/jit/allocator/simplereg.c: Ensured proper alignment of all doubles and longs if ALIGN_[DOUBLES|LONGS]_IN_MEMORY is defined. (local_regalloc): Fixed error for HAS_ADREDD_REGISTER_FILE - else was missing. Ensured use of unused argument register in leafmethod before use of saved registers. Regarded PACK_REGS for SUPPORT_COMBINE_INTEGER_REGISTER archs for unused integer argument registers. * src/vm/jit/i386/arch.h: Added defines for ALIGN_[DOUBLES|LONGS]_IN_MEMORY. * src/vm/jit/powerpc/arch.h: Likewise. 2006-01-29 17:27 twisti * src/vm/jit/stack.c (show_icmd): Fixed ICMD_ELSE_ICONST output. 2006-01-28 14:42 twisti * src/vm/jit/powerpc/linux/md-abi.c, src/vm/jit/powerpc/darwin/md-abi.c (md_return_alloc): Use m->parseddesc->paramcount instead of m->paramcount. * src/vm/jit/schedule/schedule.c (schedule_init): Likewise. * src/vm/jit/powerpc/codegen.c, src/vm/jit/alpha/codegen.c, src/vm/jit/mips/codegen.c, src/vm/jit/i386/codegen.c (codegen): Removed first MCODECHECK since it not required. * src/vm/jit/methodheader.h: Added comment. 2006-01-28 14:25 twisti * src/vm/jit/x86_64/.cvsignore: Added TAGS. 2006-01-28 14:21 twisti * src/vm/loader.c (load_method): Removed reference to nativelyoverloaded, monoPoly, subRedefs, subRedefsUsed, xta. (load_newly_created_array): Removed reference to monoPoly. 2006-01-28 14:18 twisti * src/vm/method.c (method_descriptor2types): Removed. * src/vm/method.h (methodinfo): Removed members returntype, returnclass, paramcount, paramtypes, paramclass, xta, methodXTAparsed, methodUsed, monoPoly, subRedefs, subRedefsUsed, and nativelyoverloaded, this saves about 3.2MB of classinfo memory for -all. (method_descriptor2types): Removed. * src/vm/jit/inline/inline.c (inlining_analyse_method): Use m->parseddesc->paramcount instead of m->paramcount. * src/vm/jit/allocator/simplereg.c (local_regalloc): Likewise. * src/vm/jit/x86_64/md-abi.c (md_return_alloc): Likewise. * src/vm/jit/jit.c (jit_compile): Removed RT_jit_parse and XTA_jit_parse calls. (jit_compile_intern): Removed method_descriptor2types call. * src/cacaoh/cacaoh.c (main): Call string_init. Removed nativemethod_chain and nativeclass_chain stuff. * src/cacaoh/headers.c (nativemethod_chain): Removed. (nativeclass_chain): Likewise. (printmethod): Use m->isleafmethod instead of m->nativelyoverloaded. (headerfile_generate): Likewise. 2006-01-28 11:26 twisti * src/vm/jit/inline/Makefile.am (INCLUDES): Renamed to AM_CPPFLAGS. (libinline_la_SOURCES): Don't build RTA/XTA stuff. 2006-01-28 11:24 twisti * Makefile.am (EXTRA_DIST): Added THIRDPARTY. 2006-01-27 19:05 stefan * src/threads/native/threads.c: Removed a superfluous (I hope) NULL check. 2006-01-27 18:53 stefan * src/threads/native/threads.c: Repaired thread_getself. 2006-01-27 17:35 twisti * src/toolbox/logging.c, src/toolbox/logging.h (log_start): Added. (log_vprint): Likewise. (log_print): Likewise. (log_println): Likewise. (log_finish): Likewise. (log_plain): Removed. (log_nl): Removed. (log_flush): Likewise. (dolog_plain): Likewise. (get_logfile): Likewise. (log_utf): Likewise. (log_plain_utf): Likewise. (log_text): Removed but added a define until we have ported all files. (dolog): Likewise. * src/vm/statistics.c (print_stats): Started to use new logging functions. Print some ratios. 2006-01-27 16:32 twisti * src/native/vm/VMSystemProperties.c (preInit): Don't add . to java.library.path per default. 2006-01-27 12:43 twisti * NEWS: Added powerpc fixes found by javver. 2006-01-24 19:09 twisti * src/vm/jit/powerpc/codegen.h (var_to_reg_dbl): Added. (M_COPY): Handle doubles properly. 2006-01-24 13:52 twisti * src/vm/jit/powerpc/codegen.h (M_LNGMOVE): Added. (var_to_reg_lng): Likewise. (M_COPY): Support longs. This was actually never implemented and never worked, grrr. 2006-01-24 10:30 twisti * src/vm/jit/stacktrace.c (cacao_stacktrace_fillInStackTrace): Use method_print. Fixed typo. * src/vm/jit/powerpc/md.c (md_codegen_findmethod): Handle 2 instruction returns properly. 2006-01-24 10:28 twisti * src/vm/builtin.c (builtin_f2i): Enable for interpreter. (builtin_d2i): Likewise. * src/vm/jit/stack.c (icmd_print_stack): Fixed for ENABLE_INTRP and SUPPORT_COMBINE_INTEGER_REGISTERS. 2006-01-23 16:03 twisti * src/vm/jit/stack.c (show_icmd_method): Fixed basic block count output. * src/vm/jit/i386/codegen.c (codegen): Use disp instead of a. Usage of some more macros. * src/vm/jit/i386/codegen.h (M_BLT): Added. (M_BLE): Likewise. (M_BGE): Likewise. (M_BGT): Likewise. (M_BBE): Likewise. (M_BAE): Likewise. 2006-01-23 01:12 twisti * configure.ac (AC_INIT): Changed version number to 0.94+cvs. (CFLAGS): Changed optimization back to -O0. 2006-01-23 01:01 twisti * ChangeLog: Updated for 0.94 release. 2006-01-22 23:42 twisti * configure.ac (AC_INIT): Changed version number to 0.94. (CFLAGS): Changed optimization to -O2. 2006-01-22 23:33 twisti * Updated header: Added 2006. Changed address of FSF. Changed email address. 2006-01-22 23:16 twisti * Updated svn:ignore propset. 2006-01-22 23:00 twisti * src/vm/jit/intrp/Makefile.am (EXTRA_DIST): Added gray.fs and BUILT_SOURCES. 2006-01-22 22:46 twisti * tests/regression/extest.java: Typo. 2006-01-22 22:36 twisti * NEWS: Added releases 0.90, 0.91, 0.92, 0.93, 0.94. 2006-01-22 22:34 twisti * README: Updated. 2006-01-22 21:42 twisti * src/vm/jit/intrp/codegen.c (cacaotype2ffitype): Revert edwin's bugfix, but we can't use ffi_type_slong as it's defined as 64-bit value on 32-bit machines. 2006-01-22 21:40 twisti * src/native/Makefile.am (INCLUDES): Renamed to AM_CPPFLAGS. (libnative_la_SOURCES): Removed nativecalls.inc. 2006-01-22 21:39 twisti * tests/Makefile.am (SUBDIRS): Removed native. 2006-01-22 21:38 twisti * tests/regression/native/testarguments.output: Updated. * tests/regression/native/Makefile.am: Made it work with distcheck. * tests/regression/codepatching/Makefile.am: Likewise. * tests/regression/Makefile.am: Likewise. * tests/regression/extest.java: Comment changed. 2006-01-22 21:22 twisti * configure.in: Renamed to configure.ac. 2006-01-22 21:21 twisti * configure.in (AC_CONFIG_FILES): Removed tests/native/Makefile, added tests/regression/native/Makefile. 2006-01-22 20:21 twisti * tests/native: Moved to tests/regression/native. 2006-01-22 20:00 twisti * src/vm/jit/asmpart.h (asm_handle_exception) (asm_handle_nat_exception): #ifdef ENABLE_JIT. 2006-01-22 19:59 twisti * src/vm/jit/jit.c (jit_compile_intern): Use CLASS_IS_OR_ALMOST_INITIALIZED to check uninitialized. 2006-01-22 19:57 twisti * src/vm/jit/stacktrace.c (stacktrace_create_inline_stackframeinfo): Compiler warning fix. 2006-01-22 19:56 twisti * src/vm/jit/intrp/java.vmg: Some reformatting. 2006-01-22 19:55 twisti * src/vm/jit/intrp/asmpart.c (vm/loader.h): Added. (intrp_asm_calljavafunction_intern): Use u1* instead of entrypoint. (jni_invoke_java_intern): Likewise. 2006-01-22 19:50 twisti * .cvsignore, src/toolbox/.cvsignore, src/vm/jit/inline/.cvsignore, src/vm/jit/allocator/.cvsignore: TAGS added. 2006-01-22 19:37 twisti * src/boehm-gc/.cvsignore, src/boehm-gc/include/.cvsignore, src/vm/.cvsignore, src/vm/jit/tools/.cvsignore, src/vm/jit/verify/.cvsignore, src/vm/jit/loop/.cvsignore, src/vm/jit/.cvsignore, src/vm/jit/intrp/.cvsignore, src/cacao/.cvsignore, src/native/vm/.cvsignore, src/native/include/.cvsignore, src/native/.cvsignore, src/mm/.cvsignore, src/threads/native/.cvsignore, src/threads/.cvsignore, src/fdlibm/.cvsignore, src/.cvsignore, src/cacaoh/.cvsignore: TAGS added. 2006-01-22 19:29 edwin * src/vm/jit/intrp/codegen.c (nativecall): Fixed calculation of the stackframeinfo address. 2006-01-22 14:44 twisti * src/vm/jit/codegen-common.c (codegen_addreference): The last fix was not correct if only the intrp is built. 2006-01-22 14:39 twisti * src/vm/class.c (class_showmethods): Use class_printflags. * src/vm/loader.c, src/vm/loader.h (fprintflags): Removed. (printflags): Likewise. * src/vm/jit/inline/sets.c (printFldSet): Use field_println instead of field_display. * src/vm/field.c, src/vm/field.h (field_display): Removed. (field_printflags): Added. (field_print): Likewise. (field_println): Likewise. 2006-01-22 00:45 edwin * src/vm/jit/intrp/codegen.c (cacaotype2ffitype): Use ffi_type_sint for values of TYPE_INT. This fixes the interpreter on i386, though I'm not sure if it is a correct and complete solution. 2006-01-21 21:46 edwin * src/vm/jit/codegen-common.c (codegen_addreference): Fixed bug when both ENABLE_INTRP and ENABLE_JIT were defined. 2006-01-21 20:22 edwin * src/vm/jit/verify/typecheck.c (typestack_copy, typestack_separable_with) (typestack_separable_from, verify_basic_block): Comment-only changes. (verify_basic_block): Small typo fix in string. 2006-01-20 14:49 twisti * src/native/jni.c (fill_callblock_from_objectarray): Fixed typo. (jni_method_invokeNativeHelper): Major code rewrite and speed improvement, renamed to _Jv_jni_invokeNative. (cacao_jni_CallVoidMethod): Fixed interpreter bug, renamed to _Jv_jni_CallVoidMethod. (callLongMethod): Renamed to _Jv_jni_CallLongMethod. * src/native/jni.h (jni_method_invokeNativeHelper): Renamed to _Jv_jni_invokeNative. * src/native/vm/Method.c (Java_java_lang_reflect_Method_invokeNative): Renamed jni_method_invokeNativeHelper to _Jv_jni_invokeNative. * src/native/vm/Constructor.c: Updated includes. (Java_java_lang_reflect_Constructor_constructNative): Renamed jni_method_invokeNativeHelper to _Jv_jni_invokeNative. 2006-01-20 13:41 twisti * tests/regression/Makefile.am (EXTRA_DIST): Made it more readable. 2006-01-20 13:40 twisti * src/vm/jit/intrp/intrp.h (ffi.h): Removed, not required in this file. * src/vm/jit/intrp/codegen.c (nativecall): Removed unused big-endian code. * src/vm/jit/intrp/asmpart.c (asm_calljavafunction_intern): Renamed to intrp_asm_calljavafunction_intern, just to be sure. 2006-01-20 13:33 twisti * src/vm/jit/mips/irix/md-os.c (md_signal_handler_sigsegv): Missed the actal rename from the previous commit. 2006-01-20 13:28 twisti * src/vm/signal.c (vm/signallocal.h): Added. * src/vm/signallocal.h (md_signal_handler_sigfpe): #ifdef for i386 and x86_64. 2006-01-20 13:25 twisti * src/vm/jit/powerpc/linux/md-os.c, src/vm/jit/powerpc/darwin/md-os.c, src/vm/jit/alpha/linux/md-os.c, src/vm/jit/alpha/freebsd/md-os.c, src/vm/jit/mips/linux/md-os.c, src/vm/jit/mips/irix/md-os.c (signal_handler_sigsegv): Renamed to md_signal_handler_sigsegv. * src/vm/jit/i386/linux/md-os.c, src/vm/jit/i386/freebsd/md-os.c, src/vm/jit/x86_64/md.c (signal_handler_sigsegv): Renamed to md_signal_handler_sigsegv. (signal_handler_sigfpe): Renamed to md_signal_handler_sigfpe. * src/vm/signal.c (signal_init): Renamed signal_handler_sigsegv to md_signal_handler_sigsegv and signal_handler_sigfpe to md_signal_handler_sigfpe respectively. * src/vm/signallocal.h (md_signal_handler_sigsegv): Added. (md_signal_handler_sigfpe): Likewise. 2006-01-20 13:19 twisti * src/vm/jit/alpha/codegen.h (ucontext.h): Removed. (thread_restartcriticalsection): Removed. 2006-01-20 13:06 twisti * src/vm/jit/x86_64/disass.c (dis-asm.h): Added. (vm/global.h): Likewise. (mm/memory.h): Removed. 2006-01-20 13:05 twisti * src/vm/class.c, src/vm/class.h (class_printflags): Added. (class_print): Likewise. (class_println): Likewise. 2006-01-20 12:58 twisti * src/vm/jit/i386/disass.c (disassinstr): Set the read_memory_func in disassemble_info to disass_buffer_read_memory. (disassemble): Removed. 2006-01-20 12:57 twisti * src/vm/jit/stack.c (show_icmd_method): Print basic blocks count and better basic block header output. ICMD_MULTIANEWARRAY: Changed iptr->target and iptr->val.a value. ICMD_IFLE_ICONST, ICMD_ELSE_ICONST: Print values better. 2006-01-20 12:01 twisti * src/vm/jit/powerpc/disass.c (disassinstr): Set the read_memory_func in disassemble_info to disass_buffer_read_memory. (disassemble): Removed. 2006-01-20 11:38 twisti * src/vm/jit/disass-common.c, src/vm/jit/disass.h: Added disassemble_info and disass_initialized. (disassemble): Added. (buffer_read_memory): Renamed to disass_buffer_read_memory. * src/vm/jit/x86_64/disass.c (disassinstr): Set the read_memory_func in disassemble_info to disass_buffer_read_memory. (disassemble): Removed. 2006-01-20 10:15 twisti * regression/extest.java: Removed asmpart exceptions as they are now checked with codepatching. * regression/extest.2output: Regenerated. * regression/extest_clinit.java: Added. 2006-01-20 10:08 twisti * src/vm/jit/alpha/md.c (md_init): Moved #include and extern's to the top of the file, since this broke compilation on debian unstable. 2006-01-19 23:40 edwin * src/vm/jit/parse.h: Added vim boilerplate. 2006-01-19 23:35 edwin * src/vm/jit/stack.c: Added vim boilerplate. 2006-01-19 22:21 twisti * configure.in (AC_CONFIG_FILES): Removed tests/codepatching/Makefile and added tests/regression/codepatching/Makefile. * tests/Makefile.am (SUBDIRS): Removed codepatching. * tests/regression/Makefile.am (SUBDIRS) Added with codepatching. * tests/regression/codepatching/Makefile.am (JAVAFLAGS): Added. 2006-01-19 22:11 edwin * src/vm/jit/parse.c (parse): Removed inlining code. 2006-01-19 22:06 edwin * src/vm/options.c, src/vm/options.h (useinliningm): Removed. 2006-01-19 22:05 twisti * tests/codepatching: Moved to tests/regression/codepatching. 2006-01-19 21:31 edwin * src/vm/jit/jit.c (jit_compile): Removed the INAFTERMAIN hack. 2006-01-19 21:27 edwin * src/vm/jit/inline/inline.c (inlining_setup): Removed INAFTERMAIN hack. 2006-01-19 21:26 edwin * src/cacao/cacao.c (main): Disabled useinlining and useinliningm. 2006-01-19 20:56 twisti * src/vm/jit/intrp/codegen.c, src/vm/jit/intrp/java.vmg (FALOAD) (FASTORE): Added, required for big-endian machines. * src/vm/jit/intrp/engine.c (access_array_float): Likewise. 2006-01-19 20:53 twisti * src/vm/global.h (java_floatarray): Typo. 2006-01-19 20:28 edwin * src/vm/jit/parse.c (parse, fillextable): Removed debugging code. Minor cleanup. 2006-01-19 20:13 edwin * src/vm/jit/parse.c (parse): Removed commented out debugging code. 2006-01-19 20:03 twisti * src/vm/class.c (class_showmethods): Replaced method_display with method_println. 2006-01-19 20:00 twisti * src/vm/jit/inline/inline.c, src/vm/jit/inline/sets.c, src/vm/jit/inline/parseRTstats.c, src/vm/jit/inline/parseRT.c, src/vm/jit/inline/parseRTprint.h, src/vm/jit/inline/parseXTA.c: Replaced method_display and method_display_w_class calls with method_println. 2006-01-19 19:49 twisti * src/vm/method.c, src/vm/method.h (method_display): Removed. (method_display_w_class): Likewise. (method_printflags): Added. (method_print): Likewise. (method_println): Likewise. Removed. --This line, and those below, will be ignored-- M method.c M method.h 2006-01-19 17:02 twisti * src/vm/jit/powerpc/linux/Makefile.am (INCLUDES): Renamed to AM_CPPFLAGS. * src/vm/jit/powerpc/Makefile.am (AM_CPPFLAGS): Added missing $(OS_DIR) include. 2006-01-19 16:02 twisti * INCLUDES: Replaced with AM_CPPFLAGS as Tom Tromey suggested on irc, as this is more common these days. 2006-01-19 11:58 edwin * alpha, mips, nat: removed obsolete directories resurrected by svn migration 2006-01-19 09:47 twisti * INCLUDES: Replaced with AM_CPPFLAGS as Tom Tromey suggested on irc, as this is more common these days. 2006-01-18 21:41 edwin * havoc.class: fix corruption by svn eol-style conversion 2006-01-18 15:43 twisti * AC_CHECK_HEADER: Added ansidecl.h, symcat.h, bfd.h and zconf.h. 2006-01-18 15:41 twisti * main: Call nogc_init for DISABLE_GC. 2006-01-17 18:51 twisti * Removed extern stuff that was removed from the lib. 2006-01-17 18:37 twisti * Updated to new classpath configure options. 2006-01-17 18:24 twisti * CLASSPATH_INSTALL_DIR: Renamed to CLASSPATH_PREFIX. 2006-01-17 17:06 twisti * CACAO_INSTALL_PREFIX: Renamed to CACAO_PREFIX. * NDEBUG: Check for libintl on cygwin and darwin. * --with-classpath-install-dir: Renamed to --with-classpath-prefix. * --with-classpath-libdir: Added to support 64-bit platforms where the libdir may be /usr/lib64. 2006-01-17 16:59 twisti * main: Removed CACAO_INSTALL_PREFIX and CLASSPATH_INSTALL_DIR since CACAO_VM_ZIP_PATH and CLASSPATH_GLIBJ_ZIP_PATH are now full paths. 2006-01-17 16:58 twisti * Java_gnu_classpath_VMSystemProperties_preInit: Renamed CACAO_INSTALL_PREFIX to CACAO_PREFIX. 2006-01-17 16:57 twisti * CACAO_VM_ZIP_PATH: Prepend CACAO_PREFIX. * CLASSPATH_GLIBJ_ZIP_PATH: Prepend CLASSPATH_PREFIX. * CLASSPATH_LIBRARY_PATH: Prepend CLASSPATH_LIBDIR. 2006-01-17 16:55 twisti * CLASSPATH_INSTALL_DIR: Renamed to CLASSPATH_PREFIX. 2006-01-17 16:53 twisti * Added. 2006-01-17 16:51 twisti * m4/as-ac-expand.m4: Added. 2006-01-16 00:07 twisti * jni_init: Fixed small typo. 2006-01-16 00:04 twisti * Java_gnu_classpath_VMSystemProperties_preInit: Use the same os.arch property values as SUN and others do, so we are compatible (e.g. jogl had some problems), file.encoding removed as it's set by GNU Classpath, hardcode values for gnu.cpu.endian. 2006-01-15 23:32 twisti * utf_java_nio_DirectByteBufferImpl_ReadWrite: Removed. * utf_gnu_classpath_Pointer{32,64}: Likewise. * class_java_nio_Buffer: Added, load and link this class in jni_init(). * class_java_nio_DirectByteBufferImpl: Likewise. * NewDirectByteBuffer: Removed debug output. * GetDirectBufferAddress: Added instanceof check. * GetDirectBufferCapacity: Likewise. 2006-01-15 14:12 twisti * native_new_and_init: Ooops, reverting last change and added an explaining comment. 2006-01-15 13:32 twisti * CLASSPATH_LIBRARY_PATH, CLASSPATH_GLIBJ_ZIP_PATH: Temporary bugfix. 2006-01-15 12:28 twisti * native_findfunction: #ifdef ENABLE_STATICVM. * native_new_and_init: Fixed return value. 2006-01-15 01:56 twisti * math.h: Added for isnan. 2006-01-15 00:37 twisti * JAVAC: Removed. 2006-01-15 00:36 twisti * Java_gnu_classpath_VMSystemProperties_preInit: Set user.country instead of user.region, set en_US if none is defined, java.protocol.handler.pkgs removed. 2006-01-14 20:02 twisti * builtin_trace_args: Added callcount to verbose call output. 2006-01-14 17:19 edwin * src/native/vm/Method.c (invokeNative): check class access rights 2006-01-13 19:37 twisti * codegen_setup: #ifdef datareferences. 2006-01-13 18:51 twisti * This class does not differ from the GNU classpath upstream version. 2006-01-13 18:49 twisti * defineClassWithTransformers: Added, updated to generics version. 2006-01-13 15:29 twisti * codegendata: #ifdef datareferences member. * codegen_finish: Moved data segment reference resolving into dseg_resolve_datareferences. 2006-01-13 15:28 twisti * dseg_resolve_datareferences: Added. 2006-01-13 15:27 twisti * Small reformatting. 2006-01-13 10:47 twisti * src/vm/jit/{i386,x86_64}/{dis-asm.h,i386-dis.c}: Removed. * src/vm/jit/powerpc/{ppc.h,ppc-dis.c,ppc-opc.c}: Likewise. * m4/{ac_prog_javac.m4,ac_prog_javac_works.m4}: Added. 2006-01-13 10:42 twisti * ICMD_MULTIANEWARRAY: Usage of iptr->val.a and iptr->target changed. 2006-01-13 10:11 twisti * codegen.h: Added when ENABLE_JIT defined. * codegen_addpatchref: Set lastmcodeptr when ENABLE_JIT is defined and the architecture requires it. 2006-01-13 10:09 twisti * ICMD_MULTIANEWARRAY: Usage of iptr->val.a and iptr->target changed. 2006-01-12 23:54 twisti * ICMD_MULTIANEWARRAY: Usage of iptr->val.a and iptr->target changed. 2006-01-12 23:33 twisti * arch.h: Added. * GC_test_and_set: Removed 64-bit version since the 32-bit seems to be sufficient and works. 2006-01-12 23:31 twisti * show_icmd: Use CLASS_IS_OR_ALMOST_INITIALIZED. * initialize_class: Use CLASS_IS_OR_ALMOST_INITIALIZED. 2006-01-12 23:30 twisti * CLASS_IS_OR_ALMOST_INITIALIZED: Added. 2006-01-12 23:27 twisti * GETSTATIC_FLOAT, PUTSTATIC_FLOAT, GETFIELD_FLOAT, PUTFIELD_FLOAT: Added. * PATCHER_GETSTATIC_FLOAT, PATCHER_PUTSTATIC_FLOAT, PATCHER_GETFIELD_FLOAT, PATCHER_PUTFIELD_FLOAT: Likewise. * TRACENATIVECALL: Removed codegen_findmethod, use methodinfo* from threaded code stream. * TRACECALL, TRACERETURN, TRACELRETURN: Likewise. 2006-01-12 23:23 twisti * Some 64-bit big-endian bugfixes. * Use CLASS_IS_OR_ALMOST_INITIALIZED macro. 2006-01-12 23:21 twisti * 64-bit big-endian bugfix: replace s4 with ptrint. 2006-01-12 23:10 twisti * Imported for the interpreter. 2006-01-12 23:09 twisti * Added powerpc64 target. 2006-01-12 23:08 twisti * intrp_disassinstr, intrp_disassemble: Added. 2006-01-12 23:07 twisti * vm/options.h: Added. 2006-01-12 23:05 twisti * config.h, vm/types.h: Added. 2006-01-12 23:03 twisti * Use ASM_CALLJAVAFUNCTION* macros. 2006-01-12 22:42 twisti * thread_addstaticcritical: Quick hack: #ifdef ENABLE_JIT asm_criticalsections. * sigsuspend_handler: Quick hack: #ifdef ENABLE_JIT thread_restartcriticalsection. 2006-01-12 22:41 twisti * vm/options.h: Added. * descriptor_pool_parse_method_descriptor: #ifdef ENABLE_JIT md_param_alloc call. * descriptor_params_from_paramtypes: Likewise. 2006-01-12 22:40 twisti * Fixed a lot of compiler warnings (functionptr -> u1*). 2006-01-12 22:39 twisti * regs: Removed. * disassinstr, disassemble: Prefixed with intrp_. 2006-01-12 22:38 twisti * ICMD_MULTIANEWARRAY: Usage of iptr->val.a and iptr->target changed. 2006-01-12 22:37 twisti * builtin_gen_table: #if function according to arch.h. * codegen: Prefixed with intrp_, usage of iptr->val.a and iptr->target changed. * codegen_createlinenumbertable: Renamed to dseg_createlinenumbertable. * createcompilerstub: Prefixed with intrp_. * createnativestub: Likewise. 2006-01-12 22:35 twisti * verify_multianewarray: Usage iptr->val.a and iptr->target changed. * JAVA_MULTIANEWARRAY: Pass c in iptr->val.a and cr in iptr->target. 2006-01-12 22:34 twisti * codegen_createnativestub: #ifdef ENABLE_JIT md_param_alloc call. * codegen_disassemble_nativestub: Use DISASSEMBLE macro. 2006-01-12 22:32 twisti * analyse_stack: #ifdef ENBALE_JIT md_return_alloc call. * icmd_print_stack: Print regs correctly for jit. * show_icmd_method: Likewise. 2006-01-12 21:55 twisti * builtintable_internal: Removed ICMD_CHECKCAST. 2006-01-12 21:39 twisti * Prefixed functions with intrp_. * md_init, md_stacktrace_get_returnaddress: Prefixed with intrp_. * thread_restartcriticalsection, md_param_alloc, md_return_alloc: Removed. 2006-01-12 21:38 twisti * Prefix functions with intrp_. 2006-01-12 21:37 twisti * Use ptrint instead of s8 in some places. 2006-01-12 21:36 twisti * Use DISASSINSTR macro. 2006-01-12 21:36 michi * Comment updated (for asm_cacheflush) 2006-01-12 21:35 twisti * intrp_createcompilerstub, intrp_createnativestub, intrp_codegen: Added. * codegen.h: Include only for some archs. * md-abi.h: Include only for arm. * codegen_init: Changed #ifdef to ENABLE_JIT. * codegen_createnativestub: Call reg_setup only for jit, #ifdef createnativestub to support interpreter. 2006-01-12 21:30 twisti * intrp_md_stacktrace_get_returnaddress: Added. * cacao_stacktrace_fillInStackTrace: #ifdef md_stacktrace_get_returnaddress to support interpreter. 2006-01-12 21:29 twisti * Seperate ENABLE_JIT and ENABLE_INTRP. 2006-01-12 21:17 twisti * config.h: Added. * intrp_patcher_get_putstatic, intrp_patcher_get_putfield, intrp_patcher_aconst, intrp_patcher_builtin_multianewarray, intrp_patcher_builtin_arraycheckcast, intrp_patcher_invokestatic_special, intrp_patcher_invokevirtual, intrp_patcher_invokeinterface, intrp_patcher_checkcast_instanceof, intrp_patcher_resolve_native: Likewise. 2006-01-12 21:16 twisti * jit_compile_intern: #ifdef codegen call to support interpreter, use DISASSEMBLE macro. 2006-01-12 21:15 twisti * DISASSINSTR, DISASSEMBLE: Added. 2006-01-12 21:14 twisti * Use ASM_CALLJAVAFUNCTION macro. 2006-01-12 21:13 twisti * Use ASM_CALLJAVAFUNCTION_INT macro. 2006-01-12 21:11 twisti * intrp_asm_calljavafunction, intrp_createcompilerstub, intrp_asm_getclassvalues_atomic: Added. 2006-01-12 21:08 twisti * Use ASM_CALLJAVAFUNCTION macros. * main: #ifdef md_init call to support interpreter. * link_class_intern: #ifdef createcompilerstub call to support interpreter. 2006-01-12 21:07 twisti * Use ASM_CALLJAVAFUNCTION macros. 2006-01-12 21:06 twisti * Use ASM_CALLJAVAFUNCTION_ADR macro. * Use ASM_CALLJAVAFUNCTION macro. 2006-01-12 21:04 twisti * intrp_md_init: Added. 2006-01-12 20:57 twisti * Check explicitly for isnan. 2006-01-12 18:25 twisti * print_dynamic_super_statistics: Added from intrp. 2006-01-12 18:09 michi * Included md-abi.h (needed for REG_SPLIT on Arm) 2006-01-12 17:52 twisti * We have to use a machine dependent arch.h. 2006-01-11 12:16 twisti * vm/jit/codegen.inc.h: Removed. * Fixed compiler warnings. 2006-01-11 10:35 twisti * ICMD_F2I, ICMD_D2I, ICMD_F2L, ICMD_D2L: #if 0. 2006-01-11 10:01 twisti * SUPPORT_FMOD: Removed. * SUPPORT_IFCVT: Replaced with SUPPORT_I2F, SUPPORT_I2D or SUPPORT_L2F, SUPPORT_L2D. * SUPPORT_LONG_ICVT: Replaced with SUPPORT_F2L or SUPPORT_D2L. * SUPPORT_LONG_FCVT: Replaced with SUPPORT_L2F or SUPPORT_L2D. 2006-01-10 22:44 twisti * SUPPORT_FMOD: Removed. * SUPPORT_IFCVT: Replaced with SUPPORT_I2F, SUPPORT_I2D or SUPPORT_L2F, SUPPORT_L2D. * SUPPORT_LONG_ICVT: Replaced with SUPPORT_F2L or SUPPORT_D2L. * SUPPORT_LONG_FCVT: Replaced with SUPPORT_L2F or SUPPORT_L2D. 2006-01-10 22:38 twisti * SUPPORT_FMOD: Removed. * SUPPORT_IFCVT: Replaced with SUPPORT_I2F, SUPPORT_I2D or SUPPORT_L2F, SUPPORT_L2D. * SUPPORT_LONG_ICVT: Replaced with SUPPORT_F2L or SUPPORT_D2L. * SUPPORT_LONG_FCVT: Replaced with SUPPORT_L2F or SUPPORT_L2D. 2006-01-10 22:22 twisti * EXTRA_DIST: Added ChangeLog-2005. 2006-01-10 22:18 twisti * SUPPORT_FMOD: Removed. * SUPPORT_IFCVT: Replaced with SUPPORT_I2F, SUPPORT_I2D or SUPPORT_L2F, SUPPORT_L2D. * SUPPORT_LONG_ICVT: Replaced with SUPPORT_F2L or SUPPORT_D2L. * SUPPORT_LONG_FCVT: Replaced with SUPPORT_L2F or SUPPORT_L2D. 2006-01-10 22:11 twisti * asm_getclassvalues_atomic: Replaced with ASM_GETCLASSVALUES_ATOMIC. * SUPPORT_IFCVT: Replaced with SUPPORT_I2F or SUPPORT_I2D. * SUPPORT_FICVT: Replaced with SUPPORT_F2I. * SUPPORT_LONG_FCVT: Replaced with SUPPORT_L2F. * SUPPORT_LONG_ICVT: Replaced with SUPPORT_F2L or SUPPORT_D2L. 2006-01-10 22:09 twisti * ASM_CALLJAVAFUNCTION, ASM_CALLJAVAFUNCTION_ADR, ASM_CALLJAVAFUNCTION_INT, ASM_CALLJAVAFUNCTION2, ASM_CALLJAVAFUNCTION2_ADR, ASM_CALLJAVAFUNCTION2_INT, ASM_CALLJAVAFUNCTION2_LONG, ASM_CALLJAVAFUNCTION2_FLOAT, ASM_CALLJAVAFUNCTION2_DOUBLE: Macros added, these macros hide the selection between jit and intrp functions. * ASM_GETCLASSVALUES_ATOMIC: Likewise. * intrp_asm_calljavafunction, intrp_asm_calljavafunction_int: Added. * intrp_asm_calljavafunction2, intrp_asm_calljavafunction2int, intrp_asm_calljavafunction2long, intrp_asm_calljavafunction2float, intrp_asm_calljavafunction2double: Likewise. * intrp_asm_getclassvalues_atomic: Likewise. 2006-01-10 21:58 twisti * SUPPORT_IFCVT: Replaced with SUPPORT_I2F or SUPPORT_I2D. * SUPPORT_LONG_FCVT: Replaced with SUPPORT_L2F or SUPPORT_L2D. * SUPPORT_LONG_ICVT: Replaced with SUPPORT_F2I, SUPPORT_F2L or SUPPORT_D2I, SUPPORT_D2L. 2006-01-10 21:11 twisti * exceptions_throw_negativearraysizeexception: Use * builtin_throw_exception: #ifndef NDEBUG. * builtin_trace_exception: Likewise. * builtin_trace_args: Likewise. * builtin_displaymethodstop: Likewise. * builtin_*: #if the function regarding the defines in arch.h. 2006-01-10 20:57 twisti * exceptions_throw_classformaterror, exceptions_throw_arrayindexoutofboundsexception, exceptions_throw_illegalargumentexception, exceptions_throw_negativearraysizeexception, exceptions_throw_nullpointerexception: Added. * exceptions_print_exception: #ifndef NDEBUG. 2006-01-10 20:56 twisti * exceptions_throw_classformaterror: Use this function. 2006-01-10 20:55 twisti * exceptions_throw_nullpointerexception: Use this function. 2006-01-10 20:50 twisti * exceptions_throw_nullpointerexception, exceptions_throw_arrayindexoutofboundsexception: Use these functions. 2006-01-10 20:48 twisti * exceptions_throw_nullpointerexception, exceptions_throw_illegalargumentexception: Use these functions. 2006-01-10 20:46 twisti * exceptions_throw_illegalargumentexception, exceptions_throw_negativearraysizeexception, exceptions_throw_arrayindexoutofboundsexception, exceptions_throw_nullpointerexception: Use these functions. 2006-01-10 20:44 twisti * exceptions_throw_classformaterror, exceptions_throw_negativearraysizeexception, exceptions_throw_nullpointerexception: Added. 2006-01-10 15:52 twisti * Not required anymore. 2006-01-10 15:50 twisti * use_class_as_object, create_property, copy_vftbl, create_methodsig: Removed. * classMeth, nativeCall, methodCall, nativeMethod, nativeCompCall, methodCompCall, nativeCompMethod: Likewise. * natcall2utf, printNativeCall, markNativeMethodsRT: Likewise. 2006-01-10 15:48 twisti * nativeCalls, nativeCompCalls: Removed. * copy_vftbl, create_methodsig: Likewise. * printNativeCall, printCompNativeCall, findNativeMethodCalls, findNativeClassCalls, utfNativeCall, natcall2utf: Likewise. 2006-01-10 10:59 twisti * codegen_ncode_increase: Typo. 2006-01-09 20:52 twisti * disass_buf: Fixed typo. 2006-01-09 20:28 twisti * disass_printf: Ooops, #ifdef was wrong. 2006-01-09 20:19 twisti * Removed, we now link against libbfd and libopcodes. * stdarg.h, string.h, assert.h, vm/jit/powerpc/dis-asm.h: Removed. * dis-asm.h, stdio.h, vm/jit/disass.h: Added. * myprintf, buffer_read_memory, perror_memory, generic_print_address, generic_symbol_at_address, bfd_getb32, bfd_getl32, sprintf_vma: Removed. * Use disass-common.c stuff. 2006-01-09 20:15 twisti * libarch_la_SOURCES: Removed dis-asm.h, ppc-dis.c, ppc-opc.c and ppc.h. 2006-01-09 19:21 twisti * assert.h, stdarg.h, vm/jit/x86_64/dis-asm.h: Removed. * stdio.h, vm/jit/disass.h: Added. * myprintf, buffer_read_memory, generic_symbol_at_address, generic_print_address, perror_memory: Likewise. * Use disass-common.c stuff. 2006-01-09 16:37 twisti * string.h, vm/jit/i386/dis-asm.h: Removed. * mylinebuf, mylen: Likewise. * myprintf, buffer_read_memory, generic_symbol_at_address, generic_print_address, perror_memory: Likewise. * Use disass-common.c stuff. 2006-01-09 16:36 twisti * WITH_BINUTILS_DISASSEMBLER: Added, define DISASS_OBJ. * noinst_LTLIBRARIES: Added DISASS_OBJ. 2006-01-09 16:30 twisti * This file contains the common functions required when we use the binutils disassembler. 2006-01-09 16:29 twisti * WITH_BINUTILS_DISASSEMBLER: Added. * disass_printf: Added. 2006-01-09 16:26 twisti * WITH_BINUTILS_DISASSEMBLER: Added. 2006-01-09 12:12 twisti * Removed, we now link against libbfd and libopcodes. 2006-01-09 12:10 twisti * libarch_la_SOURCES: Removed dis-asm.h and i386-dis.c. 2006-01-09 10:37 twisti * AC_CHECK_HEADER checks for ansidecl.h, bfd.h and symcat.h removed. * AC_CHECK_HEADER check for dis-asm.h added. * AC_CHECK_LIB checks for libbfd and libopcodes added. 2006-01-09 10:35 twisti * Removed, we now link against libbfd and libopcodes. * libarch_la_SOURCES: Removed dis-asm.h and i386-dis.c, we now link against libbfd and libopcodes. 2006-01-08 23:37 twisti * Updated from GNU Classpath: 2005-12-17 Guilhem Lavaux * native/fdlibm/fdlibm.h (isnan): Define explicitly isnan if it is not a macro. 2006-01-08 23:00 twisti * loader_load_all_classes: Print exception when loading failed. 2006-01-08 22:38 twisti * SUCK_xx_xx: We can only optimize little endian loads on i386 and x86_64 machines. All others have problems with alignment. 2006-01-08 22:12 twisti * Ignore *.class files. 2006-01-08 22:11 twisti * java-assert.h: Unused, removed. 2006-01-08 22:01 twisti * Added VM interface change to be consistent: 2005-11-13 Archie Cobbs * vm/reference/gnu/classpath/VMStackWalker.java (getClassLoader()): added to fix an infinite loop bug. * NEWS: note VM interface change. 2006-01-08 21:32 twisti * suck_add: Check for lce != NULL before adding it to the list, since zip_open can return NULL. 2006-01-08 19:14 twisti * JAVAC: Removed. 2006-01-08 19:13 twisti * SOURCE_FILES: Added. * JAVAC: Removed. * checkall: Renamed to check. 2006-01-08 19:12 twisti * Use $(mkdir_p), $(JAVAC) and $(ZIP) variables. 2006-01-08 19:11 twisti * AM_PROG_MKDIR_P: Added. * Added headers checks for ansidecl.h, bfd.h, and symcat.h if we have debugging enabled. * AC_PROG_JAVAC: Added. * AC_PATH_PROG: Added check for zip. 2006-01-08 19:09 twisti * Macros to check for a Java compiler, taken from http://ac-archive.sourceforge.net/. 2006-01-04 09:35 twisti * Removed src/toolbox/avl.[ch] copyright. 2006-01-04 09:34 twisti * avl_dump: Only print node->data. 2006-01-03 23:46 twisti * Use new avl tree code. * Rewritten. 2006-01-03 23:44 twisti * exit_handler: Removed print_dynamic_super_statistics. * print_stats: Added print_dynamic_super_statistics. 2006-01-03 23:43 twisti * threads.h: Added. * builtin.h: Likewise. 2006-01-03 23:08 twisti * CallNonvirtualBooleanMethodA: Added missing ;. 2006-01-03 23:05 twisti * ENABLE_STATISTICS: Fixed typo. 2006-01-02 21:01 christian typeing error 2006-01-02 17:13 twisti * nregdescint, nregdescfloat: Moved to md-abi.c. 2006-01-02 17:12 twisti * nregdescint, nregdescfloat: Added. 2006-01-02 17:11 twisti * noinst_HEADERS: Removed md-abi.inc. 2006-01-02 16:40 twisti * signal_handler_sigsegv: Replaced functionptr with u1*. 2006-01-02 16:18 twisti * nregdescint, nregdescfloat: Moved to md-abi.c. 2006-01-02 16:17 twisti * nregdescint, nregdescfloat: Added. * noinst_HEADERS: Removed md-abi.inc. 2006-01-02 16:12 twisti * INCLUDES: Added OS_DIR, some archs have their md-abi.* files in the os directory. 2006-01-02 16:08 christian *** empty log message *** 2006-01-02 16:04 twisti * nregdescint, nregdescfloat: Moved to md-abi.c. 2006-01-02 16:03 twisti * nregdescint, nregdescfloat: Added. * noinst_HEADERS: Removed md-abi.inc. 2006-01-02 14:32 christian Removed old debug message 2006-01-02 14:26 twisti * md-abi.inc: Removed. 2006-01-02 14:25 twisti * nregdescint, nregdescfloat: Moved to md-abi.c. 2006-01-02 14:24 twisti * nregdescint, nregdescfloat: Added. * noinst_HEADERS: Removed md-abi.inc. 2006-01-02 14:11 christian Corrected \"\" to \<\> for system header include 2006-01-02 14:07 twisti * nregdescint, nregdescfloat: Moved to md-abi.c. * noinst_HEADERS: Removed md-abi.inc. 2006-01-02 14:06 twisti * nregdescint, nregdescfloat: Added. * disassinstr: Some code improvement. 2006-01-02 14:05 twisti * md-abi.inc: Removed. 2006-01-02 13:05 christian Changed register allocator .inc to .c files and moved them to src/vm/jit/allocator 2006-01-02 12:59 christian Changed register allocator .inc to .c files and moved them to src/vm/jit/allocator 2006-01-02 12:22 twisti * Fixed result message for debug. 2006-01-02 12:10 twisti * Typo. 2006-01-02 12:04 twisti * Added ltdl.h check. 2006-01-02 11:34 twisti * Fixed ltdl.h include path. 2006-01-02 01:34 twisti * Fixed ltdl.h include path. 2006-01-02 01:15 twisti * I don't think we really need them, but they are still in Attic. 2006-01-02 01:10 twisti * Generated changelog for 2005. 2006-01-02 01:05 twisti * unzip.[ch], libffi, libltdl: Removed. 2006-01-01 21:53 twisti * Removed libltdl. 2006-01-01 21:38 twisti * We now use the system libltdl. 2006-01-01 21:32 twisti * Changed text of kaffe's stuff, dalibor pointed this out. 2006-01-01 21:29 twisti * AC_LIBLTDL_CONVENIENCE, AC_SUBST(LIBLTDL): Removed. * AC_COMPILE_CHECK_SIZEOF: Replaced with AC_CHECK_SIZEOF. 2006-01-01 21:22 twisti * m4 macros have a different copyright header. 2006-01-01 21:13 twisti * Lists all third party software we use. This list contains all stuff we used in 0.93. Stuff that has been ripped will be deleted after that commit, this is for the records. 2006-01-01 20:55 twisti * Not required. 2006-01-01 19:39 twisti * Removed libltdlc.la. * DIST_SUBDIRS: Removed libltdl. * SUBDIRS: Likewise. 2006-01-01 19:38 twisti * Added libltdl check. * AC_CONFIG_SUBDIRS: Removed src/libltdl. 2006-01-01 18:39 twisti * libarch_la_SOURCES: Removed symcat.h. 2006-01-01 18:34 twisti * Use system one. 2006-01-01 18:33 twisti * libarch_la_SOURCES: Removed symcat.h. 2006-01-01 18:30 twisti * generic_symbol_at_address: Print only 8 bytes. 2006-01-01 18:21 twisti * Use system ones. * generic_symbol_at_address: Added, they were implemented in dis-buf.c which was removed. * generic_print_address: Likewise. * perror_memory: Likewise. 2006-01-01 18:20 twisti * libarch_la_SOURCES: Removed ansidecl.h, bfd.h and dis-buf.c. * config.h, vm/jit/codegen-common.h: Added. 2006-01-01 16:40 twisti * Changed include to use system headers. 2006-01-01 16:39 twisti * Use system ones. * generic_symbol_at_address: Added, they were implemented in dis-buf.c which was removed. * generic_print_address: Likewise. * perror_memory: Likewise. 2006-01-01 16:37 twisti * libarch_la_SOURCES: Removed ansidecl.h, bfd.h and dis-buf.c. 2006-01-01 16:35 twisti * DEC OSF cc only defines __alpha. 2006-01-01 16:34 twisti * class_resolvefield: Renamed except to throwexception since some compilers have a builtin except macro (like DEC OSF cc). * class_resolveclassmethod: Likewise. * class_resolveinterfacemethod: Likewise. 2006-01-01 16:31 twisti * zip_open: Handle compiler error with DEC OSF's cc.