Merged revisions 7940-8026 via svnmerge from
authormichi <none@none>
Thu, 7 Jun 2007 10:30:33 +0000 (10:30 +0000)
committermichi <none@none>
Thu, 7 Jun 2007 10:30:33 +0000 (10:30 +0000)
svn+ssh://michi@c1.complang.tuwien.ac.at/ahome/cacao/svn/cacao/trunk

........
  r7941 | twisti | 2007-05-23 13:59:51 +0200 (Wed, 23 May 2007) | 6 lines

  * src/vm/exceptions.c (new_exception_int): Removed.
  * src/vm/exceptions.h (new_exception_int): Likewise.

  * src/native/native.c (native_new_and_init_int): Likewise.
  * src/native/native.h (native_new_and_init_int): Likewise.
........
  r7942 | twisti | 2007-05-23 14:40:31 +0200 (Wed, 23 May 2007) | 24 lines

  * src/vm/exceptions.c (threads/lock-common.h): Added.
  [ENABLE_THREADS] (threads/native/threads.h): Removed.
  [!ENABLE_THREADS] (threads/none/threads.h): Likewise.
  (threads/threads-common.h): Added.
  (new_exception_message): Removed.
  (exceptions_throw_classcircularityerror): Use
  exceptions_throw_utf_utf.
  (exceptions_throw_classformaterror): Likewise.
  (classnotfoundexception_to_noclassdeffounderror): Fixed warning.
  (exceptions_throw_incompatibleclasschangeerror): Use
  exceptions_throw_utf_utf.
  (exceptions_throw_internalerror): Likewise.
  (exceptions_throw_unsupportedclassversionerror): Likewise.
  (exceptions_throw_verifyerror): Likewise.
  (exceptions_throw_verifyerror_for_stack): Likewise.
  (exceptions_new_arithmeticexception): Likewise.
  (exceptions_new_classcastexception): Use exceptions_new_class_utf.
  (exceptions_print_exception): Fixed warnings.

  * src/vmcore/utf8.c (utf_division_by_zero): Added.
  (utf8_init): Likewise.

  * src/vmcore/utf8.h (utf_division_by_zero): Likewise.
........
  r7943 | twisti | 2007-05-23 15:09:28 +0200 (Wed, 23 May 2007) | 4 lines

  * src/vmcore/linker.c (linker_compute_subclasses): We don't ship the
  critical-section stuff with this release, since it's broken on some
  architectures because of boehm.
........
  r7944 | tbfg | 2007-05-23 16:15:00 +0200 (Wed, 23 May 2007) | 3 lines

  * src/vm/jit/powerpc64/emit.c (MCODECHECK): Increase values to fix canary corruption.
  * src/vm/jit/powerpc64/codegen.c (MCODECHECK): Increase values to fix canary corruption.
........
  r7945 | twisti | 2007-05-23 17:25:18 +0200 (Wed, 23 May 2007) | 5 lines

  * src/vm/jit/powerpc64/codegen.c (codegen_emit): ICMD_INSTANCEOF:
  Removed unused supervftbl.

  * src/vm/jit/emit-common.h [__POWERPC64__] (emit_bnan): Enabled.
........
  r7946 | twisti | 2007-05-23 17:43:53 +0200 (Wed, 23 May 2007) | 2 lines

  * configure.ac (OPT_CFLAGS): Changed to -O2.
........
  r7947 | twisti | 2007-05-23 17:57:41 +0200 (Wed, 23 May 2007) | 4 lines

  * src/vm/jit/x86_64/md.c (md_get_method_patch_address): Fixed warning.
  * src/vm/jit/x86_64/linux/md-os.c (md_signal_handler_sigsegv):
  Likewise.
........
  r7948 | twisti | 2007-05-23 18:00:13 +0200 (Wed, 23 May 2007) | 3 lines

  * src/vm/exceptions.c (exceptions_new_hardware_exception): Fixed
  warning.
........
  r7949 | twisti | 2007-05-23 19:46:27 +0200 (Wed, 23 May 2007) | 2 lines

  * src/vm/jit/jit.c (jit_compile_intern): Fixed typo.
........
  r7950 | twisti | 2007-05-23 19:51:04 +0200 (Wed, 23 May 2007) | 2 lines

  * src/vm/vm.c (vm_create): Use vm_abort for profile_start_thread.
........
  r7951 | twisti | 2007-05-23 19:51:43 +0200 (Wed, 23 May 2007) | 3 lines

  * src/vm/jit/optimizing/profile.c (profile_thread): Replaced table-
  with list-functions.
........
  r7952 | twisti | 2007-05-23 19:53:13 +0200 (Wed, 23 May 2007) | 2 lines

  * src/vm/jit/optimizing/profile.c: Set Id keyword.
........
  r7953 | twisti | 2007-05-23 19:56:59 +0200 (Wed, 23 May 2007) | 3 lines

  * src/native/vm/gnu/java_lang_VMClassLoader.c (getPrimitiveClass):
  Return NULL in error case.
........
  r7954 | twisti | 2007-05-23 19:58:18 +0200 (Wed, 23 May 2007) | 3 lines

  * src/threads/native/lock.c: Set Id keyword.
  * src/threads/native/lock.h: Likewise.
........
  r7955 | twisti | 2007-05-23 20:05:26 +0200 (Wed, 23 May 2007) | 8 lines

  * src/vm/jit/arm/linux/md-os.c,
  src/vm/jit/alpha/linux/md-os.c,
  src/vm/jit/i386/linux/md-os.c,
  src/vm/jit/powerpc/linux/md-os.c,
  src/vm/jit/powerpc64/linux/md-os.c,
  src/vm/jit/x86_64/linux/md-os.c (md_critical_section_restart): Removed
  debug output.
........
  r7956 | twisti | 2007-05-23 20:08:42 +0200 (Wed, 23 May 2007) | 3 lines

  * src/vmcore/statistics.c (statistics_print_memory_usage): Smaller
  output changes.
........
  r7957 | twisti | 2007-05-23 20:28:01 +0200 (Wed, 23 May 2007) | 2 lines

  * src/vm/jit/mips/Makefile.am (DIST_SUBDIRS): Added uclinux.
........
  r7958 | twisti | 2007-05-23 21:11:10 +0200 (Wed, 23 May 2007) | 3 lines

  * src/vm/jit/powerpc64/linux/md-os.c (md_critical_section_restart):
  Fixed typo.
........
  r7959 | twisti | 2007-05-23 21:37:26 +0200 (Wed, 23 May 2007) | 5 lines

  * src/threads/threads-common.h (THREAD_STATE_NEW)
  (THREAD_STATE_RUNNABLE, THREAD_STATE_BLOCKED, THREAD_STATE_WAITING)
  (THREAD_STATE_TIMED_WAITING, THREAD_STATE_TERMINATED): Start states
  with 1, so we can catch unset states.
........
  r7960 | twisti | 2007-05-24 00:04:49 +0200 (Thu, 24 May 2007) | 2 lines

  * configure.ac (AM_INIT_AUTOMAKE): Added dist-bzip2.
........
  r7961 | ajordan | 2007-05-24 00:54:38 +0200 (Thu, 24 May 2007) | 4 lines

  * src/vm/jit/sparc64/Makefile.am:
  md-asm.h was not properly added to noinst_HEADERS.
........
  r7962 | ajordan | 2007-05-24 01:56:59 +0200 (Thu, 24 May 2007) | 3 lines

  * src/vm/jit/sparc64/Makefile.am: Added missing emit.h.
........
  r7963 | twisti | 2007-05-24 12:21:16 +0200 (Thu, 24 May 2007) | 42 lines

  * src/threads/threads-common.c (mm/memory.h): Added.
  (toolbox/list.h): Likewise.
  (threads_table): Removed.
  (list_threads, list_threads_free): Added.
  (threads_preinit): Initialize lists.
  (threads_table_init): Removed.
  (threads_table_add): Likewise.
  (threads_table_remove): Likewise.
  (threads_table_get): Likewise.
  (threads_table_get_threads): Likewise.
  (threads_table_get_non_daemons): Likewise.
  (threads_table_first): Likewise.
  (threads_table_next): Likewise.
  (threads_table_dump): Likewise.
  (threads_list_first): New function.
  (threads_list_next): Likewise.
  (threads_list_get_non_daemons): Likewise.
  (threads_thread_new): Likewise.
  (threads_thread_free): Likewise.
  (threads_thread_print_info): Added state-assert, print thread index.
  (threads_thread_state_runnable): New function.
  (threads_thread_state_waiting): Likewise.
  (threads_thread_state_timed_waiting): Likewise.
  (threads_thread_state_terminated): Likewise.
  (threads_dump): Use threads-list functions.

  * src/threads/threads-common.h: Likewise.
  (threads_table_entry_t): Removed.
  (threads_table_t): Likewise.

  * src/threads/native/threads.c (mutex_threads_table): Renamed to
  mutex_threads_list.
  (threads_cast_sendsignals): Use threads-list functions.
  (threads_table_lock): Renamed to threads_list_lock.
  (threads_table_unlock): Renamed to threads_list_unlock.
  (threads_startup_thread): Use threads-state functions.
  (threads_detach_thread): Likewise.
  (threads_wait_with_timeout): Likewise.
  (threads_join_all_threads): Use threads-list functions.

  * src/threads/native/threads.h (threadobject): Added linkage.
........
  r7964 | twisti | 2007-05-24 12:23:42 +0200 (Thu, 24 May 2007) | 3 lines

  * src/vm/jit/i386/linux/md-os.c (md_signal_handler_sigsegv): Fixed
  warning.
........
  r7965 | michi | 2007-05-24 15:25:41 +0200 (Thu, 24 May 2007) | 3 lines

  * src/vmcore/linker.c (link_class_intern) [__ARM_EABI__]: Fixed field
  alignment bug. Double and Long fields are 8-byte aligned with EABI.
........
  r7966 | pm | 2007-05-25 14:41:03 +0200 (Fri, 25 May 2007) | 24 lines

  * src/vm/jit/show.h (show_filters_init, show_filters_apply, show_filters_test_verbosecall_enter, show_filters_test_verbosecall_exit): Added.
  * src/vm/jit/show.c: Likewise.
  * src/vm/jit/jit.c (jit_compile_intern): Honour filters.
  * src/vm/jit/codegen-common.c (codegen_add_patch_ref, codegen_generate_stub_native): Honour PATCHER_LONGBRANCHES_NOPS if defined, honour filters.
  * src/vm/builtin.c (builtin_trace_exception, builtin_verbosecall_enter, builtin_verbosecall_exit): Honour filters.
  * src/vm/signal.c (signal_init): Register SIGILL handler on s390.
  * src/vm/vm.c: Handle -XXfi, -XXfe, -XXfm commandline options.
  * src/vm/signallocal.h (md_signal_handler_sigill): Forward declare on s390.
  * src/threads/none/threads.h (_no_threads_filterverbosecallctr, FILTERVERBOSECALLCTR): Added.
  * src/threads/native/threads.h (struct threadobject): Added filterverbosecallctr.
  * src/threads/native/threads.c (threads_impl_thread_new): Initialize filterverbosecallctr.
  * src/threads/critical.c (critical_comparator): On s390, clear bit 32 of pointer when comparing.
  * src/vmcore/options.h (opt_filter_verbosecall_include, opt_filter_verbosecall_exclude, opt_filter_show_method): Added.
  * src/vmcore/options.c: Likewise.
  * src/vmcore/method.h (struct methodinfo): Added filtermatches.
  * configure.ac: If no NDEBUG and regex.h header is present, define ENABLE_DEBUG_FILTER.
  * src/vm/jit/s390/emit.c,
  src/vm/jit/s390/md.c,
  src/vm/jit/s390/codegen.c,
  src/vm/jit/s390/codegen.h,
  src/vm/jit/s390/tests/dacapo.status,
  src/vm/jit/s390/patcher.c: Changed a lot.
........
  r7967 | twisti | 2007-05-25 17:03:46 +0200 (Fri, 25 May 2007) | 3 lines

  * src/vm/string.c (javastring_new_from_utf_buffer): Made static.
  * src/vm/stringlocal.h (javastring_new_from_utf_buffer): Removed.
........
  r7968 | twisti | 2007-05-25 17:05:04 +0200 (Fri, 25 May 2007) | 3 lines

  * src/vm/jit/powerpc/md.c (md_get_method_patch_address): Fixed
  warning, use vm_abort.
........
  r7969 | twisti | 2007-05-25 17:05:57 +0200 (Fri, 25 May 2007) | 3 lines

  * src/vm/jit/optimizing/ifconv.c (vm/vm.h): Added.
  (ifconv_static): Fixed warning, use vm_abort.
........
  r7970 | twisti | 2007-05-25 17:23:56 +0200 (Fri, 25 May 2007) | 5 lines

  * src/threads/threads-common.c (threads_thread_start_internal)
  [WITH_CLASSPATH_CLDC1_1]: Set name to NULL, but this needs a fix.
  (threads_thread_print_info) [ENABLE_JAVAME_CLDC1_1]: Set name to
  utf_null.
........
  r7971 | pm | 2007-05-26 17:26:06 +0200 (Sat, 26 May 2007) | 2 lines

  * contrib/vmlog/vmlog.c: Use autoconf define WORDS_BIGENDIAN to determine endianess.
........
  r7972 | ajordan | 2007-05-28 02:05:04 +0200 (Mon, 28 May 2007) | 11 lines

  * src/vm/jit/sparc64/codegen.h: Removed asserts for stores with sethi.

  * src/vm/jit/sparc64/codegen.c: Added code to fill with nops when a patcher is right at the
  end of a basic block.

  * src/vm/jit/sparc64/asmpart.S (asm_vm_call_method_end): Returning 0 when an exception occurs.

  * src/vm/jit/sparc64/md.c (md_get_method_patch_address): Improved handling of mptr loads when
  a sethi is involved.
........
  r7973 | twisti | 2007-05-29 11:03:56 +0200 (Tue, 29 May 2007) | 10 lines

  * src/vm/exceptions.c (exceptions_throw_illegalaccessexception):
  Changed signature.
  * src/vm/exceptions.h: Likewise.

  * src/vm/resolve.c (resolve_class_from_name): Make utf8-string out of
  exception message.
  (resolve_subtype_check): Likewise.
  (resolve_field_verifier_checks): Likewise.
  (resolve_method_verifier_checks): Likewise.
........
  r7974 | twisti | 2007-05-29 13:30:20 +0200 (Tue, 29 May 2007) | 3 lines

  * src/vm/jit/powerpc64/codegen.c (codegen_emit): Fixed warnings, some
  indent.
........
  r7975 | pm | 2007-05-29 13:44:02 +0200 (Tue, 29 May 2007) | 3 lines

   * src/vm/jit/show.c (vm/vm.h) add missing include,
  (_no_threads_filterverbosecallctr) fix type: u2 instead of u4
........
  r7976 | twisti | 2007-05-29 14:22:55 +0200 (Tue, 29 May 2007) | 24 lines

  * src/vm/access.c (string.h): Added.
  (mm/memory.h): Likewise.
  (vmcore/field.h): Likewise.
  (vmcore/method.h): Likewise.
  (access_check_member): Removed.
  (access_check_field): New function.
  (access_check_method): Likewise.

  * src/vm/access.h (vmcore/field.h): Added.
  (vmcore/method.h): Likewise.
  (access_check_member): Removed.
  (access_check_field): New function.
  (access_check_method): Likewise.

  * src/native/vm/gnu/java_lang_reflect_Method.c (invokeNative): Call
  access_check_method instead of access_check_member.

  * src/native/vm/gnu/java_lang_reflect_Constructor.c (constructNative):
  Likewise.

  * src/native/vm/gnu/java_lang_reflect_Field.c
  (cacao_get_field_address): Call access_check_field instead of
  access_check_member.
........
  r7977 | twisti | 2007-05-29 14:34:20 +0200 (Tue, 29 May 2007) | 6 lines

  * src/vm/signal.c (signal_init): Changed signature.
  * src/vm/signallocal.h (signal_init): Likewise.

  * src/vm/vm.c (vm_create): Call signal_init right after gc_init and
  check return value.
........
  r7978 | twisti | 2007-05-30 16:09:10 +0200 (Wed, 30 May 2007) | 7 lines

  * src/vm/signal.c (mm/boehm-gc/include/gc.h): Added.
  (GC_suspend_handler): Defined.
  (GC_restart_handler): Likewise.
  (signal_thread): Add the Boehm-GC signals to the mask and call the
  appropriate Boehm-function. This is a workaround for the
  Boehm-LinuxThreads bug.
........
  r7979 | twisti | 2007-05-30 17:52:00 +0200 (Wed, 30 May 2007) | 3 lines

  * src/vm/jit/powerpc64/codegen.c (codegen_emit): Fixed --disable-debug
  build.
........
  r7980 | twisti | 2007-05-30 18:01:09 +0200 (Wed, 30 May 2007) | 4 lines

  * src/vm/jit/powerpc64/md.c (md_get_method_patch_address): Use
  vm_abort and fixed warning.
  (md_codegen_get_pv_from_pc): Likewise.
........
  r7981 | twisti | 2007-05-30 21:43:36 +0200 (Wed, 30 May 2007) | 9 lines

  * src/mm/boehm-gc/pthread_stop_world.c (cacao_suspendhandler):
  Commented.
  (GC_suspend_handler): Commented cacao_suspendhandler call.
  (GC_signum1, GC_signum2): Define for all configurations (hope that
  works).

  * src/threads/native/threads.c: Commented all critical-sections code,
  as it does not work anyway and it does not compile everywhere.
........
  r7982 | twisti | 2007-05-30 22:01:49 +0200 (Wed, 30 May 2007) | 6 lines

  * src/vm/jit/powerpc64/codegen.c (codegen_emit_stub_native): Fixed
  typo.

  * src/vm/jit/powerpc64/emit.c [!NDEBUG] (emit_verbosecall_enter)
  (emit_verbosecall_exit): Only compile conditionally.
........
  r7983 | twisti | 2007-05-30 22:04:42 +0200 (Wed, 30 May 2007) | 3 lines

  * src/vm/resolve.c (resolve_subtype_check): Don't free the memory
  before it's used.
........
  r7984 | twisti | 2007-05-30 22:30:00 +0200 (Wed, 30 May 2007) | 7 lines

  * src/threads/native/threads.c (threads_impl_preinit): Initialize
  mutex_threads_list.
  (threads_impl_table_init): Removed.
  (threads_impl_table_init, threads_list_unlock): Fixed debug message.

  * src/threads/threads-common.h (threads_impl_table_init): Removed.
........
  r7985 | twisti | 2007-05-30 22:40:23 +0200 (Wed, 30 May 2007) | 3 lines

  * src/mm/boehm-gc/pthread_stop_world.c (GC_signum1, GC_signum2): No it
  did not work, reverted rev7981.
........
  r7986 | twisti | 2007-05-30 22:45:43 +0200 (Wed, 30 May 2007) | 3 lines

  * src/vm/builtin.c (math.h): Removed because we don't need it as we
  include fdlibm.h and it does not work on some OSs, like Darwin.
........
  r7987 | twisti | 2007-05-30 22:51:50 +0200 (Wed, 30 May 2007) | 4 lines

  * src/vm/signal.c (signal_thread) [!__DARWIN__]: Don't do the
  GC_signum stuff on Darwin (should also be done on Solaris, but let's
  wait how the exact-GC is doing).
........
  r7988 | twisti | 2007-05-30 22:53:56 +0200 (Wed, 30 May 2007) | 4 lines

  * src/vm/jit/powerpc/darwin/md-abi.c,
  src/vm/jit/powerpc/darwin/md-abi.h: Removed Contact, Authors, Changes
  from header.
........
  r7989 | twisti | 2007-05-30 23:04:42 +0200 (Wed, 30 May 2007) | 4 lines

  * src/vm/jit/powerpc/asmpart.S [ENABLE_REPLACEMENT] (L_replace_me)
  (L_replace_build_execution_state, L_replace_free_safestack): Only if
  replacement is enabled, otherwise we get a linker error.
........
  r7990 | twisti | 2007-05-30 23:05:20 +0200 (Wed, 30 May 2007) | 3 lines

  * src/vm/jit/powerpc/darwin/md-os.c (thread_restartcriticalsection):
  Renamed to md_critical_section_restart.
........
  r7991 | twisti | 2007-05-30 23:59:29 +0200 (Wed, 30 May 2007) | 3 lines

  * ChangeLog: Updated.
  * ChangeLog-2006: New file.
........
  r7992 | twisti | 2007-05-31 00:01:38 +0200 (Thu, 31 May 2007) | 2 lines

  * NEWS: Added some 0.98 release notes.
........
  r7993 | twisti | 2007-05-31 00:32:43 +0200 (Thu, 31 May 2007) | 2 lines

  * src/vm/jit/powerpc64/emit.c (emit_branch): Removed debug output.
........
  r7994 | twisti | 2007-05-31 18:10:58 +0200 (Thu, 31 May 2007) | 2 lines

  * src/vm/vm.c (vm_create): Added comment.
........
  r7995 | twisti | 2007-06-01 00:45:19 +0200 (Fri, 01 Jun 2007) | 2 lines

  * src/vm/signal.c: Reverted rev7978.
........
  r7996 | twisti | 2007-06-01 01:05:51 +0200 (Fri, 01 Jun 2007) | 15 lines

  * m4/ac_pthreads_implementation.m4: New file.

  * m4/threads.m4 (AC_CHECK_ENABLE_THREADS): Call
  AC_CHECK_PTHREADS_IMPLEMENTATION for posix and linux.

  * configure.ac (AC_CHECK_HEADERS): Added stdlib.h.
  (AC_CHECK_FUNCS): Added confstr, strstr.

  * src/vm/signal.c (signal_init) [!PTHREADS_IS_LINUXTHREADS]: Only
  block the signals if we are not on LinuxThreads.
  (signal_thread): Set state accordingly.

  * src/vm/vm.c (vm_create) [!PTHREADS_IS_LINUXTHREADS]: Only start
  signal-thread if we are not on LinuxThreads.
........
  r7997 | twisti | 2007-06-01 01:26:23 +0200 (Fri, 01 Jun 2007) | 5 lines

  * src/vm/jit/mips/irix/md-os.c (vm/jit/mips/codegen.h): Added.
  (md_signal_handler_sigsegv): Updated to new exception-handling.
  (thread_restartcriticalsection): Renamed to
  md_critical_section_restart.
........
  r7998 | twisti | 2007-06-01 02:29:51 +0200 (Fri, 01 Jun 2007) | 16 lines

  * m4/ac_pthreads_implementation.m4: Reverted rev7996.
  * m4/threads.m4: Likewise.

  * src/threads/threads-common.c [__LINUX__]
  (threads_pthreads_implementation_nptl): Added.
  (threads_preinit) [__LINUX__]: Check which thread-implementation we
  are using.

  * src/threads/threads-common.h [__LINUX__]
  (threads_pthreads_implementation_nptl): Added.

  * src/vm/signal.c (signal_init) [__LINUX__]: Check for
  threads_pthreads_implementation_nptl.

  * src/vm/vm.c (vm_create) [__LINUX__]: Likewise.
........
  r7999 | ajordan | 2007-06-01 02:45:04 +0200 (Fri, 01 Jun 2007) | 12 lines

  * src/vm/jit/sparc64/codegen.c (codegen_emit_stub_native): Fixed the way
  float arguments are preserved over codegen_start_native_call.
  * src/vm/jit/sparc64/md-abi.c (codegen_start_native_call): Likewise.

  * src/vm/jit/sparc64/machine-instr.h (compare_and_swap): Changed inline
  assembly, so it survives gcc optimization.

  * src/vm/jit/sparc64/asmpart.S (asm_patcher_wrapper): Saving and restoring
  float return register.
  * src/vm/jit/sparc64/md-asm.h: Likewise.
........
  r8000 | ajordan | 2007-06-01 21:34:56 +0200 (Fri, 01 Jun 2007) | 2 lines

  * src/vm/signal.c: Added ifdefs to fix compiling with disabled threads.
........
  r8001 | pm | 2007-06-02 19:47:30 +0200 (Sat, 02 Jun 2007) | 9 lines

  * contrib/vmlog/vmlogfilter.c: Added a tool that filters a vmlog log file the same way as -XXfi and -XXfx do.

  * contrib/vmlog/vmlog.c,
  contrib/vmlog/vmlog.h (vmlog_thread_log_append): Made not-static.

  * contrib/vmlog/Makefile.am,
  configure.ac: Conditional building of vmlogfilter if ENABLE_VMLOG is set and regex.h present.
........
  r8002 | pm | 2007-06-03 20:24:44 +0200 (Sun, 03 Jun 2007) | 2 lines

  * configure.ac: Fix broken regex.h test.
........
  r8003 | twisti | 2007-06-03 20:42:09 +0200 (Sun, 03 Jun 2007) | 16 lines

  * src/threads/threads-common.c (threads_thread_start_internal):
  Changed order of initialization stuff, so we can leave the join-mutex
  very early.
  (threads_thread_start): Likewise.

  * src/threads/native/threads.c (threads_mutex_join_lock): New
  function.
  (threads_mutex_join_unlock): Likewise.
  (threads_attach_current_thread): Changed order of initialization
  stuff, so we can leave the join-mutex very early.
  (threads_detach_thread): Send the signal inside the join-mutex.
  (threads_join_all_threads): Use join-mutex functions.

  * src/threads/threads-common.h (threads_mutex_join_lock): Added.
  (threads_mutex_join_unlock): Likewise.
........
  r8004 | twisti | 2007-06-04 14:59:04 +0200 (Mon, 04 Jun 2007) | 3 lines

  * src/vm/signal.c (signal_init): Use if-vm_abort instead of assert.
  * src/vm/exceptions.h: Changed hardware-exception comment accordingly.
........
  r8005 | twisti | 2007-06-04 15:12:56 +0200 (Mon, 04 Jun 2007) | 9 lines

  * src/vm/signal.c (unistd.h): Removed.
  (sys/mman.h): Likewise.
  (signal_init): Moved mmap of page 0x0 and the hardware-exceptions
  check into exceptions_init.

  * src/vm/exceptions.c (unistd.h): Added.
  (sys/mman.h): Likewise.
  (exceptions_init): See above.
........
  r8006 | twisti | 2007-06-05 09:40:49 +0200 (Tue, 05 Jun 2007) | 20 lines

  * src/vmcore/statistics.c (count_calls_java_to_native): Added.
  (count_calls_native_to_java): Likewise.
  (count_native_function_calls): Removed.
  (nativeinvokation): Likewise.
  (print_stats): Print new variables.

  * src/vmcore/statistics.h (count_calls_java_to_native): Added.
  (count_calls_native_to_java): Likewise.
  (nativeinvokation): Removed.

  * src/vm/jit/codegen-common.c (codegen_start_native_call)
  [ENABLE_STATISTICS]: Increase count_calls_java_to_native.

  * src/vm/vm.c (vm_call_method_vmarg) [ENABLE_STATISTICS]: Increase
  count_calls_native_to_java.
  (vm_call_method_int_vmarg): Likewise.
  (vm_call_method_long_vmarg): Likewise.
  (vm_call_method_float_vmarg): Likewise.
  (vm_call_method_double_vmarg): Likewise.
........
  r8007 | twisti | 2007-06-05 09:42:57 +0200 (Tue, 05 Jun 2007) | 2 lines

  * src/vm/vm.c (vmcore/statistics.h): Added.
........
  r8008 | twisti | 2007-06-05 09:44:38 +0200 (Tue, 05 Jun 2007) | 2 lines

  * src/vm/vm.c: Set Id keyword.
........
  r8009 | twisti | 2007-06-05 09:56:35 +0200 (Tue, 05 Jun 2007) | 2 lines

  * src/vm/jit/mips/codegen.c (codegen_emit): Small code-layout change.
........
  r8010 | twisti | 2007-06-05 11:00:30 +0200 (Tue, 05 Jun 2007) | 3 lines

  * src/vm/jit/mips/codegen.c (codegen_emit): Use FLTMOVE and DBLMOVE to
  save some moves.
........
  r8011 | twisti | 2007-06-05 12:06:18 +0200 (Tue, 05 Jun 2007) | 12 lines

  * src/vm/jit/mips/md-abi.c (md_param_alloc) [SIZEOF_VOID_P == 4]: Use
  internally a different calling convention. It's the same as on n64
  with register skipping and, but with long alignment (as on ARM).
  (md_param_alloc_native) [SIZEOF_VOID_P == 4]: Use the o32 ABI.

  * src/vm/jit/mips/codegen.c (codegen_emit) [SIZEOF_VOID_P == 4]:
  Changes for new internal calling conventions.
  (codegen_emit_stub_native) [SIZEOF_VOID_P == 4]: Likewise.

  * src/vm/jit/mips/asmpart.S (asm_vm_call_method) [SIZEOF_VOID_P == 4]:
  Adjusted reserved stack-space to 4*4.
........
  r8012 | twisti | 2007-06-05 12:14:29 +0200 (Tue, 05 Jun 2007) | 3 lines

  * src/vm/jit/mips/md-abi.c (md_param_alloc_native)
  [SIZEOF_VOID_P == 8]: Fixed compilation.
........
  r8013 | twisti | 2007-06-05 12:19:09 +0200 (Tue, 05 Jun 2007) | 3 lines

  * src/vm/jit/mips/md-abi.c (md_param_alloc) [SIZEOF_VOID_P == 8]: Use
  reguse instead of i.
........
  r8014 | twisti | 2007-06-05 14:53:30 +0200 (Tue, 05 Jun 2007) | 3 lines

  * src/vm/jit/codegen-common.c [__ARM__] (md-abi.h): Removed.
  (codegen_reg_of_var) [__ARM__]: Removed split-code.
........
  r8015 | twisti | 2007-06-05 22:58:11 +0200 (Tue, 05 Jun 2007) | 10 lines

  * src/native/vm/gnu/Makefile.am (libnativevmcore_la_SOURCES): Removed
  sun_misc_Unsafe.c.

  * src/native/vm/Makefile.am [ENABLE_JAVASE] (SUN_MISC_UNSAFE_SOURCES):
  Added.
  (libnativevm_la_SOURCES): Added SUN_MISC_UNSAFE_SOURCES.

  * src/native/vm/gnu/sun_misc_Unsafe.c: Removed.
  * src/native/vm/sun_misc_Unsafe.c: Added.
........
  r8016 | twisti | 2007-06-06 00:11:12 +0200 (Wed, 06 Jun 2007) | 5 lines

  * src/native/native.c (native_init): Check nativevm_init return value.

  * src/native/vm/nativevm.c (nativevm_init): Changed signature.
  * src/native/vm/nativevm.h (nativevm_init): Likewise.
........
  r8017 | twisti | 2007-06-06 01:46:59 +0200 (Wed, 06 Jun 2007) | 10 lines

  * src/native/vm/gnu/java_lang_VMString.c
  (native/vm/java_lang_String.h): Added.
  (intern): Call _Jv_java_lang_String_intern.

  * src/native/vm/java_lang_String.c: New file.
  * src/native/vm/java_lang_String.h: Likewise.

  * src/native/vm/Makefile.am (libnativevm_la_SOURCES): Added
  java_lang_String.[ch].
........
  r8018 | twisti | 2007-06-06 11:24:22 +0200 (Wed, 06 Jun 2007) | 2 lines

  * configure.ac (AC_INIT): Changed version to 0.98.
........
  r8019 | twisti | 2007-06-06 11:26:00 +0200 (Wed, 06 Jun 2007) | 2 lines

  * ChangeLog: Updated.
........
  r8022 | twisti | 2007-06-06 13:31:28 +0200 (Wed, 06 Jun 2007) | 3 lines

  * configure.ac (AC_INIT): Changed version to 0.98+svn.
  (OPT_CFLAGS): Changed to -O0.
........
  r8023 | twisti | 2007-06-06 19:19:17 +0200 (Wed, 06 Jun 2007) | 2 lines

  * NEWS: Fixed 0.98 release date.
........
  r8024 | twisti | 2007-06-06 19:23:42 +0200 (Wed, 06 Jun 2007) | 8 lines

  * src/vmcore/class.c (class_is_primitive): New function.
  * src/vmcore/class.h (class_is_primitive): Added.

  * src/native/vm/java_lang_Class.c (isPrimitive): Use
  class_is_primitive.
  (getDeclaringClass): Likewise.
  (getDeclaredClasses): Likewise.
........
  r8025 | michi | 2007-06-07 10:51:54 +0200 (Thu, 07 Jun 2007) | 8 lines

  * src/vm/jit/code.h (codeinfo) [ENABLE_REPLACEMENT, HAS_ADDRESS_REGISTER_FILE]:
  Added savedadrcount.

  * src/vm/jit/replace.c [HAS_ADDRESS_REGISTER_FILE]: Added support for address
  registers.

  * src/vm/jit/replace.h [HAS_ADDRESS_REGISTER_FILE]: Likewise.
........
  r8026 | twisti | 2007-06-07 11:04:51 +0200 (Thu, 07 Jun 2007) | 15 lines

  * src/native/vm/gnu/java_lang_reflect_Constructor.c (methods): Install
  _Jv_- functions directly.
  (getModifiersInternal): Removed.
  (getParameterTypes): Likewise.
  (getExceptionTypes): Likewise.
  (constructNative): Call _Jv_java_lang_reflect_Constructor_newInstance.
  (getSignature): Removed.

  * src/native/vm/Makefile.am [ENABLE_JAVASE]
  (JAVA_LANG_REFLECT_CONSTRUCTOR_SOURCES): Added.
  (libnativevm_la_SOURCES): Added JAVA_LANG_REFLECT_CONSTRUCTOR_SOURCES.

  * src/native/vm/java_lang_reflect_Constructor.c: New file.
  * src/native/vm/java_lang_reflect_Constructor.h: Likewise.
........

--HG--
branch : exact-gc

87 files changed:
ChangeLog
NEWS
configure.ac
src/mm/boehm-gc/pthread_stop_world.c
src/native/native.c
src/native/native.h
src/native/vm/Makefile.am
src/native/vm/gnu/Makefile.am
src/native/vm/gnu/java_lang_VMClassLoader.c
src/native/vm/gnu/java_lang_VMString.c
src/native/vm/gnu/java_lang_reflect_Constructor.c
src/native/vm/gnu/java_lang_reflect_Field.c
src/native/vm/gnu/java_lang_reflect_Method.c
src/native/vm/gnu/sun_misc_Unsafe.c [deleted file]
src/native/vm/java_lang_Class.c
src/threads/critical.c
src/threads/native/lock.c
src/threads/native/lock.h
src/threads/native/threads.c
src/threads/native/threads.h
src/threads/none/threads.h
src/threads/threads-common.c
src/threads/threads-common.h
src/vm/access.c
src/vm/access.h
src/vm/builtin.c
src/vm/exceptions.c
src/vm/exceptions.h
src/vm/jit/alpha/linux/md-os.c
src/vm/jit/arm/linux/md-os.c
src/vm/jit/code.h
src/vm/jit/codegen-common.c
src/vm/jit/emit-common.h
src/vm/jit/i386/linux/md-os.c
src/vm/jit/jit.c
src/vm/jit/mips/Makefile.am
src/vm/jit/mips/asmpart.S
src/vm/jit/mips/codegen.c
src/vm/jit/mips/irix/md-os.c
src/vm/jit/mips/md-abi.c
src/vm/jit/optimizing/ifconv.c
src/vm/jit/optimizing/profile.c
src/vm/jit/powerpc/asmpart.S
src/vm/jit/powerpc/darwin/md-abi.c
src/vm/jit/powerpc/darwin/md-abi.h
src/vm/jit/powerpc/darwin/md-os.c
src/vm/jit/powerpc/linux/md-os.c
src/vm/jit/powerpc/md.c
src/vm/jit/powerpc64/codegen.c
src/vm/jit/powerpc64/emit.c
src/vm/jit/powerpc64/linux/md-os.c
src/vm/jit/powerpc64/md.c
src/vm/jit/replace.c
src/vm/jit/replace.h
src/vm/jit/s390/codegen.c
src/vm/jit/s390/codegen.h
src/vm/jit/s390/emit.c
src/vm/jit/s390/md.c
src/vm/jit/s390/patcher.c
src/vm/jit/show.c
src/vm/jit/show.h
src/vm/jit/sparc64/Makefile.am
src/vm/jit/sparc64/asmpart.S
src/vm/jit/sparc64/codegen.c
src/vm/jit/sparc64/codegen.h
src/vm/jit/sparc64/machine-instr.h
src/vm/jit/sparc64/md-abi.c
src/vm/jit/sparc64/md-asm.h
src/vm/jit/sparc64/md.c
src/vm/jit/x86_64/linux/md-os.c
src/vm/jit/x86_64/md.c
src/vm/resolve.c
src/vm/signal.c
src/vm/signallocal.h
src/vm/string.c
src/vm/stringlocal.h
src/vm/vm.c
src/vmcore/class.c
src/vmcore/class.h
src/vmcore/linker.c
src/vmcore/method.h
src/vmcore/options.c
src/vmcore/options.h
src/vmcore/statistics.c
src/vmcore/statistics.h
src/vmcore/utf8.c
src/vmcore/utf8.h

index 897a5684fd269036bea86ab4df77e547af69c0fe..c26a79c5725fae8649ce3cf9e780ef8c26acab34 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
-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
+2007-06-06 09:24  twisti
 
-       * src/threads/native/threads.c (threads_dump): Cast pthread_t to long
-       for printing it.
+       * configure.ac (AC_INIT): Changed version to 0.98.
 
-2006-10-30 11:00  edwin
+2007-06-05 23:46  twisti
 
-       * 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).
+       * src/native/vm/gnu/java_lang_VMString.c
+       (native/vm/java_lang_String.h): Added.
+       (intern): Call _Jv_java_lang_String_intern.
+       
+       * src/native/vm/java_lang_String.c: New file.
+       * src/native/vm/java_lang_String.h: Likewise.
+       
+       * src/native/vm/Makefile.am (libnativevm_la_SOURCES): Added
+       java_lang_String.[ch].
 
-2006-10-30 10:32  edwin
+2007-06-05 22:11  twisti
 
-       * src/vm/jit/verify/typecheck-common.c (typecheck_init_flags): Removed
-       set-but-not-used variable `i`.
+       * src/native/native.c (native_init): Check nativevm_init return value.
+       
+       * src/native/vm/nativevm.c (nativevm_init): Changed signature.
+       * src/native/vm/nativevm.h (nativevm_init): Likewise.
 
-2006-10-30 10:31  edwin
+2007-06-05 20:58  twisti
 
-       * src/vm/jit/verify/typecheck-builtins.inc: Removed set-but-not-used
-       variable `cls`.
+       * src/native/vm/gnu/Makefile.am (libnativevmcore_la_SOURCES): Removed
+       sun_misc_Unsafe.c.
+       
+       * src/native/vm/Makefile.am [ENABLE_JAVASE] (SUN_MISC_UNSAFE_SOURCES):
+       Added.
+       (libnativevm_la_SOURCES): Added SUN_MISC_UNSAFE_SOURCES.
+       
+       * src/native/vm/gnu/sun_misc_Unsafe.c: Removed.
+       * src/native/vm/sun_misc_Unsafe.c: Added.
 
-2006-10-30 10:15  edwin
+2007-06-05 12:53  twisti
 
-       * src/vm/jit/alpha/codegen.c (codegen): Zero `uf` to avoid warning.
+       * src/vm/jit/codegen-common.c [__ARM__] (md-abi.h): Removed.
+       (codegen_reg_of_var) [__ARM__]: Removed split-code.
 
-2006-10-30 00:45  edwin
+2007-06-05 10:19  twisti
 
-       * 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.
+       * src/vm/jit/mips/md-abi.c (md_param_alloc) [SIZEOF_VOID_P == 8]: Use
+       reguse instead of i.
 
-2006-10-29 23:43  edwin
+2007-06-05 10:14  twisti
 
-       * src/vm/jit/jit.h (stackelement): Removed the obsolete fields
-       `typeinfo` and `regoff`.
+       * src/vm/jit/mips/md-abi.c (md_param_alloc_native)
+       [SIZEOF_VOID_P == 8]: Fixed compilation.
 
-2006-10-29 23:37  edwin
+2007-06-05 10:06  twisti
 
-       * src/vm/jit/stack.c (stack_grow_variable_array): Zero the additional
-       space when reallocating the jd->var array.
+       * src/vm/jit/mips/md-abi.c (md_param_alloc) [SIZEOF_VOID_P == 4]: Use
+       internally a different calling convention. It's the same as on n64
+       with register skipping and, but with long alignment (as on ARM).
+       (md_param_alloc_native) [SIZEOF_VOID_P == 4]: Use the o32 ABI.
        
-       * src/vm/jit/parse.c (parse_realloc_instructions): Zero the
-       additional space when reallocating the instructions array.
+       * src/vm/jit/mips/codegen.c (codegen_emit) [SIZEOF_VOID_P == 4]:
+       Changes for new internal calling conventions.
+       (codegen_emit_stub_native) [SIZEOF_VOID_P == 4]: Likewise.
+       
+       * src/vm/jit/mips/asmpart.S (asm_vm_call_method) [SIZEOF_VOID_P == 4]:
+       Adjusted reserved stack-space to 4*4.
+
+2007-06-05 09:00  twisti
 
-2006-10-29 23:33  edwin
+       * src/vm/jit/mips/codegen.c (codegen_emit): Use FLTMOVE and DBLMOVE to
+       save some moves.
 
-       * src/vm/jit/parse.c (parse): Fix in ICMD_TABLESWITCH: Put table into
-       dump memory.
+2007-06-05 07:56  twisti
 
-2006-10-29 23:23  edwin
+       * src/vm/jit/mips/codegen.c (codegen_emit): Small code-layout change.
 
-       * NEWS: Typo fixed.
+2007-06-05 07:44  twisti
 
-2006-10-29 16:21  edwin
+       * src/vm/vm.c: Set Id keyword.
 
-       * src/vm/suck.c (stdlib.h): Include to avoid warning about `free`.
+2007-06-05 07:42  twisti
 
-2006-10-29 16:14  edwin
+       * src/vm/vm.c (vmcore/statistics.h): Added.
 
-       * 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.
+2007-06-05 07:40  twisti
+
+       * src/vmcore/statistics.c (count_calls_java_to_native): Added.
+       (count_calls_native_to_java): Likewise.
+       (count_native_function_calls): Removed.
+       (nativeinvokation): Likewise.
+       (print_stats): Print new variables.
+       
+       * src/vmcore/statistics.h (count_calls_java_to_native): Added.
+       (count_calls_native_to_java): Likewise.
+       (nativeinvokation): Removed.
+       
+       * src/vm/jit/codegen-common.c (codegen_start_native_call)
+       [ENABLE_STATISTICS]: Increase count_calls_java_to_native.
+       
+       * src/vm/vm.c (vm_call_method_vmarg) [ENABLE_STATISTICS]: Increase
+       count_calls_native_to_java.
+       (vm_call_method_int_vmarg): Likewise.
+       (vm_call_method_long_vmarg): Likewise.
+       (vm_call_method_float_vmarg): Likewise.
+       (vm_call_method_double_vmarg): Likewise.
 
-2006-10-29 14:49  twisti
+2007-06-04 13:12  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.
+       * src/vm/signal.c (unistd.h): Removed.
+       (sys/mman.h): Likewise.
+       (signal_init): Moved mmap of page 0x0 and the hardware-exceptions
+       check into exceptions_init.
+       
+       * src/vm/exceptions.c (unistd.h): Added.
+       (sys/mman.h): Likewise.
+       (exceptions_init): See above.
 
-2006-10-29 11:15  edwin
+2007-06-04 12:59  twisti
 
-       * src/cacaoh/headers.c (vm_abort): Print the error message before
-       aborting.
+       * src/vm/signal.c (signal_init): Use if-vm_abort instead of assert.
+       * src/vm/exceptions.h: Changed hardware-exception comment accordingly.
 
-2006-10-28 19:40  twisti
+2007-06-03 18:42  twisti
 
-       * NEWS: New news.
+       * src/threads/threads-common.c (threads_thread_start_internal):
+       Changed order of initialization stuff, so we can leave the join-mutex
+       very early.
+       (threads_thread_start): Likewise.
+       
+       * src/threads/native/threads.c (threads_mutex_join_lock): New
+       function.
+       (threads_mutex_join_unlock): Likewise.
+       (threads_attach_current_thread): Changed order of initialization
+       stuff, so we can leave the join-mutex very early.
+       (threads_detach_thread): Send the signal inside the join-mutex.
+       (threads_join_all_threads): Use join-mutex functions.
+       
+       * src/threads/threads-common.h (threads_mutex_join_lock): Added.
+       (threads_mutex_join_unlock): Likewise.
 
-2006-10-28 19:26  twisti
+2007-06-03 18:24  pm
 
-       * src/vm/jit/dseg.c (dseg_find_float): Compare hex value.
-       (dseg_find_double): Likewise.
+       * configure.ac: Fix broken regex.h test.
 
-2006-10-28 17:45  twisti
+2007-06-02 17:47  pm
 
-       * NEWS: Added some stuff.
+       * contrib/vmlog/vmlogfilter.c: Added a tool that filters a vmlog log
+       file the same way as -XXfi and -XXfx do.
+       
+       * contrib/vmlog/vmlog.c,
+       contrib/vmlog/vmlog.h (vmlog_thread_log_append): Made not-static.
+       
+       * contrib/vmlog/Makefile.am,
+       configure.ac: Conditional building of vmlogfilter if ENABLE_VMLOG is
+       set and regex.h present.
 
-2006-10-28 17:15  edwin
+2007-06-01 19:34  ajordan
 
-       * NEWS: Added news for CACAO 0.97.
+       * src/vm/signal.c: Added ifdefs to fix compiling with disabled
+       threads.
 
-2006-10-28 16:55  edwin
+2007-06-01 00:45  ajordan
 
-       * 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.
+       * src/vm/jit/sparc64/codegen.c (codegen_emit_stub_native): Fixed the
+       way
+       float arguments are preserved over codegen_start_native_call.
+       * src/vm/jit/sparc64/md-abi.c (codegen_start_native_call): Likewise.
+       
+       * src/vm/jit/sparc64/machine-instr.h (compare_and_swap): Changed
+       inline
+       assembly, so it survives gcc optimization.
+       
+       * src/vm/jit/sparc64/asmpart.S (asm_patcher_wrapper): Saving and
+       restoring
+       float return register.
+       * src/vm/jit/sparc64/md-asm.h: Likewise.
 
-2006-10-28 16:51  edwin
+2007-06-01 00:29  twisti
 
-       * src/vm/jit/stack.c (stack_analyse): Store vartop in jitdata.
+       * m4/ac_pthreads_implementation.m4: Reverted rev7996.
+       * m4/threads.m4: Likewise.
        
-       * src/vm/jit/show.c (show_method): Show number of variables.
+       * src/threads/threads-common.c [__LINUX__]
+       (threads_pthreads_implementation_nptl): Added.
+       (threads_preinit) [__LINUX__]: Check which thread-implementation we
+       are using.
        
-       * 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.
+       * src/threads/threads-common.h [__LINUX__]
+       (threads_pthreads_implementation_nptl): Added.
        
-       * tests/regression/jasmin/Makefile.am: Added new tests.
+       * src/vm/signal.c (signal_init) [__LINUX__]: Check for
+       threads_pthreads_implementation_nptl.
+       
+       * src/vm/vm.c (vm_create) [__LINUX__]: Likewise.
+
+2007-05-31 23:26  twisti
 
-2006-10-28 15:21  edwin
+       * src/vm/jit/mips/irix/md-os.c (vm/jit/mips/codegen.h): Added.
+       (md_signal_handler_sigsegv): Updated to new exception-handling.
+       (thread_restartcriticalsection): Renamed to
+       md_critical_section_restart.
 
-       * src/vm/jit/stack.c (stackdata_t): Added field varsallocated.
-       (stack_grow_variable_array): Smarted memory allocation.
-       (stack_analyse): Initialize sd.varsallocated.
+2007-05-31 23:05  twisti
 
-2006-10-28 13:02  edwin
+       * m4/ac_pthreads_implementation.m4: New file.
+       
+       * m4/threads.m4 (AC_CHECK_ENABLE_THREADS): Call
+       AC_CHECK_PTHREADS_IMPLEMENTATION for posix and linux.
+       
+       * configure.ac (AC_CHECK_HEADERS): Added stdlib.h.
+       (AC_CHECK_FUNCS): Added confstr, strstr.
+       
+       * src/vm/signal.c (signal_init) [!PTHREADS_IS_LINUXTHREADS]: Only
+       block the signals if we are not on LinuxThreads.
+       (signal_thread): Set state accordingly.
+       
+       * src/vm/vm.c (vm_create) [!PTHREADS_IS_LINUXTHREADS]: Only start
+       signal-thread if we are not on LinuxThreads.
 
-       * 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.
+2007-05-31 22:45  twisti
 
-2006-10-28 12:53  edwin
+       * src/vm/signal.c: Reverted rev7978.
 
-       * src/vm/loader.c (LOADER_ASSERT): Replaced with assert.
+2007-05-31 16:10  twisti
 
-2006-10-28 12:49  edwin
+       * src/vm/vm.c (vm_create): Added comment.
 
-       * src/vm/class.c (CLASS_ASSERT): Replaced by assert.
+2007-05-30 22:32  twisti
 
-2006-10-28 12:47  edwin
+       * src/vm/jit/powerpc64/emit.c (emit_branch): Removed debug output.
 
-       * src/vm/class.c (class_array_of): Release dump memory.
-       (class_multiarray_of): Likewise.
-       (class_get_classref_multiarray_of): Likewise.
+2007-05-30 22:01  twisti
 
-2006-10-27 10:41  twisti
+       * NEWS: Added some 0.98 release notes.
 
-       * 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.
+2007-05-30 21:59  twisti
 
-2006-10-26 16:41  edwin
+       * ChangeLog: Updated.
+       * ChangeLog-2006: New file.
+
+2007-05-30 21:05  twisti
 
-       * src/vm/jit/alpha/codegen.c (codegen): Declare variables at the start
-       of codegen (uf, fi).
+       * src/vm/jit/powerpc/darwin/md-os.c (thread_restartcriticalsection):
+       Renamed to md_critical_section_restart.
 
-2006-10-26 12:05  twisti
+2007-05-30 21:04  twisti
 
-       * src/vm/jit/powerpc/codegen.c (codegen): Made fieldinfo and
-       unresolved_field fucntion variables, fieldtype was uninitialized for
-       PUTFIELD.
+       * src/vm/jit/powerpc/asmpart.S [ENABLE_REPLACEMENT] (L_replace_me)
+       (L_replace_build_execution_state, L_replace_free_safestack): Only if
+       replacement is enabled, otherwise we get a linker error.
 
-2006-10-26 11:57  twisti
+2007-05-30 20:53  twisti
 
-       * src/vm/jit/x86_64/codegen.c (codegen): Made fieldinfo and
-       unresolved_field function variables (it makes the code more readable).
+       * src/vm/jit/powerpc/darwin/md-abi.c,
+       src/vm/jit/powerpc/darwin/md-abi.h: Removed Contact, Authors, Changes
+       from header.
 
-2006-10-26 11:47  edwin
+2007-05-30 20:51  twisti
 
-       * 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.
+       * src/vm/signal.c (signal_thread) [!__DARWIN__]: Don't do the
+       GC_signum stuff on Darwin (should also be done on Solaris, but let's
+       wait how the exact-GC is doing).
 
-2006-10-26 11:35  twisti
+2007-05-30 20:45  twisti
 
-       * NEWS: Added some 0.97 news.
+       * src/vm/builtin.c (math.h): Removed because we don't need it as we
+       include fdlibm.h and it does not work on some OSs, like Darwin.
 
-2006-10-26 11:30  twisti
+2007-05-30 20:40  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.
+       * src/mm/boehm-gc/pthread_stop_world.c (GC_signum1, GC_signum2): No it
+       did not work, reverted rev7981.
 
-2006-10-26 11:29  edwin
+2007-05-30 20:30  twisti
 
-       * src/vm/jit/intrp/codegen.c (codegen): Initialize uf to NULL for
-       resolved fields, to avoid warnings.
+       * src/threads/native/threads.c (threads_impl_preinit): Initialize
+       mutex_threads_list.
+       (threads_impl_table_init): Removed.
+       (threads_impl_table_init, threads_list_unlock): Fixed debug message.
        
-       * src/vm/jit/intrp/engine.c (engine): Initialize
-       classcastexception_object and arrayindexoutofbounds_index to avoid
-       warnings.
+       * src/threads/threads-common.h (threads_impl_table_init): Removed.
 
-2006-10-26 11:23  edwin
+2007-05-30 20:04  twisti
 
-       * src/vm/jit/dseg.c (dseg_addlinenumber_inline_start): Read inline
-       info from instruction, ported to new instruction format.
-       (dseg_addlinenumber_inline_end): Likewise.
+       * src/vm/resolve.c (resolve_subtype_check): Don't free the memory
+       before it's used.
 
-2006-10-26 11:19  edwin
+2007-05-30 20:01  twisti
 
-       * src/vm/jit/show.c (show_icmd): Fixed warning fix.
+       * src/vm/jit/powerpc64/codegen.c (codegen_emit_stub_native): Fixed
+       typo.
+       
+       * src/vm/jit/powerpc64/emit.c [!NDEBUG] (emit_verbosecall_enter)
+       (emit_verbosecall_exit): Only compile conditionally.
 
-2006-10-26 11:18  edwin
+2007-05-30 19:43  twisti
 
-       * src/threads/native/threads.c (threads_table_dump): Fix warning (the
-       function is currently unused, but may become handy again.)
+       * src/mm/boehm-gc/pthread_stop_world.c (cacao_suspendhandler):
+       Commented.
+       (GC_suspend_handler): Commented cacao_suspendhandler call.
+       (GC_signum1, GC_signum2): Define for all configurations (hope that
+       works).
+       
+       * src/threads/native/threads.c: Commented all critical-sections code,
+       as it does not work anyway and it does not compile everywhere.
 
-2006-10-26 11:15  edwin
+2007-05-30 16:01  twisti
 
-       * src/vm/jit/show.c (show_method): Fixed warning.
-       (show_basicblock): Likewise.
-       (show_icmd): Likewise.
+       * src/vm/jit/powerpc64/md.c (md_get_method_patch_address): Use
+       vm_abort and fixed warning.
+       (md_codegen_get_pv_from_pc): Likewise.
 
-2006-10-26 11:04  twisti
+2007-05-30 15:52  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.
+       * src/vm/jit/powerpc64/codegen.c (codegen_emit): Fixed --disable-debug
+       build.
 
-2006-10-26 10:34  twisti
+2007-05-30 14:09  twisti
 
-       * src/vm/jit/mips/md-abi.h: Fixed MIPS64 compilation and backported
-       some MIPS32 stuff.
+       * src/vm/signal.c (mm/boehm-gc/include/gc.h): Added.
+       (GC_suspend_handler): Defined.
+       (GC_restart_handler): Likewise.
+       (signal_thread): Add the Boehm-GC signals to the mask and call the
+       appropriate Boehm-function. This is a workaround for the
+       Boehm-LinuxThreads bug.
 
-2006-10-26 10:09  twisti
+2007-05-29 12:34  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).
+       * src/vm/signal.c (signal_init): Changed signature.
+       * src/vm/signallocal.h (signal_init): Likewise.
+       
+       * src/vm/vm.c (vm_create): Call signal_init right after gc_init and
+       check return value.
 
-2006-10-26 09:55  twisti
+2007-05-29 12:22  twisti
 
-       * src/vm/jit/mips/codegen.c (codegen): More comment and brace changes.
+       * src/vm/access.c (string.h): Added.
+       (mm/memory.h): Likewise.
+       (vmcore/field.h): Likewise.
+       (vmcore/method.h): Likewise.
+       (access_check_member): Removed.
+       (access_check_field): New function.
+       (access_check_method): Likewise.
+       
+       * src/vm/access.h (vmcore/field.h): Added.
+       (vmcore/method.h): Likewise.
+       (access_check_member): Removed.
+       (access_check_field): New function.
+       (access_check_method): Likewise.
+       
+       * src/native/vm/gnu/java_lang_reflect_Method.c (invokeNative): Call
+       access_check_method instead of access_check_member.
+       
+       * src/native/vm/gnu/java_lang_reflect_Constructor.c (constructNative):
+       Likewise.
+       
+       * src/native/vm/gnu/java_lang_reflect_Field.c
+       (cacao_get_field_address): Call access_check_field instead of
+       access_check_member.
 
-2006-10-26 09:44  twisti
+2007-05-29 11:44  pm
 
-       * src/vm/jit/mips/codegen.c (codegen): Comment and brace changes.
+       * src/vm/jit/show.c (vm/vm.h) add missing include,
+       (_no_threads_filterverbosecallctr) fix type: u2 instead of u4
 
-2006-10-26 09:29  twisti
+2007-05-29 11:30  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.
+       * src/vm/jit/powerpc64/codegen.c (codegen_emit): Fixed warnings, some
+       indent.
 
-2006-10-25 14:26  tbfg
+2007-05-29 09:03  twisti
 
-       * 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/exceptions.c (exceptions_throw_illegalaccessexception):
+       Changed signature.
+       * src/vm/exceptions.h: Likewise.
        
-       * 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/resolve.c (resolve_class_from_name): Make utf8-string out of
+       exception message.
+       (resolve_subtype_check): Likewise.
+       (resolve_field_verifier_checks): Likewise.
+       (resolve_method_verifier_checks): Likewise.
+
+2007-05-28 00:05  ajordan
+
+       * src/vm/jit/sparc64/codegen.h: Removed asserts for stores with sethi.
        
-       * src/vm/jit/powerpc64/asmpart.S:
-       Partially fixed exception path.
-       (asm_cacheflush): Fixed.
+       * src/vm/jit/sparc64/codegen.c: Added code to fill with nops when a
+       patcher is right at the
+       end of a basic block.
        
-       * src/vm/jit/powerpc64/codegen.h (LCONST): Implemented.
+       * src/vm/jit/sparc64/asmpart.S (asm_vm_call_method_end): Returning 0
+       when an exception occurs.
        
-       * tests/if_tests.java: Added simple testcase for if and compare.
+       * src/vm/jit/sparc64/md.c (md_get_method_patch_address): Improved
+       handling of mptr loads when
+       a sethi is involved.
 
-2006-10-24 23:24  edwin
+2007-05-26 15:26  pm
 
-       * 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.
+       * contrib/vmlog/vmlog.c: Use autoconf define WORDS_BIGENDIAN to
+       determine endianess.
 
-2006-10-24 17:51  edwin
+2007-05-25 15:23  twisti
 
-       * 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.
+       * src/threads/threads-common.c (threads_thread_start_internal)
+       [WITH_CLASSPATH_CLDC1_1]: Set name to NULL, but this needs a fix.
+       (threads_thread_print_info) [ENABLE_JAVAME_CLDC1_1]: Set name to
+       utf_null.
 
-2006-10-24 16:41  edwin
+2007-05-25 15:05  twisti
 
-       * 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.
+       * src/vm/jit/optimizing/ifconv.c (vm/vm.h): Added.
+       (ifconv_static): Fixed warning, use vm_abort.
+       * src/vm/jit/powerpc/md.c (md_get_method_patch_address): Fixed
+       warning, use vm_abort.
 
-2006-10-24 11:17  twisti
+2007-05-25 15:03  twisti
 
-       * src/vm/jit/dseg.c (dseg_display): Rewritten.
+       * src/vm/string.c (javastring_new_from_utf_buffer): Made static.
+       * src/vm/stringlocal.h (javastring_new_from_utf_buffer): Removed.
 
-2006-10-22 04:28  ajordan
+2007-05-25 12:41  pm
 
-       * src/vm/jit/sparc64/codegen.h: fixed M_SAVE.
-       
-       * src/vm/jit/sparc64/disass.c: configuring disass for big-endian.
+       * src/vm/jit/show.h (show_filters_init, show_filters_apply,
+       show_filters_test_verbosecall_enter,
+       show_filters_test_verbosecall_exit): Added.
+       * src/vm/jit/show.c: Likewise.
+       * src/vm/jit/jit.c (jit_compile_intern): Honour filters.
+       * src/vm/jit/codegen-common.c (codegen_add_patch_ref,
+       codegen_generate_stub_native): Honour PATCHER_LONGBRANCHES_NOPS if
+       defined, honour filters.
+       * src/vm/builtin.c (builtin_trace_exception,
+       builtin_verbosecall_enter, builtin_verbosecall_exit): Honour filters.
+       * src/vm/signal.c (signal_init): Register SIGILL handler on s390.
+       * src/vm/vm.c: Handle -XXfi, -XXfe, -XXfm commandline options.
+       * src/vm/signallocal.h (md_signal_handler_sigill): Forward declare on
+       s390.
+       * src/threads/none/threads.h (_no_threads_filterverbosecallctr,
+       FILTERVERBOSECALLCTR): Added.
+       * src/threads/native/threads.h (struct threadobject): Added
+       filterverbosecallctr.
+       * src/threads/native/threads.c (threads_impl_thread_new): Initialize
+       filterverbosecallctr.
+       * src/threads/critical.c (critical_comparator): On s390, clear bit 32
+       of pointer when comparing.
+       * src/vmcore/options.h (opt_filter_verbosecall_include,
+       opt_filter_verbosecall_exclude, opt_filter_show_method): Added.
+       * src/vmcore/options.c: Likewise.
+       * src/vmcore/method.h (struct methodinfo): Added filtermatches.
+       * configure.ac: If no NDEBUG and regex.h header is present, define
+       ENABLE_DEBUG_FILTER.
+       * src/vm/jit/s390/emit.c,
+       src/vm/jit/s390/md.c,
+       src/vm/jit/s390/codegen.c,
+       src/vm/jit/s390/codegen.h,
+       src/vm/jit/s390/tests/dacapo.status,
+       src/vm/jit/s390/patcher.c: Changed a lot.
+
+2007-05-24 13:25  michi
+
+       * src/vmcore/linker.c (link_class_intern) [__ARM_EABI__]: Fixed field
+       alignment bug. Double and Long fields are 8-byte aligned with EABI.
+
+2007-05-24 10:23  twisti
+
+       * src/vm/jit/i386/linux/md-os.c (md_signal_handler_sigsegv): Fixed
+       warning.
 
-2006-10-22 02:49  ajordan
+2007-05-24 10:21  twisti
 
-       * 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/threads/threads-common.c (mm/memory.h): Added.
+       (toolbox/list.h): Likewise.
+       (threads_table): Removed.
+       (list_threads, list_threads_free): Added.
+       (threads_preinit): Initialize lists.
+       (threads_table_init): Removed.
+       (threads_table_add): Likewise.
+       (threads_table_remove): Likewise.
+       (threads_table_get): Likewise.
+       (threads_table_get_threads): Likewise.
+       (threads_table_get_non_daemons): Likewise.
+       (threads_table_first): Likewise.
+       (threads_table_next): Likewise.
+       (threads_table_dump): Likewise.
+       (threads_list_first): New function.
+       (threads_list_next): Likewise.
+       (threads_list_get_non_daemons): Likewise.
+       (threads_thread_new): Likewise.
+       (threads_thread_free): Likewise.
+       (threads_thread_print_info): Added state-assert, print thread index.
+       (threads_thread_state_runnable): New function.
+       (threads_thread_state_waiting): Likewise.
+       (threads_thread_state_timed_waiting): Likewise.
+       (threads_thread_state_terminated): Likewise.
+       (threads_dump): Use threads-list functions.
        
-       * src/vm/jit/sparc64/asmpart.S(asm_call_jit_compiler): Fixed window
-       handling
+       * src/threads/threads-common.h: Likewise.
+       (threads_table_entry_t): Removed.
+       (threads_table_t): Likewise.
        
-       * src/vm/jit/sparc64/disass.c: Fixed disassembly printing.
+       * src/threads/native/threads.c (mutex_threads_table): Renamed to
+       mutex_threads_list.
+       (threads_cast_sendsignals): Use threads-list functions.
+       (threads_table_lock): Renamed to threads_list_lock.
+       (threads_table_unlock): Renamed to threads_list_unlock.
+       (threads_startup_thread): Use threads-state functions.
+       (threads_detach_thread): Likewise.
+       (threads_wait_with_timeout): Likewise.
+       (threads_join_all_threads): Use threads-list functions.
        
-       * 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.
+       * src/threads/native/threads.h (threadobject): Added linkage.
 
-2006-10-22 00:38  edwin
+2007-05-23 23:56  ajordan
 
-       * 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.
+       * src/vm/jit/sparc64/Makefile.am: Added missing emit.h.
 
-2006-10-21 15:06  edwin
+2007-05-23 22:54  ajordan
 
-       * src/vm/jit/parse.c (parse): Bugfix for -noverify: Do not make the
-       variable array dependant on jd->flags, as this breaks stack_analyse.
+       * src/vm/jit/sparc64/Makefile.am:
+       md-asm.h was not properly added to noinst_HEADERS.
 
-2006-10-20 18:35  twisti
+2007-05-23 22:04  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.
+       * configure.ac (AM_INIT_AUTOMAKE): Added dist-bzip2.
 
-2006-10-20 14:53  twisti
+2007-05-23 19:37  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.
+       * src/threads/threads-common.h (THREAD_STATE_NEW)
+       (THREAD_STATE_RUNNABLE, THREAD_STATE_BLOCKED, THREAD_STATE_WAITING)
+       (THREAD_STATE_TIMED_WAITING, THREAD_STATE_TERMINATED): Start states
+       with 1, so we can catch unset states.
 
-2006-10-20 14:26  twisti
+2007-05-23 19:11  twisti
 
-       * src/vm/linker.c (link_class_intern): Handle AbstractMethodError for
-       interpreter (missed this one in the last commit).
+       * src/vm/jit/powerpc64/linux/md-os.c (md_critical_section_restart):
+       Fixed typo.
 
-2006-10-20 14:22  twisti
+2007-05-23 18:28  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.
+       * src/vm/jit/mips/Makefile.am (DIST_SUBDIRS): Added uclinux.
 
-2006-10-20 13:58  twisti
+2007-05-23 18:08  twisti
 
-       * src/native/vm/gnu_classpath_VMSystemProperties.c (preInit): Removed
-       unused ld_library_path.
+       * src/vmcore/statistics.c (statistics_print_memory_usage): Smaller
+       output changes.
 
-2006-10-20 13:54  twisti
+2007-05-23 18:05  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.
+       * src/vm/jit/arm/linux/md-os.c,
+       src/vm/jit/alpha/linux/md-os.c,
+       src/vm/jit/i386/linux/md-os.c,
+       src/vm/jit/powerpc/linux/md-os.c,
+       src/vm/jit/powerpc64/linux/md-os.c,
+       src/vm/jit/x86_64/linux/md-os.c (md_critical_section_restart): Removed
+       debug output.
+
+2007-05-23 17:58  twisti
+
+       * src/threads/native/lock.c: Set Id keyword.
+       * src/threads/native/lock.h: Likewise.
+
+2007-05-23 17:56  twisti
+
+       * src/native/vm/gnu/java_lang_VMClassLoader.c (getPrimitiveClass):
+       Return NULL in error case.
+
+2007-05-23 17:53  twisti
+
+       * src/vm/jit/optimizing/profile.c: Set Id keyword.
+
+2007-05-23 17:51  twisti
+
+       * src/vm/jit/optimizing/profile.c (profile_thread): Replaced table-
+       with list-functions.
+       * src/vm/vm.c (vm_create): Use vm_abort for profile_start_thread.
+
+2007-05-23 17:46  twisti
 
-2006-10-20 13:09  twisti
+       * src/vm/jit/jit.c (jit_compile_intern): Fixed typo.
 
-       * 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.
+2007-05-23 16:00  twisti
+
+       * src/vm/exceptions.c (exceptions_new_hardware_exception): Fixed
+       warning.
+
+2007-05-23 15:57  twisti
+
+       * src/vm/jit/x86_64/md.c (md_get_method_patch_address): Fixed warning.
+       * src/vm/jit/x86_64/linux/md-os.c (md_signal_handler_sigsegv):
+       Likewise.
+
+2007-05-23 15:43  twisti
+
+       * configure.ac (OPT_CFLAGS): Changed to -O2.
+
+2007-05-23 15:25  twisti
+
+       * src/vm/jit/powerpc64/codegen.c (codegen_emit): ICMD_INSTANCEOF:
+       Removed unused supervftbl.
        
-       * src/vm/vm.c (vm_create): Call threads_preinit before gc_init.
-       * src/cacaoh/cacaoh.c (main): Likewise.
+       * src/vm/jit/emit-common.h [__POWERPC64__] (emit_bnan): Enabled.
 
-2006-10-20 12:00  twisti
+2007-05-23 14:15  tbfg
 
-       * src/vm/exceptions.c [ENABLE_JIT] (exceptions_handle_exception): Only
-       required for JIT.
+       * src/vm/jit/powerpc64/emit.c (MCODECHECK): Increase values to fix
+       canary corruption.
+       * src/vm/jit/powerpc64/codegen.c (MCODECHECK): Increase values to fix
+       canary corruption.
 
-2006-10-20 00:37  ajordan
+2007-05-23 13:09  twisti
 
-       * src/mm/memory.c: fixed typo in _no_threads_dumpinfo definition
+       * src/vmcore/linker.c (linker_compute_subclasses): We don't ship the
+       critical-section stuff with this release, since it's broken on some
+       architectures because of boehm.
 
-2006-10-19 10:10  twisti
+2007-05-23 12:40  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/vm/exceptions.c (threads/lock-common.h): Added.
+       [ENABLE_THREADS] (threads/native/threads.h): Removed.
+       [!ENABLE_THREADS] (threads/none/threads.h): Likewise.
+       (threads/threads-common.h): Added.
+       (new_exception_message): Removed.
+       (exceptions_throw_classcircularityerror): Use
+       exceptions_throw_utf_utf.
+       (exceptions_throw_classformaterror): Likewise.
+       (classnotfoundexception_to_noclassdeffounderror): Fixed warning.
+       (exceptions_throw_incompatibleclasschangeerror): Use
+       exceptions_throw_utf_utf.
+       (exceptions_throw_internalerror): Likewise.
+       (exceptions_throw_unsupportedclassversionerror): Likewise.
+       (exceptions_throw_verifyerror): Likewise.
+       (exceptions_throw_verifyerror_for_stack): Likewise.
+       (exceptions_new_arithmeticexception): Likewise.
+       (exceptions_new_classcastexception): Use exceptions_new_class_utf.
+       (exceptions_print_exception): Fixed warnings.
        
-       * 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/vmcore/utf8.c (utf_division_by_zero): Added.
+       (utf8_init): Likewise.
        
-       * src/vm/signal.c (signal_init): Register SIGHUP.
-       (signal_handler_sighup): Added.
+       * src/vmcore/utf8.h (utf_division_by_zero): Likewise.
 
-2006-10-19 09:32  twisti
+2007-05-23 11:59  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/exceptions.c (new_exception_int): Removed.
+       * src/vm/exceptions.h (new_exception_int): Likewise.
        
-       * src/vm/signal.c (signal_init): Don't register SIGUSR1.
-       (signal_handler_sigusr1): Removed.
+       * src/native/native.c (native_new_and_init_int): Likewise.
+       * src/native/native.h (native_new_and_init_int): Likewise.
+
+2007-05-23 09:40  tbfg
+
+       * src/vm/jit/m68k/codegen.c (codegen_emit): Remove NOP after each
+       ICMD.
+       Add NOP generation at end of basci block when patcher is longer than
+       instruction to be patched.
        
-       * src/native/jni.h: Include GNU Classpath JNI header before we define
-       our header.
-       (localref_table): Forward typedef.
+       * src/vm/jit/m68k/patcher.c (patcher_get_putfield): Implemented.
        
-       * src/threads/native/threads.c (threads_dump): Pass threadobject to
-       stacktrace_dump_trace.
+       * src/vm/jit/m68k/codegen.h (COMPILERSTUB_CODESIZE): Correct value.
        
-       * src/cacaoh/headers.c (stacktrace_dump_trace): Added.
+       * src/vm/jit/codegen-common.c (codegen_increase): Enable NOP after
+       patcher generation at end of basic block.
+
+2007-05-23 09:37  tbfg
+
+       * src/vm/jit/abi.h (abi_registers_address_name): Added.
+       (abi_registers_address_argument): Likewise.
+       (abi_registers_address_saved): Likewise.
+       (abi_registers_address_temporary): Likewise.
 
-2006-10-19 09:27  twisti
+2007-05-22 11:18  twisti
 
-       * src/threads/native/threads.h (threadobject, threads_table_entry_t)
-       (threads_table_t): Forward typedef.
-       (threadobject): Changed dumpinfo to dumpinfo_t.
+       * src/vm/jit/x86_64/md.c (md_get_method_patch_address): Replaced
+       assert with vm_abort.
 
-2006-10-19 09:25  twisti
+2007-05-22 10:07  michi
 
-       * 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.
+       * src/vm/jit/arm/codegen.c (codegen_emit_stub_native): Removed
+       obsolete SPLIT-stuff.
 
-2006-10-19 09:23  twisti
+2007-05-22 07:21  michi
 
-       * src/vm/jit/powerpc/codegen.c (codegen): Warning fixes.
+       * src/vm/jit/arm/emit.c (emit_verbosecall_enter): Removed obsolete
+       SPLIT-stuff.
 
-2006-10-18 16:55  edwin
+2007-05-22 07:00  michi
 
-       * src/vm/jit/codegen-common.c (codegen_createnativestub): Initialize
-       jd->flags to zero.
+       * src/vm/jit/arm/md-abi.c (md_param_alloc): Align stack arguments as
+       well.
+       * src/vm/jit/arm/asmpart.S (asm_vm_call_method): Use EABI internally.
 
-2006-10-18 16:27  edwin
+2007-05-21 14:42  twisti
 
-       * tests/regression/jasmin/runtest: Removed debugging `tee TEST`.
-       * tests/regression/jasmin/Makefile.am (CLEANFILES): Added file
-       TESTSIA.
+       * src/vm/jit/arm/md-abi.c (md_param_alloc): Use EABI internally.
+       (ALIGN_2): Removed.
+       
+       * src/vm/jit/arm/codegen.c (codegen_emit): Removed SPLIT-stuff.
+       * src/vm/jit/arm/emit.c (emit_store): Likewise.
 
-2006-10-18 16:19  edwin
+2007-05-21 14:40  twisti
 
-       * tests/regression/jasmin/Makefile.am (SOURCE_FILES): Use EXTRA_DIST,
-       instead.
+       * src/vm/global.h (ALIGN_2): Added.
 
-2006-10-18 15:57  edwin
+2007-05-21 11:45  michi
 
-       * src/vm/jit/i386/linux/Makefile.am (noinst_HEADERS): Added md-asm.h.
-       * src/vm/jit/i386/freebsd/Makefile.am (noinst_HEADERS): Likewise.
+       * src/vm/jit/arm/codegen.h (M_EORLE): Added.
+       
+       * src/vm/jit/arm/codegen.c (codegen_emit): Fixed superindex overflow
+       for ICMD_INSTANCEOF and ICMD_CHECKCAST.
+       
+       * src/vm/jit/arm/patcher.c (patcher_checkcast_instanceof_interface):
+       Adapted patcher to above changes.
 
-2006-10-18 15:27  twisti
+2007-05-21 08:48  twisti
 
-       * src/vm/jit/Makefile.am (DIST_SUBDIRS): Added powerpc64.
+       * src/native/include/Makefile.am (CLEANFILES): Simply clean an *.h
+       files.
 
-2006-10-18 15:19  twisti
+2007-05-21 08:27  twisti
 
-       * src/vm/jit/Makefile.am (DIST_SUBDIRS): Added optimizing.
+       * src/native/jni.c (_Jv_jni_CallLongMethodA): New function.
+       (_Jv_jni_CallFloatMethodA): Likewise.
+       (_Jv_jni_CallDoubleMethodA): Likewise.
+       (_Jv_JNI_CallStaticBooleanMethodA): Implemented.
+       (_Jv_JNI_CallStaticByteMethodA): Likewise.
+       (_Jv_JNI_CallStaticCharMethodA): Likewise.
+       (_Jv_JNI_CallStaticShortMethodA): Likewise.
+       (_Jv_JNI_CallStaticIntMethodA): Likewise.
+       (_Jv_JNI_CallStaticLongMethodA): Likewise.
+       (_Jv_JNI_CallStaticFloatMethodA): Likewise.
+       (_Jv_JNI_CallStaticDoubleMethodA): Likewise.
 
-2006-10-18 15:14  twisti
+2007-05-18 15:05  twisti
 
-       * src/vm/jit/sparc64/Makefile.am (libarch_la_SOURCES): Removed md.h.
+       * src/native/vm/cldc1.1/java_lang_Object.c (getClass): Fixed
+       signature.
 
-2006-10-18 15:09  twisti
+2007-05-18 14:24  twisti
 
-       * src/vm/jit/i386/Makefile.am (libarch_la_SOURCES): Renamed md-emit.h
-       to emit.h.
+       * src/vmcore/statistics.c (count_nstub_len): Renamed to
+       size_stub_native.
+       (statistics_print_memory_usage): Likewise.
+       
+       * src/vmcore/statistics.h: Likewise.
+       
+       * src/vm/jit/codegen-common.c (codegen_generate_stub_native):
+       Likewise, moved statistics-calculation after codegen_finish(), so
+       actually something is counted.
 
-2006-10-18 15:04  twisti
+2007-05-18 14:22  twisti
 
-       * configure.ac (AC_INIT): Changed to version 0.97rc.
-       (CFLAGS): Changed to -O2.
+       * src/toolbox/list.c (list_create): Use LOCK_INIT_OBJECT_LOCK-macro.
 
-2006-10-18 14:53  edwin
+2007-05-18 14:17  twisti
 
-       * 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.
+       * src/threads/threads-common.c (threads_thread_get_state): Fixed
+       compiler warning.
+       (threads_thread_is_alive): Likewise.
 
-2006-10-16 09:59  edwin
+2007-05-18 13:45  twisti
 
-       * src/vm/jit/parse.c (parse_resolve_exception_table): Do not use
-       codegendata.
-       (parse): Likewise.
+       * src/native/vm/cldc1.1/java_lang_String.c (methods): Removed
+       quick-hack.
        
-       * src/vm/jit/stack.c (stack_analyse): Likewise.
+       * src/native/vm/cldc1.1/java_lang_Throwable.c (fillInStackTrace):
+       Fixed signature.
 
-2006-10-16 09:02  twisti
+2007-05-18 13:12  twisti
 
-       * src/vm/jit/allocator/simplereg.c [ENABLE_STATISTICS]
-       (simplereg_make_statistics): Don't print this INREGISTER stuff.
+       * src/native/native.c (native_tree_native_methods_comparator): Compare
+       classname, name and descriptor.
+       (native_method_register): Set all structure members.
+       (native_method_find): Changed argument-type to methodinfo.
+       (native_resolve_function): Likewise.
+       
+       * src/native/native.h (native_methods_node_t): Added classname and
+       descriptor, renamed method to function.
+       
+       * src/native/vm/gnu/java_lang_VMClass.c: Updated wrong signatures.
+       * src/native/vm/gnu/java_lang_VMObject.c: Likewise.
+       * src/native/vm/gnu/java_lang_VMThread.c: Likewise.
+       * src/native/vm/gnu/java_lang_reflect_Constructor.c: Likewise.
 
-2006-10-16 08:53  twisti
+2007-05-16 09:01  twisti
 
-       * src/vm/jit/jit.c (jit_compile_intern) [ENABLE_STATISTICS]:
-       exceptiontablelength is now in jitdata.
+       * src/native/native.c (native_library_open): New function.
+       (native_hashtable_library_add): Renamed to native_library_add.
+       (native_hashtable_library_find): Renamed to native_library_find.
+       * src/native/native.h: Likewise.
+       
+       * src/native/vm/java_lang_Runtime.c (loadLibrary): Use
+       native_library_open.
 
-2006-10-16 00:05  ajordan
+2007-05-16 08:02  twisti
 
-       * src/vm/jit/sparc64/codegen.c: Ported to unified variables.
-       * src/vm/jit/sparc64/emit.c: Likewise.
+       * src/native/native.c: Removed all native-includes.
+       (dummynativetable): Removed.
+       (mainhandle): Likewise.
+       (native_init): Don't dlopen libjvm, initialize the native-methods
+       tree.
+       (native_tree_native_methods_comparator): New function.
+       (native_method_symbol): Likewise.
+       (native_method_find): Likewise.
+       (native_resolve_function): Use native-methods tree for internal native
+       methods.
        
-       * src/vm/jit/sparc64/md.c: Implemented md_codegen_get_pv_from_pc.
+       * src/native/native.h (native/jni.h): Added.
+       (NATIVE_METHODS_COUNT): Defined.
+       (native_methods_node_t): New structure.
+       (native_method_register): Added.
        
-       * 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.
+       * src/native/vm/nativevm.c: New file.
+       * src/native/vm/nativevm.h: Likewise.
+       
+       * src/native/vm/Makefile.am (libnativevm_la_SOURCES): Added
+       nativevm.[ch].
+       
+       * src/native/vm/cldc1.1/com_sun_cldc_io_ResourceInputStream.c,
+       src/native/vm/cldc1.1/com_sun_cldc_io_j2me_socket_Protocol.c,
+       src/native/vm/cldc1.1/com_sun_cldchi_io_ConsoleOutputStream.c,
+       src/native/vm/cldc1.1/com_sun_cldchi_jvm_JVM.c,
+       src/native/vm/cldc1.1/java_lang_Class.c,
+       src/native/vm/cldc1.1/java_lang_Double.c,
+       src/native/vm/cldc1.1/java_lang_Float.c,
+       src/native/vm/cldc1.1/java_lang_Math.c,
+       src/native/vm/cldc1.1/java_lang_Object.c,
+       src/native/vm/cldc1.1/java_lang_Runtime.c,
+       src/native/vm/cldc1.1/java_lang_String.c,
+       src/native/vm/cldc1.1/java_lang_System.c,
+       src/native/vm/cldc1.1/java_lang_Thread.c,
+       src/native/vm/cldc1.1/java_lang_Throwable.c,
+       src/native/vm/gnu/gnu_classpath_VMStackWalker.c,
+       src/native/vm/gnu/gnu_classpath_VMSystemProperties.c,
+       src/native/vm/gnu/gnu_java_lang_management_VMClassLoadingMXBeanImpl.c,
+       src/native/vm/gnu/gnu_java_lang_management_VMMemoryMXBeanImpl.c,
+       src/native/vm/gnu/gnu_java_lang_management_VMRuntimeMXBeanImpl.c,
+       src/native/vm/gnu/gnu_java_lang_management_VMThreadMXBeanImpl.c,
+       src/native/vm/gnu/java_lang_VMClass.c,
+       src/native/vm/gnu/java_lang_VMClassLoader.c,
+       src/native/vm/gnu/java_lang_VMObject.c,
+       src/native/vm/gnu/java_lang_VMRuntime.c,
+       src/native/vm/gnu/java_lang_VMString.c,
+       src/native/vm/gnu/java_lang_VMSystem.c,
+       src/native/vm/gnu/java_lang_VMThread.c,
+       src/native/vm/gnu/java_lang_VMThrowable.c,
+       src/native/vm/gnu/java_lang_management_VMManagementFactory.c,
+       src/native/vm/gnu/java_lang_reflect_Constructor.c,
+       src/native/vm/gnu/java_lang_reflect_Field.c,
+       src/native/vm/gnu/java_lang_reflect_Method.c,
+       src/native/vm/gnu/java_lang_reflect_VMProxy.c,
+       src/native/vm/gnu/java_security_VMAccessController.c,
+       src/native/vm/gnu/sun_misc_Unsafe.c: Added methods table and init
+       function to register the native methods.
+
+2007-05-15 10:32  tbfg
+
+       * src/vm/jit/powerpc64/patcher.c
+       (patcher_resolve_classref_to_classinfo): Patch back original code.
+       
+       (patcher_resolve_classref_to_vftbl): Likewise.
+       (patcher_resolve_classref_to_flags): Likewise.
+       
+       * src/vm/jit/powerpc64/asmpart.S (DARWIN): Removed all darwin
+       ifdefed code for readability. Needs to be ported carefully anyways.
+       
+       (asm_vm_call_method): When handling arguments treat address type as
+       long.
 
-2006-10-15 22:25  edwin
+2007-05-15 09:55  christian
 
-       * src/vm/jit/jit.h (exception_entry): New struct.
-       (jitdata): Added exceptiontable fields. Cleaned up.
+       * src/vm/jit/codegen-common.c: (codegen_emit_phi_moves): Added.
+       (Former
+       codegen_insert_phi_moves from codegen.c)
        
-       * src/vm/exceptions.h (exceptionentry): Removed.
+       * src/vm/jit/codegen-common.h: Function prototype for
+       codegen_emit_phi_moves
+       added.
        
-       * src/vm/jit/dseg.h (dseg_exception_entry): New struct.
+       * src/vm/jit/optimizing/lsra.c: Adapted to new instruction format and
+       unified
+       variables.
        
-       * src/vm/jit/stack.h (BLOCK_OF): Moved to parse.h.
-       * src/vm/jit/parse.h (BLOCK_OF): Added.
+       * src/vm/jit/optimizing/lsra.h: Likewise.
        
-       * src/vm/jit/codegen-common.h (codegendata): Removed exceptiontable
-       and exceptiontablelength.
+       * src/vm/jit/optimizing/ssa.c: Likewise.
        
-       * 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/jit/optimizing/ssa.h: 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/optimizing/graph.c: Likewise.
        
-       * 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/optimizing/graph.h: Likewise.
+       
+       * src/vm/jit/optimizing/dominators.c: Likewise.
        
-       * src/vm/jit/codegen-common.c (codegen_setup): Removed exceptiontable
-       fields.
+       * src/vm/jit/optimizing/lifetimes.c: Likewise and changed lifetime
+       anaylsis to
+       a worklist algorithmus.
        
-       * 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/optimizing/lifetimes.h: Likewise.
+       
+       * src/vm/jit/i386/codegen.c: (codegen_insert_phi_moves): Moved to
+       src/vm/jit/codegen-common.c codegen_emit_phi_moves
+       (codegen_emit): Necessary Adaptions for SSA.
        
-       * src/vm/jit/intrp/asmpart.c (exceptionentry): Renamed to
-       dseg_exception_entry.
-       * src/vm/exceptions.c (exceptions_handle_exception): Likewise.
+       * src/toolbox/worklist.c: (wl_reset): Added.
        
-       * src/vm/linker.c (link_class_intern): Do not resolve exception
-       classes here. This is now done in parse.c.
+       * src/toolbox/worklist.h: Function Prototype for wl_reset added.
+       
+       * src/vm/jit/stack.c: Removed old SSA specific code.
 
-2006-10-15 13:52  edwin
+2007-05-15 09:25  tbfg
 
-       * src/vm/jit/jit.h: Indentation cleanup.
+       * builtin.c (builtin_ldiv): Needed when DISABLE_GC.
 
-2006-10-15 13:37  edwin
+2007-05-14 17:25  twisti
 
-       * src/vm/jit/jit.h (flags_operand_t): Removed `fields` struct. It was
-       not safe to use, as defined.
+       * src/native/native.c (native_class_getdeclaredannotations): Removed.
 
-2006-10-15 13:19  edwin
+2007-05-14 14:11  twisti
 
-       * src/vm/jit/jit.h (flags_operand_t): Removed unused argcount.
-       (ACONST_LOAD): Removed.
-       (ACONST_BUILTIN): Removed.
+       * src/toolbox/list.c (list_add_first): Call list_add_first_unsynced.
+       (list_add_first_unsynced): New function.
+       * src/toolbox/list.h (list_add_first_unsynced): Added.
 
-2006-10-15 12:59  edwin
+2007-05-14 13:29  twisti
 
-       * 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/threads/threads-common.c (threads_create_thread): Renamed to
+       threads_thread_new.
+       (threads_thread_free): New function.
+       (threads_preinit): Renamed threads_create_thread to
+       threads_thread_new.
+       (threads_thread_start_internal): Likewise.
+       (threads_thread_start): Likewise.
        
-       * src/vm/jit/jit.c (jit_compile_intern): Renumber basic blocks after
-       transformations.
-       (jit_check_basicblock_numbers): Made stricter.
+       * src/threads/threads-common.h (threads_create_thread): Renamed to
+       threads_thread_new.
+       (threads_thread_free): Added.
+       (threads_init_threadobject): Renamed to threads_impl_thread_new.
+       (threads_impl_thread_free): Added.
        
-       * src/vm/jit/stack.c (stack_append_block): Set basic block numbers
-       correctly.
-       (stack_clone_block): Do not set bptr->nr here.
+       * src/threads/native/threads.c (toolbox/avl.h): Removed.
+       (threadattr): Likewise.
+       (threads_init_threadobject): Renamed to threads_impl_thread_new.
+       (threads_impl_thread_free): New function.
+       (threads_init): Use local pthread_attr_t.
+       (threads_impl_thread_start): Use pthread_attr_setdetachstate (fixes
+       memory leak), check more return values of pthread-calls.
+       (threads_attach_current_thread): Renamed threads_create_thread to
+       threads_thread_new.
+       (threads_detach_thread): Removed lock-record pools comment, call
+       threads_thread_free.
+
+2007-05-14 11:15  tbfg
+
+       * src/vm/jit/dseg.h (dseg_adddata): Removed warning due to typo.
        
-       * 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/m68k/arch.h (SUPPORT_LONG) Defined.
+       (SUPPORT_LONG_ADD): Defined.
+       (SUPPORT_CONST_LOGICAL): Defined.
        
-       * src/vm/jit/verify/typecheck-stackbased.c (typecheck_stackbased):
-       Check basic block numbers.
+       * src/vm/jit/m68k/codegen.c (ICMD_LADD): Implemented.
+       (ICMD_LADDCONST): Implemented.
+       (ICMD_LSUB): Implemented.
+       (ICMD_LSUBCONST): Implemented.
+       (ICMD_LNEG): Implemented.
        
-       * 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.
+       * src/vm/jit/m68k/codegen.h (M_ISUBX): Added.
+       (M_INEGX): Added.
 
-2006-10-15 12:20  edwin
+2007-05-11 22:33  twisti
 
-       * src/vm/jit/jit.c (jit_renumber_basicblocks): New function.
-       (jit_check_basicblock_numbers): Likewise.
-       (jit_init): Removed obsolete variable `i`.
+       * configure.ac (AC_CHECK_HEADERS): Added time.h.
+       (AC_CHECK_FUNCS): Added localtime, localtime_r, time.
        
-       * src/vm/jit/jit.h (jit_renumber_basicblocks): New function.
-       (jit_check_basicblock_numbers): Likewise.
+       * src/vmcore/statistics.c [HAVE_TIME_H] (time.h): Added.
+       (statistics_print_date): New function.
+       * src/vmcore/statistics.h (statistics_print_date): Added.
+       
+       * src/mm/memory.c (memory_thread) [ENABLE_STATISTICS]: Call
+       statistics_print_date.
 
-2006-10-14 19:12  twisti
+2007-05-11 21:18  twisti
 
-       * src/native/jni.c (_Jv_JNI_DetachCurrentThread): Made
-       --disable-threads-safe.
+       * src/vmcore/statistics.c (statistics_print_memory_usage): Use
+       log_println instead of printf.
 
-2006-10-13 18:29  edwin
+2007-05-11 20:35  twisti
 
-       * tests/regression/jasmin/Makefile.am: Added new tests.
+       * src/vm/jit/arm/codegen.c (codegen_emit): Use
+       CODEGEN_CRITICAL_SECTION_* macros.
+       
+       * src/vm/jit/arm/linux/md-os.c (thread_restartcriticalsection):
+       Renamed to md_critical_section_restart.
 
-2006-10-13 18:25  edwin
+2007-05-11 19:31  twisti
 
-       * 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/threads/threads-common.c (threads_create_thread): Removed
+       lock_init_execution_env.
        
-       * src/vm/jit/verify/typecheck-stackbased-gen.inc: Regenerated.
-       * src/vm/jit/verify/typecheck-variablesbased-gen.inc: Likewise.
+       * src/threads/lock-common.h (lock_init_execution_env): Removed.
+       (lock_record_free_pools): Likewise.
        
-       * src/vm/jit/verify/typecheck.c (verify_fieldaccess): Define
-       VERIFY_ERROR for the include file.
+       * src/threads/native/threads.h (threadobject): Removed ee.
        
-       * src/vm/jit/verify/typecheck-stackbased.c (VERIFY_ERROR): Fixed
-       macro.
+       * src/threads/native/lock.c (vm/finalizer.h): Added.
+       [ENABLE_GC_BOEHM] (mm/boehm-gc/include/gc.h): Likewise.
+       (lock_global_pool): Removed.
+       (lock_global_pool_lock): Likewise.
+       (lock_init): Don't initialize lock_global_pool_lock.
+       (lock_record_init): Removed.
+       (lock_init_execution_env): Likewise.
+       (lock_record_alloc_new_pool): Likewise.
+       (lock_record_alloc_pool): Likewise.
+       (lock_record_free_pools): Likewise.
+       (lock_record_alloc): Likewise.
+       (lock_record_recycle): Likewise.
+       (lock_hashtable_get_lock_record): Renamed to lock_hashtable_get.
+       (lock_record_new): New function.
+       (lock_record_free): Likewise.
+       (lock_hashtable_remove): Likewise.
+       [ENABLE_GC_BOEHM] (lock_record_finalizer): Likewise.
        
-       *
-       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.
+       * src/threads/native/lock.h (lock_execution_env_t): Removed.
+       (lock_record_pool_header_t): Likewise.
+       (lock_record_pool_t): Likewise.
+       (lock_record_t): Renamed obj to object, removed nextfree.
+       [ENABLE_JVMTI] (lock_global_pool_lock, lock_global_pool): Removed.
+       
+       * src/vmcore/statistics.c (size_lock_record_pool): Renamed to
+       size_lock_record.
+       (statistics_print_memory_usage): Likewise.
+       * src/vmcore/statistics.h: Likewise.
 
-2006-10-13 17:06  tbfg
+2007-05-11 18:58  tbfg
 
-       * src/vm/jit/powerpc64/md.c (md_get_method_patch_address): Fixed
-       comments.
+       * src/vm/jit/m68k/linux/md-abi.h (ADR_SAV_CNT): Increased by one
+       (%fp).
+       (ADR_RES_CNT): Decreased by one (%fp).
        
-       * src/vm/jit/powerpc64/codegen.c: Added credits.
+       * src/vm/jit/m68k/linux/md-abi.c (nregdescadr): Declared %fp a
+       REG_SAV.
        
-       * 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/m68k/arch.h (SUPPORT_DIVISION): Defined.
        
-       * 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.
+       * src/vm/jit/m68k/asmpart.S (asm_handle_exception): Additional
+       logic to restore %fp when unwinding the stack.
 
-2006-10-13 16:06  edwin
+2007-05-11 18:23  twisti
 
-       * src/vm/jit/codegen-common.c (codegen_reg_of_var): Removed `inline`
-       declaration. The crappy IRIX compiler does not create a global symbol
-       otherwise.
+       * src/threads/native/threads.h (threadobject): Removed next and prev.
 
-2006-10-13 14:34  edwin
+2007-05-11 17:15  tbfg
 
-       * src/vm/jit/verify/typecheck.c (verify_basic_block): Use generated
-       code.
+       * src/vm/jit/m68k/codegen.c (codegen_emit): Fix stackframesize
+       allocation in not synchronized methods which call a builtin returning
+       a double. Merged with ENABLE_THREADS case.
+       Added code to copy interface registers.
+       
+       * src/vm/jit/m68k/asmpart.S (asm_handle_exception):
+       Save temporary registers, dunno if really needed, but its a
+       slow path anyways.
+
+2007-05-10 14:34  tbfg
+
+       * src/vm/jit/m68k/emit.c (emit_verbosecall_enter): Make SOFTFLOAT
+       clean.
+       (emit_verbosecall_exit): Likewise.
+       
+       * src/vm/jit/m68k/asmpart.S (asm_vm_call_method): Mark comment about
+       gcc abi wiredness.
        
-       * src/vm/jit/verify/typecheck-stackbased-gen.inc: New file, GENERATED!
-       * src/vm/jit/verify/typecheck-variablesbased-gen.inc: Likewise.
+       * src/vm/jit/m68k/codegen.h (M_D2F): Fixed.
+       (M_F2D): Fixed.
+
+2007-05-10 14:04  twisti
+
+       * src/vmcore/options.c (opt_verbosethreads): Added.
+       * src/vmcore/options.h (opt_verbosethreads): Likewise.
        
-       * src/vm/jit/verify/typecheck.h (typecheck_stackbased): Added.
+       * src/vm/vm.c (XXusage): Added -verbose:threads.
+       (vm_create): Likewise.
        
-       * src/vm/jit/verify/Makefile.am: Added source files for both generated
-       verifiers.
+       * src/threads/threads-common.c (threads_create_thread): Renamed
+       variable thread to t.
+       (threads_thread_print_info): New function.
+       (threads_dump): Use threads_thread_print_info.
        
-       * src/vm/jit/jit.c (jit_compile_intern): Call the stack-based verifier
-       for the interpreter.
+       * src/threads/threads-common.h (threads_thread_print_info): Added.
        
-       * src/vm/vm.c (vm_create): Re-enable verification fot the interpreter.
+       * src/threads/native/threads.c (threads_init) [!NDEBUG]: Added
+       -verbose:threads debug-output.
+       (threads_startup_thread): Likewise.
+       (threads_attach_current_thread): Likewise.
+       (threads_detach_thread): Likewise.
 
-2006-10-13 14:22  edwin
+2007-05-10 13:27  twisti
 
-       * src/vm/jit/verify/generate.pl: Clearly mark generated code.
+       * src/threads/threads-common.c (threads_thread_start_internal): Set
+       thread-flags.
+       (threads_thread_start): Likewise.
+       
+       * src/threads/native/threads.c (threads_startup_thread): Don't set
+       thread-flags.
 
-2006-10-13 14:00  edwin
+2007-05-10 12:50  tbfg
 
-       * src/vm/jit/icmdtable.inc: Documented prettily.
+       * src/vm/jit/powerpc64/patcher.c (patcher_checkcast_interface):
+       Fixed not flushing all bytes written.
 
-2006-10-13 13:11  edwin
+2007-05-09 16:37  tbfg
 
-       * src/vm/jit/jit.h (op_data): Removed.
-       (stackreq): Moved to a more logical place.
+       * src/vm/jit/powerpc64/codegen.c (ICMD_CHECKCAST): Use
+       branch_label_* instead of harcoded jump offsets.
        
-       * 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.
+       (ICMD_INSTANCEOF): Likewise.
 
-2006-10-13 12:49  edwin
+2007-05-09 16:05  twisti
 
-       * src/vm/jit/jit.h (icmd_table): Added.
-       (icmd_names): Removed.
-       
-       * src/vm/jit/jit.c (icmd_table): Added.
-       (icmd_names): Removed.
+       * src/lib/Makefile.am (VM_JAVA_FILES): Renamed vm/reference/ to gnu/.
        
-       * src/vm/jit/show.c (show_icmd): Use icmd_table.
-       * src/vm/jit/optimizing/ssa.c (dead_code_elimination): Likewise.
+       * src/lib/vm: Removed.
+       * src/lib/gnu: Added.
+       * src/lib/gnu/java: Likewise.
+       * src/lib/gnu/gnu: Likewise.
 
-2006-10-13 12:47  edwin
+2007-05-09 08:52  tbfg
 
-       * src/vm/resolve.c: Removed obsolete debug prints.
+       * src/vm/jit/m68k/linux/md-abi.h (LA_SIZE_IN_POINTERS): Defined 0.
+       (PA_SIZE_IN_POINTERS): Removed.
+       (PA_SIZE): Removed.
+       (LA_LR_OFFSET): Removed.
+       (LA_SIZE_ALIGNED): Removed.
+       
+       * src/vm/jit/m68k/emit.c (emit_verbosecall_enter): Removed
+       linking instructions, save only used registers.
+       
+       (emit_verbosecall_exit): Likewise.
+       
+       * src/vm/jit/m68k/arch.h (SUPPORT_FLOAT): Depends on
+       configure option ENABLE_SOFTFLOAT.
+       
+       * src/vm/jit/m68k/codegen.c (codegen_emit): Use M_FSTORE/M_FLOAT
+       to save/restore float registers without converting any values.
+       Fixed offset of IsSync.
+       
+       (codegen_emit_stub_native): Move floating point return values
+       into floating point registers.
+       
+       * src/vm/jit/m68k/asmpart.S (asm_vm_call_method): Save/restore
+       floating point registers.
+       
+       (asm_call_jit_compiler): Save/restore volatile floating point
+       registers.
+       
+       (asm_patcher_wrapper): Likewise.
+       
+       (asm_handle_exception): Use fmovemd instructions to restore
+       floatng point registers without converting.
+       
+       * src/vm/jit/m68k/codegen.h (M_FSTORE): Added.
+       (M_FLOAT): Added.
 
-2006-10-13 11:57  edwin
+2007-05-09 08:36  tbfg
 
-       * src/vm/jit/jit.h: Added DF_ constants for ICMD table.
-       Added CF_ constants.
-       Added ICMDTABLE_ constants.
-       (icmdtable_entry_t): New struct.
+       * src/vm/jit/powerpc64/linux/md-os.c (thread_restartcriticalsection):
+       Renamed to md_critical_section_restart.
+       
+       * src/vm/jit/powerpc64/codegen.c (codegen_emit): Use
+       CODEGEN_CRITICAL_SECTION_* macros.
 
-2006-10-13 11:28  edwin
+2007-05-08 13:03  twisti
 
-       * src/vm/jit/icmdtable.inc: New file. Not used, yet.
-       * src/vm/jit/Makefile.am: Added new file.
+       * src/configure.ac (AC_CHECK_HEADERS): Added string.h.
+       (AC_CHECK_FUNCS): Added strdup.
+       
+       * src/src/vmcore/options.c [HAVE_STRING_H] (string.h): Added #ifdef.
+       (options_get) HAVE_STRDUP]: Added.
 
-2006-10-13 11:27  edwin
+2007-05-07 21:34  twisti
 
-       * src/vm/jit/verify/generate.pl: Omit comma at end of ICMD table.
+       * src/vm/jit/alpha/codegen.c (codegen_emit): Use
+       CODEGEN_CRITICAL_SECTION_* macros.
+       
+       * src/vm/jit/alpha/linux/md-os.c (thread_restartcriticalsection):
+       Renamed to md_critical_section_restart.
 
-2006-10-13 11:11  edwin
+2007-05-07 21:29  twisti
 
-       * 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/threads/native/threads.c (mainthreadobj): Removed.
+       * src/threads/native/threads.h (mainthreadobj): Likewise.
        
-       * 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.
+       * src/vm/jit/optimizing/profile.c (threads/native/threads.h):
+       Likewise.
+       (profile_thread): Rewritten thread iteration.
 
-2006-10-13 10:36  edwin
+2007-05-07 15:07  ajordan
 
-       * src/vm/jit/verify/typeinfo.c (typevector_store): Remove obsolete
-       assertion.
+       * src/vm/jit/sparc64/codegen.c (codegen_emit): Adapted to critical
+       section renames.
+       * src/vm/jit/sparc64/linux/md-os.c: Likewise.
 
-2006-10-13 10:33  edwin
+2007-05-07 14:26  tbfg
 
-       * src/vm/jit/stack.c (stack_analyse): Set iptr->dst for CHECKNULL.
+       * src/vm/jit/m68k/codegen.c (ICMD_FNEG): Implemented.
+       (ICMD_DNEG): Implemented.
+       
+       * src/vm/jit/m68k/asmpart.S (asm_call_jit_compiler):
+       Store volatile floatregisters.
+       (asm_patcher_wrapper): Likewise.
+       (asm_handle_exception): Restore float registers.
+       
+       * src/vm/jit/m68k/codegen.h (M_FNEG): Added.
+       (M_DNEG): Added.
 
-2006-10-13 00:47  edwin
+2007-05-07 14:23  tbfg
 
-       * 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.
+       * tests/exception_restore_registers.java: New test, tests if
+       variables get restored in case of exceptions.
        
-       (builtin_isanysubclass_vftbl): Likewise.
+       * tests/exception_restore_registers.output: New file, expected
+       output.
+       
+       * tests/Makefile.am: Added exception_restore_registers target.
 
-2006-10-12 23:34  edwin
+2007-05-07 14:16  twisti
 
-       * src/vm/jit/stack.c (stack_check_invars): Bugfix: Only set flags to
-       BBTYPECHECK_REACHED if the block has already been analysed.
+       * configure.ac (AC_CONFIG_FILES): Added
+       src/vm/jit/mips/uclinux/Makefile.
        
-       (stack_check_invars_from_outvars): Likewise.
-
-2006-10-12 20:06  twisti
+       * src/vm/jit/mips/uclinux: New directory.
+       * src/vm/jit/mips/uclinux/md-os.c: New file.
+       * src/vm/jit/mips/uclinux/Makefile.am: Likewise.
 
-       * src/vm/jit/cfg.c (cfg_build): Check for EXH basic blocks in
-       fall-through case.
+2007-05-07 14:13  twisti
 
-2006-10-12 15:59  edwin
+       * src/vm/jit/mips/codegen.c (codegen_emit): Use
+       CODEGEN_CRITICAL_SECTION_* macros.
+       
+       * src/vm/jit/mips/linux/md-os.c (thread_restartcriticalsection):
+       Renamed to md_critical_section_restart.
 
-       * tests/regression/jasmin/runtest: Added timeout capability.
+2007-05-07 13:45  twisti
 
-2006-10-12 15:22  edwin
+       * configure.ac (AC_CHECK_HEADERS): Added sys/mman.h, sys/resource.h.
+       (AC_CHECK_FUNCS): Added getrusage, mprotect.
+       
+       * src/vmcore/statistics.c [HAVE_SYS_TIME_H] (sys/time.h): Include
+       conditionally.
+       [HAVE_SYS_RESOURCE_H] (sys/resource.h): Likewise.
+       (getcputime) [!HAVE_GETRUSAGE]: Return 0.
 
-       * 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.
+2007-05-07 13:31  twisti
 
-2006-10-12 15:07  edwin
+       * src/native/vm/java_lang_Thread.h (threads/native/threads.h):
+       Removed.
 
-       * src/vm/jit/verify/typecheck-common.c: Made debugging and statistics
-       symbols global.
-       * src/vm/jit/verify/typecheck-common.h: Likewise.
+2007-05-07 13:02  tbfg
+
+       * src/vm/jit/m68k/arch.h (SUPPORT_FLOAT): Enabled.
+       (SUPPORT_FLOAT_CMP): Enabled.
+       (SUPPORT_DOUBLE): Enabled.
+       (SUPPORT_DOUBLE_CMP): Enabled.
+       
+       * src/vm/jit/m68k/codegen.c (ICMD_FCMPL): Implemented.
+       (ICMD_DCMPL): Likewise.
+       (ICMD_FCMPG): Likewise.
+       (ICMD_DCMPG): Likewise.
+       (ICMD_FMUL): Likewise.
+       (ICMD_DMUL): Likewise.
+       (ICMD_FDIV): Likewise.
+       (ICMD_DDIV): Likewise.
+       (ICMD_FADD): Likewise.
+       (ICMD_DADD): Likewise.
+       (ICMD_FSUB): Likewise.
+       (ICMD_DSUB): Likewise.
+       (ICMD_F2D): Likewise.
+       (ICMD_D2F): Likewise.
+       (ICMD_BUILTIN): Handle float return values.
+       (codegen_emit_stub_native): Handle float values.
+       
+       * src/vm/jit/m68k/codegen.h (M_FCMP): Added.
+       (M_BFEQ): Added.
+       (M_BFLT): Added.
+       (M_BFGT): Added.
+       (M_BFUN): Added.
+       (M_FADD): Added.
+       (M_DADD): Added.
+       (M_FSUB): Added.
+       (M_DSUB): Added.
+       (M_FMUL): Added.
+       (M_DMUL): Added.
+       (M_FDIV): Added.
+       (M_DDIV): Added.
+       (M_D2F): Added.
+       (M_F2D): Added.
+
+2007-05-07 11:37  twisti
+
+       * src/threads/threads-common.c (threads_dump): Typo.
+
+2007-05-07 11:35  twisti
+
+       * src/threads/threads-common.c (threads_table_get): Made static and
+       removed table lock.
+       (threads_dump): Lock threads table.
+       
+       * src/threads/threads-common.h (threads_table_get): Removed.
+       
+       * src/threads/native/threads.c (threads_cast_stopworld): Lock threads
+       table.
+       (threads_cast_startworld): Likewise.
+
+2007-05-07 01:44  ajordan
+
+       * src/vm/jit/sparc64/codegen.c (codegen_emit_stub_native): Fixed fp
+       arg passing.
+       * src/vm/jit/sparc64/md-abi.h: Likewise.
+       
+       * src/vm/jit/sparc64/asmpart.S (asm_vm_call_method): Likewise, but
+       the other way around.
+       * src/vm/jit/sparc64/md-asm.h: Likewise.
 
-2006-10-12 14:52  edwin
+2007-05-06 22:20  tbfg
 
-       * 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.
+       * src/vm/jit/m68k/codegen.c (codegen_emit): Allocate 2 additional
+       words in stackframe for long to double conversion.
+       
+       * src/vm/jit/m68k/asmpart.S (asm_handle_exception): Copy exception
+       object into correct register.
+       
+       * src/vm/jit/m68k/codegen.h (M_FLD): Implemented.
+       (M_DLD): Likewise.
+       (M_FST): Likewise.
+       (M_DST): Likewise.
+       (M_FLTMOVE): Likewise.
+       (M_INT2FLTMOVE): Likewise.
+       (M_DBLMOVE): Likewise.
+       (FCONST): Likewise.
 
-2006-10-12 14:42  edwin
+2007-05-06 13:32  ajordan
 
-       * src/vm/jit/verify/typecheck-common.c: Include headers.
-       * src/vm/jit/verify/typecheck-common.h: Cleanup.
+       * src/vm/jit/sparc64/codegen.c: Implemented threads support.
+       * src/vm/jit/sparc64/machine-instr.h: Likewise.
+       * src/vm/jit/sparc64/linux/md-os.c: Likewise.
 
-2006-10-12 14:39  edwin
+2007-05-05 13:48  tbfg
 
-       * src/vm/jit/verify/typecheck.c (ISBUILTIN): Removed.
-       * src/vm/jit/verify/typecheck-builtins.inc (ISBUILTIN): Added.
+       * src/vm/jit/m68k/emit.c (emit_patcher_stubs): Add thread
+       support.
+       (emit_exception_check_areg): Removed dead code.
+       
+       * src/vm/jit/m68k/codegen.c (codegen_emit): Add thread support.
+       
+       * src/vm/jit/m68k/asmpart.S (asm_patcher_wrapper): Likewise.
 
-2006-10-12 14:38  tbfg
+2007-05-05 13:46  tbfg
 
-       * src/vm/jit/powerpc64/codegen.c (codegen): Adopt locals
-       and regoff changes.
+       * linker.c (linker_compute_subclasses):
+       threads_cast_[start|stop]world only available when using GC.
 
-2006-10-12 14:18  edwin
+2007-05-05 08:08  pm
 
-       * src/vm/jit/verify/typecheck.c (verify_invocation): Prepared for
-       addeding the stackbased verifier. No functional change, yet.
-       (verify_builtin): Likewise.
+       * contrib/vmlog/Makefile.am (AM_CPPFLAGS): Add include directories
+       for vmlog.
+       * src/vm/Makefile.am: Likewise.
 
-2006-10-12 14:12  edwin
+2007-05-04 10:13  tbfg
 
-       * 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.
+       * linker.c (linker_compute_subclasses): Only call
+       threads_cast_[start|stop]world when ENABLE_THREADS.
 
-2006-10-12 14:02  edwin
+2007-05-03 23:31  tbfg
 
-       * src/vm/jit/verify/typecheck.c (verify_fieldaccess): New function.
-       (verify_basic_block): Moved field verification into a separate
-       function.
+       * src/vm/jit/m68k/md.c (md_stacktrace_get_returnaddress): Removed
+       braindead address check and fixed the real bug.
        
-       * src/vm/jit/verify/typecheck-fields.inc: Removed opcode-dependant
-       stuff. Some code for the stackbased verifier is checked in, but not
-       used, yet.
+       * src/vm/jit/m68k/asmpart.S (asm_vm_call_method): Added float
+       argument handling.
+       (asm_call_jit_compiler): Fixed stack offset bug.
 
-2006-10-12 13:13  twisti
+2007-05-03 22:32  twisti
 
-       * src/vm/jit/mips/linux/md-os.c (thread_restartcriticalsection): Added
-       uClibc support.
+       * src/vm/jit/x86_64/codegen.c (codegen_emit): Use
+       CODEGEN_CRITICAL_SECTION_* macros.
+       
+       * src/vm/jit/x86_64/linux/md-os.c (thread_restartcriticalsection):
+       Renamed to md_critical_section_restart.
 
-2006-10-12 12:44  twisti
+2007-05-03 21:29  twisti
 
-       * src/vm/jit/mips/linux/md-os.c (md_signal_handler_sigsegv): Added
-       uClibc support.
+       * src/vm/jit/i386/codegen.c (codegen_emit): Use
+       CODEGEN_CRITICAL_SECTION_* macros.
+       
+       * src/vm/jit/i386/linux/md-os.c (thread_restartcriticalsection):
+       Renamed to md_critical_section_restart.
 
-2006-10-12 10:10  edwin
+2007-05-03 21:17  twisti
 
-       * src/vm/jit/verify/typecheck.c: Moved <assert.h> include to the right
-       place. Moved some code to typecheck-common.[ch].
+       * src/threads/critical.c (critical_compare): Renamed to
+       critical_comparator.
+       (critical_find): Removed.
+       (critical_register_critical_section): Renamed to
+       critical_section_register.
+       (critical_find_restart_point): Call avl_find.
+       (critical_register_asm_critical_sections): Call
+       critical_section_register.
+       
+       * src/threads/critical.h (critical_section_node_t): Renamed members.
+       (thread_restartcriticalsection): Renamed to
+       md_critical_section_restart.
+       
+       * src/threads/native/threads.c (threads_cast_darwinstop): Call
+       md_critical_section_restart.
+       (threads_sigsuspend_handler): Likewise.
+       
+       * src/vmcore/linker.c (linker_compute_subclasses): Call
+       threads_cast_{start,stop}world, removed LOCK_MONITOR_{ENTER,EXIT}.
        
-       * src/vm/jit/verify/typecheck-common.c: New file.
-       * src/vm/jit/verify/typecheck-common.h: New file.
+       * src/cacaoh/dummy.c (threads_cast_stopworld): Added.
+       (threads_cast_startworld): Likewise.
        
-       * src/vm/jit/verify/Makefile.am: Added new source files.
+       * src/vm/jit/codegen-common.c (codegen_setup): Setup listcritical.
+       (codegen_reset): Likewise.
+       (codegen_critical_section_new): New function.
+       (codegen_critical_section_start): Likewise.
+       (codegen_critical_section_end): Likwise.
+       (codegen_critical_section_finish): Likewise.
+       (codegen_finish): Call codegen_critical_section_finish.
+       (codegen_threadcritrestart): Removed.
+       (codegen_threadcritstart): Likewise.
+       (codegen_threadcritstop): Likewise.
+       
+       * src/vm/jit/codegen-common.h (codegen_critical_section_t): Renamed to
+       critical_section_ref_t.
+       (codegendata): Added listcritical, removed threadcrit,
+       threadcritcurrent and threadcritcount.
+       (CODEGEN_CRITICAL_SECTION_NEW, CODEGEN_CRITICAL_SECTION_START)
+       (CODEGEN_CRITICAL_SECTION_END): Defined.
+       
+       * src/vm/jit/powerpc/codegen.c (codegen_emit): Use
+       CODEGEN_CRITICAL_SECTION_* macros.
+       
+       * src/vm/jit/powerpc/linux/md-os.c (thread_restartcriticalsection):
+       Renamed to md_critical_section_restart.
 
-2006-10-11 23:52  edwin
+2007-05-03 20:58  twisti
 
-       * src/vm/jit/verify/typecheck-builtins.inc: Removed redundant
-       `return true`. Moved declaration of `av`.
+       * src/mm/boehm-gc/include/gc.h (GC_HAVE_BUILTIN_BACKTRACE): Commented,
+       we don't need it and uClibc doesn't have it.
 
-2006-10-11 23:44  edwin
+2007-05-03 14:53  twisti
 
-       * src/vm/jit/verify/typecheck-invoke.inc: Use invokestatic where
-       possible. Added a comment.
+       * src/toolbox/avl.c (toolbox/logging.h): Added.
+       (vm/global.h): Likewise.
+       (vm/vm.h): Likewise.
+       (avl_insert_intern): Use vm_abort instead of assert.
+       (avl_insert): Removed debug code.
+       (avl_dump): Use logging functions.
 
-2006-10-11 23:41  edwin
+2007-05-03 13:49  twisti
 
-       * src/vm/jit/verify/typecheck-invoke.inc: Indent log messages to make
-       them more readable.
+       * src/vm/jit/codegen-common.c (codegen_start_native_call)
+       [ENABLE_JAVASE]: This has to be ENABLE_JNI.
+       (codegen_finish_native_call): Likewise.
 
-2006-10-11 23:37  edwin
+2007-05-03 12:30  twisti
 
-       * src/vm/jit/verify/typecheck.c (verify_invocation): Define jd and dv
-       before including the function body.
+       * src/toolbox/avl.c (avl_insert_intern): Changed order of
+       comparator-arguments.
+       (avl_find): Likewise.
        
-       * src/vm/jit/verify/typecheck-invoke.inc: Removed definitions of jd
-       and dv. Small cleanup.
+       * src/toolbox/avl.h (avl_comparator): Renamed arguments, to reflect
+       the change.
+       
+       * src/vm/jit/codegen-common.c (methodtree_comparator): Likewise.
 
-2006-10-11 23:22  edwin
+2007-05-03 08:29  twisti
 
-       * src/vm/jit/verify/typecheck.c (verify_builtin): Define jd and dv
-       before including the function body.
+       * src/toolbox/avl.h (avl_tree): Renamed to avl_tree_t.
+       (avl_node): Renamed to avl_node_t.
        
-       * src/vm/jit/verify/typecheck-builtins.inc: Removed definitions
-       of jd and dv.
+       * src/toolbox/avl.c: Likewise.
+       * src/threads/critical.c: Likewise.
+       * src/vm/jit/codegen-common.c: Likewise.
 
-2006-10-11 23:00  edwin
+2007-05-03 08:16  twisti
 
-       * 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.
+       * contrib/check_dangerous_printf.pl: Removed this file in favor of
+       pscan.
+
+2007-05-03 00:33  tbfg
+
+       * src/vm/jit/m68k/codegen.c (ICMD_CALOAD): Fixed.
        
-       * src/vm/jit/verify/Makefile.am: Added new source files.
+       * src/vm/jit/m68k/patcher.c (*): Removed patching back of
+       old opcodes from patcher_wrapper, moved into each patcher.
+       (patcher_patch_back): Added.
 
-2006-10-11 19:43  edwin
+2007-05-02 22:28  tbfg
 
-       * src/cacaoh/headers.c (typeinfo_print_short): Stub added.
+       * src/vm/jit/m68k/codegen.c (ICMD_IDIVPOW2): Fixed.
+       (ICMD_IREM): Fixed.
+       (ICMD_LASTORE): Use M_LST.
+       (ICMD_DASTORE): Use M_LST.
+       (ICMD_LALOAD): Use M_LLD.
+       (ICMD_DALOAD): Use M_LLD.
 
-2006-10-11 19:42  edwin
+2007-05-02 20:46  twisti
 
-       * 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.)
+       * src/native/vm/cldc1.1/java_lang_Float.c (native/native.h): Removed.
+       (native/include/java_lang_Float.h): Added.
 
-2006-10-11 19:40  edwin
+2007-05-02 20:44  twisti
 
-       * src/vm/resolve.c, src/vm/resolve.h
-       (resolve_method_param_type_checks_stackbased): New function.
-       (resolve_constrain_unresolved_method_params_stackbased): Likewise.
+       * src/native/vm/cldc1.1/java_lang_Double.c
+       (native/include/java_lang_Double.h): Added.
+       (longBitsToDouble): Fixed return type.
 
-2006-10-11 16:31  edwin
+2007-05-02 20:40  twisti
 
-       *
-       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.
+       * src/threads/threads-common.c (threads_table_get_threads): New
+       function.
        
-       * tests/regression/jasmin/Makefile.am: Added new tests.
+       * src/threads/threads-common.h (threads_table_get_threads): Added.
+       
+       * src/threads/native/threads.c (threads_cast_sendsignals): Rewritten.
+       (threads_cast_stopworld): Likewise.
+
+2007-05-02 20:36  tbfg
+
+       * java_lang_Double.c (Java_java_lang_Double_doubleToLongBits): Added
+       missing JNIEnv* argument to signature.
+
+2007-05-02 19:57  twisti
+
+       * src/vmcore/class.c (class_load_attributes): Disable annotation
+       loading for the release.
+
+2007-05-02 16:21  twisti
+
+       * src/threads/threads-common.c (threads_preinit): Create and
+       initialize the main-thread.
+       (threads_table_init): Changed signature, insert main-thread and
+       maintain a used list too.
+       (threads_table_add): Use locking and maintain used list.
+       (threads_table_remove): Likewise.
+       (threads_table_get): New function.
+       (threads_table_get_non_daemons): Likewise.
+       (threads_table_first): Likewise.
+       (threads_table_next): Likewise.
+       [!NDEBUG] (threads_table_dump): Use log_* functions.
+       (threads_dump): Use threads-table and functions.
+       
+       * src/threads/threads-common.h (threads_table_entry_t): Made a struct
+       and renamed nextfree to next.
+       (threads_table_get): Added
+       (threads_table_get_non_daemons): Likewise.
+       (threads_table_first): Likewise.
+       (threads_table_next): Likewise.
+       [!NDEBUG] (threads_table_dump): Likewise.
+       (threads_impl_table_init): Likewise.
+       (threads_table_lock): Likewise.
+       (threads_table_unlock): Likewise.
+       (threads_set_current_threadobject): Likewise.
+       
+       * src/threads/native/threads.c (threadlistlock): Removed.
+       (threads_impl_preinit): Removed main-thread initialization code.
+       (threads_impl_table_init): New function.
+       (threads_table_lock): New function.
+       (threads_table_unlock): Likewise.
+       (threads_init): Get main-thread from threads-table and removed
+       thread-list code.
+       (threads_attach_current_thread): Likewise.
+       (threads_detach_thread): Removed thread-list code.
+       (threads_find_non_daemon_thread): Removed.
+       (threads_join_all_threads): Use threads_table_get_non_daemons.
+
+2007-05-02 09:57  twisti
+
+       * src/vm/jit/powerpc/linux/md-os.c (md_signal_handler_sigsegv): Added
+       uClibc support.
+       (md_signal_handler_sigtrap): Likewise.
+       (md_signal_handler_sigusr2): Likewise.
+       (thread_restartcriticalsection): Likewise.
 
-2006-10-11 16:21  edwin
+2007-05-01 21:40  pm
 
-       * 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.
+       * src/vm/jit/s390/md.c (md_dump_context): Added. Fatal signals now
+       print the context and a stacktrace.
+       * src/vm/jit/s390/emit.h (emit_restore_pv): Added. Fixes bug where
+       REG_PV recalculation uses dseg value to recalculate REG_PV.
+       * src/vm/jit/s390/emit.c: Likewise.
+       * src/vm/jit/s390/codegen.h (N_RI, N_RI2): Test immediate operand for
+       correct signedness.
+       * src/vm/jit/s390/codegen.c (codegen_emit): Use emit_restore_pv for
+       REG_PV recalculation/
+       * src/vm/jit/s390/disass.c (disass_pseudo_instr): Fix formating.
+       * src/vm/jit/s390/tests/dacapo.status: Added.
 
-2006-10-11 10:17  edwin
+2007-05-01 17:35  ajordan
 
-       * tests/regression/jasmin/test_verify_fail_handler_bad_local.j: new
-       test.
+       * src/vm/jit/sparc64/codegen.h: Removed unused var_to_reg_int define.
        
-       * 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 <asm/ppc_asm.h> 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 <init>, 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/sparc64/codegen.c: Fixed JIT float argument passing via
+       stack.
        
-       * 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.
+       * src/vm/jit/sparc64/asmpart.S (asm_vm_call): Fixed integer argument
+       passing via stack args.
 
-2006-03-16 12:53  twisti
+2007-05-01 16:14  pm
 
-       * 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.
+       * src/vm/jit/s390/codegen.h (gen_bound_check,
+       gen_nullptr_check_intern, gen_bound_check, N_LONG_0): Remove because
+       obsolete.
 
-2006-03-16 12:03  twisti
+2007-05-01 16:05  pm
 
-       * 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.
+       * src/vm/jit/s390/codegen.c (codegen_emit): Use new emit_label and
+       emit_label_* functions.
+       * src/vm/jit/s390/disass.c (disass_pseudo_instr): Nicer formatting
+       for ill pseudo instruction.
 
-2006-03-16 04:38  edwin
+2007-05-01 15:46  pm
 
-       * src/vm/jit/replace.h (RPLPOINT_SBR): Removed obsolete flag constant.
+       * src/vm/jit/emit-common.h (BRANCH_LABEL_6): Added.
 
-2006-03-16 04:17  edwin
+2007-05-01 13:00  tbfg
 
-       * 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/m68k/linux/md-os.c (md_signal_handler_sigill): Support
+       EXCEPTION_HARDWARE_ARITHMETIC.
        
-       * src/vm/jit/code.h (code_get_sync_slot_count): Added.
+       * src/vm/jit/m68k/emit.c (emit_mov_imm_reg): Use corret opcode for
+       word forms.
        
-       * 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/m68k/codegen.c (ICMD_IDIVPOW2): Implemented.
+       (ICMD_IREMPOW2): Implemented.
+       (ICMD_ISHLCONST): Fixed.
+       (ICMD_ISHRCONST): Fixed.
+       (ICMD_IUSHRCONST): Fixed.
+       (ICMD_SALOAD): Signextension fix.
+       (ICMD_LALOAD): Implemented.
+       (ICMD_LASTORE): Fixed.
+       (ICMD_IASTORE): Fixed.
+       (ICMD_MULITANEWARRAY): Fixed.
        
-       * 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.
+       * src/vm/jit/m68k/codegen.h (M_IADDX): Added.
+       (M_IXOR): Fixed.
+       (M_BCS): Fixed.
 
-2006-03-16 00:05  edwin
+2007-04-30 12:44  tbfg
 
-       * 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.
+       * src/vm/jit/m68k/asmpart.S (asm_handle_exception): Restore registers
+       correctly.
 
-2006-03-15 21:27  edwin
+2007-04-30 11:58  twisti
 
-       * 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.
+       * src/vm/jit/inline/Makefile.am (AM_CPPFLAGS): Added
+       -I$(top_builddir)/src.
 
-2006-03-15 20:53  edwin
+2007-04-30 10:53  tbfg
 
-       * src/vm/jit/code.h (codeinfo): Changed regalloc to use rplalloc
-       structs.
-       Added fields storing stack slot counts.
+       * src/vm/jit/m68k/emit.c (emit_mov_imm_reg): Fixed.
+       (emit_arithmetic_check): Implemented.
        
-       * src/vm/jit/code.c, src/vm/jit/code.h (code_get_stack_frame_size):
-       Added.
+       * src/vm/jit/m68k/md.c (md_get_method_patch_address): Changed invoking
+       register.
+       (md_stacktrace_get_returnaddress): Fix for linking words on stack.
        
-       * 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/m68k/codegen.c (IUSHRCONST): Fix.
+       (ICMD_IOR): Implemented.
+       (ICMD_IORCONST): Likewise.
+       (ICMD_IXOR): Likewise.
+       (ICMD_IXORCONST): Likewise.
+       (ICMD_INVOKEVIRTUAL): Changed invoking register.
+       (ICMD_INVOKEINTERFACE): Likewise.
        
-       * src/vm/jit/replace.c (replace_read_executionstate): Added.
-       (replace_write_executionstate): Likewise.
+       * src/vm/jit/m68k/patcher.c (patcher_invokevirtual): Changed
+       invoking register.
        
-       * 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/m68k/asmpart.S (asm_vm_call_method_exception_handler):
+       Proper stack restauration.
+       (L_asm_call_jit_compiler_exception): Implemented.
+       (asm_patcher_wrapper): Fixses.
+       (L_asm_patcher_wrapper_exception): Implemented.
        
-       * 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/m68k/codegen.h (M_IXOR): Added.
+       (M_IOR_IMM): Added.
+       (M_IXOR_IMM): 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.
+       * src/vm/jit/stacktrace.c (stacktrace_create_extern_stackframe):
+       Comment and further m68k stuff.
 
-2006-03-15 20:43  edwin
+2007-04-29 22:46  pm
 
-       * doc/stack_frames.txt: Added arrows indicating increasing
-       addresses/indices.
+       * src/vm/jit/s390/emit.c,
+       src/vm/jit/s390/md-abi.h,
+       src/vm/jit/s390/md.c,
+       src/vm/jit/s390/emit.h,
+       src/vm/jit/s390/codegen.c,
+       src/vm/jit/s390/machine-instr.h,
+       src/vm/jit/s390/codegen.h,
+       src/vm/jit/s390/arch.h,
+       src/vm/jit/s390/md-asm.h,
+       src/vm/jit/s390/disass.c,
+       src/vm/jit/s390/patcher.c,
+       src/vm/jit/s390/asmpart.S,
+       src/vm/jit/s390/md-abi.c: Adapted S390 port to changes from
+       branches/twisti (hardware exceptions, emit_branch, abi_registers_*),
+       jctest works again. Cleaned up almost all dead x86_64 code.
 
-2006-03-15 20:42  edwin
+2007-04-28 12:59  ajordan
 
-       * src/vm/jit/asmpart.h (asm_replacement_in): Added prototype.
+       * src/vm/jit/sparc64/asmpart.S (asm_call_jit_compiler): Fixed stack
+       alignement in first save.
 
-2006-03-15 20:40  edwin
+2007-04-27 08:43  tbfg
 
-       * 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/m68k/emit.c (emit_arrayindexoutofbounds_check): Fixed.
+       * src/vm/jit/m68k/linux/md-os.c (md_signal_handler_sigill): AIOOB
+       fixed.
+       Editor boiler plate added.
        
-       * 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/m68k/linux/md-os.h: Editor boiler plate.
        
-       * src/vm/jit/dseg.h (exceptionref): New structure.
+       * src/vm/jit/m68k/linux/md-abi.c: Likewise.
        
-       * 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/m68k/md.c: Likewise.
        
-       * 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/m68k/machine-instr.h: Likewise.
        
-       * 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/m68k/patcher.c: Editor boiler plate.
+       (patcher_invokeinterface): Implemented.
+       (patcher_get_putfield): Implemented.
+       (patcher_resolve_class): Implemented.
+       (patcher_get_putstatic): Implemented.
        
-       * src/vm/jit/code.h (codeinfo): Rearranged fields.
+       * src/vm/jit/m68k/codegen.c: Editor boiler plate.
+       (ICMD_GETSTATIC): Added patcher.
+       (ICMD_AASTORE): Fixed.
        
-       * src/vm/jit/i386/md.c, src/vm/jit/i386/asmpart.S,
-       src/vm/jit/replace.c:
-       Comment changes.
+       * src/vm/jit/m68k/asmpart.S: Editor boiler plate.
+       (asm_vm_call_method_exception_handler): Fixed used register.
+       Return values in %d0 and %a0 as gcc sometimes expects pointers
+       in %a0.
 
-2006-03-15 11:38  edwin
+2007-04-27 01:37  ajordan
 
-       * 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/sparc64/emit.c: Keeping stack 16-byte aligned when
+       calling C/native functions from the stack. (Solaris requires this)
+       * src/vm/jit/sparc64/codegen.c: Likewise.
+       * src/vm/jit/sparc64/codegen.h: Likewise.
        
-       * src/vm/jit/replace.c
-       (replace_replacement_point_println): Print machine code.
+       * src/vm/jit/sparc64/md-abi.c: Removed zero sized abi_register_*
+       arrays. (not allowed in ISO C)
        
-       * src/vm/jit/replace.h (rplpoint): Added `mcode` field.
+       * src/vm/jit/sparc64/solaris/md-os.c: Preliminary hardware exception
+       handling. (untested)
 
-2006-03-15 11:18  twisti
+2007-04-26 13:43  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/inline/inline.h (config.h): Added.
+       (inline_inline): 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/jit.c (threads/threads-common.h): Added.
+       [ENABLE_INLINING] (vm/jit/inline/inline.h): Likewise.
+       [ENABLE_THREADS] (threads/native/threads.h): Removed.
 
-       * src/vm/jit/replace.c (replace_create_replacement_points): Don't use
-       rd->locals in the interpreter -- it's NULL there.
+2007-04-26 13:32  twisti
 
-2006-03-15 05:13  edwin
-
-       * src/vm/jit/codegen-common.c (codegen_finish): Removed a compiler
-       warning.
+       * src/vm/vm.c [ENABLE_THREADS] (threads/native/threads.h): Removed.
+       (threads/threads-common.h): Added.
 
-2006-03-15 05:08  edwin
+2007-04-26 13:07  twisti
 
-       * 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.
+       * src/native/vm/java_lang_Thread.c: Set Id keyword.
 
-2006-03-15 04:57  edwin
+2007-04-26 13:06  twisti
 
-       * 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.
+       * src/native/vm/java_lang_Thread.c (start): Renamed
+       threads_start_javathread to threads_thread_start.
 
-2006-03-15 04:43  edwin
+2007-04-26 12:48  twisti
 
-       * 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/threads/threads-common.c (threads_thread_create_internal):
+       Renamed to threads_thread_start_internal and start the thread.
+       (threads_start_javathread): Renamed to threads_thread_start.
+       * src/threads/threads-common.h: Likewise.
        
-       * src/vm/jit/codegen-common.c (codegen_finish): Resolve replacement
-       points.
+       * src/threads/native/threads.c (threads_start_thread): Renamed to
+       threads_impl_thread_start.
        
-       * src/vm/jit/asmpart.h, src/vm/jit/i386/asmpart.S
-       (asm_replacement_out): Added.
+       * src/mm/memory.c (thread_memory): Removed.
+       (memory_start_thread): Call threads_thread_start_internal.
        
-       * src/vm/method.h (executionstate): Typo fixed.
+       * src/vm/finalizer.c (thread_finalizer): Removed.
+       (finalizer_start_thread): Call threads_thread_start_internal.
        
-       * src/vm/jit/stack.c (src/vm/jit/stack.c): Minor output change.
+       * src/vm/signal.c (thread_signal): Removed.
+       (signal_start_thread): Call threads_thread_start_internal.
        
-       * src/vm/jit/tools/genoffsets.c (executionstate): Added size and
-       offset.
+       * src/vm/jit/optimizing/profile.c (thread_profile): Removed.
+       (profile_start_thread): Call threads_thread_start_internal.
        
-       * 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.
+       * src/vm/jit/optimizing/recompile.c (thread_recompile): Removed.
+       (recompile_start_thread): Call threads_thread_start_internal.
 
-2006-03-15 01:39  edwin
+2007-04-26 11:14  twisti
 
-       * 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/threads/threads-common.c (threads/critical.h): Added.
+       (threads/native/threads.h): Removed.
+       (threads_table): Added.
+       (threads_preinit): New function.
+       (threads_table_init): Moved from implementation file.
+       (threads_table_add): Likewise.
+       (threads_table_remove): Likewise.
+       (threads_table_dump): Likewise.
        
-       * src/vm/jit/code.c (code_codeinfo_free): Free replacement points.
+       * src/threads/threads-common.h (threads_table_entry_t)
+       (threads_table_t): Added.
+       (threads_preinit): Likewise.
+       (threads_table_add): Likewise.
+       (threads_table_remove): Likewise.
+       (threads_impl_preinit): Likewise.
+       (threads_init_threadobject): Likewise.
        
-       * 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/threads/native/threads.c (threads_table): Removed.
+       (threads_preinit): Renamed to threads_impl_preinit.
+       (threads_table_init): Removed.
+       (threads_table_add): Likewise.
+       (threads_table_remove): Likewise.
+       (threads_table_dump): Likewise.
        
-       * src/vm/jit/stack.h (MARKREACHED): Mark targets of backward branches
-       as replacement points (BBFLAG_REPLACEMENT)
+       * src/threads/native/threads.h (threads_table_entry_t)
+       (threads_table_t): Removed.
+       (threads_preinit): Likewise.
 
-2006-03-14 23:49  edwin
+2007-04-25 21:47  stefan
 
-       * 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.
+       * src/vm/jit/i386/darwin/md-os.c: added threads/threads-common.h,
+       removed vm/jit/i386/md-abi.h
 
-2006-03-14 23:16  edwin
+2007-04-25 21:23  stefan
 
-       * src/vm/jit/jit.h (basicblock): Comment.
+       * src/vm/jit/i386/darwin/md-os.c: attempt at porting the exception
+       changes
+       (see r7596 & r7648).
 
-2006-03-14 23:00  edwin
+2007-04-25 21:03  twisti
 
-       * src/vm/jit/parse.c (fillextable): Removed unused label_index.
-       (parse): Likewise.
+       * src/threads/lock-common.h (threads/threads-common.h): Removed that
+       header again and added a comment about not including thread headers.
        
-       * src/vm/jit/replace.h: Comment moved.
+       * src/threads/threads-common.c (threads_start_javathread): Reverted.
+       * src/threads/threads-common.h (threads_start_javathread): Likewise.
 
-2006-03-14 22:30  edwin
+2007-04-25 20:56  twisti
 
-       * src/native/jvmti/jvmti.c (GetMethodLocation): Use the new
-       m->code field to get to the location of the method.
+       * src/threads/threads-common.c (threads_dump) [!SIZEOF_VOID_P == 8]:
+       Fixed warning.
 
-2006-03-14 22:16  edwin
+2007-04-25 20:31  twisti
 
-       * 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/threads/threads-common.c (threads_start_javathread): Changed
+       signature.
        
-       * src/vm/jit/jit.c (jit_compile): Use m->code. Create a codeinfo
-       for native stubs and the do-nothing stub
+       * src/threads/lock-common.h (threads/threads-common.h): Added.
+       [ENABLE_THREADS]: Only define functions when threads are enabled.
        
-       * src/vm/jit/codegen-common.c (codegen_finish): Set entrypoint
-       in codeinfo instead of in methodinfo.
+       * src/threads/threads-common.h (native/include/java_lang_Thread.h):
+       Removed.
+       [ENABLE_THREADS]: Only define functions when threads are enabled.
+       (threads_start_javathread): Changed signature.
 
-2006-03-14 20:59  edwin
+2007-04-25 20:07  twisti
 
-       * src/vm/jit/code.c, src/vm/jit/replace.c, src/vm/jit/replace.h:
-       Added GPL header and boilerplate.
+       * src/vm/jit/mips/codegen.c: Changed lock includes.
+       * src/vm/jit/mips/emit.c: Likewise.
 
-2006-03-14 20:57  edwin
+2007-04-25 20:03  twisti
 
-       * src/vm/jit/code.h: Added GPL header and boilerplate.
+       * src/vm/jit/arm/codegen.c: Changed lock include.
+       * src/vm/jit/arm/emit.c: Likewise.
 
-2006-03-14 20:51  edwin
+2007-04-25 20:02  twisti
 
-       * 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.
+       * src/vm/jit/arm/emit.c (emit_load): Use switch-case instead of
+       if-else contruct.
+       (emit_store): Likewise.
+       (emit_copy): Likewise.
 
-2006-03-14 16:40  twisti
+2007-04-25 19:56  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.
+       * src/vm/jit/alpha/emit.c: Set Id keyword.
 
-2006-03-14 16:30  twisti
+2007-04-25 19:55  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.
+       * src/vm/jit/alpha/codegen.c: Changed lock include.
+       * src/vm/jit/alpha/emit.c: Likewise.
 
-2006-03-14 15:00  edwin
+2007-04-25 19:54  twisti
 
-       * doc/design_onstack_replacement.txt: More design options added.
+       * src/vm/jit/alpha/codegen.c (codegen_emit_stub_native): Use
+       md->params to save and restore argument registers.
 
-2006-03-13 21:26  edwin
+2007-04-25 19:47  twisti
 
-       * design_onstack_replacement.txt: Added file.
+       * src/vm/jit/i386/codegen.c: Changed lock include.
+       * src/vm/jit/i386/emit.c: Likewise.
 
-2006-03-13 11:35  twisti
+2007-04-25 19:42  twisti
 
-       * src/vm/vm.c (vm_create): Only put .jar file into classpath. Fixes
-       startup bug with knopflerfish.
+       * src/vm/jit/powerpc64/codegen.c: Changed lock includes.
+       * src/vm/jit/powerpc64/emit.c: Likewise.
 
-2006-03-13 08:02  edwin
+2007-04-25 19:38  twisti
 
-       * src/native/vm/VMClass.c (Java_java_lang_VMClass_getComponentType):
-       Link class before accessing c->vftbl->arraydesc.
+       * src/vm/jit/powerpc/emit.c: Set Id keyword.
 
-2006-03-13 07:06  edwin
+2007-04-25 19:37  twisti
 
-       * 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.
+       * src/vm/jit/powerpc/codegen.c: Fixed lock include.
+       * src/vm/jit/powerpc/emit.c: Likewise.
 
-2006-03-12 23:23  twisti
+2007-04-25 19:36  twisti
 
-       * src/vm/suck.c (suck_start): We really should close class files after
-       reading it.
+       * src/vm/jit/powerpc/linux/md-abi.c (abi_registers_float_temporary):
+       Fixed number of registers.
 
-2006-03-11 21:34  edwin
+2007-04-25 19:20  twisti
 
-       * src/vm/resolve.c (resolve_class_from_typedesc): Safer check for
-       reference types.
+       * src/threads/lock-common.h: New file.
+       
+       * src/threads/native/lock.h: Removed function prototypes.
+       * src/threads/none/lock.h (LOCK_INIT_OBJECT_LOCK): Added.
+       
+       * src/mm/memory.c,
+       src/native/jni.c,
+       src/native/native.c,
+       src/native/vm/java_lang_Object.c,
+       src/native/vm/java_lang_Thread.c,
+       src/threads/Makefile.am,
+       src/threads/native/threads.c,
+       src/threads/threads-common.c,
+       src/toolbox/avl.c,
+       src/toolbox/hashtable.c,
+       src/toolbox/list.c,
+       src/vm/builtin.c,
+       src/vm/finalizer.c,
+       src/vm/initialize.c,
+       src/vm/jit/inline/inline.c,
+       src/vm/jit/jit.c,
+       src/vm/jit/optimizing/recompile.c,
+       src/vm/jit/parse.c,
+       src/vm/jit/patcher.h,
+       src/vm/jit/show.c,
+       src/vm/jit/x86_64/codegen.c,
+       src/vm/jit/x86_64/emit.c,
+       src/vm/string.c,
+       src/vmcore/class.c,
+       src/vmcore/classcache.c,
+       src/vmcore/linker.c,
+       src/vmcore/loader.c,
+       src/vmcore/suck.c,
+       src/vmcore/utf8.c: Updated headers.
 
-2006-03-11 20:41  edwin
+2007-04-25 18:51  twisti
 
-       * src/vm/jit/codegen-common.c (codegen_finish): When setting the
-       entrypoint of a method, be sure not to overwrite an already set
-       entrypoint.
+       * src/mm/memory.h: Updated copyright header.
 
-2006-03-11 20:34  edwin
+2007-04-25 18:33  twisti
 
-       * src/vm/references.h (IS_XCLASSREF): Commented.
+       * src/threads/threads-common.c (threads_create_thread): Renamed to
+       threads_thread_create_internal and a new function.
+       (threads_start_javathread): Use threads_create_thread.
+       
+       * src/threads/threads-common.h (threads_create_thread): Changed
+       signature.
+       (threads_thread_create_internal): Added.
+       
+       * src/threads/native/threads.c (threads_set_current_threadobject):
+       Made non-static.
+       (threads_init_threadobject): Likewise, use threads_create_thread.
+       (threads_init): Cleanup.
+       (threads_startup_thread): Likewise.
+       (threads_attach_current_thread): Use threads_create_thread.
+       
+       * src/vm/jit/optimizing/profile.c (profile_start_thread): Replaced
+       threads_create_thread with threads_thread_create_internal.
+       * src/vm/jit/optimizing/recompile.c (recompile_start_thread):
+       Likewise.
+       * src/vm/signal.c (signal_start_thread): Likewise.
+       * src/vm/finalizer.c (finalizer_start_thread): Likewise.
+       * src/mm/memory.c (memory_start_thread): Likewise.
 
-2006-03-11 20:32  edwin
+2007-04-25 16:39  stefan
 
-       * src/vm/references.h (IS_XCLASSREF): Added.
-       (CLASSREF_OR_CLASSINFO_NAME): Added.
+       * src/vmcore/linker.c (linker_init): added missing
+       lock_init_object_lock.
 
-2006-03-11 20:30  edwin
+2007-04-25 15:14  twisti
 
-       * src/vm/class.c, src/vm/class.h (class_classref_print): Added.
-       (class_classref_println): Added.
+       * src/threads/native/threads.c (threads_preinit): We always need
+       variable t.
 
-2006-03-11 16:06  edwin
+2007-04-25 15:12  twisti
 
-       * src/vm/jit/jit.c (jit_compile_intern): Check if the method has been
-       compiled during static class initialization.
+       * src/native/native.c (native/include/java_lang_Object.h): Include
+       always.
+       [ENABLE_JAVAME_CLDC1_1]
+       (native/include/com_sun_cldc_io_ResourceInputStream.h)
+       (native/include/com_sun_cldc_io_j2me_socket_Protocol.h): Added.
 
-2006-03-11 15:03  edwin
+2007-04-25 14:24  twisti
 
-       * src/vm/method.c (vim boilerplate): Added.
+       * contrib: Ignore TAGS.
+       * contrib/vmlog: Likewise.
 
-2006-03-11 15:01  edwin
+2007-04-25 11:54  twisti
 
-       * 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.
+       * src/threads/native/threads.c (threads_init): Use variable t instead
+       of mainthreadobj->object, makes code simpler.
 
-2006-03-10 22:22  twisti
+2007-04-25 11:47  twisti
 
-       * src/native/vm/VMRuntime.c (vm/options.h): Added.
-       (nativeLoad): Print dlerror output when dlopen fails.
+       * src/threads/threads-common.c (threads_create_thread)
+       [ENABLE_GC_BOEHM]: Use GCNEW_UNCOLLECTABLE.
+       (threads_start_javathread) [ENABLE_GC_BOEHM]: Likewise.
+       
+       * src/threads/native/threads.c (threads_preinit) [ENABLE_GC_BOEHM]:
+       Likewise.
+       (threads_init): Removed resizing-of-threadobject code, we don't need
+       it anymore.
+       (threads_attach_current_thread) [ENABLE_GC_BOEHM]: Use
+       GCNEW_UNCOLLECTABLE.
+       (threads_detach_thread) [ENABLE_GC_BOEHM]: Use GCFREE.
+
+2007-04-24 14:29  twisti
+
+       * src/threads/threads-common.c: Set Id keyword.
+       * src/threads/threads-common.h: Likewise.
+
+2007-04-24 14:23  twisti
+
+       * src/threads/threads-common.c (threads_dump): Also print integer
+       thread id, so it's easier to compare with the ones from gdb.
+
+2007-04-24 10:20  tbfg
+
+       * threads.m4: Fixed a typo
+
+2007-04-23 23:51  twisti
+
+       * contrib/.cvsignore,
+       doc/.cvsignore,
+       doc/handbook/.cvsignore,
+       man/.cvsignore,
+       src/.cvsignore,
+       src/cacao/.cvsignore,
+       src/cacaoh/.cvsignore,
+       src/fdlibm/.cvsignore,
+       src/lib/.cvsignore,
+       src/mm/.cvsignore,
+       src/mm/boehm-gc/.cvsignore,
+       src/mm/boehm-gc/doc/.cvsignore,
+       src/mm/boehm-gc/include/.cvsignore,
+       src/mm/cacao-gc/.cvsignore,
+       src/native/.cvsignore,
+       src/native/include/.cvsignore,
+       src/native/jvmti/.cvsignore,
+       src/native/tools/.cvsignore,
+       src/native/vm/.cvsignore,
+       src/native/vm/cldc1.1/.cvsignore,
+       src/native/vm/gnu/.cvsignore,
+       src/scripts/.cvsignore,
+       src/threads/.cvsignore,
+       src/threads/none/.cvsignore,
+       src/threads/posix/.cvsignore,
+       src/toolbox/.cvsignore,
+       src/vm/.cvsignore,
+       src/vm/jit/.cvsignore,
+       src/vm/jit/allocator/.cvsignore,
+       src/vm/jit/alpha/.cvsignore,
+       src/vm/jit/alpha/freebsd/.cvsignore,
+       src/vm/jit/alpha/linux/.cvsignore,
+       src/vm/jit/arm/.cvsignore,
+       src/vm/jit/arm/linux/.cvsignore,
+       src/vm/jit/i386/.cvsignore,
+       src/vm/jit/i386/cygwin/.cvsignore,
+       src/vm/jit/i386/darwin/.cvsignore,
+       src/vm/jit/i386/freebsd/.cvsignore,
+       src/vm/jit/i386/linux/.cvsignore,
+       src/vm/jit/inline/.cvsignore,
+       src/vm/jit/intrp/.cvsignore,
+       src/vm/jit/loop/.cvsignore,
+       src/vm/jit/m68k/.cvsignore,
+       src/vm/jit/m68k/linux/.cvsignore,
+       src/vm/jit/mips/.cvsignore,
+       src/vm/jit/mips/irix/.cvsignore,
+       src/vm/jit/mips/linux/.cvsignore,
+       src/vm/jit/optimizing/.cvsignore,
+       src/vm/jit/parisc/.cvsignore,
+       src/vm/jit/parisc/linux/.cvsignore,
+       src/vm/jit/powerpc/.cvsignore,
+       src/vm/jit/powerpc/darwin/.cvsignore,
+       src/vm/jit/powerpc/linux/.cvsignore,
+       src/vm/jit/powerpc/netbsd/.cvsignore,
+       src/vm/jit/powerpc64/.cvsignore,
+       src/vm/jit/powerpc64/linux/.cvsignore,
+       src/vm/jit/s390/.cvsignore,
+       src/vm/jit/schedule/.cvsignore,
+       src/vm/jit/sparc64/.cvsignore,
+       src/vm/jit/sparc64/linux/.cvsignore,
+       src/vm/jit/sparc64/solaris/.cvsignore,
+       src/vm/jit/tools/.cvsignore,
+       src/vm/jit/verify/.cvsignore,
+       src/vm/jit/x86_64/.cvsignore,
+       src/vm/jit/x86_64/freebsd/.cvsignore,
+       src/vm/jit/x86_64/linux/.cvsignore,
+       src/vmcore/.cvsignore,
+       tests/.cvsignore,
+       tests/regression/.cvsignore,
+       tests/regression/codepatching/.cvsignore,
+       tests/regression/jasmin/.cvsignore,
+       tests/regression/native/.cvsignore,
+       tests/stack/.cvsignore: Removed.
+
+2007-04-23 23:39  twisti
+
+       * .cvsignore: Removed.
+
+2007-04-23 23:03  twisti
+
+       * configure.ac: Removed --enable-threads checks and call instead
+       AC_CHECK_ENABLE_THREADS.
+       * m4/threads.m4: New file.
+
+2007-04-23 20:04  twisti
+
+       * configure.ac: Removed all classpath related checks and made
+       functions for them.
+       * m4/classpath.m4: New file.
+
+2007-04-23 20:03  twisti
+
+       * src/vm/builtin.h (md-abi.h): Added.
+
+2007-04-23 14:29  twisti
+
+       * src/vm/signal.c (signal_thread): Don't check for an error on
+       sigwait (revisit this patch with the exact-GC).
+
+2007-04-22 20:02  tbfg
+
+       * src/vm/jit/m68k/linux/md-os.c (md_signal_handler_sigsegv):
+       Implemented.
+       (md_signal_handler_sigill): More exceptions handled. Some fixes.
+       
+       * src/vm/jit/m68k/linux/md-os.h
+       (M68K_EXCEPTION_HARDWARE_NULLPOINTER): Used instead of
+       EXCEPTION_HARDWARE_NULLPOINTER, because a trap with value #0 will
+       not be taken.
+       
+       * src/vm/jit/m68k/emit.c (emit_load_[low|high]): Fixed assertion.
+       (emit_arrayindexoutofbounds_check): Implemented.
+       (emit_nullpointer_check): Implemented.
+       (emit_exception_check_ireg): Renamed emit_exception_check.
+       (emit_exception_check_areg): Disabled code.
+       (emit_exception_check): Implemented.
+       
+       * src/vm/jit/m68k/codegen.c (ICMD_LALOAD): Implemented.
+       (ICMD_FALOAD): Implemented.
+       (ICMD_DALOAD): Implemented.
+       (ICMD_LASTORE): Implemented.
+       (ICMD_FASTORE): Implemented.
+       (ICMD_DASTORE): Implemented.
+       (ICMD_BUILTIN): Exception check enabled.
+       (ICMD_MULTIANEWARRAY): Implemented.
+       (codegen_emit_stub_native): Exception check implemented.
+       
+       * src/vm/jit/m68k/asmpart.S (asm_handle_nat_exception): Symbol
+       exported and implemented.
+       
+       * src/vm/jit/stacktrace.c (stacktrace_create_extern_stackframe): More
+       m68k fixes.
+
+2007-04-22 15:55  ajordan
+
+       * src/vm/jit/sparc64/arch.h: Properly activated all FP features
+       SPARC64 supports in hardware.
+       
+       * src/vm/jit/sparc64/asmpart.S: Added functions to read/write the FP
+       state register.
+       * src/vm/jit/sparc64/md.c: Added prototypes here.
+       
+       * src/vm/jit/sparc64/codegen.h: Added 'branch on FP condition codes'
+       macros.
+       
+       * src/vm/jit/sparc64/emit.c (emit_verbosecall_enter): Fixed FP
+       argument passing.
+       
+       * src/vm/jit/sparc64/codegen.c (codegen_emit): Fixed FP conversion
+       functions to (a) use unique slots in the data segment (doh!),
+       (b) catch the case where NaN is converted to an integer value. (JVMS
+       and SPARC do not inherently agree here).
 
-2006-03-09 16:13  twisti
+2007-04-21 18:56  edwin
 
-       * autogen.sh: Fixed typo.
+       * tests/regression/resolving/Makefile.am: Added "-classpath ." to
+       javac
+       options so the tests work with ecj out-of-the-box.
 
-2006-03-09 13:51  twisti
+2007-04-21 16:42  edwin
 
-       * 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.
+       * configure.ac: Generate vmlog Makefiles.
+       * contrib/Makefile.am: Added vmlog to SUBDIRS.
+       * contrib/vmlog/Makefile.am, contrib/vmlog/t/Makefile.am: New files.
 
-2006-03-09 13:46  twisti
+2007-04-21 16:26  edwin
 
-       * src/vm/jit/powerpc/patcher.c (patcher_get_putfield): Check for the
-       instruction order on long fields.
+       * contrib/vmlog/Makefile: Renamed to maintain.mk.
 
-2006-03-09 13:26  twisti
+2007-04-21 12:48  edwin
 
-       * 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.
+       * contrib/vmlog/vmlog_cacao.patch: Removed. It is no longer needed.
+       * contrib/vmlog/README: Updated for CACAO's --enable-vmlog.
 
-2006-03-08 09:44  twisti
+2007-04-21 12:37  edwin
 
-       * 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.
+       * configure.ac (--enable-vmlog): New configure option.
+       
+       * src/vm/jit/Makefile.am, src/vm/Makefile.am,
+       src/threads/native/Makefile.am (AM_CPPFLAGS): Added -I for vmlog
+       includes.
 
-2006-03-07 20:44  twisti
+2007-04-21 10:55  edwin
 
-       * src/native/vm/VMClassLoader.c (nativeGetResources): Check if
-       resource is a directory and don't add it.
+       * src/vm/jit/replace.c, src/vm/jit/intrp/asmpart.c,
+       src/vm/jit/codegen-common.c, src/vm/builtin.c, src/vm/exceptions.c,
+       src/vm/vm.c, src/threads/native/lock.c (ENABLE_VMLOG): Applied the
+       vmlog patch and wrapped all inserted code with
+       #if defined(ENABLE_VMLOG).
 
-2006-03-07 19:32  twisti
+2007-04-20 13:51  twisti
 
-       * src/vm/vm.c (usage): Small change.
+       * src/toolbox/list.h (list_t): Added size.
        
-       * src/native/vm/VMSystemProperties.c (preInit): Set java.ext.dirs to
-       $JAVA_HOME/jre/lib/ext.
+       * src/toolbox/list.c (list_create): Initialize size.
+       (list_create_dump): Likewise.
+       (list_add_first): Increase size.
+       (list_add_last_unsynced): Likewise.
+       (list_add_before): Likewise.
+       (list_remove_unsynced): Decrease size.
 
-2006-03-07 18:18  twisti
+2007-04-20 13:28  twisti
 
-       * src/cacaoh/headers.c (intrp_main_stack): Changed type.
+       * src/toolbox/list.h (listnode): Renamed to listnode_t.
+       (list): Renamed to list_t.
+       
+       * src/toolbox/list.c,
+       src/vm/jit/codegen-common.c,
+       src/vm/jit/codegen-common.h,
+       src/vm/jit/emit-common.c,
+       src/vm/jit/optimizing/profile.c,
+       src/vm/jit/optimizing/recompile.c,
+       src/vm/jit/optimizing/recompile.h,
+       src/vm/properties.c,
+       src/vmcore/class.c,
+       src/vmcore/class.h,
+       src/vmcore/suck.c,
+       src/vmcore/suck.h: Likewise.
 
-2006-03-07 17:21  twisti
+2007-04-20 13:09  twisti
 
-       test
+       * src/vm/vm.c: Changed header order to prevent a warning.
 
-2006-03-07 17:19  twisti
+2007-04-20 13:06  twisti
 
-       test
+       * src/native/vm/cldc1.1/com_sun_cldchi_jvm_JVM.c (loadLibrary): Fixed
+       string-internal warnings.
+       * src/native/vm/cldc1.1/java_lang_System.c (getProperty0): Likewise.
 
-2006-03-07 10:48  twisti
+2007-04-20 12:53  twisti
 
-       * src/native/jni.c (_Jv_jni_CallIntMethodA): New function.
-       (CallBooleanMethodA): Implemented.
+       * src/vm/vm.c (version): Print libjvm.so path.
 
-2006-03-07 10:36  twisti
+2007-04-20 12:48  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.
+       * src/vm/vm.c (vm_create): Print unknown -verbose option.
 
-2006-03-07 09:40  twisti
+2007-04-20 12: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.
+       * src/vm/jit/codegen-common.c (codegen_finish_native_call): #ifdef lrt
+       and plrt. Don't set lrt, we don't need it.
 
-2006-03-06 18:45  christian
+2007-04-20 11:21  twisti
 
-       * src/vm/jit/stack.c (analyse_stack): Bugfix for copy elimination.
+       * src/threads/threads-common.h (native/jni.h): Added.
 
-2006-03-06 13:03  twisti
+2007-04-19 21:31  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.
+       * src/vm/signal.c (signal_thread): Check return value of sig*
+       functions.
 
-2006-03-06 00:30  twisti
+2007-04-19 19:59  twisti
 
-       * src/vm/jit/powerpc/asmpart.S (asm_calljavafunction): Removed.
-       (asm_calljavafunction2): Renamed to asm_vm_call_method.
+       * tests/regression/resolving/Makefile.am (check): Added missing
+       JAVAFLAGS.
 
-2006-03-05 23:53  twisti
+2007-04-19 19:58  twisti
 
-       * src/vm/jit/alpha/asmpart.S (asm_calljavafunction): Removed.
-       (asm_calljavafunction2): Renamed to asm_vm_call_method.
+       * configure.ac (AC_INIT): Changed version to 0.98rc.
 
-2006-03-05 23:35  twisti
+2007-04-19 19:44  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.
+       * src/vm/exceptions.h: Added a comment about the hardware-exception
+       assert in signal_init.
 
-2006-03-05 23:24  twisti
+2007-04-19 19:43  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.
+       * src/vm/signal.c (assert.h): Added.
+       (vm/exceptions.h): Likewise.
+       [ENABLE_STATISTICS] (vmcore/statistics.h): Likewise.
+       (signal_init): Added hardware-exception assert.
 
-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.
+2007-04-19 19:41  twisti
 
-2006-03-03 00:00  twisti
+       * src/cacaoh/dummy.c (exceptions_print_current_exception): Added
+       abort.
+       (exceptions_throw_outofmemoryerror): Removed.
+       (exceptions_throw_illegalaccessexception): Likewise.
 
-       * 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.
+2007-04-19 19:39  twisti
+
+       * src/vm/jit/powerpc/darwin/md-abi.h (REG_FA0, REG_FA1): Added.
+       (REG_A0_A1_PACKED, REG_A2_A3_PACKED): Likewise.
+       
+       * src/vm/jit/powerpc/darwin/md-os.c [ENABLE_THREADS]
+       (threads/native/threads.h): Added.
+       (md_signal_handler_sigsegv): Changed for hardware-exceptions.
+       (md_signal_handler_sigtrap): New function.
+       
+       * src/vm/jit/powerpc/darwin/md-abi.c (vm/descriptor.h): Changed to
+       vmcore/descriptor.h.
+       (regs): Renamed to abi_registers_integer_name.
+       (abi_registers_integer_argument): Added.
+       (abi_registers_integer_saved): Likewise.
+       (abi_registers_integer_temporary): Likewise.
+       (abi_registers_float_argument): Likewise.
+       (abi_registers_float_saved): Likewise.
+       (abi_registers_float_temporary): Likewise.
+       (md_param_alloc): Use new register arrays.
+       (md_param_alloc_native): New function.
 
-2006-03-01 17:00  twisti
+2007-04-19 15:01  tbfg
 
-       * 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/jit/m68k/linux/md-abi.c (abi_registers_integer_saved): Fixed.
+       (abi_registers_float_saved): Fixed.
        
-       * 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/jit/m68k/emit.c (emit_classcast_check): Fixed.
        
-       * src/vm/vm.c: Support Sun's commandline options and ignore them if
-       not supported. Reordered options.
+       * src/vm/jit/m68k/codegen.c (codegen_emit): Temporary hacked
+       a field for saved adr registers until real patch will be done.
+       (ICMD_INSTANCEOF): Fixed.
+       (ICMD_CHECKCAST): Fixed.
+       (codegen_emit_stub_compiler): Removed useless code.
        
-       * 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/vm/jit/m68k/asmpart.S (L_asm_handle_exception_not_catched):
+       Implemented.
        
-       * 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/m68k/codegen.h (M_BLS): Added.
 
-       * src/vm/jit/i386/codegen.c (mm/memory.h): Added.
+2007-04-19 12:19  michi
 
-2006-02-21 16:17  twisti
+       * src/vm/jit/arm/asmpart.S (asm_patcher_wrapper): Use long branch
+       construct
+       for exception handling here. This fixes a crash in the following
+       jasmin
+       regression testcase: jasmin/test_verify_fail_areturn_wrong_reftype.
 
-       * configure.ac (VERSION_CONFIGURE_ARGS, VERSION_CC, VERSION_CFLAGS):
-       Added define.
-       * src/vm/vm.c (version): Print configure options, compiler version and
-       CFLAGS.
+2007-04-19 09:19  twisti
 
-2006-02-21 16:06  twisti
+       * src/threads/threads-common.c (threads_start_javathread)
+       [ENABLE_JAVASE]: Check for daemon thread and set the flag.
 
-       * src/vm/jit/intrp/java.vmg (MULTIANEWARRAY): Use malloc instead of a
-       dynamic-sized array (-fomit-frame-pointer).
+2007-04-19 09:18  twisti
 
-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/threads/native/threads.c (threads_start_javathread): Removed.
+       (threads_detach_thread): Added some comments.
        
-       * src/vm/jit/intrp/patcher.c: Replaced ENABLE_STATICVM by
-       WITH_STATIC_CLASSPATH.
-       * src/vm/jit/intrp/java.vmg: Likewise.
+       * src/threads/native/threads.h (threads_start_javathread): Removed.
+       
+       * src/threads/threads-common.c (assert.h): Added.
+       [ENABLE_STATISTICS] (vmcore/options.h, vmcore/statistics.h): Added.
+       (threads_start_javathread): Added.
        
-       * src/vm/vm.c (mm/memory.h): Added.
-       (vm_create): Allocate the main thread interpreter stack on the Java
-       heap.
+       * src/threads/threads-common.h (vm/global.h): Added.
+       (native/include/java_lang_Thread.h): Likewise.
+       (threads_start_javathread): Likewise.
 
-2006-02-21 13:40  twisti
+2007-04-18 21:04  ajordan
 
-       * src/vm/jit/jit.c (jit_compile_intern): Replaced ENABLE_STATICVM by
-       WITH_STATIC_CLASSPATH.
+       * src/vm/jit/sparc64/emit.c: Migrated to
+       abi_registers_{integer,float}_argument.
+       * src/vm/jit/sparc64/codegen.c: Likewise.
+       * src/vm/jit/sparc64/md-abi.c: Likewise.
 
-2006-02-21 13:39  twisti
+2007-04-18 15:31  michi
 
-       * src/cacao/cacao.c (main): Added main utf variable for better
-       debugability.
+       * src/vm/jit/powerpc64/linux/Makefile.am (AM_CPPFLAGS): Added
+       -I$(top_builddir)/src.
 
-2006-02-21 13:37  twisti
+2007-04-18 14:49  tbfg
 
-       * src/native/native.c: Small changes.
+       * src/vm/jit/powerpc64/codegen.c (sign_ext): Removed from
+       ICMD_INEG, ICMD_IDIV, ICMD_IREM, ICMD_IMUL, ICMD_IAND and ICMD_IOR
+       to save the if runtime costs.
+       
+       (ICMD_IUSHR): Needs sign extension for 0 bit shift case.
 
-2006-02-21 13:35  twisti
+2007-04-18 14:11  twisti
 
-       * src/vm/loader.c (load_class_from_classloader): Added name
-       java.lang.String variable for better debugability.
+       * src/threads/native/threads.c (mutex_join, cond_join): Added.
+       (threads_init_threadobject): Don't initalize join-mutex and cond.
+       (threads_preinit): Initialize mutex_join and cond_join.
+       (threads_startup_thread): Added vm_abort.
+       (threads_detach_thread): Don't reset thread id and use global mutex
+       and condition.
+       (threads_find_non_daemon_thread): Lock thread list.
+       (threads_join_all_threads): Use global mutex and condition.
+       
+       * src/threads/native/threads.h (threadobject): Removed joinmutex and
+       joincond.
 
-2006-02-21 12:41  twisti
+2007-04-18 09:59  twisti
 
-       * src/vm/jit/powerpc/asmpart.S: Rewritten for PIC code.
+       * src/native/vm/java_lang_ClassLoader.c [ENABLE_STATISTICS]
+       (vmcore/statistics.h): Added.
 
-2006-02-21 10:47  twisti
+2007-04-17 23:18  twisti
 
-       * src/vm/jit/alpha/asmpart.S: Rewritten for PIC code.
+       * src/vm/jit/emit-common.h (emit_copy): Changed signature.
+       
+       * src/vm/jit/alpha/codegen.c,
+       src/vm/jit/alpha/emit.c,
+       src/vm/jit/arm/codegen.c,
+       src/vm/jit/arm/emit.c,
+       src/vm/jit/i386/codegen.c,
+       src/vm/jit/i386/emit.c,
+       src/vm/jit/m68k/codegen.c,
+       src/vm/jit/m68k/emit.c,
+       src/vm/jit/mips/codegen.c,
+       src/vm/jit/mips/emit.c,
+       src/vm/jit/powerpc/codegen.c,
+       src/vm/jit/powerpc/emit.c,
+       src/vm/jit/powerpc64/codegen.c,
+       src/vm/jit/powerpc64/emit.c,
+       src/vm/jit/s390/codegen.c,
+       src/vm/jit/s390/emit.c,
+       src/vm/jit/sparc64/codegen.c,
+       src/vm/jit/sparc64/emit.c,
+       src/vm/jit/x86_64/codegen.c,
+       src/vm/jit/x86_64/emit.c: Likewise.
 
-2006-02-21 10:39  twisti
+2007-04-17 22:55  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.
+       * src/vm/jit/m68k/emit.c: boilerplate added.
 
-2006-02-21 10:25  twisti
+2007-04-17 22:50  twisti
 
-       * src/vm/jit/i386/.cvsignore, src/vm/jit/i386/linux/.cvsignore: Added
-       TAGS.
+       * src/vm/jit/m68k/codegen.c: Boilerplate added.
 
-2006-02-21 09:34  twisti
+2007-04-17 22:06  twisti
 
-       * src/vm/jit/i386/asmpart.S: Rewritten for PIC code.
+       * src/vm/jit/alpha/codegen.c (codegen_emit): Fixed bug in
+       float-argument passing.
 
-2006-02-21 09:31  twisti
+2007-04-17 21:37  twisti
 
-       * src/threads/native/threads.c (vm/vm.h): Added.
-       (threads_startup_thread): Compiler warning fix.
+       * tests/regression/resolving/Makefile.am (check): Use LD_LIBRARY_PATH
+       for JAVA.
 
-2006-02-21 09:25  twisti
+2007-04-17 21:30  edwin
 
-       * 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.
+       * src/vm/jit/stack.c (stack_init_javalocals): Use "type" as variable
+       for the type.
+       (stack_analyse): Likewise.
 
-2006-02-21 09:18  twisti
+2007-04-17 21:25  edwin
 
-       * src/vm/jit/intrp/engine.c (cacao/cacao.h): Removed.
+       * src/vm/jit/stack.c (stack_analyse): Do not abuse poor "i" for types,
+       use a separate variable for that.
 
-2006-02-21 09:14  twisti
+2007-04-17 21:11  edwin
 
-       * configure.ac (AC_CONFIG_FILES): Remvoed ifconv, not yet.
+       * src/vm/jit/stack.c (stack_reanalyse_block, stack_analyse): Renamed
+       variable "j" to a more obvious "varindex".
 
-2006-02-21 09:11  twisti
+2007-04-17 21:01  edwin
 
-       * 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.
-       (Release<type>ArrayElements): Copy correct element type.
-       (Get<type>ArrayRegion): Likewise.
-       (Set<type>ArrayRegion): Likewise.
+       * src/vm/jit/verify/typecheck.c: More variable renaming for clarity.
 
-2006-02-20 23:35  twisti
+2007-04-17 20:59  twisti
 
-       * src/vm/global.h: Sorted java_<type>array definitions.
+       * src/vm/builtintable.inc (builtintable_function) [ENABLE_JIT]: We
+       need the entries only for JIT.
 
-2006-02-20 23:31  twisti
+2007-04-17 20:54  twisti
 
-       * src/vm/linker.c (link_class_intern): Comment reformatted.
+       * tests/regression/jasmin/Makefile.am (check): Set LD_LIBRARY_PATH.
 
-2006-02-20 15:19  twisti
+2007-04-17 20:53  edwin
 
-       * src/vm/jit/intrp/engine.c (USE_spTOS): Disable per default.
+       * src/vm/jit/stack.c, src/vm/jit/verify/typecheck-common.c,
+       src/vm/jit/verify/typeinfo.c, src/vm/jit/inline/inline.c,
+       src/vm/jit/allocator/simplereg.c: Clarification: Renamed variables
+       that are indices into jd->var to "varindex". Renamed variables that
+       are bytecode variable indices to "javaindex".
 
-2006-02-20 14:08  twisti
+2007-04-17 20:37  edwin
 
-       * src/vm/classcache.c (classcache_new_name): Keep c89 compilers happy.
+       * src/vm/jit/stack.c, src/vm/jit/show.c, src/vm/jit/inline/inline.c,
+       src/vm/jit/replace.c, src/vm/jit/jit.h: Fix and use the new macros
+       for calculating javalocals values representing returnAddresses.
 
-2006-02-19 22:27  christian
+2007-04-17 20:30  edwin
 
-       * 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.
+       * src/vm/jit/jit.h (basicblock): Document the javalocal array.
+       (JAVALOCAL_FROM_RETADDR): New macro.
+       (RETADDR_FROM_JAVALOCAL): Likewise.
 
-2006-02-16 19:39  christian
+2007-04-17 20:25  twisti
 
-       * 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).
+       * src/threads/native/threads.c (threads_init): Fixed string-internal
+       warnings.
+       (threads_attach_current_thread): Likewise.
 
-2006-02-14 20:27  edwin
+2007-04-17 20:17  twisti
 
-       * src/native/jni.c (_Jv_jni_invokeNative): Cleanup.
+       * src/threads/threads-common.c (threads_print_stacktrace): Renamed to
+       threads_thread_print_stacktrace.
+       (threads_print_stacktrace): New function.
+       (threads_dump): Use threads_thread_print_stacktrace.
        
-       * src/native/jni.c (Changes): Added my name.
+       * src/threads/threads-common.h: Likewise.
        
-       * src/native/jni.c (vim boilerplate): Added.
-
-2006-02-14 20:10  edwin
+       * src/vm/jit/codegen-common.c (codegen_get_pv_from_pc): Use new
+       threads_print_stacktrace.
 
-       * src/native/jni.c (_Jv_jni_invokeNative): Look up _all_ instance
-       methods
-       in the vftbl.
+2007-04-17 20:06  edwin
 
-2006-02-14 20:09  edwin
+       * src/vm/jit/jit.h (jitdata): Cleaned up comments for local_map.
 
-       * 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
+2007-04-17 19:57  edwin
 
-       * src/vm/classcache.c, src/vm/classcache.h: Merge cache entries when
-       they are resolved to the same class.
+       * src/vm/jit/stack.c (stack_javalocals_store): Added an assert.
 
-2006-02-14 15:34  edwin
+2007-04-17 19:24  edwin
 
-       * src/vm/utf8.c, src/vm/utf8.h (utf_full_hashkey): Added.
+       * src/vm/jit/stack.c (stack_analyse): The javalocals array can have
+       negative values != UNUSED (these values < UNUSED represent
+       returnAddresses of local subroutines). Thus >= 0 must be used to
+       check for normal indices.
 
-2006-02-14 11:01  twisti
+2007-04-17 18:47  edwin
 
-       * configure.ac (AC_INIT): Changed version number to 0.95+cvs.
-       (CFLAGS): Changed optimization back to -O0.
+       * src/vm/jit/parse.c (parse): Small cleanup of local variable
+       renaming.
+       (No code changes.)
 
-2006-02-14 10:30  twisti
+2007-04-17 11:15  twisti
 
-       * ChangeLog: Updated for release 0.95.
+       * src/vm/jit/x86_64/codegen.c (codegen_emit_stub_native): Use simpler
+       code to save and restore argument registers.
 
-2006-02-14 10:14  twisti
+2007-04-16 22:56  twisti
 
-       * configure.ac: Updated version to 0.95, set optimization level to
-       -O2, some indent changes.
-       * ChangeLog-2005: Removed 2006 entries.
+       * src/vm/jit/x86_64/codegen.c (codegen_emit): Made argument passing
+       cleaner.
 
-2006-02-14 01:10  twisti
+2007-04-16 22:24  twisti
 
-       * src/vm/jit/profile/profile.c (profile_thread): Fixed compiler
-       warning.
+       * src/vm/jit/codegen-common.c (codegen_setup): Removed maxstack stuff.
+       * src/vm/jit/codegen-common.h (codegendata): Likewise.
+       
+       * src/vm/jit/inline/inline.c: Fixed includes.
+       (inline_jit_compile): Removed maxstack stuff.
+       (inline_transform): Removed basicblockindex.
 
-2006-02-14 01:05  twisti
+2007-04-16 21:09  twisti
 
-       * src/vm/jit/intrp/codegen.c (createcompilerstub): Store the
-       methodinfo pointer in the same place as in the methodheader for
-       compiled methods.
+       * src/vm/jit/Makefile.am (DIST_SUBDIRS): Added m68k.
+       * src/mm/cacao-gc/Makefile.am (libgc_la_SOURCES): Removed heap.c.
 
-2006-02-14 00:41  twisti
+2007-04-16 21:07  twisti
 
-       * src/vm/jit/x86_64/codegen.c (createcompilerstub): Store the
-       methodinfo pointer in the same place as in the methodheader for
-       compiled methods.
+       * src/vm/jit/powerpc64/linux/md-abi.c: Argument register changes
+       ported (rev7713).
+       * src/vm/jit/powerpc64/emit.c: Likewise.
+       * src/vm/jit/powerpc64/codegen.c: Likewise.
 
-2006-02-14 00:33  twisti
+2007-04-16 15:57  twisti
 
-       * contrib/svn2cl.xsl: New file.
-       * THIRDPARTY (contrib/svn2cl.xsl): Added copyright message.
+       * src/native/jni.c (_Jv_JNI_DefineClass): Fixed string-internal
+       warnings.
+       (_Jv_JNI_NewStringUTF): Likewise.
+       (_Jv_JNI_GetStringUTFChars): Likewise.
 
-2006-02-14 00:05  twisti
+2007-04-16 15:53  twisti
 
-       * NEWS: Updated 0.95 release notes.
+       * src/native/vm/java_lang_Class.c (forName): Fixed string-internal
+       warnings.
+       (getDeclaredFields): Likewise.
+       (getDeclaredMethods): Likewise.
+       (getEnclosingMethod): Likewise.
+       (getClassSignature): Likewise.
 
-2006-02-14 00:03  twisti
+2007-04-16 15:49  twisti
 
-       * src/vm/loader.c (load_field): Removed f->xta.
+       * src/native/vm/java_lang_ClassLoader.c (defineClass): Fixed
+       string-internal warnings.
        
-       * src/vm/class.h (vm/method.h): Added.
-       (vm/jit/inline/sets.h): Removed.
+       * src/native/vm/java_lang_Runtime.c (loadLibrary): Likewise.
        
-       * src/vm/method.h (vm/jit/inline/parseXTA.h): Removed.
+       * src/native/vm/gnu/java_lang_reflect_Field.c (getSignature):
+       Likewise.
        
-       * src/vm/field.h (vm/jit/inline/parseXTA.h): Likewise.
-       (fieldinfo): Removed member xta.
+       * src/native/vm/gnu/java_lang_reflect_Constructor.c (getSignature):
+       Likewise.
        
-       * src/lib/Makefile.am (EXTRA_DIST): Fixed typo.
-
-2006-02-14 00:01  twisti
+       * src/native/vm/gnu/java_lang_VMThrowable.c (getStackTrace): Likewise.
 
-       * 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.
+2007-04-16 15:29  twisti
 
-2006-02-13 23:45  twisti
+       * src/native/vm/gnu/java_lang_reflect_Method.c (getSignature): Fixed
+       string-internal warnings.
 
-       * src/vm/class.c (class_findmethod_approx): Removed.
-       * src/vm/class.h (class_findmethod_approx): Likewise.
-       (class_resolvemethod_approx): Likewise.
+2007-04-16 15:26  twisti
 
-2006-02-13 23:16  edwin
+       * src/native/vm/gnu/java_lang_VMRuntime.c (mapLibraryName): Fixed
+       string-internal warnings.
 
-       * NEWS: Added JNI method resolution fix.
+2007-04-16 15:23  twisti
 
-2006-02-13 18:55  twisti
+       * src/native/vm/gnu/java_lang_VMClassLoader.c (loadClass): Fixed
+       string-internal warnings.
+       (nativeGetResources): Likewise.
+       (findLoadedClass): Likewise.
 
-       * 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.
+2007-04-16 14:29  twisti
 
-2006-02-13 10:53  twisti
+       * src/vmcore/utf8.c (utf_get_number_of_u2s): Return 0 instead of NULL.
 
-       * src/vm/utf8.c (utf_display): Some reformatting.
-       (utf_display_classname): Likewise.
+2007-04-16 14:28  twisti
 
-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.
+       * src/threads/threads-common.c (native/include/java_lang_String.h):
+       Added.
+       (threads_create_thread): Fixed string-internal warnings.
+       (threads_dump): Likewise.
 
-2006-02-12 23:43  twisti
+2007-04-16 14:11  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.
+       * src/vm/builtin.c (builtin_print_argument): Removed java_lang_String
+       until we know what we do with strings internally (more patches to
+       come).
 
-2006-02-12 23:22  twisti
+2007-04-15 21:49  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/reg.c (reg_setup): Removed arg{int,flt}regs stuff.
+       * src/vm/jit/reg.h (registerdata): Removed arg{int,flt}regs.
        
-       * 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/vm/jit/stack.c (stack_analyse): regoff now contains the register
+       number instead of an offset.
        
-       * src/native/vm/VMClass.c (Changes): Added my name.
+       * src/vm/jit/allocator/simplereg.c: Use
+       abi_registers_{integer,float}_argument instead of arg{int,flt}regs.
        
-       * src/native/vm/VMClass.c (vim biolerplate): Added.
+       * src/vm/jit/alpha/codegen.c,
+       src/vm/jit/alpha/emit.c,
+       src/vm/jit/alpha/md-abi.c,
+       src/vm/jit/arm/codegen.c,
+       src/vm/jit/arm/emit.c,
+       src/vm/jit/arm/md-abi.c,
+       src/vm/jit/arm/md-abi.h,
+       src/vm/jit/i386/codegen.c,
+       src/vm/jit/i386/md-abi.c,
+       src/vm/jit/mips/codegen.c,
+       src/vm/jit/mips/emit.c,
+       src/vm/jit/mips/md-abi.c,
+       src/vm/jit/powerpc/codegen.c,
+       src/vm/jit/powerpc/emit.c,
+       src/vm/jit/powerpc/linux/md-abi.c,
+       src/vm/jit/powerpc/linux/md-abi.h,
+       src/vm/jit/x86_64/codegen.c,
+       src/vm/jit/x86_64/emit.c,
+       src/vm/jit/x86_64/md-abi.c: A lot of changes like the ones above.
 
-2006-02-12 21:47  edwin
+2007-04-15 21:13  twisti
 
-       * src/threads/native/threads.c (allocLockRecordSimple): Fixed
-       declaration
-       after code error.
+       * src/vm/jit/mips/emit.c (emit_load): Bugfix: Added missing float
+       instruction.
+       (emit_store): Likewise.
 
-2006-02-12 16:28  twisti
+2007-04-15 12:17  michi
 
-       * src/vm/jit/i386/codegen.c (createcompilerstub): Store the
-       methodinfo* in the same place as in the methodheader for compiled
-       methods.
+       * src/vm/jit/i386/md-abi.c (abi_registers_integer_argument): Fixed.
 
-2006-02-12 16:24  edwin
+2007-04-15 12:15  michi
 
-       * NEWS: Added directory check bugfix.
+       * src/vm/jit/i386/md-abi.c (abi_registers_integer_argument): Added.
+       (abi_registers_integer_saved): Likewise.
+       (abi_registers_integer_temporary): Likewise.
 
-2006-02-12 16:10  edwin
+2007-04-15 11:55  michi
 
-       * NEWS: Added two bugfixes.
+       * src/vm/jit/i386/codegen.c (codegen_emit_stub_native): Fixed
+       calculation of stackframesize.
 
-2006-02-12 16:02  edwin
+2007-04-15 11:37  twisti
 
-       * src/vm/loader.c, src/vm/loader.h (vim boilerplate): Added.
+       * tests/regression/resolving/Makefile.am: Added GNU header and fixed
+       srcdir != builddir.
+       * tests/regression/resolving/classes1/Makefile.am: Likewise.
+       * tests/regression/resolving/classes2/Makefile.am: Likewise.
+       * tests/regression/resolving/classes3/Makefile.am: Likewise.
 
-2006-02-12 13:11  twisti
+2007-04-13 11:48  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).
+       * src/vm/jit/mips/codegen.c (codegen_emit): ICMD_LDIV, ICMD_LREM: Use
+       REG_Ax_Ax_PACKED defines.
 
-2006-02-12 12:59  christian
+2007-04-13 10:42  twisti
 
-       * src/vm/jit/x86_64/md-abi.c (md_param_alloc): Regard use of A0 for
-       returning float values.
+       * src/vm/jit/mips/md-abi.c (md_param_alloc): Code beautified.
 
-2006-02-12 02:18  edwin
+2007-04-13 10:12  twisti
 
-       * src/native/vm/VMClassLoader.c (vim boilerplate): Added.
+       * src/cacao/cacao.c (main): Save the error message of the first
+       lt_dlopenext and print it too when the second fails (thanks Dalibor).
+       Although there's still a problem, when the first fails for some reason
+       and the second picks up and old installed one silently.
 
-2006-02-12 02:17  edwin
+2007-04-12 19:49  twisti
 
-       * src/vm/classcache.c (classcache_store): Made classcache_store
-       idempotent.
+       * src/vm/jit/stack.c (stack_analyse): Removed USEBUILTINTABLE, always
+       check for automatic-builtins (compile this is not affected).
        
-       * 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).
+       * src/vm/jit/alpha/arch.h,
+       src/vm/jit/arm/arch.h,
+       src/vm/jit/i386/arch.h,
+       src/vm/jit/m68k/arch.h,
+       src/vm/jit/mips/arch.h,
+       src/vm/jit/powerpc/arch.h,
+       src/vm/jit/powerpc64/arch.h,
+       src/vm/jit/s390/arch.h,
+       src/vm/jit/sparc64/arch.h,
+       src/vm/jit/x86_64/arch.h (USEBUILTINTABLE): Removed.
 
-2006-02-12 00:30  twisti
+2007-04-12 15:35  tbfg
 
-       * src/native/vm/VMClass.c (getDeclaredMethods): Set the method's class
-       in java.lang.reflect.Method.
+       * src/vm/jit/powerpc64/emit.c (emit_patcher_stubs): Removed dead code.
        
-       * src/native/vm/Method.c (toolbox/logging.h, vm/jit/stacktrace.h):
-       Removed.
+       * src/vm/jit/powerpc64/codegen.c (ICMD_ISUB): Fixed evil bug.
+       (ICMD_LSHR): Fixed a bug.
+       (createnativestub): Use emit_patcher_stub.
        
-       * src/native/vm/VMSystem.c (identityHashCode): Use casts.
+       * src/vm/jit/powerpc64/patcher.c (patcher_resolve_native): Fixed.
 
-2006-02-12 00:25  twisti
+2007-04-12 14:47  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.
+       * src/vm/jit/codegen-common.c (codegen_createnativestub): Renamed to
+       codegen_generate_stub_native and call codegen_finish.
+       
+       * src/vm/jit/codegen-common.h (codegen_createnativestub): Removed.
+       (codegen_generate_stub_native): Added.
+       * src/vm/jit_interface.h: Likewise.
+       * src/cacaoh/dummy.c: Likewise.
+       
+       * src/vmcore/loader.c (load_newly_created_array): Renamed
+       codegen_createnativestub to codegen_generate_stub_native and changed
+       signature.
+       * src/vm/jit/jit.c (jit_compile_intern): Likewise.
+       
+       * src/vm/jit/arm/codegen.c,
+       src/vm/jit/powerpc/codegen.c,
+       src/vm/jit/sparc64/codegen.c,
+       src/vm/jit/alpha/codegen.c,
+       src/vm/jit/s390/codegen.c,
+       src/vm/jit/mips/codegen.c,
+       src/vm/jit/m68k/codegen.c,
+       src/vm/jit/powerpc64/codegen.c,
+       src/vm/jit/i386/codegen.c,
+       src/vm/jit/x86_64/codegen.c (createnativestub): Renamed to
+       codegen_emit_stub_native and changed signature, don't call
+       codegen_finish.
 
-2006-02-07 23:18  edwin
+2007-04-12 12:45  twisti
 
-       * src/vm/jit/stack.h (TYPE_VERIFYERROR): Converted most of body to a
+       * src/vm/jit/codegen-common.c (codegen_generate_stub_compiler): New
        function.
        
-       * src/vm/exceptions.c, src/vm/exceptions.h
-       (exceptions_throw_verifyerror_for_stack): Added.
+       * src/vm/jit/codegen-common.h (createcompilerstub): Removed.
+       (codegen_generate_stub_compiler): Added.
+       * src/vm/jit_interface.h: Likewise.
+       * src/cacaoh/dummy.c: Likewise.
        
-       * 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.
+       * src/vmcore/linker.c (link_class_intern): Replaced createcompilerstub
+       with codegen_generate_stub_compiler.
+       
+       * src/vm/jit/alpha/codegen.c,
+       src/vm/jit/arm/codegen.c,
+       src/vm/jit/i386/codegen.c,
+       src/vm/jit/m68k/codegen.c,
+       src/vm/jit/mips/codegen.c,
+       src/vm/jit/powerpc/codegen.c,
+       src/vm/jit/powerpc64/codegen.c,
+       src/vm/jit/s390/codegen.c,
+       src/vm/jit/sparc64/codegen.c,
+       src/vm/jit/x86_64/codegen.c (COMPILERSTUB_DATASIZE)
+       (COMPILERSTUB_SIZE): Removed.
+       (createcompilerstub): Renamed to codegen_emit_stub_compiler and
+       changed signature.
+       
+       * src/vm/jit/alpha/codegen.h,
+       src/vm/jit/arm/codegen.h,
+       src/vm/jit/i386/codegen.h,
+       src/vm/jit/m68k/codegen.h,
+       src/vm/jit/mips/codegen.h,
+       src/vm/jit/powerpc/codegen.h,
+       src/vm/jit/powerpc64/codegen.h,
+       src/vm/jit/s390/codegen.h,
+       src/vm/jit/sparc64/codegen.h,
+       src/vm/jit/x86_64/codegen.h (COMPILERSTUB_CODESIZE): Added.
 
-2006-02-07 17:28  edwin
+2007-04-12 11:56  twisti
 
-       * src/vm/jit/intrp/codegen.c (createcalljavafunction):
-       Removed t_inlining_globals.
+       * src/vm/jit/arm/linux/md-os.c (mm/memory.h): Removed.
+       [ENABLE_THREADS] (threads/native/threads.h): Added.
 
-2006-02-07 17:22  edwin
+2007-04-11 16:39  tbfg
 
-       * src/vm/jit/codegen-common.c, src/vm/jit/codegen-common.h
-       (codegen_setup):
-       Removed t_inlining_globals argument.
+       * src/vm/jit/powerpc64/arch.h (SUPPORT_LONG_SHIFT): Enabled.
        
-       * 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/powerpc64/codegen.c (ICMD_LSHLCONST): Implemented.
+       (ICMD_LSHRCONST): Likewise.
+       (ICMD_LUSHRCONST): Likewise.
+       (ICMD_LSHL): Likewise.
+       (ICMD_LSHR): Likewise.
+       (ICMD_LUSHR): Likewise.
+       (ICMD_IUSHR): Fixed.
+       (ICMD_IUSHRCONST): Fixed.
        
-       * 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/powerpc64/codegen.h (M_SRL): Use 64bit opcode.
+       (M_SRA): Likewise.
+       (M_SRA_IMM): Likewise.
+       (M_SRL_IMM): Likewise.
+       (M_SSL_IMM): Likewise.
+       (M_SSL): Likewise.
+       (M_CLR_HIGH): Added.
 
-       * 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.
+2007-04-11 08:21  twisti
 
-2006-02-07 16:47  edwin
+       * src/toolbox/logging.c (log_finish): Also print a \n in the log-file.
 
-       * src/vm/jit/jit.h (Changes): Fixed tabs.
+2007-04-11 08:11  twisti
 
-2006-02-06 21:06  twisti
+       * src/vm/jit/codegen-common.c (codegen_generate): Added re-generating
+       debug message.
 
-       * src/threads/native/threads.c, src/threads/native/threads.h
-       (sleepThread): Renamed to thread_sleep.
+2007-04-10 21:37  twisti
 
-2006-02-06 21:01  twisti
+       * src/vm/jit/mips/linux/md-os.c (md_signal_handler_sigsegv): We only
+       need to check the cause for pre glibc-2.5.
 
-       * src/cacao/cacao.c (vm/jit/profile.h): Changed to
-       vm/jit/profile/profile.h.
-       (main): profile_init and profile_start_thread calls added.
+2007-04-10 21:24  twisti
 
-2006-02-06 18:50  twisti
+       * src/vm/jit/mips/codegen.c (codegen_emit): Fixed ICMD_IF_Lxx
+       instructions for 64-bit.
 
-       * configure.ac (AC_CONFIG_FILES): Added src/vm/jit/profile/Makefile.
+2007-04-10 12:22  twisti
 
-2006-02-06 18:49  twisti
+       * src/vm/jit/mips/linux/md-os.c (md_signal_handler_sigsegv): Set val
+       accordingly.
 
-       * src/vm/jit/Makefile.am (DIST_SUBDIRS): Added profile.
-       (PROFILE_LIB): Added.
-       (PROFILE_SOURCES): Removed.
+2007-04-10 05:02  pm
 
-2006-02-06 18:48  twisti
+       * src/vm/jit/s390/emit.c,
+       src/vm/jit/s390/md-abi.h,
+       src/vm/jit/s390/codegen.c,
+       src/vm/jit/s390/codegen.h,
+       src/vm/jit/s390/arch.h,
+       src/vm/jit/s390/asmpart.S,
+       src/vm/jit/s390/tests/tests.java.pp: Changed very much.
 
-       * 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.
+2007-04-09 21:17  twisti
 
-2006-02-06 18:34  twisti
+       * src/vm/jit/alpha/emit.c (emit_copy): Check src-type, not dst-type.
 
-       * src/vm/jit/profile.h: Moved to src/vm/jit/profile/.
+2007-04-09 17:23  twisti
 
-2006-02-06 18:33  twisti
-
-       * src/vm/jit/profile.c: Moved to src/vm/jit/profile/.
-       * src/vm/jit/profile: Added.
+       * src/vm/jit/alpha/asmpart.S: Use % instead of @ for progbits as ARM's
+       assembler uses @ as comment character.
+       * src/vm/jit/arm/asmpart.S: 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/powerpc64/asmpart.S: Likewise.
+       * src/vm/jit/s390/asmpart.S: Likewise.
+       * src/vm/jit/sparc64/asmpart.S: Likewise.
+       * src/vm/jit/x86_64/asmpart.S: Likewise.
 
-2006-02-06 18:32  twisti
+2007-04-09 11:51  twisti
 
-       * src/vm/jit/profile: Ooops.
+       * src/vm/jit/mips/codegen.h (BRANCH_NOPS): Added long-branches case.
+       
+       * src/vm/jit/mips/emit.c (emit_load): Use switch-case instead of
+       if-else contruct.
+       (emit_store): Likewise.
+       (emit_copy): Likewise.
+       (emit_branch): Implemented conditional long-branches.
 
-2006-02-06 18:31  twisti
+2007-04-08 21:14  twisti
 
-       * src/vm/jit/profile.c: Moved to src/vm/jit/profile/.
+       * src/native/vm/cldc1.1/java_lang_Object.c (notifyAll): Implemented.
+       * src/native/vm/cldc1.1/java_lang_String.c (lastIndexOf__I): Likewise.
 
-2006-02-06 18:14  twisti
+2007-04-05 14:23  michi
 
-       * src/vm/jit/allocator/Makefile.am: Use tabs instead of space.
-       (INCLUDE): Renamed to AM_CPPFLAGS.
+       * src/vm/global.h (compiler_lock, compiler_unlock): Removed.
+       * src/cacaoh/dummy.c (compiler_lock, compiler_unlock): Removed.
+       * src/threads/native/threads.c (compiler_lock, compiler_unlock):
+       Removed.
+       
+       * src/vmcore/linker.h (linker_classrenumber_lock): Added.
+       * src/vmcore/linker.c (linker_classrenumber_lock): Added.
+       (linker_compute_subclasses): Uses above lock object instead of
+       compiler_lock.
+       
+       * src/vm/jit/intrp/asmpart.c (intrp_asm_getclassvalues_atomic):
+       Likewise.
 
-2006-02-06 08:22  edwin
+2007-04-05 13:22  michi
 
-       * doc/Makefile.am (EXTRA_DIST): Added inlining_stacktrace.txt and
-       native_threads.txt.
+       * src/vm/jit/codegen-common.c (codegen_get_pv_from_pc): Inserted
+       ifdef to fix
+       compiler error with disabled threads.
 
-2006-02-06 06:49  edwin
+2007-04-05 12:06  twisti
 
-       * src/threads/native/threads.c: Minor cleanup.
+       * src/vm/exceptions.c (exceptions_throw_nosuchmethoderror)
+       [!ENABLE_JAVASE]: Throw an error.
 
-2006-02-06 06:46  edwin
+2007-04-05 11:57  twisti
 
-       * src/threads/native/threads.c: Uncuddled `else`s and other cleanup.
+       * src/threads/threads-common.c (threads_get_state): Renamed to
+       threads_thread_get_state.
+       (threads_thread_is_alive): New function.
+       
+       * src/threads/threads-common.h: Likewise.
+       
+       * src/native/vm/java_lang_Thread.c (isAlive): New function.
+       (getState): Renamed threads_get_state to threads_thread_get_state.
+       
+       * src/native/vm/java_lang_Thread.h (isAlive): Added.
+       
+       * src/native/vm/cldc1.1/java_lang_Thread.c (isAlive): New function.
 
-2006-02-06 06:16  edwin
+2007-04-05 11:39  twisti
 
-       * doc/inlining_stacktrace.txt: Clarified, added entry after the
-       inlined body
-       for the rest of the line after the call.
+       * src/native/vm/java_lang_Thread.c [ENABLE_THREADS]
+       (threads/native/threads.h): Removed.
+       (threads/threads-common.h): Added.
+       (vm/stringlocal.h): Likewise.
+       (vm/vm.h): Removed.
+       (getState): Implemented.
+       
+       * src/threads/threads-common.c (vm/vm.h): Added.
+       (threads_get_state): New function.
+       (threads_dump): Print thread state.
+       
+       * src/threads/threads-common.h (THREAD_STATE_NEW)
+       (THREAD_STATE_RUNNABLE, THREAD_STATE_BLOCKED, THREAD_STATE_WAITING)
+       (THREAD_STATE_TIMED_WAITING, THREAD_STATE_TERMINATED): Defined.
+       (threads_get_state): Added.
+       
+       * src/threads/native/threads.c (threads_init): Set thread-state.
+       (threads_startup_thread): Likewise.
+       (threads_attach_current_thread): Likewise.
+       (threads_detach_thread): Likewise.
+       (threads_wait_with_timeout): Likewise.
+       
+       * src/threads/native/threads.h (threadobject): Added state field.
+       
+       * src/native/native.c (dummynativetable) [ENABLE_JAVASE]: Added
+       Java_java_lang_VMThread_getState.
 
-2006-02-06 05:00  edwin
+2007-04-05 00:14  twisti
 
-       * src/vm/jit/i386/machine-instr.h (compare_and_swap): Commented.
+       * src/threads/threads-common.c (threads_print_stacktrace): Removed
+       !ENABLE_THREADS code, since this file is only compiled with
+       ENABLE_THREADS.
 
-2006-02-06 04:50  edwin
+2007-04-04 22:29  twisti
 
-       * doc/native_threads.txt: Added.
+       * src/vm/jit/verify/typecheck-stackbased.c: Use block directly instead
+       of insindex.
+       * src/vm/jit/verify/typecheck-stackbased-gen.inc: Newly generated.
 
-2006-02-06 04:46  edwin
+2007-04-04 22:14  twisti
 
-       * 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/vm/jit/parse.c (BYTECODEINDEX_TO_BASICBLOCK): Added.
+       (parsedata_t): Removed instructionstart, added bytecodestart,
+       basicblockstart, bytecodemap, instructionmap.
+       (parse_setup): Allocate new arrays.
+       (parse_bytecodeindex_to_basicblock): New function.
+       (parse_mark_exception_boundaries): Pass parsedata_t.
+       (parse_resolve_exception_table): Likewise.
+       (parse): Completely rewritten so we are able to have basic block
+       boundaries on IR instruction level. We now also resolve basic block
+       pointers in this pass.
        
-       * src/threads/native/threads.c (allocLockRecordSimple,
-       recycleLockRecord)
-       (initObjectLock): Temporarily added assertions to shake out possible
-       further bugs in the free list handling.
+       * src/vm/jit/parse.h (MARK_BASICBLOCK): Pass parsedata_t.
+       (BLOCK_OF): Removed.
        
-       * src/threads/native/threads.c (monitorEnter, monitorExit): Commented.
+       * src/vm/jit/jit.h (jitdata): Removed basicblockindex.
        
-       * src/threads/native/threads.c (Changes): Added my name to 'Changes'.
+       * src/vm/jit/show.c (SHOW_TARGET): Print block instead of insindex.
+       (show_icmd): Likewise.
        
-       * src/threads/native/threads.c (vim boilerplate): Added.
+       * src/vm/jit/stack.c (BRANCH_TARGET): Directly use block.
+       (stack_analyse): Likewise.
+       * src/vm/jit/verify/icmds.c: Likewise.
+       * src/vm/jit/verify/typecheck-stackbased.c: Likewise.
 
-2006-02-06 01:28  edwin
+2007-04-04 14:16  twisti
 
-       * 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'.
+       * src/native/vm/gnu/sun_misc_Unsafe.c: Header changes.
+       
+       * src/native/native.c [ENABLE_JAVASE]
+       (native/include/sun_misc_Unsafe.h): Added.
+       [ENABLE_JAVASE] (dummynativetable): Added
+       Java_sun_misc_Unsafe_objectFieldOffset and
+       Java_sun_misc_Unsafe_compareAndSwapInt.
 
-2006-02-06 01:08  edwin
+2007-04-03 22:29  twisti
 
-       * 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.
+       * src/vm/jit/alpha/asmpart.S: Replaced __GNU__ with __linux__ for
+       exec-stacks.
+       * src/vm/jit/arm/asmpart.S: 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/powerpc64/asmpart.S: Likewise.
+       * src/vm/jit/s390/asmpart.S: Likewise.
+       * src/vm/jit/sparc64/asmpart.S: Likewise.
+       * src/vm/jit/x86_64/asmpart.S: Likewise.
 
-2006-02-06 01:02  edwin
+2007-04-03 21:30  twisti
 
-       * src/vm/jit/stack.c (analyse_stack): Set bptr->stack for each visited
-       block.
-       (show_icmd): Implemented printing of new inline instructions.
+       * src/vm/jit/i386/linux/md-os.c (threads/threads-common.h): Added.
 
-2006-02-06 00:02  edwin
+2007-04-03 18:02  twisti
 
-       * src/vm/jit/allocator/simplereg.c (ICMD_INLINE_GOTO): Added.
-       (Changes): Added my name to 'Changes'.
-       (vim boilerplate): Added.
+       * src/vm/jit/mips/md-abi.h (REG_FA0, REG_FA1, REG_FA2): Defined.
 
-2006-02-05 23:34  edwin
+2007-04-03 16:06  twisti
 
-       * 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/threads/threads-common.c (threads_print_stacktrace): Pass
+       stackframeinfo to stacktrace_create.
        
-       * src/vm/jit/jit.c (lsra): Removed t_inlining_globals argument.
+       * src/vm/jit/codegen-common.c (threads/native/threads.h): Removed.
+       (threads/threads-common.h): Added.
+       (codegen_get_pv_from_pc): Replaced stacktrace_dump_trace with
+       threads_print_stacktrace.
+       
+       * src/vm/jit/stacktrace.h (stacktrace_print_trace_from_buffer): Added.
 
-2006-02-05 23:24  edwin
+2007-04-03 15:51  twisti
 
-       * src/vm/jit/jit.c (reg_setup): Removed t_inlining_globals argument.
+       * src/vm/jit/stacktrace.c (stacktrace_create): Changed signature.
        
-       * src/vm/jit/codegen-common.c (reg_setup): Removed t_inlining_globals
-       argument.
+       (stacktrace_fillInStackTrace): Pass stackframeinfo to
+       stacktrace_create.
+       (stacktrace_getClassContext): Likewise.
+       (stacktrace_getCurrentClass): Likewise.
+       (stacktrace_getStack): Likewise.
+       (stacktrace_dump_trace): Removed.
        
-       * 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/stacktrace.h (threads/native/threads.h)
+       (threads/none/threads.h): Removed.
+       (stacktrace_create): Added.
+       (stacktrace_dump_trace): Removed.
+       
+       * src/threads/native/threads.c (threads_dump): Removed.
+       * src/threads/native/threads.h (threads_dump): Likewise.
        
-       * src/vm/jit/jit.h (basicblock): Added 'stack' field. Not used, yet.
+       * src/threads/threads-common.c (vm/jit/stacktrace.h): Added.
+       (threads_dump): Added.
+       (threads_print_stacktrace): Likewise.
        
-       * src/vm/jit/jit.h, src/vm/jit/jit.c (vim boilerplate): Added.
+       * src/threads/threads-common.h (threads_dump): Added.
+       (threads_print_stacktrace): Likewise.
 
-2006-02-05 23:02  edwin
+2007-04-03 15:29  twisti
 
-       * 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/replace.c (threads/threads-common.h): Added.
        
-       * src/vm/jit/jit.c (parse): Removed t_inlining_globals * from
-       arguments.
+       * src/vm/jit/replace.h: Moved empty defines to the top of the file to
+       see what's happening when !defined(ENABLE_REPLACEMENT).
 
-2006-02-05 22:47  edwin
+2007-04-03 15:22  twisti
 
-       * src/vm/jit/parse.c, src/vm/jit/parse.h (inline_env): Removed most
-       occurences.
-       (bound_check1): Renamed to bound_check_exclusive.
+       * src/vm/jit/x86_64/linux/md-os.c (md_signal_handler_sigfpe): Use
+       exceptions_new_hardware_exception.
+       * src/vm/exceptions.c (exceptions_fillinstacktrace)
+       [ENABLE_JAVAME_CLDC1_1]: fillInStackTrace has another signature in
+       CLDC-1.1.
 
-2006-02-05 22:22  edwin
+2007-04-03 14:34  twisti
 
-       * src/vm/jit/parse.c (useinlining): Removed.
+       * src/vm/jit/arm/emit.c (emit_exception_stubs): Removed.
+       
+       * src/vm/jit/arm/md.c (md_codegen_patch_branch): Likewise.
+       (md_stacktrace_get_returnaddress): Removed debug code.
 
-2006-02-05 17:36  edwin
+2007-04-03 14:23  twisti
 
-       * doc/inlining_stacktrace.txt: Added warning about signedness.
-       Fixed copy&paste errors.
+       * src/threads/native/threads.h (STACKFRAMEINFO): Return stackframeinfo
+       instead of a pointer to it.
+       * src/threads/none/threads.h (STACKFRAMEINFO): Likewise.
+       
+       * src/vm/jit/codegen-common.c (codegen_finish_native_call):
+       STACKFRAMEINFO changes.
+       
+       * src/vm/jit/replace.c (replace_recover_source_state): Likewise.
+       
+       * src/vm/jit/stacktrace.c (stacktrace_create_stackframeinfo):
+       Likewise.
+       (stacktrace_create_extern_stackframeinfo): Likewise.
+       (stacktrace_create_native_stackframeinfo): Likewise.
+       (stacktrace_remove_stackframeinfo): Likewise.
 
-2006-02-05 15:26  edwin
+2007-04-03 14:00  twisti
 
-       * 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/stacktrace.c (stacktrace_create_inline_stackframeinfo):
+       Removed.
+       (stacktrace_inline_arithmeticexception): Likewise.
+       (stacktrace_inline_arrayindexoutofboundsexception): Likewise.
+       (stacktrace_inline_arraystoreexception): Likewise.
+       (stacktrace_inline_classcastexception): Likewise.
+       (stacktrace_inline_nullpointerexception): Likewise.
+       (stacktrace_inline_fillInStackTrace): Likewise.
+       (stacktrace_hardware_arithmeticexception): Likewise.
+       (stacktrace_hardware_nullpointerexception): Likewise.
        
-       * 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.
+       * src/vm/jit/stacktrace.h: Likewise.
 
-2006-02-05 13:52  stefan
+2007-04-03 13:48  twisti
 
-       * src/threads/native/threads.h: waiting is correctly typed now
-       (previous checkin was wrong).
+       * configure.ac: Added armv4 architecture.
 
-2006-02-05 13:39  stefan
+2007-04-03 13:47  twisti
 
-       * src/threads/native/threads.c: Let's see if this improves the dead
-       lock situation (waiter handling changed slightly).
+       * src/vm/jit/arm/linux/md-os.c (md_signal_handler_sigsegv): Use
+       exceptions_new_hardware_exception.
+       [ENABLE_THREADS] (md_signal_handler_sigusr2): New function.
 
-2006-02-05 12:22  twisti
+2007-04-03 13:14  twisti
 
-       * tests/regression/native/.cvsignore (*.h, *.so): Added.
+       * src/vm/jit/i386/linux/md-os.c (md_signal_handler_sigfpe): Use
+       exceptions_new_hardware_exception.
 
-2006-02-05 12:20  twisti
+2007-04-03 12:10  twisti
 
-       * tests/regression/native/Makefile.am,
-       tests/regression/codepatching/Makefile.am,
-       tests/regression/Makefile.am (JAVAFLAGS): Use VM_ZIP_STRING and
-       GLIBJ_ZIP_STRING.
+       * src/vm/jit/jit.h: Includes alpha-sorted.
 
-2006-02-05 12:03  twisti
+2007-04-03 11:56  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.
+       * src/vm/jit/replace.c (native/include/java_lang_String.h): Removed.
+       (java_value_print): Don't cast to java_lang_String.
 
-2006-02-05 00:40  twisti
+2007-04-03 11:46  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.
+       * src/vm/jit/allocator/simplereg.c (simplereg_make_statistics): Fixed
+       compiler warning.
 
-2006-02-05 00:16  twisti
+2007-04-03 11:37  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.
+       * src/vm/jit/x86_64/emit.c (emit_replacement_stubs): Removed unused
+       variable disp.
 
-2006-02-05 00:13  twisti
+2007-04-03 11:35  twisti
 
-       * src/mm/nogc.c (config.h): Moved in front of system headers.
-       (heap_allocate): Call exceptions_throw_outofmemory_exit.
-       (nogc_init): Likewise.
+       * src/vmcore/statistics.c (statistics_print_memory_usage): Prevent
+       compiler warning on 64-bit machines.
 
-2006-02-05 00:01  twisti
+2007-04-02 23:13  michi
 
-       * 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.
+       * src/vm/jit/replace.c: Added include to fix crash on x86_64.
 
-2006-02-04 23:59  twisti
+2007-04-02 21:24  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.
+       * src/vm/jit/alpha/linux/md-os.c [ENABLE_THREADS]
+       (threads/native/threads.h): Added.
+       [ENABLE_THREADS] (md_signal_handler_sigusr2): Added #ifdef.
 
-2006-02-04 23:56  twisti
+2007-04-02 20:58  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.
+       * src/vm/jit/alpha/md-abi.c (abi_registers_integer_argument): Added.
+       (abi_registers_integer_saved): Likewise.
+       (abi_registers_integer_temporary): Likewise.
 
-2006-02-04 20:15  twisti
+2007-04-02 20:04  michi
 
-       * src/vm/jit/stacktrace.h (stacktrace_getCallingClassLoader): Renamed
-       to stacktrace_getCurrentClassLoader.
-       
-       * src/cacaoh/headers.c (nativelyoverloaded): Fixed compiler warning.
+       * src/vm/jit/stacktrace.c (stacktrace_create): Returns NULL if there
+       is no
+       stacktrace available for the given thread. Fixed comments.
 
-2006-02-04 19:09  twisti
+2007-04-02 19:56  twisti
 
-       * src/native/native.c (native_resolve_function): Print failed is the
-       symbol was not found.
+       * src/vm/jit/x86_64/md-abi.c (abi_registers_integer_argument): Added.
+       (abi_registers_integer_saved): Likewise.
+       (abi_registers_integer_temporary): Likewise.
 
-2006-02-04 19:08  twisti
+2007-04-02 19:45  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.
+       * src/vm/jit/parse.c (parse): JAVA_GOTO_W must be converted to a
+       ICMD_GOTO.
 
-2006-02-04 19:04  twisti
+2007-04-02 18:56  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/vm/jit/jit.h (INS_FLAG_BASICBLOCK): Defined.
+       (INS_FLAG_ID_SHIFT): Changed to 5.
+       (INSTRUCTION_STARTS_BASICBLOCK): Added.
        
-       * src/native/jni.c (FindClass): Renamed
-       stacktrace_getCallingClassLoader to stacktrace_getCurrentClassLoader.
-       
-       * src/native/vm/VMStackWalker.c (getCallingClassLoader): Revert to old
-       implementation.
+       * src/vm/jit/parse.c (parse): Changed basic block determination. Now
+       basic blocks can start at IR instruction level. This is required for
+       slow-fast path builtins.
 
-2006-02-04 17:39  edwin
+2007-04-02 16:09  twisti
 
-       * doc/stack.txt: Typos fixed.
+       * src/vm/jit/stack.c (stack_reach_next_block): Reformatted comments.
+       (stack_analyse): Likewise.
 
-2006-02-04 17:31  edwin
+2007-04-02 13:45  twisti
 
-       * doc/stack.txt: Expanded tabs.
-       * doc/Makefile.am (stack.txt): Added EXTRA_DIST entry for stack.txt.
+       * src/vm/jit/stack.c (stack_mark_reached): Added assert on b.
+       (stack_mark_reached_from_outvars): Likewise.
+       (stack_reach_next_block): Use NULL instead of !.
+       (stack_analyse): Indent.
 
-2006-02-04 17:25  edwin
+2007-04-01 22:53  ajordan
 
-       * doc/stack.txt: Added. This file describes some details about the
-       stack representation.
+       * src/vm/jit/sparc64/codegen.c: Implemented float argument passing
+       for builtin calls.
+       * src/vm/jit/sparc64/codegen.h: Likewise.
 
-2006-02-04 00:43  twisti
+2007-04-01 16:18  stefan
 
-       * src/native/Makefile.am (CLEANFILES): Always clean nativetable.inc.
-       ($(srcdir)/native.c): Moved inside if ENABLE_STATICVM where it
-       belongs! Dammit!
+       * src/vm/jit/powerpc/darwin/md-asm.h,
+       src/vm/jit/i386/darwin/md-asm.h: added missing symbol
+       asm_vm_call_method_end.
 
-2006-02-04 00:33  twisti
+2007-04-01 10:50  edwin
 
-       * src/native/Makefile.am: Accidentally moved the library into if
-       ENABLE_STATICVM.
-       * src/native/include/Makefile.am: Enable accidentally removed
-       dependencies.
+       * contrib/vmlog: Committed vmlog 0.0.5.
+       * THIRDPARTY: Added copyright notice for vmlog.
 
-2006-02-04 00:13  edwin
+2007-03-30 11:41  twisti
 
-       * src/vm/jit/verify/typecheck.c (logging): Adapted to new logging API.
+       * src/vm/jit/parse.c (parse_realloc_instructions): Renamed ipc to
+       icount.
+       (parse): Renamed ipc to icount, set method variables at the very end
+       and use local variables before.
+       
+       * src/vm/jit/parse.h (INSTRUCTIONS_CHECK): Renamed ipc to icount.
+       (PINC): Likewise.
+       (OP_PREPARE_FLAGS): Likewise.
 
-2006-02-04 00:08  edwin
+2007-03-29 23:22  twisti
 
-       * src/vm/jit/stack.h (MARKREACHED): Use BBREACHED for readability.
-       (vim boilerplate): Added.
+       * src/vm/jit/powerpc/linux/md-os.c (md_signal_handler_sigsegv): Fixed
+       address check (thanks Michi).
 
-2006-02-04 00:04  edwin
+2007-03-29 23:01  ajordan
 
-       * src/vm/method.h (methodinfo): Fixed copy&paste error in comment.
-       (vim boilerplate): Added.
+       * src/vm/jit/sparc64/codegen.c (codegen_emit): Fixed ICMD_IREMPOW2.
+       Added ICMD_L2F and ICMD_L2D.
+       Fixed constant creation in IF_L* compares.
 
-2006-02-04 00:00  edwin
+2007-03-29 21:56  michi
 
-       * src/vm/jit/stacktrace.c (vim boilerplate): Added.
+       * src/mm/nogc.c: Fixed merging conflict which was commited to that
+       file.
 
-2006-02-03 22:57  twisti
+2007-03-29 21:37  ajordan
 
-       * 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.
+       * src/vm/jit/sparc64/md.c (md_get_pv_from_pc): Implemented sethi
+       hanlding.
+       
+       * src/vm/jit/sparc64/codegen.c (createnativestub): Fixed window/stack
+       handling in case of exception.
+       * src/vm/jit/sparc64/asmpart.S (asm_call_jit_compiler): Likewise.
 
-2006-02-03 22:53  twisti
+2007-03-29 11:04  twisti
 
-       * src/native/vm/VMRuntime.c (nativeLoad): #ifdef ENABLE_STATICVM
-       warning fix.
+       * src/vm/jit/powerpc/linux/md-os.c (md_signal_handler_sigsegv): Check
+       for addr == NULL in NPE case.
 
-2006-02-03 22:24  twisti
+2007-03-29 06:52  pm
 
-       * 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.
+       * src/vm/jit/s390/md-abi.h,
+       src/vm/jit/s390/emit.c,
+       src/vm/jit/s390/emit.h,
+       src/vm/jit/s390/codegen.c,
+       src/vm/jit/s390/codegen.h,
+       src/vm/jit/s390/arch.h: Changed a lot.
 
-2006-02-03 22:03  twisti
+2007-03-28 22:59  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.
+       * src/vm/exceptions.h (exceptionptr): Removed.
+       (_no_threads_exceptionptr): Likewise.
 
-2006-02-03 21:58  twisti
+2007-03-28 22:32  twisti
 
-       * src/vm/suck.c (suck_add): Fixed compiler warning with #ifndef
-       ENABLE_ZLIB.
+       * svnmerge uninit.
 
-2006-02-03 21:51  twisti
+2007-03-28 22:25  michi
 
-       * src/native/tools/.cvsignore (TAGS): Added.
+       * AUTHORS: Added myself to the list of authors (finally).
 
-2006-02-03 20:54  twisti
+2007-03-28 21:05  twisti
 
-       * src/native/Makefile.am (VM_ZIP, GLIBJ_ZIP, CLASSPATH): Added.
+       * Merged in twisti-branch.
 
-2006-02-03 20:53  twisti
+2007-03-28 20:50  twisti
 
-       * src/native/tools/gennativetable.c (main): Don't free bootclasspath,
-       do proper initalization of subsystems, don't link classes.
+       Initialized merge tracking via "svnmerge" with revisions "1-6085"
+       from
+       file:///ahome/cacao/svn/cacao/branches/twisti
 
-2006-02-03 19:44  twisti
+2007-03-28 20:28  twisti
 
-       * src/native/Makefile.am (nativetable.inc): Pass classpath on
-       commandline, environment variable support was removed.
+       Initialized merge tracking via "svnmerge" with revisions "1-6086"
+       from
+       svn+ssh://c1.complang.tuwien.ac.at/ahome/cacao/svn/cacao/branches/twisti
 
-2006-02-03 19:42  twisti
+2007-03-28 20:22  twisti
 
-       * src/native/tools/gennativetable.c: Updated to work again.
+       Initialized merge tracking via "svnmerge" with revisions "1-7592"
+       from
+       svn+ssh://c1.complang.tuwien.ac.at/ahome/cacao/svn/cacao/branches/twisti
 
-2006-02-03 19:27  twisti
+2007-03-28 13:29  twisti
 
-       * src/cacao/Makefile.am (INCLUDES): Renamed to AM_CPPFLAGS.
-       (CLASSPATH_PREFIX): Renamed to CLASSPATH_LIBDIR.
+       * src/vm/exceptions.c (throw_exception_exit_intern): Removed.
+       (throw_exception): Likewise.
+       (throw_exception_exit): Likewise.
+       (throw_main_exception): Likewise.
+       (throw_main_exception_exit): Likewise.
+       (throw_cacao_exception_exit): Likewise.
+       (exceptions_print_stacktrace): New function.
+       * src/vm/exceptions.h: Likewise.
+       
+       * src/vm/vm.c (vm_create): Use vm_abort or exceptions_print_stacktrace
+       instead of throw_main_exception_exit.
+       (vm_run): Likewise.
+       (vm_exit): Likewise.
+       (vm_get_mainclass_from_jar): Likewise.
+       
+       * src/threads/native/threads.c (threads_init): Use return instead of
+       throw_exception_exit.
+       (threads_startup_thread): Use vm_abort.
 
-2006-02-03 18:45  twisti
+2007-03-26 07:23  pm
 
-       * configure.ac (ENABLE_SOFTFLOAT): Added.
-       (NDEBUG): Bugfix for AM_CONDITIONAL.
+       * src/vm/jit/s390/emit.c,
+       src/vm/jit/s390/md-abi.h,
+       src/vm/jit/s390/md.c,
+       src/vm/jit/s390/emit.h,
+       src/vm/jit/s390/codegen.c,
+       src/vm/jit/s390/codegen.h,
+       src/vm/jit/s390/tests/tests.java.pp,
+       src/vm/jit/s390/patcher.c,
+       src/vm/jit/s390/md-abi.c: Chaned a lot.
 
-2006-02-03 14:14  twisti
+2007-03-25 20:30  twisti
 
-       * src/vm/jit/stacktrace.c (stacktrace_entry): Wrong return value,
-       added some checks.
+       Reverted patch 7268.
+       
+       * src/vm/jit/code.c: Reverted.
+       * src/vm/jit/code.h: Likewise.
+       * src/vm/jit/jit.c: Likewise.
+       * src/vm/jit/jit.h: Likewise.
+       * src/vmcore/loader.c: Likewise.
+       * src/vmcore/method.h: Likewise.
 
-2006-02-03 13:19  twisti
+2007-03-25 18:55  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/native.c (native_get_parametertypes): Removed.
+       (native_get_exceptiontypes): Likewise.
+       * src/native/native.h: Likewise.
        
-       * src/native/vm/VMStackWalker.c (getClassContext): Renamed
-       cacao_createClassContextArray to stacktrace_getClassContext.
-       (getCallingClass): Likewise.
-       (getCallingClassLoader): Call stacktrace_getCallingClassLoader.
+       * src/vmcore/method.c (vm/builtin.h): Added.
+       (vm/resolve.h): Likewise.
+       (method_get_parametertypearray): New function.
+       (method_get_exceptionarray): Likewise.
+       * src/vmcore/method.h (method_get_parametertypearray): Added.
+       (method_get_exceptionarray): Likewise.
        
-       * 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/cacaoh/dummy.c (builtin_anewarray): Added.
+       (resolve_class_from_typedesc): Likewise.
        
-       * 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
+       * src/native/vm/gnu/java_lang_reflect_Method.c (getParameterTypes):
+       Use method function.
+       (getExceptionTypes): Likewise.
+       * src/native/vm/gnu/java_lang_reflect_Constructor.c
+       (getParameterTypes): Likewise.
+       (getExceptionTypes): Likewise.
 
-       * 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.
+2007-03-23 21:33  twisti
 
-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/builtin.c (builtin_isanysubclass): Removed.
+       (builtin_instanceof): Replaced builtin_isanysubclass with
+       class_isanysubclass.
+       (builtin_descriptorscompatible): Likewise.
        
-       * src/vm/jit/x86_64/codegen.c (codegen): Added cycle profiling code.
+       * src/vm/builtin.h (builtin_isanysubclass): Removed.
        
-       * 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/access.c (access_is_accessible_member): Replaced
+       builtin_isanysubclass with class_isanysubclass.
+       * src/native/vm/java_lang_Class.c (isAssignableFrom): Likewise.
        
-       * src/vm/jit/x86_64/emitfuncs.c (x86_64_inc_membase)
-       (x86_64_incl_membase): Fixed.
-       (emit_rdtsc): Added.
+       * src/vm/jit/asmpart.h (castinfo): Removed.
        
-       * src/vm/jit/jit.c (jit_compile): Free m->bbfrequency memory.
-       (jit_compile_intern): Allocate m->bbfrequency memory.
+       * src/vmcore/class.c (vm/jit/asmpart.h): Added.
+       (class_isanysubclass): New function.
        
-       * 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.
+       * src/vmcore/class.h (castinfo): Added.
+       (class_isanysubclass): Likewise.
+       
+       * src/cacaoh/dummy.c (asm_getclassvalues_atomic): New function.
+       (intrp_asm_getclassvalues_atomic): Likewise.
 
-2006-01-31 15:41  twisti
+2007-03-23 20:38  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.
+       * src/vm/builtin.c (builtin_isanysubclass_vftbl): Removed.
+       (builtin_descriptorscompatible): Use builtin_isanysubclass instead of
+       builtin_isanysubclass_vftbl.
 
-2006-01-31 15:35  twisti
+2007-03-23 19:10  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/global.h (ACC_CLASS_PRIMITIVE): Defined.
        
-       * 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.
+       * src/vm/builtin.c (builtin_isanysubclass): Check for primitive
+       classes.
+       
+       * src/vmcore/linker.c (link_primitivetype_table): Set primitive flag.
 
-2006-01-31 14:24  twisti
+2007-03-23 18:51  twisti
 
-       * src/vm/signal.c (signal_handler_sigint): Typo, reported by Chris
-       Burdess on irc.
+       * src/vmcore/classcache.c (classcache_add_constraint)
+       [CLASSCACHE_VERBOSE]: Started to use log-functions.
+       (classcache_debug_dump): Likewise.
 
-2006-01-30 16:25  twisti
+2007-03-23 11:56  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.
+       * src/vm/jit/powerpc/emit.c (emit_load): Use switch-case instead of
+       if-else contruct.
+       (emit_store): Likewise.
+       (emit_copy): Likewise.
 
-2006-01-29 17:27  twisti
+2007-03-22 13:55  michi
 
-       * src/vm/jit/stack.c (show_icmd): Fixed ICMD_ELSE_ICONST output.
+       * src/vm/jit/arm/codegen.c (codegen) [!ENABLE_SOFTFLOAT]: Fixed
+       position of
+       soft null pointer checks in PUTFIELD and GETFIELD.
 
-2006-01-28 14:42  twisti
+2007-03-21 14:26  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/vmcore/statistics.c (size_lock_record_pool): Added.
+       (statistics_print_memory_usage): Print new variable.
        
-       * 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/vmcore/statistics.h (size_lock_record_pool): Added.
        
-       * 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/threads/native/lock.c (lock_record_alloc_new_pool): Added
+       statistics.
 
-       * src/vm/loader.c (load_method): Removed reference to
-       nativelyoverloaded, monoPoly, subRedefs, subRedefsUsed, xta.
-       (load_newly_created_array): Removed reference to monoPoly.
+2007-03-21 13:27  twisti
 
-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/vmcore/statistics.c (size_threadobject, size_lock_hashtable)
+       (size_lock_waiter): Added.
+       (statistics_print_memory_usage): Print new variables.
        
-       * src/vm/jit/jit.c (jit_compile): Removed RT_jit_parse and
-       XTA_jit_parse calls.
-       (jit_compile_intern): Removed method_descriptor2types call.
+       * src/vmcore/statistics.h (size_threadobject, size_lock_hashtable)
+       (size_lock_waiter): Added.
        
-       * src/cacaoh/cacaoh.c (main): Call string_init. Removed
-       nativemethod_chain and nativeclass_chain stuff.
+       * src/threads/native/lock.c (vmcore/options.h): Added.
+       [ENABLE_STATISTICS] (vmcore/statistics.h): Added.
+       (lock_hashtable_init): Added statistics.
+       (lock_hashtable_grow): Likewise.
+       (lock_record_add_waiter): Likewise.
+       (lock_record_remove_waiter): Likewise.
        
-       * src/cacaoh/headers.c (nativemethod_chain): Removed.
-       (nativeclass_chain): Likewise.
-       (printmethod): Use m->isleafmethod instead of m->nativelyoverloaded.
-       (headerfile_generate): Likewise.
+       * src/threads/native/threads.c [ENABLE_STATISTICS]
+       (vmcore/statistics.h): Added.
+       (threads_preinit): Added statistics.
+       (threads_init): Likewise.
+       (threads_start_javathread): Likewise.
+       (threads_attach_current_thread): Likewise.
+       (threads_detach_thread): Likewise.
 
-2006-01-28 11:26  twisti
+2007-03-21 13:19  twisti
 
-       * src/vm/jit/inline/Makefile.am (INCLUDES): Renamed to AM_CPPFLAGS.
-       (libinline_la_SOURCES): Don't build RTA/XTA stuff.
+       * src/vmcore/zip.c (zip_get): Don't assign in if-statement, this makes
+       debugging a bit easier.
 
-2006-01-28 11:24  twisti
+2007-03-21 13:18  twisti
 
-       * Makefile.am (EXTRA_DIST): Added THIRDPARTY.
+       * src/vmcore/linker.c (link_primitivetype_table): Set super class
+       explicitly to NULL.
+       (linker_compute_subclasses): Indent.
 
-2006-01-27 19:05  stefan
+2007-03-20 00:25  ajordan
 
-       * src/threads/native/threads.c: Removed a superfluous (I hope) NULL
-       check.
+       * src/vm/jit/sparc64/md-abi.c (md_param_alloc_native): using this for
+       native param allocation. No need for my own version of this anymore.
+       * src/vm/jit/sparc64/codegen.c: Likewise.
 
-2006-01-27 18:53  stefan
+2007-03-17 13:12  twisti
 
-       * src/threads/native/threads.c: Repaired thread_getself.
+       * src/vm/builtin.h (builtin_isanysubclass_vftbl): Removed, made
+       static.
 
-2006-01-27 17:35  twisti
+2007-03-17 13:11  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.
+       * src/vm/builtin.c (builtin_isanysubclass): Code cleanup.
+       (builtin_isanysubclass_vftbl): Likewise.
 
-2006-01-27 16:32  twisti
+2007-03-17 13:10  twisti
 
-       * src/native/vm/VMSystemProperties.c (preInit): Don't add . to
-       java.library.path per default.
+       * src/native/vm/gnu/java_lang_reflect_Method.c (vm/resolve.h): Added.
 
-2006-01-27 12:43  twisti
+2007-03-17 12:57  twisti
 
-       * NEWS: Added powerpc fixes found by javver.
+       * src/vm/builtin.c (builtin_isanysubclass): Cleanup and comments.
 
-2006-01-24 19:09  twisti
+2007-03-16 23:00  pm
 
-       * src/vm/jit/powerpc/codegen.h (var_to_reg_dbl): Added.
-       (M_COPY): Handle doubles properly.
+       * src/vm/exceptions.c (exceptions_handle_exception): 31 bit address
+       comparison for S390. These address comparison macros need to be moved
+       to some header.
+       * src/vm/jit/s390/emit.c,
+       src/vm/jit/s390/md.c,
+       src/vm/jit/s390/codegen.c,
+       src/vm/jit/s390/codegen.h,
+       src/vm/jit/s390/arch.h,
+       src/vm/jit/s390/patcher.c,
+       src/vm/jit/s390/md-abi.c,
+       src/vm/jit/s390/tests/tests.java.pp,
+       src/vm/jit/s390/tests/Makefile: Changed a lot.
 
-2006-01-24 13:52  twisti
+2007-03-15 09:28  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.
+       * src/native/jni.c (_Jv_jni_invokeNative): Release memory in exception
+       case.
 
-2006-01-24 10:30  twisti
+2007-03-15 08:23  pm
 
-       * 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.
+       * src/vm/jit/s390/tests/tests.java.pp: added INT2CHAR test testing
+       negative values.
 
-2006-01-24 10:28  twisti
+2007-03-15 07:07  pm
 
-       * 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.
+       * src/vm/jit/s390/codegen.c,
+       src/vm/jit/s390/codegen.h: Changed a lot.
+       * src/vm/jit/s390/tests,
+       src/vm/jit/s390/tests/tests.java.pp,
+       src/vm/jit/s390/tests/Makefile: Added opcode tests in java.
 
-2006-01-23 16:03  twisti
+2007-03-14 21:54  twisti
 
-       * src/vm/jit/stack.c (show_icmd_method): Fixed basic block count
-       output.
+       * src/vmcore/statistics.c (size_string): Added.
+       (statistics_print_memory_usage): Likewise.
+       * src/vmcore/statistics.h (size_string): Likewise.
        
-       * 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.
+       * src/vm/string.c (vmcore/statistics.h): Added.
+       (literalstring_u2): Added statistics.
 
-2006-01-23 01:12  twisti
+2007-03-14 21:18  twisti
 
-       * configure.ac (AC_INIT): Changed version number to 0.94+cvs.
-       (CFLAGS): Changed optimization back to -O0.
+       * src/vm/jit/alpha/emit.c (emit_load): Use switch-case instead of
+       if-else contruct.
+       (emit_store): Likewise.
+       (emit_copy): Likewise.
 
-2006-01-23 01:01  twisti
+2007-03-14 21:16  twisti
 
-       * ChangeLog: Updated for 0.94 release.
+       * src/vm/jit/alpha/md.c (vm/jit/codegen-common.h): Added temporarily.
 
-2006-01-22 23:42  twisti
+2007-03-14 17:31  michi
 
-       * configure.ac (AC_INIT): Changed version number to 0.94.
-       (CFLAGS): Changed optimization to -O2.
+       * src/vm/jit/arm/codegen.c (codegen): All the long compares have a
+       different
+       implementation now.
 
-2006-01-22 23:33  twisti
+2007-03-14 16:44  michi
 
-       * Updated header: Added 2006. Changed address of FSF. Changed email
-       address.
+       * src/vm/jit/arm/emit.c (emit_verbosecall_enter): Fixed bug with
+       inmemory
+       arguments, which caused some crashes with verbose-calls.
 
-2006-01-22 23:16  twisti
+2007-03-14 12:00  michi
 
-       * Updated svn:ignore propset.
+       * src/mm/nogc.c: Fixed includes and exceptions.
 
-2006-01-22 23:00  twisti
+2007-03-13 20:31  twisti
 
-       * src/vm/jit/intrp/Makefile.am (EXTRA_DIST): Added gray.fs and
-       BUILT_SOURCES.
+       * src/vm/jit/i386/emit.c (emit_load): Use switch-case instead of
+       if-else contruct.
+       (emit_store): Likewise.
+       (emit_copy): Likewise.
+       * src/vm/jit/i386/codegen.c (codegen): Fixed compiler warning.
 
-2006-01-22 22:46  twisti
+2007-03-13 16:32  michi
 
-       * tests/regression/extest.java: Typo.
+       * src/vm/jit/arm/codegen.c (codegen): Long branches are implemented
+       differently now.
+       
+       * src/vm/jit/arm/codegen.h (M_COMPARE): Easier macros without
+       overjumps.
+       (M_MOVEQ_IMM, M_MOVGT_IMM, M_ADDHI_IMM, M_SUBLO_IMM, M_CMPEQ_IMM):
+       New macro.
 
-2006-01-22 22:36  twisti
+2007-03-13 13:19  michi
 
-       * NEWS: Added releases 0.90, 0.91, 0.92, 0.93, 0.94.
+       * src/vm/jit/arm/linux/Makefile.am: Fixed include path to care about
+       builddir.
 
-2006-01-22 22:34  twisti
+2007-03-12 13:34  twisti
 
-       * README: Updated.
+       * src/vm/jit/codegen.c (codegen): Change the operand direction of some
+       macros. Started to implement long-compares differently.
+       
+       * src/vm/jit/codegen.h (M_AND, M_ORR, M_EOR, M_AND_IMM, M_MOVEQ)
+       (M_MOVVS_IMM, M_MOVNE_IMM, M_MOVLT_IMM, M_MOVLS_IMM): Changed operand
+       direction.
+       (M_ORR_S, M_CMPEQ, M_CMPLE): New macro.
 
-2006-01-22 21:42  twisti
+2007-03-12 13:17  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.
+       * src/vm/jit/arm/md.c (vm/jit/codegen-common.h): Added.
 
-2006-01-22 21:40  twisti
+2007-03-12 10:11  twisti
 
-       * src/native/Makefile.am (INCLUDES): Renamed to AM_CPPFLAGS.
-       (libnative_la_SOURCES): Removed nativecalls.inc.
+       * src/native/vm/cldc1.1/com_sun_cldc_io_ResourceInputStream.c
+       (vm/vm.h): Added.
+       (open): Call vm_abort.
+       
+       * src/native/vm/cldc1.1/com_sun_cldc_io_j2me_socket_Protocol.c
+       (unistd.h): Added.
+       (readByte): New function.
+       (writeBuf): Likewise.
+       (available0): Likewise.
+       (close0): Likewise.
 
-2006-01-22 21:39  twisti
+2007-03-09 21:26  twisti
 
-       * tests/Makefile.am (SUBDIRS): Removed native.
+       * tests/regression/resolving (svn:ignore): Added.
+       * tests/regression/resolving/classes1: Likewise.
+       * tests/regression/resolving/classes2: Likewise.
+       * tests/regression/resolving/classes3: Likewise.
 
-2006-01-22 21:38  twisti
+2007-03-08 02:59  michi
 
-       * 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.
+       * src/threads/native/threads.c (threads_init) [!ENABLE_GC_CACAO]:
+       Fixed bug for
+       lost java.lang.Thread object of mainthread with BoehmGC.
        
-       * tests/regression/extest.java: Comment changed.
+       * src/native/vm/java_lang_Thread.c: Fixed includes to prevend
+       compiler warnings.
 
-2006-01-22 21:22  twisti
+2007-03-07 14:05  twisti
 
-       * configure.in: Renamed to configure.ac.
+       * src/vm/jit/mips/md.c (vm/jit/codegen-common.h): Temporarily added.
 
-2006-01-22 21:21  twisti
+2007-03-07 13:12  twisti
 
-       * configure.in (AC_CONFIG_FILES): Removed tests/native/Makefile, added
-       tests/regression/native/Makefile.
+       * src/vm/jit/x86_64/emit.c (emit_call_reg): Call emit_rex with size 0.
 
-2006-01-22 20:21  twisti
+2007-03-07 12:37  twisti
 
-       * tests/native: Moved to tests/regression/native.
+       * src/vm/jit/x86_64/asmpart.S (asm_compare_and_swap): New function.
+       (asm_memory_barrier): Likewise.
 
-2006-01-22 20:00  twisti
+2007-03-07 11:47  michi
 
-       * src/vm/jit/asmpart.h (asm_handle_exception)
-       (asm_handle_nat_exception): #ifdef ENABLE_JIT.
+       * src/threads/native/threads.h (threadobject): This structure is no
+       longer an
+       instance of java.lang.Thread, but contains a reference to it.
+       
+       * src/threads/native/threads.c (threads_start_javathread): Added.
+       
+       * src/threads/threads-common.c: Adapted to above changes.
+       * src/threads/native/threads.c: See above.
+       * src/native/vm/java_lang_Thread.c: See above.
 
-2006-01-22 19:59  twisti
+2007-03-07 00:32  ajordan
 
-       * src/vm/jit/jit.c (jit_compile_intern): Use
-       CLASS_IS_OR_ALMOST_INITIALIZED to check uninitialized.
+       * src/vm/jit/sparc64/md-abi.h: increased number of JIT float argument
+       registers to 5.
+       * src/vm/jit/sparc64/md-asm.h: likewise.
+       * src/vm/jit/sparc64/md-abi.c: likewise.
+       
+       * src/vm/jit/sparc64/asmpart.S: added floating point argument
+       handling in asm_vm_call.
 
-2006-01-22 19:57  twisti
+2007-03-06 18:55  ajordan
 
-       * src/vm/jit/stacktrace.c (stacktrace_create_inline_stackframeinfo):
-       Compiler warning fix.
+       * src/vm/jit/sparc64/emit.c: emit_{load,store,copy} changed to
+       switch/case for handling different types.
+       
+       * src/vm/jit/sparc64/codegen.h: fixed f2d and d2f conversion.
+       
+       * src/vm/jit/sparc64/md-abi.c: removed md_native_reg_setup(), not
+       needed any longer.
+       
+       * src/vm/jit/sparc64/codegen.c: implemented ICMD_MULTIANEWARRAY.
+       fixed FRETURN, DRETURN.
+       repaired native float arg passing.
 
-2006-01-22 19:56  twisti
+2007-03-06 17:01  twisti
 
-       * src/vm/jit/intrp/java.vmg: Some reformatting.
+       * src/vm/signal.c (arch.h): Added.
+       * src/vm/vm.c (vm_create): Reenabled signal-thread. This only works on
+       NPTL-threads and NOT with linuxthreads!
+       
+       * src/vm/signal.c (signal_init): Reenabled blocking for SIGINT and
+       SIGQUIT.
 
-2006-01-22 19:55  twisti
+2007-03-06 11:12  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.
+       * src/vmcore/statistics.c (vm/jit/code.h): Added for codeinfo.
+       (vmcore/class.h): Added.
+       (vmcore/field.h): Likewise.
+       (vmcore/method.h): Likewise.
+       
+       * src/vm/jit/optimizing/recompile.c (vm/jit/code.h): Likewise.
+       (vm/jit/jit.h): Likewise.
+       
+       * src/vm/jit/x86_64/md.c (vm/jit/codegen-common.h): Likewise.
+       * src/vm/jit/x86_64/md-abi.c (vm/jit/jit.h): Likewise.
 
-2006-01-22 19:50  twisti
+2007-03-06 00:27  edwin
 
-       * .cvsignore, src/toolbox/.cvsignore, src/vm/jit/inline/.cvsignore,
-       src/vm/jit/allocator/.cvsignore: TAGS added.
+       * src/vm/jit_interface.h: Added Id keyword.
 
-2006-01-22 19:37  twisti
+2007-03-06 00:26  edwin
 
-       * 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.
+       * src/vmcore/resolve.c: Moved back to src/vm/resolve.c.
+       * src/vmcore/resolve.h: Moved back to src/vm/resolve.h.
+       * src/vm/jit/code.h (codeinfo): Moved typedef to method.h.
+       (code_get_methodinfo_for_pv): Added prototype.
+       * src/vmcore/method.h (codeinfo): Moved typedef here.
+       
+       * src/vm/jit_interface.h: New file.
+       
+       * src/vm/Makefile.am: Added resolve.[ch] and jit_interface.h.
+       * src/vmcore/Makefile.am: Removed resolve.[ch].
+       
+       * src/vmcore/class.c: Include "arch.h", but don't include "resolve.h".
+       
+       * src/vmcore/method.c (method_vftbl_lookup):
+       Use code_get_methodinfo_for_pv.
+       
+       * src/vmcore/linker.c (resolve_classref_or_classinfo_eager): Added
+       copy of prototype to avoid bootstrapping issues.
+       
+       * src/cacaoh/dummy.c (code_get_methodinfo_for_pv): New dummy.
+       (resolve_classref_or_classinfo_eager): Simple implementation that does
+       not use resolve.c code.
+       (typeinfo_init_class): Removed dummy.
+       (typeinfo_init_classinfo): Likewise.
+       (typeinfo_is_assignable_to_class): Likewise.
+       (typeinfo_print): Likewise.
+       
+       * many other files: Changed #include "vmcore/resolve.h" to
+       "vm/resolve.h".
 
-2006-01-22 19:29  edwin
+2007-03-06 00:02  edwin
 
-       * src/vm/jit/intrp/codegen.c (nativecall): Fixed calculation of the
-       stackframeinfo address.
+       * src/vmcore/linker.c (link_class_intern):
+       Use resolve_classref_or_classinfo_eager.
 
-2006-01-22 14:44  twisti
+2007-03-05 23:56  edwin
 
-       * src/vm/jit/codegen-common.c (codegen_addreference): The last fix was
-       not correct if only the intrp is built.
+       * src/cacaoh/headers.c: Don't include asmpart.h.
 
-2006-01-22 14:39  twisti
+2007-03-05 23:50  edwin
 
-       * 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.
+       * src/native/native.c (native_get_exceptiontypes):
+       Use resolve_classref_or_classinfo_eager.
 
-2006-01-22 00:45  edwin
+2007-03-05 17:44  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.
+       * src/native/vm/java_lang_Class.c (_Jv_java_lang_Class_getSuperclass),
+       (_Jv_java_lang_Class_getDeclaringClass)
+       (_Jv_java_lang_Class_getDeclaredClasses):
+       Use resolve_classref_or_classinfo_eager.
 
-2006-01-21 21:46  edwin
+2007-03-05 17:34  edwin
 
-       * src/vm/jit/codegen-common.c (codegen_addreference): Fixed bug when
-       both ENABLE_INTRP and ENABLE_JIT were defined.
+       * src/vm/builtin.h (builtintable_replace_function): Don't use
+       instruction * to avoid bootstrapping problems.
+       * src/vm/builtin.c (builtintable_replace_function): Likewise.
 
-2006-01-21 20:22  edwin
+2007-03-05 17:32  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.
+       * src/vm/jit/code.c (code_get_methodinfo_from_pv): New function.
 
-2006-01-20 14:49  twisti
+2007-03-05 16:53  edwin
 
-       * 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.
+       * src/vmcore/resolve.h, src/vmcore/resolve.c
+       (resolve_classref_or_classinfo_eager): New function.
 
-2006-01-20 13:41  twisti
+2007-03-05 08:38  pm
 
-       * tests/regression/Makefile.am (EXTRA_DIST): Made it more readable.
+       * src/vm/jit/s390/md-abi.h,
+       src/vm/jit/s390/emit.c,
+       src/vm/jit/s390/emit.h,
+       src/vm/jit/s390/codegen.c,
+       src/vm/jit/s390/codegen.h,
+       src/vm/jit/s390/patcher.c: Changed a lot.
 
-2006-01-20 13:40  twisti
+2007-03-04 20:10  edwin
 
-       * 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.
+       * src/vm/jit/replace.c: Handle countdown traps. Request optimization
+       of hot methods and their callers.
+       
+       * src/vm/jit/jit.c (jit_compile): Set JITDATA_FLAG_COUNTDOWN for
+       inlining.
+       (jit_recompile): Set JITDATA_FLAG_INLINE for inlining.
 
-2006-01-20 13:33  twisti
+2007-03-04 19:13  edwin
 
-       * src/vm/jit/mips/irix/md-os.c (md_signal_handler_sigsegv): Missed the
-       actal rename from the previous commit.
+       * src/vmcore/options.h, src/vmcore/options.c, src/vmcore/method.c,
+       src/vmcore/linker.c: Replayed lost parts of commit 7228.
+       
+       * src/vm/jit/intrp/intrp.h: Added missing #include to make it compile.
+       
+       * src/vm/jit/inline/inline.c: Fixed names of vmcore/ #include files.
 
-2006-01-20 13:28  twisti
+2007-03-04 18:07  twisti
 
-       * src/vm/signal.c (vm/signallocal.h): Added.
-       * src/vm/signallocal.h (md_signal_handler_sigfpe): #ifdef for i386 and
-       x86_64.
+       * src/vm/jit/x86_64/emit.c (emit_load): Use switch-case instead of
+       if-else contruct.
+       (emit_store): Likewise.
+       (emit_copy): Likewise.
 
-2006-01-20 13:25  twisti
+2007-03-04 14:46  edwin
 
-       * 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.
+       * src/vm/jit/i386/codegen.c (codegen): Emit code for countdown traps.
+       
+       * src/vm/jit/i386/emit.c (emit_replacement_stubs): Add jump reference
+       for countdown traps.
 
-2006-01-20 13:19  twisti
+2007-03-04 14:22  edwin
 
-       * src/vm/jit/alpha/codegen.h (ucontext.h): Removed.
-       (thread_restartcriticalsection): Removed.
+       * src/vmcore/method.h (methodinfo): Added hitcountdown field. (Only
+       if ENABLE_REPLACEMENT).
+       
+       * src/vmcore/loader.c (loader_load_method): Initialize hitcountdown
+       field.
 
-2006-01-20 13:06  twisti
+2007-03-04 14:02  edwin
 
-       * src/vm/jit/x86_64/disass.c (dis-asm.h): Added.
-       (vm/global.h): Likewise.
-       (mm/memory.h): Removed.
+       * src/vm/jit/inline/inline.c: Committed breadth-first inlining code.
 
-2006-01-20 13:05  twisti
+2007-03-04 12:32  edwin
 
-       * src/vm/class.c, src/vm/class.h (class_printflags): Added.
-       (class_print): Likewise.
-       (class_println): Likewise.
+       * tests/regression/resolving/test_return_subtype_ok.java: New test.
+       
+       * tests/regression/resolving/Makefile.am: Added new test.
 
-2006-01-20 12:58  twisti
+2007-03-04 12:28  edwin
 
-       * src/vm/jit/i386/disass.c (disassinstr): Set the read_memory_func in
-       disassemble_info to disass_buffer_read_memory.
-       (disassemble): Removed.
+       * tests/regression/resolving/test_return_subtype_violated.java:
+       New test.
+       
+       * tests/regression/resolving/Makefile.am: Added new test.
 
-2006-01-20 12:57  twisti
+2007-03-02 23:28  pm
 
-       * 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.
+       * src/vm/jit/s390/emit.c,
+       src/vm/jit/s390/codegen.c,
+       src/vm/jit/s390/codegen.h,
+       src/vm/jit/s390/md-asm.h,
+       src/vm/jit/s390/patcher.c,
+       src/vm/jit/s390/asmpart.S: Changed a lot in S390 codegen.
 
-2006-01-20 12:01  twisti
+2007-03-02 19:45  edwin
 
-       * src/vm/jit/powerpc/disass.c (disassinstr): Set the read_memory_func
-       in disassemble_info to disass_buffer_read_memory.
-       (disassemble): Removed.
+       * src/vmcore/classcache.c: Print debug messages to stdout.
 
-2006-01-20 11:38  twisti
+2007-03-02 19:44  edwin
 
-       * 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.
+       * configure.ac: Added Makefiles of resolving test suite.
 
-2006-01-20 10:15  twisti
+2007-03-02 19:42  edwin
 
-       * regression/extest.java: Removed asmpart exceptions as they are now
-       checked with codepatching.
-       * regression/extest.2output: Regenerated.
-       * regression/extest_clinit.java: Added.
+       * tests/regression/resolving: Added resolving test suite. These tests
+       check lazy loading, classloader handling, loading & subtype
+       constraints.
 
-2006-01-20 10:08  twisti
+2007-03-01 13:49  edwin
 
-       * 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.
+       * src/vmcore/resolve.h, src/vmcore/resolve.c
+       (resolve_class_eager_no_access_check): New function.
+       
+       * src/vm/jit/powerpc/patcher.c: Use
+       resolve_class_eager_no_access_check.
+       * src/vm/jit/arm/patcher.c: Likewise.
+       * src/vm/jit/sparc64/patcher.c: Likewise.
+       * src/vm/jit/alpha/patcher.c: Likewise.
+       * src/vm/jit/s390/patcher.c: Likewise.
+       * src/vm/jit/mips/patcher.c: Likewise.
+       * src/vm/jit/powerpc64/patcher.c: Likewise.
+       * src/vm/jit/i386/patcher.c: Likewise.
+       * src/vm/jit/x86_64/patcher.c: Likewise.
 
-2006-01-19 23:40  edwin
+2007-03-01 12:39  twisti
 
-       * src/vm/jit/parse.h: Added vim boilerplate.
+       * src/native/vm/Makefile.am [ENABLE_JAVASE] (CLASSLOADER_SOURCES):
+       Added.
+       (libnativevm_la_SOURCES): Use CLASSLOADER_SOURCES.
+       
+       * src/native/vm/java_lang_ClassLoader.c (native/jni.h): Added.
 
-2006-01-19 23:35  edwin
+2007-03-01 12:32  edwin
 
-       * src/vm/jit/stack.c: Added vim boilerplate.
+       * src/vmcore/resolve.c (resolve_classref_or_classinfo): Always use
+       refmethod->class as the referring class, if it is available.
 
-2006-01-19 22:21  twisti
+2007-02-28 23:57  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.
+       * src/vmcore/classcache.c (toolbox/logging.h): Added.
+       (classcache_merge_class_entries): Replace log_text with log_println.
+       (classcache_store): Likewise.
+       (classcache_store_defined): Likewise.
 
-2006-01-19 22:11  edwin
+2007-02-28 23:39  twisti
 
-       * src/vm/jit/parse.c (parse): Removed inlining code.
+       * src/cacaoh/dummy.c (typeinfo_print): Added.
 
-2006-01-19 22:06  edwin
+2007-02-28 23:27  edwin
 
-       * src/vm/options.c, src/vm/options.h (useinliningm): Removed.
+       * src/vm/jit/verify/typecheck.c (handle_basic_block): Move the
+       printing
+       of the block to a point where jd->var is already valid.
 
-2006-01-19 22:05  twisti
+2007-02-28 23:20  edwin
 
-       * tests/codepatching: Moved to tests/regression/codepatching.
+       * src/vm/jit/stack.c (stack_analyse): Minor STACK_VERBOSE
+       improvements.
 
-2006-01-19 21:31  edwin
+2007-02-28 22:50  edwin
 
-       * src/vm/jit/jit.c (jit_compile): Removed the INAFTERMAIN hack.
+       *
+       tests/regression/jasmin/test_verify_ok_local_as_retaddr_and_reference.j:
+       New test.
+       * tests/regression/jasmin/Makefile.am: Added new test.
 
-2006-01-19 21:27  edwin
+2007-02-28 22:31  twisti
 
-       * src/vm/jit/inline/inline.c (inlining_setup): Removed INAFTERMAIN
-       hack.
+       * src/vm/vm.c (vm_create): Changed initialization order. Call
+       properties_postinit later, since it puts a pointer to
+       _Jv_bootclasspath into the properties list.
 
-2006-01-19 21:26  edwin
+2007-02-28 22:30  edwin
 
-       * src/cacao/cacao.c (main): Disabled useinlining and useinliningm.
+       * src/vm/jit/stack.c (stack_analyse): Fix: reset TYPE_VOID to
+       TYPE_ADR at the end of stack_analyse.
 
-2006-01-19 20:56  twisti
+2007-02-28 22:00  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.
+       * src/vm/access.h (access_check_caller): Renamed to
+       access_check_member.
 
-2006-01-19 20:53  twisti
+2007-02-28 20:07  twisti
 
-       * src/vm/global.h (java_floatarray): Typo.
+       * src/vm/access.c (access_check_caller): Renamed to
+       access_check_member. Don't call access_is_accessible_class, this is
+       wrong.
+       
+       * src/native/vm/gnu/java_lang_reflect_Constructor.c (constructNative):
+       Use access_check_member.
+       
+       * src/native/vm/gnu/java_lang_reflect_Field.c (CHECKFIELDACCESS):
+       Removed.
+       (cacao_get_field_address): Use access_check_member.
+       
+       * src/native/vm/gnu/java_lang_reflect_Method.c (invokeNative):
+       Likewise.
 
-2006-01-19 20:28  edwin
+2007-02-28 13:25  twisti
 
-       * src/vm/jit/parse.c (parse, fillextable): Removed debugging code.
-       Minor cleanup.
+       * src/native/vm/java_lang_ClassLoader.c (vm/stringlocal.h): Added.
 
-2006-01-19 20:13  edwin
+2007-02-28 13:23  twisti
 
-       * src/vm/jit/parse.c (parse): Removed commented out debugging code.
+       * src/native/vm/java_lang_ClassLoader.c (defineClass): Added
+       loader-variable for convenience.
 
-2006-01-19 20:03  twisti
+2007-02-28 07:22  pm
 
-       * src/vm/class.c (class_showmethods): Replaced method_display with
-       method_println.
+       * src/vm/jit/s390/codegen.c (codegen): Added ICMD_AASTORE.
+       * src/vm/jit/s390/asmpart.S (asm_patcher_wrapper): Added exception
+       handler.
+       * src/vm/jit/s390/asmpart.S (asm_call_jit_compiler): Likewise.
 
-2006-01-19 20:00  twisti
+2007-02-27 21:13  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.
+       * src/vm/jit/sparc64/solaris: Set ignore-properties.
 
-2006-01-19 19:49  twisti
+2007-02-27 02:07  ajordan
 
-       * 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--
+       * configure.ac: added solaris specific stuff: arch defines, libintl
+       dependency and solaris subdir makefile.
        
-       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
+       * src/vm/jit/stacktrace.h: declared SPARC specific functions.
+       
+       * src/vm/jit/sparc64/emit.c: fixed call to builtin_verbosecall_exit.
+       
+       * src/vm/jit/sparc64/solaris/md-os.c: signal handling disabled, can't
+       test right now.
 
-2006-01-19 09:47  twisti
+2007-02-26 22:11  twisti
 
-       * INCLUDES: Replaced with AM_CPPFLAGS as Tom Tromey suggested on irc,
-       as this is more common these days.
+       * src/native/vm/java_lang_ClassLoader.c: New file.
+       * src/native/vm/java_lang_ClassLoader.h: Likewise.
+       
+       * src/native/vm/gnu/java_lang_VMClassLoader.c
+       (native/vm/java_lang_ClassLoader.h): Added.
+       (defineClass): Removed code and call
+       _Jv_java_lang_ClassLoader_defineClass.
+       
+       * src/native/vm/Makefile.am (libnativevm_la_SOURCES): Added
+       java_lang_ClassLoader.[ch].
+       
+       * src/native/jni.c [ENABLE_JAVASE]
+       (native/vm/java_lang_ClassLoader.h): Added.
+       (_Jv_JNI_DefineClass): Removed env and NULL arguments.
 
-2006-01-18 21:41  edwin
+2007-02-25 22:34  pm
 
-       * havoc.class: fix corruption by svn eol-style conversion
+       * src/vm/jit/s390/codegen.c (codegen): Fixed ICMD_IF_ACMPNE
+       * src/vm/jit/s390/asmpart.S (asm_call_jit_compiler): Handling NULL
+       return value of jit_asm_compile.
 
-2006-01-18 15:43  twisti
+2007-02-25 22:02  pm
 
-       * AC_CHECK_HEADER: Added ansidecl.h, symcat.h, bfd.h and zconf.h.
+       * src/vm/jit/s390/asmpart.S (asm_getclassvalues_atomic,
+       asm_criticalsections): Added.
 
-2006-01-18 15:41  twisti
+2007-02-25 21:31  pm
 
-       * main: Call nogc_init for DISABLE_GC.
+       * src/vm/jit/codegen-common.c (methodtree_comparator): Fixed S390
+       related comment.
+       * src/vm/jit/s390/codegen.h: Fixed M_JSR macro, did not store RA.
+       * src/vm/jit/s390/md-asm.h: Added (LOAD|STORE)_TEMPORARY_REGISTERS
+       and (LOAD|STORE)_ARGUMENT_REGISTERS macros.
+       * src/vm/jit/s390/asmpart.S: Implemented asm_handle_exception and
+       asm_vm_call_method_exception_handler.
+       * src/vm/jit/s390/md-abi.c (abi_registers_integer_temporary): did not
+       contain %r0, added.
 
-2006-01-17 18:51  twisti
+2007-02-24 14:47  twisti
 
-       * Removed extern stuff that was removed from the lib.
+       * src/vmcore/zip.c (errno.h): Added.
+       (vm/vm.h): Likewise.
+       (zip_get): Replaced asserts with vm_abort.
 
-2006-01-17 18:37  twisti
+2007-02-23 22:57  michi
 
-       * Updated to new classpath configure options.
+       * src/vm/jit/replace.c: Renamed regs to abi_registers_integer_name.
 
-2006-01-17 18:24  twisti
+2007-02-21 23:26  twisti
 
-       * CLASSPATH_INSTALL_DIR: Renamed to CLASSPATH_PREFIX.
+       * src/vm/global.h (ACC_CLASS_SOFT_REFERENCE, ACC_CLASS_WEAK_REFERENCE)
+       (ACC_CLASS_PHANTOM_REFERENCE): Added.
+       
+       * src/vmcore/class.c (class_create_classinfo) [ENABLE_JAVASE]: Check
+       if the class is a reference class and flag it.
+       
+       * src/vmcore/loader.c (load_class_from_classbuffer): OR the flags
+       loaded.
+       
+       * src/vmcore/utf8.c (utf_java_lang_ref_SoftReference)
+       (utf_java_lang_ref_WeakReference, utf_java_lang_ref_PhantomReference):
+       Added.
+       (utf8_init): Initialize added variables.
+       * src/vmcore/utf8.h: Likewise.
 
-2006-01-17 17:06  twisti
+2007-02-21 23:23  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.
+       * src/vm/exceptions.c (exceptions_throw_noclassdeffounderror): Abort
+       when VM is initializing.
 
-2006-01-17 16:59  twisti
+2007-02-21 23:12  pm
 
-       * main: Removed CACAO_INSTALL_PREFIX and CLASSPATH_INSTALL_DIR since
-       CACAO_VM_ZIP_PATH and CLASSPATH_GLIBJ_ZIP_PATH are now full paths.
+       * src/vm/jit/s390/codegen.c (codegen): allocate register save area
+       required by C abi for builtin calls
+       * src/vm/jit/s390/codegen.c (createnativestub): fix errornous code
+       generated for return, fix datasp argument to
+       codegen_finish_native_call
 
-2006-01-17 16:58  twisti
+2007-02-21 22:17  twisti
 
-       * Java_gnu_classpath_VMSystemProperties_preInit: Renamed
-       CACAO_INSTALL_PREFIX to CACAO_PREFIX.
+       * m4/jni.m4: Added ENABLE_JNI AM_CONDITIONAL.
+       
+       * src/vm/vm.c (vm_createjvm): Replaced some ENABLE_JAVASE with
+       ENABLE_JNI.
+       (vm_create): Likewise.
+       
+       * src/native/Makefile.am: Likewise.
+       
+       * src/native/jni.c (jni_init) [ENABLE_JAVASE]: ifdef'ed Java SE stuff.
+       (_Jv_JNI_DefineClass) [!ENABLE_JAVASE]: Abort.
+       (_Jv_JNI_FindClass): Likewise.
+       (_Jv_JNI_FromReflectedMethod): Likewise.
+       (_Jv_JNI_FromReflectedField): Likewise.
+       (_Jv_JNI_NewDirectByteBuffer): Likewise.
+       (_Jv_JNI_GetDirectBufferAddress): Likewise.
+       (_Jv_JNI_GetDirectBufferCapacity): Likewise.
+       (_Jv_JNI_IsAssignableFrom): Call _Jv_java_lang_Class_isAssignableFrom.
+       (_Jv_JNI_IsInstanceOf): Call _Jv_java_lang_Class_isInstance.
+       (_Jv_JNI_EnsureLocalCapacity): Removed debug output.
 
-2006-01-17 16:57  twisti
+2007-02-21 20:24  twisti
 
-       * CACAO_VM_ZIP_PATH: Prepend CACAO_PREFIX.
-       * CLASSPATH_GLIBJ_ZIP_PATH: Prepend CLASSPATH_PREFIX.
-       * CLASSPATH_LIBRARY_PATH: Prepend CLASSPATH_LIBDIR.
+       * src/vm/jit/Makefile.am [!WITH_BINUTILS_DISASSEMBLER]
+       (DISASS_SOURCES): Removed.
+       
+       * src/vm/jit/disass-common.c: Removed WITH_BINUTILS_DISASSEMBLER
+       ifdefs, since it's compiled conditionally.
 
-2006-01-17 16:55  twisti
+2007-02-21 18:20  twisti
 
-       * CLASSPATH_INSTALL_DIR: Renamed to CLASSPATH_PREFIX.
+       * src/vm/jit/x86_64/md-abi.c (regs): Renamed to
+       abi_registers_integer_name.
+       (md_param_alloc): Made code more clear.
+       (md_param_alloc_native): New function.
 
-2006-01-17 16:53  twisti
+2007-02-21 18:19  twisti
 
-       * Added.
+       * src/vm/jit/abi-asm.h: Cosmetic changes.
 
-2006-01-17 16:51  twisti
+2007-02-20 01:23  twisti
 
-       * m4/as-ac-expand.m4: Added.
+       * src/native/vm/cldc1.1/com_sun_cldchi_jvm_JVM.c (vm/exceptions.h):
+       Added.
+       (vm/stringlocal.h): Likewise.
+       (loadLibrary): Throw error in case.
 
-2006-01-16 00:07  twisti
+2007-02-20 00:42  twisti
 
-       * jni_init: Fixed small typo.
+       * src/native/vm/java_lang_Runtime.c (loadLibrary): Different signature
+       for _Jv_java_lang_Runtime_loadLibrary depending on ENABLE_JNI.
+       * src/native/vm/java_lang_Runtime.h: Likewise.
+       * src/native/vm/cldc1.1/com_sun_cldchi_jvm_JVM.c: Likewise.
+       * src/native/vm/gnu/java_lang_VMRuntime.c: Likewise.
 
-2006-01-16 00:04  twisti
+2007-02-20 00:38  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.
+       * configure.ac (AC_CHECK_ENABLE_JAVA): Added.
+       (AC_CHECK_ENABLE_JIT): Likewise.
+       (AC_CHECK_ENABLE_JNI): Likewise.
+       
+       * m4/jni.m4: New file.
+       * m4/java.m4: Likewise.
+       * m4/jit.m4: Likewise.
 
-2006-01-15 23:32  twisti
+2007-02-19 23:47  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.
+       * src/native/vm/cldc1.1/com_sun_cldchi_jvm_JVM.c: New file.
+       
+       * src/native/vm/cldc1.1/Makefile.am (libnativevmcore_la_SOURCES):
+       Added com_sun_cldchi_jvm_JVM.c.
+       
+       * src/native/vm/java_lang_Runtime.c [!WITH_STATIC_CLASSPATH] (ltdl.h):
+       Added.
+       (native/jni.h): Likewise.
+       (native/native.h): Likewise.
+       (native/include/java_lang_String.h): Likewise.
+       (toolbox/logging.h): Likewise.
+       (vm/exceptions.h): Likewise.
+       (vm/stringlocal.h): Likewise.
+       (vmcore/options.h): Likewise.
+       (loadLibrary): New function.
+       
+       * src/native/vm/java_lang_Runtime.h (native/jni.h): Added.
+       (native/include/java_lang_String.h): Likewise.
+       
+       * src/native/vm/gnu/java_lang_VMRuntime.c [!WITH_STATIC_CLASSPATH]
+       (ltdl.h): Removed.
+       (native/native.h): Likewise.
+       (toolbox/logging.h): Likewise.
+       (vmcore/options.h): Likewise.
+       (nativeLoad): Call _Jv_java_lang_Runtime_loadLibrary.
+       
+       * src/native/include/Makefile.am (JAVAME_CLDC1_1_HEADER_FILES): Added
+       com_sun_cldchi_jvm_JVM.h.
 
-2006-01-15 14:12  twisti
+2007-02-18 20:16  pm
 
-       * native_new_and_init: Ooops, reverting last change and added an
-       explaining
-       comment.
+       * src/vm/jit/s390/patcher.c (patcher_wrapper): Formatting changes.
+       * src/vm/jit/s390/asmpart.S (asm_patcher_wrapper): Did not remove
+       stack frame created by patcher stubs.
 
-2006-01-15 13:32  twisti
+2007-02-16 17:56  twisti
 
-       * CLASSPATH_LIBRARY_PATH, CLASSPATH_GLIBJ_ZIP_PATH: Temporary bugfix.
+       * src/vmcore/statistics.c (mm/gc-common.h): Added.
+       (statistics_print_gc_memory_usage): New function.
+       * src/vmcore/statistics.h (statistics_print_gc_memory_usage):
+       Likewise.
+       
+       * src/cacaoh/dummy.c (gc_get_heap_size): New stub.
+       (gc_get_free_bytes): Likewise.
+       (gc_get_total_bytes): Likewise.
+       (gc_get_max_heap_size): Likewise.
+       
+       * src/mm/memory.c (memory_thread): Call
+       statistics_print_gc_memory_usage.
 
-2006-01-15 12:28  twisti
+2007-02-16 07:17  pm
 
-       * native_findfunction: #ifdef ENABLE_STATICVM.
-       * native_new_and_init: Fixed return value.
+       * src/vm/jit/s390/md.c,
+       src/vm/jit/s390/codegen.c,
+       src/vm/jit/s390/codegen.h,
+       src/vm/jit/s390/patcher.c,
+       src/vm/jit/s390/asmpart.S,
+       src/vm/jit/s390/md-abi.c: Changed a lot. Mostly adapted to changes in
+       the tree.
 
-2006-01-15 01:56  twisti
+2007-02-15 19:48  twisti
 
-       * math.h: Added for isnan.
+       * src/cacaoh/dummy.c (intrp_asm_abstractmethoderror): New stub.
+       (print_dynamic_super_statistics): Likewise.
+       
+       * src/vm/jit/intrp/engine.c (mm/memory.h): Added.
+       * src/vm/jit/intrp/dynamic-super.c [!ENABLE_THREADS]
+       (threads/none/lock.h): Likewise.
 
-2006-01-15 00:37  twisti
+2007-02-15 19:42  twisti
 
-       * JAVAC: Removed.
+       * src/Makefile.am [ENABLE_THREADS] (THREADS_DIR): Added.
+       (SUBDIRS): Added THREADS_DIR.
+       
+       * src/threads/Makefile.am (SUBDIRS): Set always to native.
+       
+       * src/threads/threads-common.c (threads/none/threads.h): Removed.
+       [ENABLE_THREADS] (threads_create_thread): Removed ifdef.
+       (threads_get_current_tid) [ENABLE_THREADS]: Removed.
 
-2006-01-15 00:36  twisti
+2007-02-15 11:43  pm
 
-       * Java_gnu_classpath_VMSystemProperties_preInit: Set user.country
-       instead
-       of user.region, set en_US if none is defined,
-       java.protocol.handler.pkgs
-       removed.
+       * src/threads/threads-common.c (threads_get_current_tid): Return 0 if
+       compiled with --enable-threads=none
 
-2006-01-14 20:02  twisti
+2007-02-14 11:35  twisti
 
-       * builtin_trace_args: Added callcount to verbose call output.
+       * src/vm/jit/intrp/peephole.c: Updated to current codebase.
+       * src/vm/jit/intrp/intrp.h: Likewise.
+       * src/vm/jit/intrp/codegen.c: Likewise.
+       * src/vm/jit/intrp/engine.c: Likewise.
+       * src/vm/jit/intrp/asmpart.c: Likewise.
+       * src/vm/jit/intrp/dynamic-super.c: Likewise.
+       * src/vm/jit/intrp/patcher.c: Likewise.
+       * src/vm/jit/intrp/java.vmg: Likewise.
 
-2006-01-14 17:19  edwin
+2007-02-13 23:14  twisti
 
-       * src/native/vm/Method.c (invokeNative): check class access rights
+       * src/vm/jit/arm/codegen.c (createnativestub) [!__ARM_EABI__]:
+       #ifdef'ed split-stuff.
+       * src/vm/jit/arm/md-abi.c (md_param_alloc_native) [!__ARM_EABI__]:
+       Added GNU EABI stuff.
 
-2006-01-13 19:37  twisti
+2007-02-13 22:11  ajordan
 
-       * codegen_setup: #ifdef datareferences.
+       * configure.ac: Added support for compiling on Solaris.
+       
+       * src/vm/jit/sparc64/*: Added os subdir, changes for compiling on
+       Solaris.
 
-2006-01-13 18:51  twisti
+2007-02-13 21:32  twisti
 
-       * This class does not differ from the GNU classpath upstream version.
+       * src/vm/jit/mips/md-abi.c (regs): Renamed to
+       abi_registers_integer_name.
+       (md_param_alloc_native): New function.
+       * src/vm/jit/mips/disass.c (disassinstr): Replaced regs with
+       abi_registers_integer_name.
 
-2006-01-13 18:49  twisti
+2007-02-13 21:30  twisti
 
-       * defineClassWithTransformers: Added, updated to generics version.
+       * src/vm/jit/mips/emit.c (emit_verbosecall_exit): Fixed argument
+       passing, but I think there's still something left to fix.
+       * src/vm/jit/mips/md-abi.h (REG_A2_A3_PACKED): Added.
 
-2006-01-13 15:29  twisti
+2007-02-13 15:15  twisti
 
-       * codegendata: #ifdef datareferences member.
-       * codegen_finish: Moved data segment reference resolving into
-       dseg_resolve_datareferences.
+       * src/threads/native/lock.c (vm/vm.h): Added.
+       (lock_record_add_waiter): New function.
+       (lock_record_remove_waiter): Free the waiter data structure.
+       (lock_record_wait): Use lock_record_add_waiter.
+       * src/threads/native/lock.h: Cosmetic changes.
 
-2006-01-13 15:28  twisti
+2007-02-13 14:15  twisti
 
-       * dseg_resolve_datareferences: Added.
+       * src/cacaoh/dummy.c (mem_alloc): Arghhhh, fixed arguments.
 
-2006-01-13 15:27  twisti
+2007-02-13 14:13  twisti
 
-       * Small reformatting.
+       * src/cacaoh/dummy.c (mem_alloc): Use calloc instead of malloc.
 
-2006-01-13 10:47  twisti
+2007-02-13 13:23  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.
+       * src/threads/threads-common.c (threads_get_current_tid): Check if
+       thread is NULL and return 0.
 
-2006-01-13 10:42  twisti
+2007-02-13 13:04  twisti
 
-       * ICMD_MULTIANEWARRAY: Usage of iptr->val.a and iptr->target changed.
+       * src/threads/threads-common.c (threads_get_current_tid): New
+       function.
+       * src/threads/threads-common.h (threads_get_current_tid): Added.
+       
+       * src/toolbox/logging.c (log_start): Use threads_get_current_tid.
+       
+       * src/cacaoh/dummy.c (threads_get_current_threadobject): Removed.
+       (threads_get_current_tid): Added.
 
-2006-01-13 10:11  twisti
+2007-02-13 12:23  ajordan
 
-       * codegen.h: Added when ENABLE_JIT defined.
-       * codegen_addpatchref: Set lastmcodeptr when ENABLE_JIT is defined
-       and the
-       architecture requires it.
+       * src/vm/jit/Makefile.am: Reverted duplicate changes.
+       
+       * src/vm/signal.c: Reverted one duplicate header include.
 
-2006-01-13 10:09  twisti
+2007-02-13 02:36  ajordan
 
-       * ICMD_MULTIANEWARRAY: Usage of iptr->val.a and iptr->target changed.
+       * src/vm/jit/stacktrace.c (stacktrace_create_extern_stackframeinfo):
+       SPARC specific retrieval of the PV.
+       (stacktrace_create): SPARC specific stack walking.
+       
+       * src/vm/jit/Makefile.am: Not compiling verifier source when disabled.
+       
+       * src/vm/jit/codegen-common.c (codegen_add_patch_ref): Included
+       __SPARC_64__ in ifdef to add patcher NOPs from here.
+       
+       * src/vm/signal.c: Added include statements and/or ifdefs to fix
+       compiling without threads.
+       * src/vm/exceptions.c: Likewise.
+       * src/vm/finalizer.c: Likewise.
+       * src/native/jni.c: Likewise.
+       * src/threads/none/threads.h: Likewise.
+       * src/threads/threads-common.c: Likewise.
+       * src/threads/critical.c: Likewise.
 
-2006-01-12 23:54  twisti
+2007-02-13 02:12  ajordan
 
-       * ICMD_MULTIANEWARRAY: Usage of iptr->val.a and iptr->target changed.
+       * src/vm/jit/sparc64/md-abi.h: set TRACE_ARGS_NUM to 6.
+       * src/vm/jit/sparc64/emit.c: using the 6 available integer argument
+       regs for call tracing.
+       
+       * src/vm/jit/sparc64/md-abi.c: added abi register names.
+       Added md_param_alloc_native(), but still using the existing
+       workaround.
 
-2006-01-12 23:33  twisti
+2007-02-13 00:51  twisti
 
-       * arch.h: Added.
-       * GC_test_and_set: Removed 64-bit version since the 32-bit seems to be
-       sufficient and works.
+       * src/mm/memory.c (memory_thread) [ENABLE_STATISTICS]: #ifdef'ed
+       statistics_print_memory_usage call.
 
-2006-01-12 23:31  twisti
+2007-02-13 00:40  twisti
 
-       * show_icmd: Use CLASS_IS_OR_ALMOST_INITIALIZED.
-       * initialize_class: Use CLASS_IS_OR_ALMOST_INITIALIZED.
+       * src/vm/vm.c (vm_create) [ENABLE_STATISTICS]: #ifdef opt_stat.
 
-2006-01-12 23:30  twisti
+2007-02-13 00:37  twisti
 
-       * CLASS_IS_OR_ALMOST_INITIALIZED: Added.
+       * src/vm/vm.c (vm_create): Set opt_stat also true for -verbose:memory.
+       * src/mm/memory.c [ENABLE_THREADS] (threads/threads-common.h): Added.
+       (memory_thread): Call statistics_print_memory_usage.
 
-2006-01-12 23:27  twisti
+2007-02-13 00:17  twisti
 
-       * GETSTATIC_FLOAT, PUTSTATIC_FLOAT, GETFIELD_FLOAT, PUTFIELD_FLOAT:
+       * src/vm/jit/optimizing/profile.c (native/jni.h): Removed.
+       (native/include/java_lang_Thread.h): Likewise.
+       (native/include/java_lang_VMThread.h): Likewise.
+       (threads/threads-common.h): Added.
+       (thread_profile): Changed type to threadobject.
+       (profile_start_thread): Use threads_create_thread.
+       * src/vm/jit/optimizing/recompile.c: Likewise.
+       * src/vm/signal.c: Likewise.
+       * src/vm/finalizer.c: Likewise.
+       
+       * src/vm/jit/asmpart.h (threads/native/critical.h): Removed.
+       (threads/critical.h): Added.
+       
+       * src/vmcore/options.c (opt_verbosememory): Added.
+       * src/vmcore/options.h: Likewise.
+       
+       * src/vm/vm.c (XXusage): Added -verbose:memory.
+       (vm_create): Likewise. Start memory thread.
+       
+       * src/cacao/Makefile.am (THREAD_LIB): Changed to
+       $(top_builddir)/src/threads/libthreads.la.
+       
+       * src/mm/memory.c [ENABLE_THREADS] (thread_memory): Added.
+       [ENABLE_THREADS] (memory_thread): New function.
+       [ENABLE_THREADS] (memory_start_thread): Likewise.
+       * src/mm/memory.h [ENABLE_THREADS] (memory_start_thread): Added.
+       
+       * src/threads/native/critical.c: Removed.
+       * src/threads/native/critical.h: Likewise.
+       * src/threads/critical.c: Added.
+       * src/threads/critical.h: Likewise.
+       
+       * src/threads/threads-common.c: New file.
+       * src/threads/threads-common.h: Likewise.
+       * src/threads/Makefile.am (AM_CPPFLAGS): Added.
+       (LIB): Likewise.
+       [ENABLE_THREADS] (THREAD_LIB): Likewise.
+       (noinst_LTLIBRARIES): Likewise.
+       (libthreads_la_SOURCES): Likewise.
+       (libthreads_la_LIBADD): Likewise.
+       
+       * src/threads/.cvsignore: New file.
+       
+       * src/threads/native/threads.c (include "threads/threads-common.h):
        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.
+       * src/threads/native/threads.h (MIN_PRIORITY, NORM_PRIORITY)
+       (MAX_PRIORITY): Removed.
+       
+       * src/threads/native/Makefile.am (noinst_LTLIBRARIES): Changed to
+       libthreadsposix.la.
 
-2006-01-12 23:23  twisti
+2007-02-13 00:05  twisti
 
-       * Some 64-bit big-endian bugfixes.
-       * Use CLASS_IS_OR_ALMOST_INITIALIZED macro.
+       * src/vmcore/annotation.c
+       (annotation_load_attribute_runtimevisibleannotations): Renamed aa to
+       annotations.
 
-2006-01-12 23:21  twisti
+2007-02-12 13:28  twisti
 
-       * 64-bit big-endian bugfix: replace s4 with ptrint.
+       * src/vm/jit/emit-common.h (_EMIT_H): Renamed to _EMIT_COMMON_H.
+       (config.h): Added.
+       (vm/jit/codegen-common.h): Likewise.
+       [SIZEOF_VOID_P == 4] (IS_IMM16): Added.
 
-2006-01-12 23:10  twisti
+2007-02-12 10:43  twisti
 
-       * Imported for the interpreter.
+       * src/vm/jit/alpha/md-abi.c (regs): Renamed to
+       abi_registers_integer_name.
+       (md_param_alloc_native): New function.
+       
+       * src/vm/jit/alpha/disass.c (vm/jit/abi.h): Added.
+       (disassinstr): Replaced regs with abi_registers_integer_name.
 
-2006-01-12 23:09  twisti
+2007-02-12 00:34  twisti
 
-       * Added powerpc64 target.
+       * src/vm/jit/i386/md-abi.c (regs): Renamed to
+       abi_registers_integer_name.
+       (md_param_alloc_native): New function.
 
-2006-01-12 23:08  twisti
+2007-02-11 22:17  twisti
 
-       * intrp_disassinstr, intrp_disassemble: Added.
+       * src/vm/jit/arm/disass.c (stdio.h): Added.
+       (regs): Removed.
+       * src/vm/jit/arm/md-abi.c (abi_registers_integer_name): Added.
+       (md_param_alloc_native): Likewise.
 
-2006-01-12 23:07  twisti
+2007-02-11 21:44  twisti
 
-       * vm/options.h: Added.
+       * src/vm/jit/codegen-common.c (vm/jit/abi.h): Added.
 
-2006-01-12 23:05  twisti
+2007-02-11 21:41  twisti
 
-       * config.h, vm/types.h: Added.
+       * src/vm/jit/disass.h (regs): Removed.
+       
+       * src/vm/jit/show.c (vm/jit/abi.h): Added.
+       (show_allocation): Renamed regs to abi_registers_integer_name.
 
-2006-01-12 23:03  twisti
+2007-02-11 21:39  twisti
 
-       * Use ASM_CALLJAVAFUNCTION* macros.
+       * src/vm/jit/codegen-common.c (codegen_createnativestub): Call
+       md_param_alloc_native instead of md_param_alloc.
+       
+       * src/vm/jit/powerpc/linux/md-abi.c (assert.h): Added.
+       (regs): Renamed to abi_registers_integer_name.
+       (abi_registers_integer_argument, abi_registers_integer_saved)
+       (abi_registers_integer_temporary, abi_registers_float_name)
+       (abi_registers_float_argument, abi_registers_float_saved)
+       (abi_registers_float_temporary): Added.
+       (md_param_alloc): Reformatted.
+       (md_param_alloc_native): New function.
 
-2006-01-12 22:42  twisti
+2007-02-11 21:24  twisti
 
-       * thread_addstaticcritical: Quick hack: #ifdef ENABLE_JIT
-       asm_criticalsections.
-       * sigsuspend_handler: Quick hack: #ifdef ENABLE_JIT
-       thread_restartcriticalsection.
+       * src/vmcore/descriptor.c (vm/jit/abi.h): Added.
+       * src/vmcore/descriptor.h (md_param_alloc): Removed.
+       
+       * src/vm/jit/abi.h (abi_registers_integer_name)
+       (abi_registers_integer_argument, abi_registers_integer_saved)
+       (abi_registers_integer_temporary, abi_registers_float_name)
+       (abi_registers_float_argument, abi_registers_float_saved)
+       (abi_registers_float_temporary): Added.
+       (md_param_alloc): Likewise.
+       (md_param_alloc_native): Likewise.
 
-2006-01-12 22:41  twisti
+2007-02-11 21:22  twisti
 
-       * vm/options.h: Added.
-       * descriptor_pool_parse_method_descriptor: #ifdef ENABLE_JIT
-       md_param_alloc
-       call.
-       * descriptor_params_from_paramtypes: Likewise.
+       * src/native/native.c (native_get_returntype): Removed.
+       * src/native/native.h: Likewise.
+       
+       * src/native/vm/gnu/java_lang_reflect_Method.c (getReturnType): Moved
+       code from native_get_returntype.
 
-2006-01-12 22:40  twisti
+2007-02-11 20:16  twisti
 
-       * Fixed a lot of compiler warnings (functionptr -> u1*).
+       * src/vm/jit/codegen-common.c (vm/jit/md.h): Added.
 
-2006-01-12 22:39  twisti
+2007-02-11 20:10  twisti
 
-       * regs: Removed.
-       * disassinstr, disassemble: Prefixed with intrp_.
+       * src/vm/jit/arm/emit.c (emit_verbosecall_enter): Keep stack 8-byte
+       aligned.
+       (emit_verbosecall_exit): Added comment.
+       * src/vm/jit/arm/asmpart.S (asm_call_jit_compiler): Keep stack 8-byte
+       aligned.
 
-2006-01-12 22:38  twisti
+2007-02-11 17:52  pm
 
-       * ICMD_MULTIANEWARRAY: Usage of iptr->val.a and iptr->target changed.
+       * src/vm/jit/stacktrace.c (stacktrace_create_extern_stackframeinfo):
+       On s390 get return address from stack also in leaf methods.
+       * src/vm/jit/codegen-common.c (methodtree_comparator): On s390
+       compare addresses as 31 bit integers.
+       * src/vm/jit/s390/md.c,
+       src/vm/jit/s390/codegen.c,
+       src/vm/jit/s390/codegen.h,
+       src/vm/jit/s390/patcher.c,
+       src/vm/jit/s390/asmpart.S: Changed a lot, working on s390 port.
 
-2006-01-12 22:37  twisti
+2007-02-11 10:15  michi
 
-       * 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.
+       * src/vm/jit/replace.c: Fixed includes for options.h and classcache.h
+       headers.
+       * src/vm/jit/replace.h: Added forward typedef for rplalloc.
 
-2006-01-12 22:35  twisti
+2007-02-11 09:21  michi
 
-       * verify_multianewarray: Usage iptr->val.a and iptr->target changed.
-       * JAVA_MULTIANEWARRAY: Pass c in iptr->val.a and cr in iptr->target.
+       * src/vm/jit/replace.h: Fixed include for method.h header.
 
-2006-01-12 22:34  twisti
+2007-02-11 00:02  twisti
 
-       * codegen_createnativestub: #ifdef ENABLE_JIT md_param_alloc call.
-       * codegen_disassemble_nativestub: Use DISASSEMBLE macro.
+       * src/vm/jit/x86_64/emit.c (emit_verbosecall_enter): Renamed
+       builtin_trace_args to builtin_verbosecall_enter.
+       (builtin_verbosecall_exit): Renamed builtin_displaymethodstop to
+       builtin_verbosecall_exit and changed signature.
+       
+       * src/vm/jit/x86_64/md-abi.h (REG_FA0, REG_FA1): Added.
 
-2006-01-12 22:32  twisti
+2007-02-10 19:06  twisti
 
-       * analyse_stack: #ifdef ENBALE_JIT md_return_alloc call.
-       * icmd_print_stack: Print regs correctly for jit.
-       * show_icmd_method: Likewise.
+       * src/vm/builtin.c (builtin_trace_args): Renamed to
+       builtin_verbosecall_enter.
+       (builtin_trace_args): Renamed to builtin_verbosecall_enter.
+       (builtin_displaymethodstop): Renamed to builtin_verbosecall_exit and
+       changed signature.
+       * src/vm/builtin.h: Likewise.
+       
+       * src/vm/jit/arm/emit.c (emit_verbosecall_enter): Likewise.
+       (builtin_verbosecall_exit): Likewise.
+       * src/vm/jit/alpha/emit.c: Likewise.
+       * src/vm/jit/i386/emit.c: Likewise.
+       * src/vm/jit/mips/emit.c: Likewise.
+       * src/vm/jit/powerpc/emit.c: Likewise.
+       
+       * src/vm/jit/alpha/md-abi.h (REG_FA0, REG_FA1, REG_FA2): Added.
+       * src/vm/jit/mips/md-abi.h: Removed multiple defines.
+       * src/vm/jit/powerpc/linux/md-abi.h (REG_FA0, REG_FA1): Added.
+       (REG_A0_A1_PACKED): Likewise.
+       
+       * src/vm/jit/mips/linux/Makefile.am (AM_CPPFLAGS): Added
+       -I$(top_builddir)/src.
+       * src/vm/jit/mips/irix/Makefile.am: Likewise.
 
-2006-01-12 21:55  twisti
+2007-02-10 15:11  ajordan
 
-       * builtintable_internal: Removed ICMD_CHECKCAST.
+       * src/vm/jit/sparc64/codegen.c (createnativestub): Fixed stack
+       argument passing.
+       
+       * src/vm/jit/sparc64/*: Adapted includes to new cacao structure.
 
-2006-01-12 21:39  twisti
+2007-02-10 14:31  pm
 
-       * Prefixed functions with intrp_.
-       * md_init, md_stacktrace_get_returnaddress: Prefixed with intrp_.
-       * thread_restartcriticalsection, md_param_alloc, md_return_alloc:
-       Removed.
+       * s390/codegen.c: fix: ICMD_FCMPL generated wrong branch offset
+       * s390/codegen.h: likewise
+       * s390/asmpart.S: fix: asm_call_jit_compiler did not remove stack
+       frame
 
-2006-01-12 21:38  twisti
+2007-02-10 00:49  pm
 
-       * Prefix functions with intrp_.
+       Continued work on S390 codegen. Affected files:
+       
+       * s390/codegen.c
+       * s390/codegen.h
+       * s390/arch.h
+       * s390/patcher.c
+       * s390/asmpart.S
 
-2006-01-12 21:37  twisti
+2007-02-09 13:20  twisti
 
-       * Use ptrint instead of s8 in some places.
+       * src/vm/jit/powerpc64/linux/md-os.c: Fixed includes.
+       * src/vm/jit/powerpc64/linux/md-abi.c: Likewise.
+       * src/vm/jit/powerpc64/md.c: Likewise.
+       * src/vm/jit/powerpc64/codegen.c: Likewise.
+       * src/vm/jit/powerpc64/patcher.c: Likewise.
 
-2006-01-12 21:36  twisti
+2007-02-09 13:00  twisti
 
-       * Use DISASSINSTR macro.
+       * src/vm/jit/i386/asmpart.S (asm_compare_and_swap): Added ; after
+       lock, Darwin's assembler requires that.
+       (asm_compare_and_swap): Likewise.
 
-2006-01-12 21:36  michi
+2007-02-09 12:51  twisti
 
-       * Comment updated (for asm_cacheflush)
+       * src/mm/boehm.c [ENABLE_THREADS] (threads/native/threads.h): Removed.
 
-2006-01-12 21:35  twisti
+2007-02-09 12:49  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.
+       * src/vm/jit/powerpc/linux/Makefile.am (AM_CPPFLAGS): Added
+       -I$(top_builddir)/src.
+       * src/vm/jit/powerpc/darwin/Makefile.am: Likewise.
+       * src/vm/jit/powerpc/netbsd/Makefile.am: Likewise.
 
-2006-01-12 21:30  twisti
+2007-02-09 12:47  twisti
 
-       * intrp_md_stacktrace_get_returnaddress: Added.
-       * cacao_stacktrace_fillInStackTrace: #ifdef
-       md_stacktrace_get_returnaddress
-       to support interpreter.
+       * src/vmcore/class.h (dummy_java_lang_Class): Added.
+       (classinfo): Use dummy_java_lang_Class.
+       * src/vm/vm.c (vm_create): Check dummy_java_lang_Class size.
 
-2006-01-12 21:29  twisti
+2007-02-09 11:25  twisti
 
-       * Seperate ENABLE_JIT and ENABLE_INTRP.
+       * src/native/vm/java_lang_Runtime.c [ENABLE_JAVASE]
+       (runFinalizersOnExit): Added.
+       * src/native/vm/java_lang_Runtime.h: Likewise.
+       
+       * src/native/vm/gnu/java_lang_VMRuntime.c (exit): Renamed argument
+       par1 to status.
+       (runFinalizersOnExit): Call _Jv_java_lang_Runtime_runFinalizersOnExit.
 
-2006-01-12 21:17  twisti
+2007-02-09 11:08  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:
+       * src/vm/exceptions.c (exceptions_throw_unsatisfiedlinkerror)
+       [!ENABLE_JAVASE]: Generate a java.lang.Error.
+       
+       * src/native/vm/cldc1.1/java_lang_Class.c (isInstance): Added.
+       (isAssignableFrom): Likewise.
+       (isInterface): Likewise.
+       (isArray): Likewise.
+       
+       * src/native/vm/cldc1.1/java_lang_Object.c (hashCode): Likewise.
+       (notify): Likewise.
+       (wait): Likewise.
+       
+       * src/native/vm/cldc1.1/java_lang_String.c (hashCode): Smaller
+       implementation changes.
+       (indexOf__II): Likewise.
+       (lastIndexOf__II): Likewise.
+       (indexOf__I): Added.
+       
+       * src/native/vm/cldc1.1/java_lang_Thread.c: Header updated.
+       
+       * src/native/vm/cldc1.1/java_lang_Runtime.c (exitInternal): Fixed
+       signature.
+       (freeMemory): Added.
+       (totalMemory): Likewise.
+       (gc): Likewise.
+       
+       * src/native/vm/cldc1.1/com_sun_cldc_io_ResourceInputStream.c: New
+       file.
+       * src/native/vm/cldc1.1/com_sun_cldc_io_j2me_socket_Protocol.c:
        Likewise.
+       * src/native/vm/cldc1.1/Makefile.am (libnativevmcore_la_SOURCES):
+       Added com_sun_cldc_io_ResourceInputStream.c and
+       com_sun_cldc_io_j2me_socket_Protocol.c.
+       
+       * src/native/vm/java_lang_Runtime.c: New file.
+       * src/native/vm/java_lang_Runtime.h: Likewise.
+       * src/native/vm/Makefile.am (libnativevm_la_SOURCES): Added
+       java_lang_Runtime.c and java_lang_Runtime.h.
+       
+       
+       * src/native/vm/java_lang_Class.c: Un-ifdef some functions for CLDC.
+       * src/native/vm/java_lang_Class.h: Likewise.
+       
+       * src/native/vm/gnu/java_lang_VMRuntime.c
+       (native/vm/java_lang_Runtime.h): Added.
+       (exit): Call _Jv_java_lang_Runtime function.
+       (freeMemory): Likewise.
+       (totalMemory): Likewise.
+       (gc): Likewise.
+       
+       * src/native/vm/java_lang_Object.h [ENABLE_JAVASE]
+       (native/include/java_lang_Cloneable.h): Only available for JavaSE
+       configurations.
+       
+       * src/native/include/Makefile.am (JAVAME_CLDC1_1_HEADER_FILES): Added
+       com_sun_cldc_io_ResourceInputStream.h and
+       com_sun_cldc_io_j2me_socket_Protocol.h.
+       
+       * src/native/native.c (dummynativetable) [ENABLE_JAVAME_CLDC1_1]:
+       Added new functions.
 
-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
+2007-02-09 10:35  twisti
 
-       * Use ASM_CALLJAVAFUNCTION macro.
+       * src/vm/jit/alpha/md.c (vm/options.h): Changed to vmcore/options.h.
+       
+       * src/vm/jit/alpha/linux/Makefile.am (AM_CPPFLAGS): Added
+       -I$(top_builddir)/src.
+       * src/vm/jit/alpha/freebsd/Makefile.am: Likewise.
 
-2006-01-12 21:13  twisti
+2007-02-08 12:29  michi
 
-       * Use ASM_CALLJAVAFUNCTION_INT macro.
+       * src/vm/jit/i386/cygwin/Makefile.am: Changed to unix fileformat.
+       * src/vm/jit/i386/cygwin/ucontext.h,
+       src/vm/jit/i386/cygwin/ucontext.c,
+       src/vm/jit/i386/cygwin/md-os.c, src/vm/jit/i386/cygwin/md-asm.h:
+       Likewise.
 
-2006-01-12 21:11  twisti
+2007-02-08 12:14  twisti
 
-       * intrp_asm_calljavafunction, intrp_createcompilerstub,
-       intrp_asm_getclassvalues_atomic: Added.
+       * src/vm/jit/i386/linux/Makefile.am (AM_CPPFLAGS) Added
+       -I$(top_builddir)/src.
+       * src/vm/jit/i386/cygwin/Makefile.am: Likewise.
+       * src/vm/jit/i386/freebsd/Makefile.am: Likewise.
 
-2006-01-12 21:08  twisti
+2007-02-07 22:06  pm
 
-       * Use ASM_CALLJAVAFUNCTION macros.
-       * main: #ifdef md_init call to support interpreter.
-       * link_class_intern: #ifdef createcompilerstub call to support
-       interpreter.
+       Continued work on S390 port.
+       java.lang.ClassLoader.getSystemClassLoader is now compiled, patched,
+       called and the patcher trigger compilation of another method.
+       
+       * jit/s390/emit.c: Likiwise.
+       * jit/s390/codegen.c: Likewise.
+       * jit/s390/codegen.h: Likewise.
+       * jit/s390/md-asm.h: Likewise.
+       * jit/s390/patcher.c: Likewise.
+       * jit/s390/asmpart.S: Likewise.
+       * jit/codegen-common.c: Likewise.
 
-2006-01-12 21:07  twisti
+2007-02-06 12:17  twisti
 
-       * Use ASM_CALLJAVAFUNCTION macros.
+       * src/native/vm/cldc1.1/Makefile.am: Updated header.
 
-2006-01-12 21:06  twisti
+2007-02-06 10:25  twisti
 
-       * Use ASM_CALLJAVAFUNCTION_ADR macro.
-       * Use ASM_CALLJAVAFUNCTION macro.
+       * src/native/vm/cldc1.1/java_lang_String.c (hashCode): Implemented.
+       (indexOf__II): Likewise.
+       (lastIndexOf__II): Likewise.
 
-2006-01-12 21:04  twisti
+2007-02-06 09:11  twisti
 
-       * intrp_md_init: Added.
+       * src/threads/native/Makefile.am (AM_CPPFLAGS): Added
+       -I$(top_builddir)/src.
+       * src/vm/jit/x86_64/Makefile.am: Likewise.
+       * src/vm/jit/x86_64/linux/Makefile.am: Likewise.
+       * src/vm/jit/x86_64/freebsd/Makefile.am: Likewise.
 
-2006-01-12 20:57  twisti
+2007-02-06 08:58  twisti
 
-       * Check explicitly for isnan.
+       * src/vm/jit/powerpc/codegen.c (codegen) [ENABLE_PROFILING]: #ifdef
+       profiling code.
 
-2006-01-12 18:25  twisti
+2007-02-06 08:50  twisti
 
-       * print_dynamic_super_statistics: Added from intrp.
+       * src/native/vm/Makefile.am (DIST_SUBDIRS): Added missing \.
 
-2006-01-12 18:09  michi
+2007-02-06 08:49  twisti
 
-       * Included md-abi.h (needed for REG_SPLIT on Arm)
+       * src/vm/jit/tools/genoffsets.c (vm/jit/stacktrace.h): Not required,
+       removed.
 
-2006-01-12 17:52  twisti
+2007-02-06 08:48  twisti
 
-       * We have to use a machine dependent arch.h.
+       * src/vm/jit/tools/Makefile.am: Cosmetic changes.
 
-2006-01-11 12:16  twisti
+2007-02-06 08:47  twisti
 
-       * vm/jit/codegen.inc.h: Removed.
-       * Fixed compiler warnings.
+       * src/vm/jit/optimizing/Makefile.am (AM_CPPFLAGS): Added
+       -I$(top_builddir)/src.
+       * src/vm/jit/Makefile.am: Likewise.
+       * src/vm/Makefile.am: Likewise.
+       * src/mm/Makefile.am: Likewise.
 
-2006-01-11 10:35  twisti
+2007-02-06 06:37  twisti
 
-       * ICMD_F2I, ICMD_D2I, ICMD_F2L, ICMD_D2L: #if 0.
+       * src/vm/jit/linux/md-os.c (thread_restartcriticalsection): Added
+       missing cast and pass pc to critical_find_restart_point.
+       * src/vm/jit/freebsd/md-os.c (thread_restartcriticalsection):
+       Likewise.
 
-2006-01-11 10:01  twisti
+2007-02-05 02:04  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.
+       * src/cacaoh/dummy.c (builtin_clone, builtin_isanysubclass)
+       (builtin_new): Keep compiler happy and return a value.
 
-2006-01-10 22:44  twisti
+2007-02-05 01:07  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.
+       * src/vm/signallocal.h (vm/types.h): Added.
+       (vm/global.h): Likewise.
 
-2006-01-10 22:38  twisti
+2007-02-05 01:06  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.
+       * configure.ac (AC_CONFIG_FILES): Added
+       src/vm/jit/x86_64/freebsd/Makefile.
+       
+       * src/vm/jit/x86_64/Makefile.am (DIST_SUBDIRS): Added freebsd.
+       
+       * src/vm/jit/x86_64/freebsd/md-os.c: New file.
+       * src/vm/jit/x86_64/freebsd/Makefile.am: Likewise.
+       * src/vm/jit/x86_64/freebsd/.cvsignore: Likewise.
 
-2006-01-10 22:22  twisti
+2007-02-05 00:52  twisti
 
-       * EXTRA_DIST: Added ChangeLog-2005.
+       * configure.ac (AC_CONFIG_FILES): Added
+       src/vm/jit/x86_64/linux/Makefile.
+       
+       * src/vm/jit/x86_64/Makefile.am (DIST_SUBDIRS): Added.
+       (SUBDIRS): Likewise.
+       (libarch_la_LIBADD): Likewise.
+       
+       * src/vm/jit/x86_64/md.c (md_signal_handler_sigsegv)
+       (md_signal_handler_sigfpe, md_signal_handler_sigusr2)
+       (thread_restartcriticalsection): Removed.
+       
+       * src/vm/jit/x86_64/linux/md-os.c: New file.
+       * src/vm/jit/x86_64/linux/Makefile.am: Likewise.
+       * src/vm/jit/x86_64/linux/.cvsignore: Likewise.
 
-2006-01-10 22:18  twisti
+2007-02-04 19:41  pm
 
-       * 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.
+       * jit/codegen-common.h: Enabled dseg_adddata for s390.
+       * jit/dseg.c: Likewise.
+       * jit/s390/md-abi.h: Continued work on s390 port.
+       * jit/s390/emit.c: Likewise.
+       * jit/s390/md.c: Likewise.
+       * jit/s390/codegen.c: Likewise.
+       * jit/s390/codegen.h: Likewise.
+       * jit/s390/md-asm.h: Likewise.
+       * jit/s390/asmpart.S: Likewise.
+       * jit/s390/md-abi.c: Likewise.
 
-2006-01-10 22:11  twisti
+2007-02-04 16:08  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.
+       * src/native/jni.c (_Jv_JNI_ExceptionDescribe): Fixed typo.
 
-2006-01-10 22:09  twisti
+2007-02-03 19:51  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.
+       * src/vm/jit/x86_64/codegen.c (codegen) [ENABLE_PROFILING]: #ifdef
+       instrumentation code.
+       (createnativestub) [ENABLE_PROFILING]: Likewise.
+       
+       * src/vm/jit/x86_64/codegen.h [ENABLE_PROFILING] (PROFILE_CYCLE_START)
+       (PROFILE_CYCLE_STOP): Added #ifdef.
 
-2006-01-10 21:58  twisti
+2007-02-03 19:34  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.
+       * src/vm/builtin.c [ENABLE_THREADS] (threads/native/threads.h):
+       Removed.
+       [ENABLE_THREADS] (threads/native/lock.h): Added.
+       (builtin_throw_exception): Use exceptions_set_exception.
+       
+       * src/vm/finalizer.c (finalizer_run): Likewise.
+       
+       * src/vm/signal.c (signal_start_thread): Use #warning instead of
+       #error (temporarily).
+       
+       * src/native/jni.c (_Jv_jni_invokeNative): Use
+       exceptions_get_exception, and exceptions_clear_exception.
+       (_Jv_JNI_ExceptionDescribe): Likewise.
+       (_Jv_JNI_IsAssignableFrom): Use exceptions_set_exception.
+       (_Jv_JNI_ExceptionOccurred): Use exceptions_get_exception.
+       (_Jv_JNI_ExceptionCheck): Likewise.
+       (_Jv_JNI_ExceptionClear): Use exceptions_clear_exception.
 
-2006-01-10 21:11  twisti
+2007-02-02 12:53  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.
+       * src/vm/jit/i386/codegen.c (codegen) [ENABLE_PROFILING]: Profiling
+       code.
+       (createnativestub): Likewise.
 
-2006-01-10 20:57  twisti
+2007-02-02 12:39  twisti
 
-       * exceptions_throw_classformaterror,
-       exceptions_throw_arrayindexoutofboundsexception,
-       exceptions_throw_illegalargumentexception,
-       exceptions_throw_negativearraysizeexception,
-       exceptions_throw_nullpointerexception: Added.
-       * exceptions_print_exception: #ifndef NDEBUG.
+       * src/native/vm/java_lang_Object.c [ENABLE_JAVAME_CLDC1_1]
+       (native/include/java_lang_String.h): Added.
 
-2006-01-10 20:56  twisti
+2007-02-02 12:28  twisti
 
-       * exceptions_throw_classformaterror: Use this function.
+       * src/native/vm/java_lang_Class.h (native/include/java_lang_String.h):
+       Required by java_lang_Class.h for Java ME.
 
-2006-01-10 20:55  twisti
+2007-02-02 11:58  michi
 
-       * exceptions_throw_nullpointerexception: Use this function.
+       * src/vm/jit/arm/md-abi.h: Renamed REG_IP to REG_PV (special favor
+       for twisti).
+       * src/vm/jit/arm/emit.c, src/vm/jit/arm/codegen.c,
+       src/vm/jit/arm/codegen.h:
+       Adapted to the above change.
 
-2006-01-10 20:50  twisti
+2007-02-02 00:20  twisti
 
-       * exceptions_throw_nullpointerexception,
-       exceptions_throw_arrayindexoutofboundsexception: Use these
-       functions.
+       * src/vm/jit/jit.c (jit_compile_intern) [ENABLE_PROFILING]: Call
+       reorder only when profiling.
 
-2006-01-10 20:48  twisti
+2007-02-02 00:10  twisti
 
-       * exceptions_throw_nullpointerexception,
-       exceptions_throw_illegalargumentexception: Use these functions.
+       * src/vm/jit/code.h (codeinfo) [ENABLE_PROFILING]: Made frequency,
+       bbfrequency, and cycles conditional.
+       
+       * src/vm/jit/jit.c (jit_compile) [ENABLE_PROFILING]: Likewise.
+       (jit_compile_intern) [ENABLE_PROFILING]: Likewise.
 
-2006-01-10 20:46  twisti
+2007-02-02 00:06  twisti
 
-       * exceptions_throw_illegalargumentexception,
-       exceptions_throw_negativearraysizeexception,
-       exceptions_throw_arrayindexoutofboundsexception,
-       exceptions_throw_nullpointerexception: Use these functions.
+       * src/vm/jit/optimizing/Makefile.am [ENABLE_PROFILING]
+       (REORDER_SOURCES): Moved here till we have something better.
 
-2006-01-10 20:44  twisti
+2007-02-01 15:35  twisti
 
-       * exceptions_throw_classformaterror,
-       exceptions_throw_negativearraysizeexception,
-       exceptions_throw_nullpointerexception: Added.
+       * src/vmcore/suck.c (assert.h): Added.
+       (suck_float): Use assert instead of an exception.
+       (suck_double): Likewise.
 
-2006-01-10 15:52  twisti
+2007-02-01 15:27  twisti
 
-       * Not required anymore.
+       * src/vmcore/linker.c (link_class_intern): Also align double and s8
+       fields to 4-bytes for ARM.
 
-2006-01-10 15:50  twisti
+2007-02-01 12:58  twisti
 
-       * use_class_as_object, create_property, copy_vftbl, create_methodsig:
-       Removed.
-       * classMeth, nativeCall, methodCall, nativeMethod, nativeCompCall,
-       methodCompCall, nativeCompMethod: Likewise.
-       * natcall2utf, printNativeCall, markNativeMethodsRT: Likewise.
+       * src/vmcore/utf8.c (utf_java_lang_InvocationTargetException): Is
+       actually called utf_java_lang_reflect_InvocationTargetException.
+       (utf8_init): Likewise.
+       
+       * src/vmcore/utf8.h (utf_java_lang_InvocationTargetException):
+       Likewise.
+       
+       * src/vm/exceptions.c (exceptions_throw_invocationtargetexception):
+       Likewise.
 
-2006-01-10 15:48  twisti
+2007-02-01 12:29  twisti
 
-       * nativeCalls, nativeCompCalls: Removed.
-       * copy_vftbl, create_methodsig: Likewise.
-       * printNativeCall, printCompNativeCall, findNativeMethodCalls,
-       findNativeClassCalls, utfNativeCall, natcall2utf: Likewise.
+       * src/vm/jit/code.c [ENABLE_THREADS] (threads/native/lock.h): Added.
 
-2006-01-10 10:59  twisti
+2007-02-01 12:02  twisti
 
-       * codegen_ncode_increase: Typo.
+       * src/vmcore/method.h (methodinfo): Removed member object.
+       * src/vm/jit/code.h (codeinfo): Added member object.
+       
+       * src/vmcore/loader.c (loader_load_method): Removed
+       lock_init_object_lock.
+       (load_newly_created_array): Likewise.
+       * src/vm/jit/code.c (code_codeinfo_new): Added lock_init_object_lock.
+       
+       * src/vm/jit/jit.c (jit_jitdata_new): Changed signature.
+       (jit_compile): Use codeinfo lock object instead of methodinfo.
+       (jit_recompile): Changed signature.
+       * src/vm/jit/jit.h (jit_jitdata_new): Likewise.
 
-2006-01-09 20:52  twisti
+2007-01-31 17:45  twisti
 
-       * disass_buf: Fixed typo.
+       * src/cacaoh/dummy.c (pthread.h): Added.
 
-2006-01-09 20:28  twisti
+2007-01-31 17:02  twisti
 
-       * disass_printf: Ooops, #ifdef was wrong.
+       * src/toolbox/logging.c (log_start): Uncommented thread pointer stuff.
+       * src/cacaoh/dummy.c (threads_get_current_threadobject): Added.
 
-2006-01-09 20:19  twisti
+2007-01-31 17:00  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.
+       * src/native/jni.c (_Jv_JNI_ThrowNew): Fixed warnings.
 
-2006-01-09 20:15  twisti
+2007-01-31 14:05  twisti
 
-       * libarch_la_SOURCES: Removed dis-asm.h, ppc-dis.c, ppc-opc.c and
-       ppc.h.
+       * src/native/vm/gnu/gnu_classpath_VMSystemProperties.c: Updated year.
 
-2006-01-09 19:21  twisti
+2007-01-31 14:04  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.
+       * src/native/vm/gnu/gnu_classpath_VMSystemProperties.c (string.h):
+       Added.
+       (mm/memory.h): Likewise.
 
-2006-01-09 16:37  twisti
+2007-01-31 10:59  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.
+       * src/vmcore/loader.c (load_newly_created_array) [ENABLE_JAVASE]:
+       Fixed interfacescount.
 
-2006-01-09 16:36  twisti
+2007-01-31 10:00  twisti
 
-       * WITH_BINUTILS_DISASSEMBLER: Added, define DISASS_OBJ.
-       * noinst_LTLIBRARIES: Added DISASS_OBJ.
+       * src/vm/exceptions.c [ENABLE_JAVAME_CLDC1_1](exceptions_new_error):
+       New function.
+       (exceptions_asm_new_abstractmethoderror) [!ENABLE_JAVASE]: Use
+       exceptions_new_error.
+       (exceptions_throw_virtualmachineerror): Removed.
+       * src/vm/exceptions.h (exceptions_throw_virtualmachineerror):
+       Likewise.
 
-2006-01-09 16:30  twisti
+2007-01-31 09:51  twisti
 
-       * This file contains the common functions required when we use the
-       binutils
-       disassembler.
+       * src/vm/jit/Makefile.am: Fixed !ENABLE_VERIFER build.
 
-2006-01-09 16:29  twisti
+2007-01-30 13:58  twisti
 
-       * WITH_BINUTILS_DISASSEMBLER: Added.
-       * disass_printf: Added.
+       * src/vm/jit/arm/emit.c (mm/memory.h): Added.
+       (vm/global.h): Likewise.
+       (emit_patcher_stubs): Align stack to 8-byte.
+       (emit_verbosecall_exit): Smaller optimizations.
+       
+       * src/vm/jit/arm/md-abi.h (config.h): Added.
+       (REG_A1_A2_PACKED): Defined.
+       
+       * src/vm/jit/arm/md.c: Fixed includes.
+       (md_codegen_get_pv_from_pc): Use vm_abort.
+       
+       * src/vm/jit/arm/codegen.c: Fixed includes.
+       (codegen): Align stack to 8-byte.
+       (createnativestub): Likewise.
+       
+       * src/vm/jit/arm/codegen.h (M_ADD_IMM_EXT_MUL4): Added do-while.
+       (M_SUB_IMM_EXT_MUL4): Likewise.
+       
+       * src/vm/jit/arm/patcher.c: Fixed includes.
+       (patcher_wrapper): Align stack to 8-byte.
+       * src/vm/jit/arm/asmpart.S (asm_patcher_wrapper): Likewise.
+       
+       * src/vm/jit/arm/md-abi.c: Fixed includes.
 
-2006-01-09 16:26  twisti
+2007-01-30 13:53  twisti
 
-       * WITH_BINUTILS_DISASSEMBLER: Added.
+       * src/vm/signal.c (signal_init): Disable signal-thread handling
+       temporarily.
+       * src/vm/vm.c (vm_create): Likewise.
 
-2006-01-09 12:12  twisti
+2007-01-29 23:07  twisti
 
-       * Removed, we now link against libbfd and libopcodes.
+       * src/vm/string.c (native/jni.h): Added.
+       * src/vm/properties.c (native/jni.h): Likewise.
+       
+       * src/native/vm/cldc1.1/java_lang_Runtime.c: Includes fixed for
+       cacaoh-changes.
+       * src/native/vm/cldc1.1/java_lang_Class.c: Likewise.
+       
+       * src/native/vm/java_lang_Class.c [ENABLE_JAVAME_CLDC1_1]
+       (native/include/java_lang_String.h): Added.
+       (forName): #ifdef'd loader variable.
+       
+       * src/vmcore/class.c (class_resolveclassmethod): Removed Java ME
+       exception handling, we do that in the exception function itself.
+       (class_resolveinterfacemethod): Likewise.
+       * src/vmcore/resolve.c (resolve_method_invokespecial): Likewise.
+       
+       * src/vmcore/utf8.c [ENABLE_JAVASE]
+       (utf_java_lang_AbstractMethodError, utf_java_lang_NoSuchFieldError)
+       (utf_java_lang_NoSuchMethodError): Removed ifdef.
+       * src/vmcore/utf8.h: Likewise.
 
-2006-01-09 12:10  twisti
+2007-01-29 21:47  ajordan
 
-       * libarch_la_SOURCES: Removed dis-asm.h and i386-dis.c.
+       * src/vm/jit/sparc64/codegen.h: Fixed double register number packing
+       and fp compare instruction macros.
+       * src/vm/jit/sparc64/codegen.c: Fixed fp compares.
+       Fixed INT2CHAR.
+       Fixed fp argument saving in createnativestub().
+       
+       * src/vm/jit/sparc64/patcher.c: Implemented get/put field patcher.
+       
+       * src/vm/jit/sparc64/md.c: Removed printf.
 
-2006-01-09 10:37  twisti
+2007-01-29 21:39  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.
+       * src/vm/jit/i386/emit.c: Includes fixed for cacaoh-changes.
+       * src/vm/jit/i386/md.c: Likewise.
+       * src/vm/jit/i386/codegen.c: Likewise.
+       * src/vm/jit/i386/patcher.c: Likewise.
+       * src/vm/jit/i386/md-abi.c: Likewise.
 
-2006-01-09 10:35  twisti
+2007-01-29 21:38  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.
+       * src/vm/jit/i386/asmpart.S (asm_compare_and_swap): New function.
+       (asm_memory_barrier): Likewise.
 
-2006-01-08 23:37  twisti
+2007-01-29 21:37  twisti
 
-       * Updated from GNU Classpath:
-       
-       2005-12-17 Guilhem Lavaux <guilhem@kaffe.org>
-       
-       * native/fdlibm/fdlibm.h
-       (isnan): Define explicitly isnan if it is not a macro.
+       * src/vm/jit/alpha/asmpart.S (asm_compare_and_swap): Changed comment.
 
-2006-01-08 23:00  twisti
+2007-01-29 21:09  twisti
 
-       * loader_load_all_classes: Print exception when loading failed.
+       * src/vm/jit/mips/emit.c: Include fixes for cacaoh-changes.
+       * src/vm/jit/mips/md.c: Likewise.
+       * src/vm/jit/mips/codegen.c: Likewise
+       * src/vm/jit/mips/linux/md-os.c: Likewise
+       * src/vm/jit/mips/disass.c: Likewise
+       * src/vm/jit/mips/patcher.c: Likewise
+       * src/vm/jit/mips/md-abi.c: Likewise
 
-2006-01-08 22:38  twisti
+2007-01-29 20:24  twisti
 
-       * SUCK_xx_xx: We can only optimize little endian loads on i386 and
-       x86_64
-       machines. All others have problems with alignment.
+       * src/vm/jit/alpha/emit.c: Fixed includes for cacaoh-changes.
+       * src/vm/jit/alpha/codegen.c: Likewise.
+       * src/vm/jit/alpha/linux/md-os.c: Likewise.
+       * src/vm/jit/alpha/patcher.c: Likewise.
+       * src/vm/jit/alpha/md-abi.c: Likewise.
 
-2006-01-08 22:12  twisti
+2007-01-29 19:34  twisti
 
-       * Ignore *.class files.
+       * src/native/include/.cvsignore: Ignore all *.h files.
 
-2006-01-08 22:11  twisti
+2007-01-29 19:32  twisti
 
-       * java-assert.h: Unused, removed.
+       * src/vm/jit/x86_64/md.c: Fixed includes for cacaoh-changes.
 
-2006-01-08 22:01  twisti
+2007-01-29 19:28  twisti
 
-       * Added VM interface change to be consistent:
-       
-       2005-11-13 Archie Cobbs <archie@dellroad.org>
-       
-       * vm/reference/gnu/classpath/VMStackWalker.java (getClassLoader()):
-       added to fix an infinite loop bug.
-       * NEWS: note VM interface change.
+       * src/vm/jit/x86_64/emit.c: Fixed includes for cacaoh-changes.
+       * src/vm/jit/x86_64/codegen.c: Likewise.
+       * src/vm/jit/x86_64/patcher.c: Likewise.
+       * src/vm/jit/x86_64/md-abi.c: Likewise.
 
-2006-01-08 21:32  twisti
+2007-01-29 19:15  twisti
 
-       * suck_add: Check for lce != NULL before adding it to the list, since
-       zip_open can return NULL.
+       * src/vmcore/stackmap.c [ENABLE_STATISTICS] (vmcore/statistics.h):
+       Removed ifdef.
+       * src/vm/jit/jit.c: Likewise.
+       * src/vm/jit/emit-common.c: Likewise.
+
+2007-01-29 18:49  twisti
+
+       * This is a rather huge commit, which changes the build order of
+       various parts to be able to bootstrap cacaoh without any dependencies
+       on a generated header file. I include the file list from SVN, so we
+       can see what happened to the files.
+       
+       Here we go (D-files were mostly moved to src/vmcore):
+       
+       D src/vm/hashtable.h
+       D src/vm/options.h
+       M src/vm/properties.h
+       D src/vm/zip.c
+       D src/vm/class.c
+       D src/vm/suck.c
+       D src/vm/loader.c
+       M src/vm/builtin.c
+       M src/vm/string.c
+       D src/vm/zip.h
+       D src/vm/class.h
+       D src/vm/rt-timing.c
+       D src/vm/suck.h
+       D src/vm/annotation.c
+       M src/vm/builtin.h
+       D src/vm/loader.h
+       D src/vm/descriptor.c
+       D src/vm/annotation.h
+       D src/vm/rt-timing.h
+       D src/vm/resolve.c
+       D src/vm/method.c
+       D src/vm/descriptor.h
+       M src/vm/finalizer.c
+       D src/vm/resolve.h
+       D src/vm/method.h
+       D src/vm/references.h
+       D src/vm/classcache.c
+       D src/vm/statistics.c
+       D src/vm/classcache.h
+       D src/vm/statistics.h
+       M src/vm/initialize.c
+       M src/vm/access.c
+       D src/vm/stackmap.c
+       M src/vm/jit/powerpc/linux/md-abi.c
+       M src/vm/jit/powerpc/emit.c
+       M src/vm/jit/powerpc/md.c
+       M src/vm/jit/powerpc/codegen.c
+       M src/vm/jit/powerpc/patcher.c
+       M src/vm/jit/codegen-common.h
+       M src/vm/jit/abi.h
+       M src/vm/jit/stack.c
+       M src/vm/jit/optimizing/profile.c
+       M src/vm/jit/optimizing/recompile.c
+       M src/vm/jit/optimizing/ifconv.c
+       M src/vm/jit/optimizing/ifconv.h
+       M src/vm/jit/code.c
+       M src/vm/jit/tools/genoffsets.c
+       M src/vm/jit/code.h
+       M src/vm/jit/show.c
+       M src/vm/jit/dseg.c
+       M src/vm/jit/verify/typeinfo.h
+       M src/vm/jit/verify/typecheck-typeinferer.c
+       M src/vm/jit/verify/typecheck.c
+       M src/vm/jit/verify/typecheck-stackbased.c
+       M src/vm/jit/verify/typeinfo.c
+       M src/vm/jit/dseg.h
+       M src/vm/jit/loop/loop.h
+       M src/vm/jit/loop/graph.h
+       M src/vm/jit/allocator/simplereg.c
+       M src/vm/jit/parse.c
+       M src/vm/jit/asmpart.h
+       M src/vm/jit/stacktrace.c
+       M src/vm/jit/emit-common.c
+       M src/vm/jit/jit.c
+       M src/vm/jit/stacktrace.h
+       M src/vm/jit/codegen-common.c
+       M src/vm/jit/jit.h
+       M src/vm/initialize.h
+       M src/vm/access.h
+       D src/vm/stackmap.h
+       M src/vm/signal.c
+       M src/vm/exceptions.c
+       M src/vm/vm.c
+       D src/vm/field.c
+       D src/vm/linker.c
+       M src/vm/exceptions.h
+       M src/vm/stringlocal.h
+       D src/vm/utf8.c
+       D src/vm/field.h
+       M src/vm/Makefile.am
+       D src/vm/linker.h
+       D src/vm/hashtable.c
+       D src/vm/options.c
+       D src/vm/utf8.h
+       M src/vm/properties.c
+       M src/vm/signallocal.h
+       M src/cacao/Makefile.am
+       M src/native/jni.c
+       M src/native/vm/java_lang_Class.c
+       M src/native/vm/gnu/gnu_java_lang_management_VMThreadMXBeanImpl.c
+       M src/native/vm/gnu/gnu_java_lang_management_VMMemoryMXBeanImpl.c
+       M src/native/vm/gnu/java_security_VMAccessController.c
+       M src/native/vm/gnu/java_lang_VMClassLoader.c
+       M src/native/vm/gnu/java_lang_management_VMManagementFactory.c
+       M src/native/vm/gnu/gnu_java_lang_management_VMRuntimeMXBeanImpl.c
+       M src/native/vm/gnu/java_lang_VMClass.c
+       M src/native/vm/gnu/java_lang_VMThread.c
+       M src/native/vm/gnu/gnu_classpath_VMSystemProperties.c
+       M src/native/vm/gnu/java_lang_reflect_Method.c
+       M src/native/vm/gnu/java_lang_VMRuntime.c
+       M src/native/vm/gnu/java_lang_reflect_Field.c
+       M src/native/vm/gnu/gnu_classpath_VMStackWalker.c
+       M
+       src/native/vm/gnu/gnu_java_lang_management_VMClassLoadingMXBeanImpl.c
+       M src/native/vm/gnu/java_lang_reflect_Constructor.c
+       M src/native/vm/gnu/java_lang_VMThrowable.c
+       M src/native/vm/java_lang_Object.c
+       M src/native/vm/java_lang_Thread.c
+       D src/native/include/java_lang_Thread.h
+       D src/native/include/java_lang_Throwable.h
+       D src/native/include/java_util_Properties.h
+       D src/native/include/java_lang_VMThread.h
+       D src/native/include/java_lang_VMThrowable.h
+       D src/native/include/java_lang_ClassLoader.h
+       M src/native/include/Makefile.am
+       D src/native/include/java_lang_Cloneable.h
+       D src/native/include/java_lang_ThreadGroup.h
+       D src/native/include/java_lang_Class.h
+       D src/native/include/java_lang_Object.h
+       D src/native/include/java_lang_String.h
+       M src/native/jni.h
+       M src/native/native.c
+       M src/native/native.h
+       A src/toolbox/hashtable.h
+       M src/toolbox/list.c
+       M src/toolbox/avl.c
+       M src/toolbox/logging.c
+       M src/toolbox/Makefile.am
+       M src/toolbox/logging.h
+       A src/toolbox/hashtable.c
+       M src/mm/gc-common.h
+       M src/mm/Makefile.am
+       M src/mm/memory.c
+       M src/mm/boehm.c
+       M src/Makefile.am
+       M src/threads/none/threads.h
+       M src/threads/none/lock.h
+       M src/threads/native/threads.h
+       M src/threads/native/lock.c
+       M src/threads/native/threads.c
+       AM src/vmcore
+       A src/vmcore/options.h
+       A src/vmcore/zip.c
+       A src/vmcore/suck.c
+       A src/vmcore/class.c
+       A src/vmcore/loader.c
+       A src/vmcore/zip.h
+       A src/vmcore/annotation.c
+       A src/vmcore/suck.h
+       A src/vmcore/class.h
+       A src/vmcore/rt-timing.c
+       A src/vmcore/loader.h
+       A src/vmcore/descriptor.c
+       A src/vmcore/resolve.c
+       A src/vmcore/annotation.h
+       A src/vmcore/rt-timing.h
+       A src/vmcore/method.c
+       A src/vmcore/descriptor.h
+       A src/vmcore/resolve.h
+       A src/vmcore/method.h
+       A src/vmcore/references.h
+       A src/vmcore/classcache.c
+       A src/vmcore/statistics.c
+       A src/vmcore/.cvsignore
+       A src/vmcore/classcache.h
+       A src/vmcore/statistics.h
+       A src/vmcore/stackmap.c
+       A src/vmcore/stackmap.h
+       A src/vmcore/field.c
+       A src/vmcore/linker.c
+       A src/vmcore/utf8.c
+       A src/vmcore/field.h
+       A src/vmcore/Makefile.am
+       A src/vmcore/linker.h
+       A src/vmcore/options.c
+       A src/vmcore/utf8.h
+       M src/cacaoh/cacaoh.c
+       M src/cacaoh/headers.h
+       M src/cacaoh/Makefile.am
+       M src/cacaoh/headers.c
+       A src/cacaoh/dummy.c
+       M configure.ac
+
+2007-01-29 11:52  twisti
+
+       * src/vm/jit/arm/emit.c [ENABLE_SOFTFLOAT] (emit_load): Implemented.
+       (emit_store): Changed implementation to be more clear.
+       (emit_copy): Likewise.
 
-2006-01-08 19:14  twisti
+2007-01-29 10:19  twisti
 
-       * JAVAC: Removed.
+       * src/vm/jit/arm/codegen.c (codegen): ICMD_DASTORE: bugfix for
+       softfloat.
 
-2006-01-08 19:13  twisti
+2007-01-28 23:35  twisti
 
-       * SOURCE_FILES: Added.
-       * JAVAC: Removed.
-       * checkall: Renamed to check.
+       * src/vm/jit/mips/codegen.c (createcompilerstub): Don't generate a
+       codeinfo.
 
-2006-01-08 19:12  twisti
+2007-01-28 22:57  twisti
 
-       * Use $(mkdir_p), $(JAVAC) and $(ZIP) variables.
+       * src/vm/jit/arm/codegen.c (createcompilerstub): Don't generate a
+       codeinfo.
 
-2006-01-08 19:11  twisti
+2007-01-27 15:52  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.
+       * configure.ac: Use AC_CHECK_SOFTFLOAT, AC_CHECK_SOFT_FLOAT_CMP and
+       AC_CHECK_SOFT_DOUBLE_CMP.
+       * m4/soft.m4: New file.
+       
+       * src/vm/builtin.c [!SUPPORT_FLOAT_CMP] (builtin_fcmpl): Added
+       conditional.
+       [!SUPPORT_DOUBLE_CMP] (builtin_dcmpl): Likewise.
+       
+       * src/vm/builtintable.inc (builtintable_automatic):
+       [!SUPPORT_FLOAT_CMP] (BUILTIN_fcmpl): Added.
+       [!SUPPORT_DOUBLE_CMP] (BUILTIN_dcmpl): Likewise.
+       (builtintable_function): [__MIPS__ && SIZEOF_VOID_P != 4]
+       (BUILTIN_arraycopy): Added.
+       
+       * src/vm/jit/mips/codegen.c (codegen): Added SUPPORT_FLOAT_CMP for
+       ICMD_FCMPx, and SUPPORT_DOUBLE_CMP for ICMD_DCMPx.
+       
+       * src/vm/jit/arm/arch.h (SUPPORT_FLOAT_CMP, SUPPORT_DOUBLE_CMP):
+       Added.
+       * src/vm/jit/powerpc/arch.h: Likewise.
+       * src/vm/jit/sparc64/arch.h: Likewise.
+       * src/vm/jit/alpha/arch.h: Likewise.
+       * src/vm/jit/s390/arch.h: Likewise.
+       * src/vm/jit/mips/arch.h: Likewise.
+       * src/vm/jit/parisc/arch.h: Likewise.
+       * src/vm/jit/m68k/arch.h: Likewise.
+       * src/vm/jit/i386/arch.h: Likewise.
+       * src/vm/jit/powerpc64/arch.h: Likewise.
+       * src/vm/jit/x86_64/arch.h: Likewise.
+       
+       * src/vm/jit/mips/patcher.c (vm/jit/md.h): Added.
 
-2006-01-08 19:09  twisti
+2007-01-27 13:01  twisti
 
-       * Macros to check for a Java compiler, taken from
-       http://ac-archive.sourceforge.net/.
+       * src/vm/loader.c (load_newly_created_array): c->interfacescount was
+       always set to 0, fixed.
 
-2006-01-04 09:35  twisti
+2007-01-27 00:58  ajordan
 
-       * Removed src/toolbox/avl.[ch] copyright.
+       * src/vm/jit/sparc64/emit.c: Moved exception check generation to emit
+       functions.
+       * src/vm/jit/sparc64/codegen.h: Likewise.
+       * src/vm/jit/sparc64/codegen.c: Likewise.
+       
+       * src/vm/jit/sparc64/md.c: Added SPARC specific functions for getting
+       JIT information from the stack frame.
+       
+       * src/vm/jit/sparc64/linux/md-os.c: Fixed icache flushing when start
+       address is not doubleword aligned.
 
-2006-01-04 09:34  twisti
+2007-01-23 13:05  twisti
 
-       * avl_dump: Only print node->data.
+       * src/vm/jit/mips/emit.c (emit_patcher_stubs): Use
+       dseg_add_functionptr instead of dseg_add_address.
 
-2006-01-03 23:46  twisti
+2007-01-22 20:16  twisti
 
-       * Use new avl tree code.
-       * Rewritten.
+       * src/native/vm/gnu/gnu_classpath_VMSystemProperties.c (postInit):
+       Added missing file://.
 
-2006-01-03 23:44  twisti
+2007-01-22 17:25  twisti
 
-       * exit_handler: Removed print_dynamic_super_statistics.
-       * print_stats: Added print_dynamic_super_statistics.
+       * src/cacao/cacao.c (main): Fixed typo.
 
-2006-01-03 23:43  twisti
+2007-01-22 17:22  twisti
 
-       * threads.h: Added.
-       * builtin.h: Likewise.
+       * src/lib/vm/reference/gnu/classpath/VMSystemProperties.java: New
+       file.
+       
+       * src/lib/Makefile.am (VM_JAVA_FILES): Added
+       gnu/classpath/VMSystemProperties.java.
+       (VM_CLASS_FILES): Likewise.
+       
+       * src/native/include/Makefile.am (VM_ZIP): Added.
+       (DO_HEADER_FILES): Depend on VM_ZIP.
 
-2006-01-03 23:08  twisti
+2007-01-22 17:03  twisti
 
-       * CallNonvirtualBooleanMethodA: Added missing ;.
+       * src/vm/properties.c (properties_get): Search list forward, as we
+       don't have duplicate entries anymore.
+       (properties_system_add): New function.
+       * src/vm/properties.h (properties_system_add): Added.
+       
+       * src/native/vm/gnu/gnu_classpath_VMSystemProperties.c (postInit): New
+       function.
 
-2006-01-03 23:05  twisti
+2007-01-22 15:59  twisti
 
-       * ENABLE_STATISTICS: Fixed typo.
+       * src/vm/jit/mips/md.c (md_get_method_patch_address): Fixed compiler
+       warning.
 
-2006-01-02 21:01  christian
+2007-01-22 14:02  twisti
 
-       typeing error
+       * src/cacao/cacao.c (main): Fixed compiler warning.
 
-2006-01-02 17:13  twisti
+2007-01-22 11:45  twisti
 
-       * nregdescint, nregdescfloat: Moved to md-abi.c.
+       * src/vm/jit/arm/codegen.c (vm/jit/md.h): Added.
+       * src/vm/jit/arm/patcher.c (vm/jit/md.h): Likewise.
 
-2006-01-02 17:12  twisti
+2007-01-22 01:43  ajordan
 
-       * nregdescint, nregdescfloat: Added.
+       * src/vm/jit/sparc64/codegen.h: Fixed big disp handling.
+       * src/vm/jit/sparc64/codegen.c: Likewise.
 
-2006-01-02 17:11  twisti
+2007-01-22 00:58  twisti
 
-       * noinst_HEADERS: Removed md-abi.inc.
+       * src/vm/jit/jit.h (md_init, md_get_method_patch_address,)
+       (md_cacheflush, md_icacheflush, md_dcacheflush, intrp_md_init):
+       Removed.
+       
+       * src/vm/jit/md.h: New file.
+       * src/vm/jit/Makefile.am (noinst_HEADERS): Added md.h.
+       
+       * src/vm/jit/jit.c (vm/jit/md.h): Added.
+       * src/vm/jit/codegen-common.c (vm/jit/md.h): Likewise.
+       * src/vm/vm.c (vm/jit/md.h): Likewise.
 
-2006-01-02 16:40  twisti
+2007-01-19 01:13  edwin
 
-       * signal_handler_sigsegv: Replaced functionptr with u1*.
+       * src/vm/options.h, src/vm/method.c, src/vm/jit/inline/inline.c,
+       src/vm/jit/jit.c, src/vm/vm.c, src/vm/linker.c, src/vm/options.c,
+       src/cacaoh/headers.c: Cleaned up inlining options.
+       
+       * src/vm/exceptions.c: Removed a left-over use of "useinlining".
+       
+       * configure.ac: New configure flag --enable-inlining-debug.
 
-2006-01-02 16:18  twisti
+2007-01-18 13:21  twisti
 
-       * nregdescint, nregdescfloat: Moved to md-abi.c.
+       * src/vm/jit/arm/md-asm.h: Renamed argument defines to start with 0.
+       * src/vm/jit/arm/asmpart.S: Likewise.
 
-2006-01-02 16:17  twisti
+2007-01-18 13:11  twisti
 
-       * nregdescint, nregdescfloat: Added.
-       * noinst_HEADERS: Removed md-abi.inc.
+       * src/vm/vm.c (usage): Removed CACAO options.
+       (XXusage): New function.
+       (vm_create): Handle OPT_XX.
 
-2006-01-02 16:12  twisti
+2007-01-18 12:55  twisti
 
-       * INCLUDES: Added OS_DIR, some archs have their md-abi.* files in the
-       os
-       directory.
+       * src/vm/jit/powerpc/asmpart.S (asm_compare_and_swap): New function.
+       (asm_memory_barrier): Likewise.
 
-2006-01-02 16:08  christian
+2007-01-18 11:43  twisti
 
-       *** empty log message ***
+       * src/vm/jit/mips/md-asm.h (RESTORE_ARGUMENT_REGISTERS)
+       (RESTORE_ARGUMENT_REGISTERS, SAVE_TEMPORARY_REGISTERS)
+       (RESTORE_TEMPORARY_REGISTERS): Added missing float registers.
+       
+       * src/vm/jit/mips/asmpart.S (asm_patcher_wrapper): Changed stack size
+       for float registers.
 
-2006-01-02 16:04  twisti
+2007-01-16 22:18  pm
 
-       * nregdescint, nregdescfloat: Moved to md-abi.c.
+       Initial import of s390 codegen, codebase is copyed from x86_64.
 
-2006-01-02 16:03  twisti
+2007-01-16 12:59  twisti
 
-       * nregdescint, nregdescfloat: Added.
-       * noinst_HEADERS: Removed md-abi.inc.
+       * src/cacaoh/headers.c (asm_compare_and_swap): Added.
+       (asm_memory_barrier): Likewise.
 
-2006-01-02 14:32  christian
+2007-01-16 12:52  twisti
 
-       Removed old debug message
+       * src/vm/jit/x86_64/asmpart.S (asm_patcher_wrapper): Removed unused
+       sizestackframeinfo.
 
-2006-01-02 14:26  twisti
+2007-01-16 09:54  twisti
 
-       * md-abi.inc: Removed.
+       * src/vm/jit/asmpart.h (asm_compare_and_swap): Added.
+       (asm_memory_barrier): Likewise.
+       
+       * src/vm/jit/alpha/asmpart.S (asm_compare_and_swap): New function.
+       (asm_memory_barrier): Likewise.
 
-2006-01-02 14:25  twisti
+2007-01-15 10:28  twisti
 
-       * nregdescint, nregdescfloat: Moved to md-abi.c.
+       * src/vm/jit/powerpc64/codegen.c (codegen): Ported replacement.
 
-2006-01-02 14:24  twisti
+2007-01-13 22:54  edwin
 
-       * nregdescint, nregdescfloat: Added.
-       * noinst_HEADERS: Removed md-abi.inc.
+       * src/vm/jit/verify/typecheck-typeinferer.c: Check basic types in
+       debug mode.
 
-2006-01-02 14:11  christian
+2007-01-13 22:44  edwin
 
-       Corrected \"\" to \<\> for system header include
+       * src/vm/jit/verify/generate.pl: Further changes for the type inferer.
+       
+       * src/vm/jit/verify/typecheck-typeinferer-gen.inc: Regenerated.
 
-2006-01-02 14:07  twisti
+2007-01-13 22:39  edwin
 
-       * nregdescint, nregdescfloat: Moved to md-abi.c.
-       * noinst_HEADERS: Removed md-abi.inc.
+       * src/vm/rt-timing.h: Fixed position of #include "config.h".
+       (rt_timing_diff_usec): Export.
+       
+       * src/vm/rt-timing.c (rt_timing_diff_usec): Export.
 
-2006-01-02 14:06  twisti
+2007-01-13 22:37  edwin
 
-       * nregdescint, nregdescfloat: Added.
-       * disassinstr: Some code improvement.
+       * src/vm/jit/jit.c (jit_compile_intern): Removed unused code and fixed
+       instrumentation.
 
-2006-01-02 14:05  twisti
+2007-01-13 22:30  edwin
 
-       * md-abi.inc: Removed.
+       * src/vm/jit/inline/inline.c: Better inlining decisions. Implemented
+       knapsack heuristics. More statistics. Refactoring and fixes.
+       
+       * src/vm/jit/inline/inline_debug.inc: Fixed to make it compile.
 
-2006-01-02 13:05  christian
+2007-01-13 16:52  ajordan
 
-       Changed register allocator .inc to .c files and moved them to
-       src/vm/jit/allocator
+       * src/vm/jit/sparc64/md-abi.h: The JIT stackframes now also includes
+       the 6 parameter slots required when doing a ABI compliant C call.
+       * src/vm/jit/sparc64/emit.c: Likewise.
+       * src/vm/jit/sparc64/codegen.c: Likewise.
+       * src/vm/jit/sparc64/patcher.c: Likewise.
+       * src/vm/jit/sparc64/asmpart.S: Likewise.
+       
+       * src/vm/jit/sparc64/codegen.h: Added include.
+       
+       * src/vm/jit/sparc64/md.c: Added method, to get framepointer from
+       saved register window. (for temporary fix in JIT stack walking)
 
-2006-01-02 12:59  christian
+2007-01-12 17:13  twisti
 
-       Changed register allocator .inc to .c files and moved them to
-       src/vm/jit/allocator
+       * src/vm/jit/arm/linux/md-os.c (md_signal_handler_sigsegv): Use
+       codegen_get_pv_from_pc.
 
-2006-01-02 12:22  twisti
+2007-01-11 22:39  twisti
 
-       * Fixed result message for debug.
+       * src/vm/jit/mips/md-abi.h: Merged MIPS32 code.
+       * src/vm/jit/mips/emit.c: Likewise.
+       * src/vm/jit/mips/codegen.c: Likewise.
+       * src/vm/jit/mips/codegen.h: Likewise.
+       * src/vm/jit/mips/linux/md-os.c: Likewise.
+       * src/vm/jit/mips/asmpart.S: Likewise.
+       * src/vm/jit/mips/md-abi.c: Likewise.
 
-2006-01-02 12:10  twisti
+2007-01-11 22:36  twisti
 
-       * Typo.
+       * src/mm/memory.c (mem_realloc): Fixed compiler warning.
 
-2006-01-02 12:04  twisti
+2007-01-11 14:59  twisti
 
-       * Added ltdl.h check.
+       * file:///ahome/cacao/svn/cacao-m68k/trunk: Moved to...
+       * file:///ahome/cacao/svn/cacao/trunk/src/vm/jit/m68k: ...here.
 
-2006-01-02 11:34  twisti
+2007-01-11 14:28  twisti
 
-       * Fixed ltdl.h include path.
+       * src/vm/exceptions.c (exceptions_throw_internalerror): Don't return a
+       value.
+       (exceptions_throw_outofmemoryerror): Likewise.
 
-2006-01-02 01:34  twisti
+2007-01-11 14:22  twisti
 
-       * Fixed ltdl.h include path.
+       * src/vm/jit/arm/emit.c (emit_exception_stubs): Renamed eref to er,
+       use md_codegen_patch_branch.
+       
+       * src/vm/jit/arm/codegen.c (codegen): Use codegen_resolve_branchrefs,
+       use exceptions_throw_internalerror.
+       
+       * src/vm/jit/arm/codegen.h (M_STACK_LOAD_FLT_TYPED): Removed.
+       (M_STACK_STORE_FLT_TYPED): Likewise.
 
-2006-01-02 01:15  twisti
+2007-01-11 14:19  twisti
 
-       * I don't think we really need them, but they are still in Attic.
+       * configure.ac [ENABLE_STATICVM] (AC_CHECK_LIB(dl)): Only perform the
+       check if we want a static VM.
+       (AC_CONFIG_FILES): Added src/vm/jit/arm/Makefile and
+       src/vm/jit/arm/linux/Makefile.
+       * src/vm/jit/Makefile.am (DIST_SUBDIRS): Added arm.
 
-2006-01-02 01:10  twisti
+2007-01-11 13:58  twisti
 
-       * Generated changelog for 2005.
+       * Moved loaded arm files.
 
-2006-01-02 01:05  twisti
+2007-01-10 10:08  twisti
 
-       * unzip.[ch], libffi, libltdl: Removed.
+       * src/vm/builtin.c (builtin_newarray): Removed debug output.
 
-2006-01-01 21:53  twisti
+2007-01-10 10:03  twisti
 
-       * Removed libltdl.
+       * src/vm/suck.c (suck_add): Use vm_abort instead of
+       throw_cacao_exception_exit.
+       (suck_float, suck_double): Use exceptions_throw_internalerror.
+       
+       * src/vm/loader.c (load_class_bootstrap): Use vm_abort instead of
+       throw_cacao_exception_exit.
+       * src/vm/jit/sparc64/emit.c (emit_patcher_stubs): Likewise.
+       * src/vm/jit/mips/md.c (md_patch_replacement_point): Likewise.
+       * src/vm/vm.c (vm_create): Likewise.
+       
+       * src/vm/builtin.c (builtin_newarray): Use
+       exceptions_throw_outofmemoryerror.
+       
+       * src/vm/descriptor.c (descriptor_pool_lookup_classref): Use
+       exceptions_throw_internalerror.
+       * src/vm/classcache.c (classcache_store_unique): Likewise.
+       * src/vm/jit/powerpc/codegen.c (codegen): Likewise.
+       * 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.
+       * src/vm/jit/intrp/codegen.c (codegen): Likewise.
+       * src/vm/jit/x86_64/codegen.c (codegen): Likewise.
+       * src/vm/jit/stack.c (stack_reanalyse_block): Likewise.
+       (stack_analyse): Likewise.
+       * src/vm/jit/verify/typeinfo.c (typeinfos_init_from_methoddesc):
+       Likewise.
+       (typeinfo_init_component): Likewise.
+       * src/vm/jit/verify/typecheck-builtins.inc: Likewise.
+       * src/vm/jit/allocator/lsra.c (lsra_scan_registers_canditates):
+       Likewise.
+       * src/vm/jit/allocator/simplereg.c (simplereg_allocate_temporaries):
+       Likewise.
+       * src/vm/jit/allocator/liveness.c
+       (liveness_scan_registers_canditates): Likewise.
+       
+       * src/vm/exceptions.c (exceptions_throw_outofmemory_exit): Removed.
+       (new_internalerror): Removed.
+       (exceptions_throw_internalerror): Rewritten.
+       (exceptions_throw_outofmemoryerror): Added.
+       
+       * src/vm/exceptions.h: Likewise.
+       
+       * src/vm/utf8.c (utf_get_number_of_u2s): Use
+       exceptions_throw_internalerror instead of throw_cacao_exception_exit.
+       
+       * src/native/native.c (native_init): Changed debug output.
+       
+       * src/mm/memory.c (memory_checked_alloc): Use vm_abort instead of
+       exceptions_throw_outofmemory_exit.
+       (mem_realloc): Changed debug output.
+       * src/mm/boehm.c (gc_out_of_memory): Use vm_abort and
+       exceptions_throw_outofmemoryerror.
+       
+       * src/cacaoh/cacaoh.c (cacaoh_abort): Added.
+       (main): Use cacaoh_abort.
+       
+       * src/cacaoh/headers.c (throw_cacao_exception_exit): Removed.
+       (exceptions_throw_outofmemory_exit): Likewise.
+       (new_internalerror): Renamed to exceptions_throw_internalerror.
+       (exceptions_throw_outofmemoryerror): Added.
+       
+       * src/vm/jit/tools/genoffsets.c (main): Don't print
+       sizestackframeinfo.
 
-2006-01-01 21:38  twisti
+2007-01-10 09:28  twisti
 
-       * We now use the system libltdl.
+       * src/vm/jit/parisc/linux/Makefile.am (libmd_la_SOURCES): Commented.
 
-2006-01-01 21:32  twisti
+2007-01-08 23:49  twisti
 
-       * Changed text of kaffe's stuff, dalibor pointed this out.
+       * configure.ac: Added GPL header.
 
-2006-01-01 21:29  twisti
+2007-01-08 23:48  twisti
 
-       * AC_LIBLTDL_CONVENIENCE, AC_SUBST(LIBLTDL): Removed.
-       * AC_COMPILE_CHECK_SIZEOF: Replaced with AC_CHECK_SIZEOF.
+       * src/vm/vm.c (vm_create): Fixed off-by-one bug.
 
-2006-01-01 21:22  twisti
+2007-01-08 16:56  ajordan
 
-       * m4 macros have a different copyright header.
+       * src/vm/jit/sparc64/codegen.c: Fixed argument passing via the stack
+       (for JIT methods).
 
-2006-01-01 21:13  twisti
+2007-01-07 20:56  ajordan
 
-       * 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.
+       * src/vm/jit/sparc64/codegen.c: Implemented INSTANCEOF and CHECKCAST
+       ICMDs
+       * src/vm/jit/sparc64/patcher.c: and their respective patchers.
+       
+       * src/vm/jit/sparc64/codegen.h: Added comparison instructions.
+       
+       * src/vm/jit/sparc64/linux/md-os.c: Implemented instruction cache
+       flush for linux.
+       * src/vm/jit/sparc64/md.c: Likewise.
 
-2006-01-01 20:55  twisti
+2007-01-06 14:29  twisti
 
-       * Not required.
+       * configure.ac: Check for libdl.
 
-2006-01-01 19:39  twisti
+2007-01-06 14:27  twisti
 
-       * Removed libltdlc.la.
-       * DIST_SUBDIRS: Removed libltdl.
-       * SUBDIRS: Likewise.
+       * src/cacao/cacao.c (main): Print function name in error output.
 
-2006-01-01 19:38  twisti
+2007-01-06 01:27  edwin
 
-       * Added libltdl check.
-       * AC_CONFIG_SUBDIRS: Removed src/libltdl.
+       * src/vm/jit/inline/inline.c: Many refactorings and comments.
 
-2006-01-01 18:39  twisti
+2007-01-04 21:48  twisti
 
-       * libarch_la_SOURCES: Removed symcat.h.
+       * src/mm/memory.c (mem_realloc): Use vm_abort.
 
-2006-01-01 18:34  twisti
+2007-01-03 22:39  edwin
 
-       * Use system one.
+       * src/vm/jit/verify/typecheck-typeinferer.c: New type inference pass.
+       * src/vm/jit/verify/typecheck-typeinferer.h: Likewise.
+       
+       * src/vm/jit/verify/typecheck-common.c: Moved code from typecheck.c
+       that can be shared between the variables-based verifier and the
+       type inference pass to this file.
+       * src/vm/jit/verify/typecheck-common.h: Likewise.
+       
+       * src/vm/jit/verify/typecheck-multianewarray.inc: Moved code for
+       type checking/infering MULTIANEWARRAY to this file.
+       
+       * src/vm/jit/verify/icmds.c: Adapted for generating the type
+       infererence pass.
+       * src/vm/jit/verify/typecheck-invoke.inc: Likewise.
+       * src/vm/jit/verify/typecheck-fields.inc: Likewise.
+       * src/vm/jit/verify/typecheck.c: Likewise.
+       * src/vm/jit/verify/Makefile.am: Likewise.
+       * src/vm/jit/verify/typecheck-builtins.inc: Likewise.
+       
+       * src/vm/jit/verify/typecheck-typeinferer-gen.inc: Generated.
+       
+       * src/vm/jit/verify/typecheck-stackbased-gen.inc: Regenerated.
+       * src/vm/jit/verify/typecheck-variablesbased-gen.inc: Regenerated.
 
-2006-01-01 18:33  twisti
+2007-01-03 22:22  edwin
 
-       * libarch_la_SOURCES: Removed symcat.h.
+       * src/vm/jit/verify/icmds.c: Added comments.
+       
+       * src/vm/jit/verify/typecheck-stackbased-gen.inc,
+       src/vm/jit/verify/typecheck-variablesbased-gen.inc: Regenerated.
 
-2006-01-01 18:30  twisti
+2007-01-03 22:20  edwin
 
-       * generic_symbol_at_address: Print only 8 bytes.
+       * src/vm/method.c, src/vm/method.h (method_count_implementations):
+       New function.
 
-2006-01-01 18:21  twisti
+2007-01-03 22:08  edwin
 
-       * 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.
+       * src/vm/jit/verify/generate.pl: Added options --typeinferer and
+       --debug. Prepared for generating the type inference pass.
 
-2006-01-01 18:20  twisti
+2007-01-02 21:52  twisti
 
-       * libarch_la_SOURCES: Removed ansidecl.h, bfd.h and dis-buf.c.
-       * config.h, vm/jit/codegen-common.h: Added.
+       * configure.ac (AC_CONFIG_FILES): Added
+       src/vm/jit/parisc/linux/Makefile.
+       * src/vm/jit/parisc/Makefile.am (SUBDIRS): Set to $(OS_DIR).
+       * src/vm/jit/parisc/linux/Makefile.am: New file.
 
-2006-01-01 16:40  twisti
+2007-01-02 21:12  edwin
 
-       * Changed include to use system headers.
+       * src/vm/jit/emit-common.h (emit_replacement_stubs): Only declare
+       prototype if ENABLE_REPLACEMENT.
 
-2006-01-01 16:39  twisti
+2007-01-02 21:11  edwin
 
-       * 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.
+       * src/vm/jit/mips/codegen.c (codegen): Use REPLACEMENT_ macros.
 
-2006-01-01 16:37  twisti
+2007-01-02 20:50  edwin
 
-       * libarch_la_SOURCES: Removed ansidecl.h, bfd.h and dis-buf.c.
+       * src/vm/jit/jit.c (jit_invalidate_code): Require ENABLE_REPLACEMENT.
 
-2006-01-01 16:35  twisti
+2007-01-02 20:40  edwin
 
-       * DEC OSF cc only defines __alpha.
+       * configure.ac: Added option --enable-replacement.
+       
+       * src/vm/jit/Makefile.am: Compile replace.c only for
+       ENABLE_REPLACEMENT.
+       
+       * src/vm/jit/replace.h: Define empty macros unless ENABLE_REPLACEMENT.
+       
+       * src/vm/jit/powerpc/emit.c: Enclosed replacement-specific code in
+       #if ENABLE_REPLACEMENT.
+       * src/vm/jit/powerpc/md.c: Likewise.
+       * src/vm/jit/powerpc/asmpart.S: Likewise.
+       * src/vm/jit/codegen-common.h: Likewise.
+       * src/vm/jit/sparc64/emit.c: Likewise.
+       * src/vm/jit/sparc64/md.c: Likewise.
+       * src/vm/jit/alpha/emit.c: Likewise.
+       * src/vm/jit/alpha/md.c: Likewise.
+       * src/vm/jit/alpha/asmpart.S: Likewise.
+       * src/vm/jit/code.c: Likewise.
+       * src/vm/jit/code.h: Likewise.
+       * src/vm/jit/tools/genoffsets.c: Likewise.
+       * src/vm/jit/show.c: Likewise.
+       * src/vm/jit/mips/emit.c: Likewise.
+       * src/vm/jit/mips/md.c: Likewise.
+       * src/vm/jit/mips/asmpart.S: Likewise.
+       * src/vm/jit/powerpc64/md.c: Likewise.
+       * src/vm/jit/powerpc64/asmpart.S: Likewise.
+       * src/vm/jit/i386/emit.c: Likewise.
+       * src/vm/jit/i386/md.c: Likewise.
+       * src/vm/jit/i386/asmpart.S: Likewise.
+       * src/vm/jit/asmpart.h: Likewise.
+       * src/vm/jit/x86_64/emit.c: Likewise.
+       * src/vm/jit/x86_64/md.c: Likewise.
+       * src/vm/jit/x86_64/asmpart.S: Likewise.
+       * src/vm/jit/codegen-common.c: Likewise.
+       * src/vm/jit/jit.h: Likewise.
 
-2006-01-01 16:34  twisti
+2007-01-02 19:40  edwin
 
-       * class_resolvefield: Renamed except to throwexception since some
-       compilers
-       have a builtin except macro (like DEC OSF cc).
-       * class_resolveclassmethod: Likewise.
-       * class_resolveinterfacemethod: Likewise.
+       * src/vm/jit/i386/codegen.c (codegen): Cleaned up to use REPLACEMENT_
+       macros.
 
-2006-01-01 16:31  twisti
+2007-01-02 16:20  twisti
 
-       * zip_open: Handle compiler error with DEC OSF's cc.
+       * tests/regression/jctest.java: Print hex numbers too.
+       * tests/regression/jctest.output: Updated.
diff --git a/NEWS b/NEWS
index b967b2442ef6aca35702d2520d4e1e1462ec7884..78c54a0602240ebb33dd11d6d8afa5d2222f931a 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,6 +1,18 @@
-New in release 0.98 (xxx xx, 2006)
-
+New in release 0.98 (June 6, 2007)
+
+  * ARM and MIPS32 code generators are now open-source.
+  * PowerPC64 code generator was added.
+  * Sun's phoneme CLDC-1.1 classes can now be used as Java core
+    library.
+  * Exception throwing code was completely rewritten, this saves JIT
+    code size from 20% up to 50%.
+  * Lock-record code was rewritten and a memory leak was fixed.
+  * Threads code has been reworked and improved.
+  * Exception code has been reworked and improved.
   * Implemented Class/Method/Field getSignature.
+  * A lot of stuff has been reworked, fixed or improved in the whole
+    VM code.
+  * Fixed memory leak in threads code.
 
 
 New in release 0.97 (October 30, 2006)
index 62b76eb92258b3241ffa17c9e805271b2cfbeb15..85e884b3afa565474b80a0e83d27862bcfcfb6eb 100644 (file)
@@ -22,16 +22,16 @@ dnl along with this program; if not, write to the Free Software
 dnl Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 dnl 02110-1301, USA.
 dnl 
-dnl $Id: configure.ac 7902 2007-05-11 22:33:15Z twisti $
+dnl $Id: configure.ac 8022 2007-06-06 11:31:28Z twisti $
 
 dnl Process this file with autoconf to produce a configure script.
 
 
-AC_INIT(cacao, 0.98rc, cacao@cacaojvm.org)
+AC_INIT(cacao, 0.98+svn, cacao@cacaojvm.org)
 AC_CONFIG_SRCDIR(src/cacao/cacao.c)
 AC_CANONICAL_HOST
 AC_PREREQ(2.59)
-AM_INIT_AUTOMAKE([1.9.0])
+AM_INIT_AUTOMAKE([1.9.0 dist-bzip2])
 AM_MAINTAINER_MODE
 
 AM_CONFIG_HEADER([config.h])
@@ -215,6 +215,7 @@ AC_HEADER_STDC
 
 dnl keep them alpha-sorted!
 AC_CHECK_HEADERS([fcntl.h])
+AC_CHECK_HEADERS([stdlib.h])
 AC_CHECK_HEADERS([string.h])
 AC_CHECK_HEADERS([time.h])
 AC_CHECK_HEADERS([unistd.h])
@@ -250,6 +251,7 @@ AC_FUNC_MMAP
 
 dnl keep them alpha-sorted!
 AC_CHECK_FUNCS([calloc])
+AC_CHECK_FUNCS([confstr])
 AC_CHECK_FUNCS([getpagesize])
 AC_CHECK_FUNCS([free])
 AC_CHECK_FUNCS([getcwd])
@@ -262,6 +264,7 @@ AC_CHECK_FUNCS([mmap])
 AC_CHECK_FUNCS([mprotect])
 AC_CHECK_FUNCS([scandir])
 AC_CHECK_FUNCS([strdup])
+AC_CHECK_FUNCS([strstr])
 AC_CHECK_FUNCS([time])
 
 
@@ -890,6 +893,20 @@ dnl check for some programs we need
 AC_PROG_JAVAC
 AC_PROG_JAR
 
+AC_CHECK_HEADERS(
+       [regex.h], 
+       [
+               dnl If debug build and regex.h available, enable debug filter
+               if test x"${NDEBUG}" = "xno"; then
+                       AC_DEFINE(ENABLE_DEBUG_FILTER, 1, [debug filter])
+               fi
+               dnl If vmlog enambled and regex.h available, enable vmlogfilter
+               AM_CONDITIONAL([ENABLE_VMLOGFILTER], [test x"${ENABLE_VMLOG}" = "xyes"])
+       ],
+       [
+               AM_CONDITIONAL([ENABLE_VMLOGFILTER], [false])
+       ]
+)
 
 dnl finally pass CFLAGS to Makefiles via AM_CFLAGS
 CFLAGS=$OPT_CFLAGS
index c24d251073bf36dad21974f70a85923f3258d3e4..7c8e33edf607799566b05cf627639bc55ea2b7cd 100644 (file)
@@ -130,7 +130,7 @@ sem_t GC_suspend_ack_sem;
 #endif
 
 void GC_suspend_handler_inner(ptr_t sig_arg);
-int cacao_suspendhandler(void *);
+/* int cacao_suspendhandler(void *); */
 
 #if defined(IA64) || defined(HP_PA)
 extern void GC_with_callee_saves_pushed();
@@ -149,8 +149,8 @@ void GC_suspend_handler(int sig, siginfo_t *info, void *uctx)
 {
    int old_errno = errno;
 
-   if (cacao_suspendhandler(uctx))
-     return;
+/*    if (cacao_suspendhandler(uctx)) */
+/*      return; */
 
    GC_suspend_handler_inner((ptr_t)(word)sig);
    errno = old_errno;
index f3ff12994111b0eae970b1c31eba996113485b5b..083e02ae666e8b44ce8c3cd219e4136fe4d07fb0 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: native.c 7918 2007-05-20 20:42:18Z michi $
+   $Id: native.c 8027 2007-06-07 10:30:33Z michi $
 
 */
 
@@ -127,7 +127,8 @@ bool native_init(void)
 
        /* register the intern native functions */
 
-       nativevm_init();
+       if (!nativevm_init())
+               return false;
 
        /* everything's ok */
 
@@ -923,38 +924,6 @@ java_objectheader *native_new_and_init_string(classinfo *c, java_objectheader *s
 }
 
 
-java_objectheader *native_new_and_init_int(classinfo *c, s4 i)
-{
-       methodinfo *m;
-       java_objectheader *o;
-
-       if (c == NULL)
-               vm_abort("native_new_and_init_int: c == NULL");
-
-       /* create object */
-
-       o = builtin_new(c);
-       
-       if (o == NULL)
-               return NULL;
-
-       /* find initializer */
-
-       m = class_resolveclassmethod(c, utf_init, utf_int__void, NULL, true);
-
-       /* initializer not found  */
-
-       if (m == NULL)
-               return NULL;
-
-       /* call initializer */
-
-       (void) vm_call_method(m, o, i);
-
-       return o;
-}
-
-
 java_objectheader *native_new_and_init_throwable(classinfo *c, java_objectheader *t)
 {
        java_objectheader *o;
index 89399a3872e2b2915ab5628350eeac7532b7dc26..9904ab696c45a8c4a11a0cbe8d21ca75c3e85261 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: native.h 7918 2007-05-20 20:42:18Z michi $
+   $Id: native.h 8027 2007-06-07 10:30:33Z michi $
 
 */
 
@@ -141,8 +141,6 @@ java_objectheader *native_new_and_init(classinfo *c);
 java_objectheader *native_new_and_init_string(classinfo *c,
                                                                                          java_objectheader *s);
 
-java_objectheader *native_new_and_init_int(classinfo *c, s4 i);
-
 java_objectheader *native_new_and_init_throwable(classinfo *c,
                                                                                                 java_objectheader *t);
 
index f8ff81bbcf265def027603b3f7cb145bd0237452..1705453c092ab00e04e9dcdd2db051a155d49e81 100644 (file)
@@ -54,6 +54,13 @@ if ENABLE_JAVASE
 CLASSLOADER_SOURCES = \
        java_lang_ClassLoader.c \
        java_lang_ClassLoader.h
+
+JAVA_LANG_REFLECT_CONSTRUCTOR_SOURCES = \
+       java_lang_reflect_Constructor.c \
+       java_lang_reflect_Constructor.h
+
+SUN_MISC_UNSAFE_SOURCES = \
+       sun_misc_Unsafe.c
 endif
 
 noinst_LTLIBRARIES = \
@@ -70,8 +77,12 @@ libnativevm_la_SOURCES = \
        java_lang_Object.h \
        java_lang_Runtime.c \
        java_lang_Runtime.h \
+       java_lang_String.c \
+       java_lang_String.h \
        java_lang_Thread.c \
-       java_lang_Thread.h
+       java_lang_Thread.h \
+       $(JAVA_LANG_REFLECT_CONSTRUCTOR_SOURCES) \
+       $(SUN_MISC_UNSAFE_SOURCES)
 
 libnativevm_la_LIBADD = \
        $(NATIVEVM_LIB)
index 7826bbfeb2caff945c884345d82acc2a785aec63..41c48d3b843b10f81232ff4a1be641f09f22eda3 100644 (file)
@@ -26,7 +26,7 @@
 ##
 ## Authors: Christian Thalinger
 ##
-## $Id: Makefile.am 6233 2006-12-26 23:13:16Z twisti $
+## $Id: Makefile.am 8015 2007-06-05 20:58:11Z twisti $
 
 ## Process this file with automake to produce Makefile.in
 
@@ -62,8 +62,7 @@ libnativevmcore_la_SOURCES = \
        java_lang_reflect_Field.c \
        java_lang_reflect_Method.c \
        java_lang_reflect_VMProxy.c \
-       java_security_VMAccessController.c \
-       sun_misc_Unsafe.c
+       java_security_VMAccessController.c
 
 if ENABLE_JVMTI
 libjdwp_la_SOURCES = \
index f30764e02089e916cc72b065ef8a718d60755f9f..1e64194254282c5004338c3c9d4ca838492ee121 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: java_lang_VMClassLoader.c 7918 2007-05-20 20:42:18Z michi $
+   $Id: java_lang_VMClassLoader.c 8027 2007-06-07 10:30:33Z michi $
 
 */
 
@@ -154,7 +154,7 @@ JNIEXPORT java_lang_Class* JNICALL Java_java_lang_VMClassLoader_getPrimitiveClas
                break;
        default:
                exceptions_throw_noclassdeffounderror(utf_null);
-               c = NULL;
+               return NULL;
        }
 
        c = primitivetype_table[index].class_primitive;
index d860c2175e1680429fb006c6e48009c60446b150..cec8d0bc9839de645055b3677739b281c219b45e 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: java_lang_VMString.c 7910 2007-05-16 08:02:52Z twisti $
+   $Id: java_lang_VMString.c 8017 2007-06-05 23:46:59Z twisti $
 
 */
 
 #include "native/native.h"
 
 #include "native/include/java_lang_String.h"
-
 #include "native/include/java_lang_VMString.h"
 
+#include "native/vm/java_lang_String.h"
+
 #include "vm/stringlocal.h"
 
 
@@ -71,16 +72,7 @@ void _Jv_java_lang_VMString_init(void)
  */
 JNIEXPORT java_lang_String* JNICALL Java_java_lang_VMString_intern(JNIEnv *env, jclass clazz, java_lang_String *str)
 {
-       java_objectheader *o;
-
-       if (str == NULL)
-               return NULL;
-
-       /* search table so identical strings will get identical pointers */
-
-       o = literalstring_u2(str->value, str->count, str->offset, true);
-
-       return (java_lang_String *) o;
+       return _Jv_java_lang_String_intern(str);
 }
 
 
index 15ebe09418653870f5e53fdbb45395d06f6ede3b..962e960331a07fdb1324b8e28c4adf385b8b66a6 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: java_lang_reflect_Constructor.c 7912 2007-05-18 13:12:09Z twisti $
+   $Id: java_lang_reflect_Constructor.c 8026 2007-06-07 09:04:51Z twisti $
 
 */
 
 #include "native/include/java_lang_Class.h"
 #include "native/include/java_lang_Object.h"
 #include "native/include/java_lang_String.h"
-
 #include "native/include/java_lang_reflect_Constructor.h"
 
-#include "toolbox/logging.h"
-
-#include "vm/builtin.h"
-#include "vm/exceptions.h"
-#include "vm/access.h"
-#include "vm/stringlocal.h"
+#include "native/vm/java_lang_reflect_Constructor.h"
 
-#include "vmcore/class.h"
-#include "vmcore/method.h"
+#include "vmcore/utf8.h"
 
 
 /* native methods implemented by this file ************************************/
 
 static JNINativeMethod methods[] = {
-       { "getModifiersInternal", "()I",                                                       (void *) (ptrint) &Java_java_lang_reflect_Constructor_getModifiersInternal },
-       { "getParameterTypes",    "()[Ljava/lang/Class;",                                      (void *) (ptrint) &Java_java_lang_reflect_Constructor_getParameterTypes    },
-       { "getExceptionTypes",    "()[Ljava/lang/Class;",                                      (void *) (ptrint) &Java_java_lang_reflect_Constructor_getExceptionTypes    },
-       { "constructNative",      "([Ljava/lang/Object;Ljava/lang/Class;I)Ljava/lang/Object;", (void *) (ptrint) &Java_java_lang_reflect_Constructor_constructNative      },
-       { "getSignature",         "()Ljava/lang/String;",                                      (void *) (ptrint) &Java_java_lang_reflect_Constructor_getSignature         },
+       { "getModifiersInternal", "()I",                                                       (void *) (ptrint) &_Jv_java_lang_reflect_Constructor_getModifiers      },
+       { "getParameterTypes",    "()[Ljava/lang/Class;",                                      (void *) (ptrint) &_Jv_java_lang_reflect_Constructor_getParameterTypes },
+       { "getExceptionTypes",    "()[Ljava/lang/Class;",                                      (void *) (ptrint) &_Jv_java_lang_reflect_Constructor_getExceptionTypes },
+       { "constructNative",      "([Ljava/lang/Object;Ljava/lang/Class;I)Ljava/lang/Object;", (void *) (ptrint) &Java_java_lang_reflect_Constructor_constructNative  },
+       { "getSignature",         "()Ljava/lang/String;",                                      (void *) (ptrint) &_Jv_java_lang_reflect_Constructor_getSignature      },
 };
 
 
@@ -81,57 +74,6 @@ void _Jv_java_lang_reflect_Constructor_init(void)
 }
 
 
-/*
- * Class:     java/lang/reflect/Constructor
- * Method:    getModifiersInternal
- * Signature: ()I
- */
-JNIEXPORT s4 JNICALL Java_java_lang_reflect_Constructor_getModifiersInternal(JNIEnv *env, java_lang_reflect_Constructor *this)
-{
-       classinfo  *c;
-       methodinfo *m;
-
-       c = (classinfo *) (this->clazz);
-       m = &(c->methods[this->slot]);
-
-       return m->flags;
-}
-
-
-/*
- * Class:     java/lang/reflect/Constructor
- * Method:    getParameterTypes
- * Signature: ()[Ljava/lang/Class;
- */
-JNIEXPORT java_objectarray* JNICALL Java_java_lang_reflect_Constructor_getParameterTypes(JNIEnv *env, java_lang_reflect_Constructor *this)
-{
-       classinfo  *c;
-       methodinfo *m;
-
-       c = (classinfo *) this->clazz;
-       m = &(c->methods[this->slot]);
-
-       return method_get_parametertypearray(m);
-}
-
-
-/*
- * Class:     java/lang/reflect/Constructor
- * Method:    getExceptionTypes
- * Signature: ()[Ljava/lang/Class;
- */
-JNIEXPORT java_objectarray* JNICALL Java_java_lang_reflect_Constructor_getExceptionTypes(JNIEnv *env, java_lang_reflect_Constructor *this)
-{
-       classinfo  *c;
-       methodinfo *m;
-
-       c = (classinfo *) this->clazz;
-       m = &(c->methods[this->slot]);
-
-       return method_get_exceptionarray(m);
-}
-
-
 /*
  * Class:     java/lang/reflect/Constructor
  * Method:    constructNative
@@ -139,59 +81,7 @@ JNIEXPORT java_objectarray* JNICALL Java_java_lang_reflect_Constructor_getExcept
  */
 JNIEXPORT java_lang_Object* JNICALL Java_java_lang_reflect_Constructor_constructNative(JNIEnv *env, java_lang_reflect_Constructor *this, java_objectarray *args, java_lang_Class *declaringClass, s4 slot)
 {
-       classinfo         *c;
-       methodinfo        *m;
-       java_objectheader *o;
-
-       c = (classinfo *) declaringClass;
-       m = &(c->methods[this->slot]);
-
-       /* check method access */
-
-       /* check if we should bypass security checks (AccessibleObject) */
-
-       if (this->flag == false) {
-               if (!access_check_member(c, m->flags, 1))
-                       return NULL;
-       }
-
-       /* create object */
-
-       o = builtin_new(c);
-
-       if (o == NULL)
-               return NULL;
-        
-       /* call initializer */
-
-       (void) _Jv_jni_invokeNative(m, o, args);
-
-       return (java_lang_Object *) o;
-}
-
-
-/*
- * Class:     java/lang/reflect/Constructor
- * Method:    getSignature
- * Signature: ()Ljava/lang/String;
- */
-JNIEXPORT java_lang_String* JNICALL Java_java_lang_reflect_Constructor_getSignature(JNIEnv *env, java_lang_reflect_Constructor *this)
-{
-       classinfo         *c;
-       methodinfo        *m;
-       java_objectheader *o;
-
-       c = (classinfo *) this->clazz;
-       m = &(c->methods[this->slot]);
-
-       if (m->signature == NULL)
-               return NULL;
-
-       o = javastring_new(m->signature);
-
-       /* in error case o is NULL */
-
-       return (java_lang_String *) o;
+       return _Jv_java_lang_reflect_Constructor_newInstance(env, this, args);
 }
 
 
index b150381b4b9ff1d10ecf2a5fa1bd71d40fbacbef..b0c24a6ab8d418a3ce99042f3c5c4c800fe2781c 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: java_lang_reflect_Field.c 7910 2007-05-16 08:02:52Z twisti $
+   $Id: java_lang_reflect_Field.c 7976 2007-05-29 12:22:55Z twisti $
 
 */
 
@@ -124,8 +124,8 @@ void _Jv_java_lang_reflect_Field_init(void)
 static void *cacao_get_field_address(java_lang_reflect_Field *this,
                                                                         java_lang_Object *o)
 {
-       classinfo        *c;
-       fieldinfo        *f;
+       classinfo *c;
+       fieldinfo *f;
 
        c = (classinfo *) this->declaringClass;
        f = &c->fields[this->slot];
@@ -139,7 +139,7 @@ static void *cacao_get_field_address(java_lang_reflect_Field *this,
                           java.lang.reflect.Field.xxx (Native Method)
                   [0] <caller>
                */
-               if (!access_check_member(c, f->flags, 0))
+               if (!access_check_field(f, 0))
                        return NULL;
        }
 
index f67512682ca7b92e492db87a7d7d9a1dcb668134..abdeca89c884e1cc3a1ad6c9af2c7cbce94ef0bc 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: java_lang_reflect_Method.c 7910 2007-05-16 08:02:52Z twisti $
+   $Id: java_lang_reflect_Method.c 7976 2007-05-29 12:22:55Z twisti $
 
 */
 
@@ -171,7 +171,7 @@ JNIEXPORT java_lang_Object* JNICALL Java_java_lang_reflect_Method_invokeNative(J
        /* check if we should bypass security checks (AccessibleObject) */
 
        if (this->flag == false) {
-               if (!access_check_member(c, m->flags, 1))
+               if (!access_check_method(m, 1))
                        return NULL;
        }
 
diff --git a/src/native/vm/gnu/sun_misc_Unsafe.c b/src/native/vm/gnu/sun_misc_Unsafe.c
deleted file mode 100644 (file)
index c11b112..0000000
+++ /dev/null
@@ -1,323 +0,0 @@
-/* src/native/vm/gnu/sun_misc_Unsafe.c - sun/misc/Unsafe
-
-   Copyright (C) 2006, 2007 R. Grafl, A. Krall, C. Kruegel, C. Oates,
-   R. Obermaisser, M. Platter, M. Probst, S. Ring, E. Steiner,
-   C. Thalinger, D. Thuernbeck, P. Tomsich, C. Ullrich, J. Wenninger,
-   Institut f. Computersprachen - TU Wien
-
-   This file is part of CACAO.
-
-   This program is free software; you can redistribute it and/or
-   modify it under the terms of the GNU General Public License as
-   published by the Free Software Foundation; either version 2, or (at
-   your option) any later version.
-
-   This program is distributed in the hope that it will be useful, but
-   WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-   02110-1301, USA.
-
-   $Id: java_lang_VMObject.c 5153 2006-07-18 08:19:24Z twisti $
-
-*/
-
-
-#include "config.h"
-#include "vm/types.h"
-
-#include "native/jni.h"
-#include "native/native.h"
-
-#include "native/include/java_lang_Object.h"
-#include "native/include/java_lang_reflect_Field.h"
-#include "native/include/java_lang_Thread.h"             /* required by s.m.U */
-
-#include "native/include/sun_misc_Unsafe.h"
-
-
-/* native methods implemented by this file ************************************/
-
-static JNINativeMethod methods[] = {
-       { "objectFieldOffset",    "(Ljava/lang/reflect/Field;)J",                               (void *) (ptrint) &Java_sun_misc_Unsafe_objectFieldOffset    },
-       { "compareAndSwapInt",    "(Ljava/lang/Object;JII)Z",                                   (void *) (ptrint) &Java_sun_misc_Unsafe_compareAndSwapInt    },
-#if 0
-       { "compareAndSwapLong",   "(Ljava/lang/Object;JJJ)Z",                                   (void *) (ptrint) &Java_sun_misc_Unsafe_compareAndSwapLong   },
-       { "compareAndSwapObject", "(Ljava/lang/Object;JLjava/lang/Object;Ljava/lang/Object;)Z", (void *) (ptrint) &Java_sun_misc_Unsafe_compareAndSwapObject },
-       { "putOrderedInt",        "(Ljava/lang/Object;JI)V",                                    (void *) (ptrint) &Java_sun_misc_Unsafe_putOrderedInt        },
-       { "putOrderedLong",       "(Ljava/lang/Object;JJ)V",                                    (void *) (ptrint) &Java_sun_misc_Unsafe_putOrderedLong       },
-       { "putOrderedObject",     "(Ljava/lang/Object;JLjava/lang/Object;)V",                   (void *) (ptrint) &Java_sun_misc_Unsafe_putOrderedObject     },
-       { "putIntVolatile",       "(Ljava/lang/Object;JI)V",                                    (void *) (ptrint) &Java_sun_misc_Unsafe_putIntVolatile       },
-       { "getIntVolatile",       "(Ljava/lang/Object;J)I",                                     (void *) (ptrint) &Java_sun_misc_Unsafe_getIntVolatile       },
-       { "putLongVolatile",      "(Ljava/lang/Object;JJ)V",                                    (void *) (ptrint) &Java_sun_misc_Unsafe_putLongVolatile      },
-       { "putLong",              "(Ljava/lang/Object;JJ)V",                                    (void *) (ptrint) &Java_sun_misc_Unsafe_putLong              },
-       { "getLongVolatile",      "(Ljava/lang/Object;J)J",                                     (void *) (ptrint) &Java_sun_misc_Unsafe_getLongVolatile      },
-       { "getLong",              "(Ljava/lang/Object;J)J",                                     (void *) (ptrint) &Java_sun_misc_Unsafe_getLong              },
-       { "putObjectVolatile",    "(Ljava/lang/Object;JLjava/lang/Object;)V",                   (void *) (ptrint) &Java_sun_misc_Unsafe_putObjectVolatile    },
-       { "putObject",            "(Ljava/lang/Object;JLjava/lang/Object;)V",                   (void *) (ptrint) &Java_sun_misc_Unsafe_putObject            },
-       { "getObjectVolatile",    "(Ljava/lang/Object;J)Ljava/lang/Object;",                    (void *) (ptrint) &Java_sun_misc_Unsafe_getObjectVolatile    },
-       { "arrayBaseOffset",      "(Ljava/lang/Class;)I",                                       (void *) (ptrint) &Java_sun_misc_Unsafe_arrayBaseOffset      },
-       { "arrayIndexScale",      "(Ljava/lang/Class;)I",                                       (void *) (ptrint) &Java_sun_misc_Unsafe_arrayIndexScale      },
-       { "unpark",               "(Ljava/lang/Thread;)V",                                      (void *) (ptrint) &Java_sun_misc_Unsafe_unpark               },
-       { "park",                 "(ZJ)V",                                                      (void *) (ptrint) &Java_sun_misc_Unsafe_park                 },
-#endif
-};
-
-
-/* _Jv_sun_misc_Unsafe_init ****************************************************
-
-   Register native functions.
-
-*******************************************************************************/
-
-void _Jv_sun_misc_Unsafe_init(void)
-{
-       utf *u;
-
-       u = utf_new_char("sun/misc/Unsafe");
-
-       native_method_register(u, methods, NATIVE_METHODS_COUNT);
-}
-
-
-/*
- * Class:     sun/misc/Unsafe
- * Method:    objectFieldOffset
- * Signature: (Ljava/lang/reflect/Field;)J
- */
-JNIEXPORT s8 JNICALL Java_sun_misc_Unsafe_objectFieldOffset(JNIEnv *env, sun_misc_Unsafe* this, java_lang_reflect_Field* field)
-{
-       classinfo *c;
-       fieldinfo *f;
-
-       c = (classinfo *) field->declaringClass;
-       f = &c->fields[field->slot];
-
-       return (s8) f->offset;
-}
-
-
-/*
- * Class:     sun/misc/Unsafe
- * Method:    compareAndSwapInt
- * Signature: (Ljava/lang/Object;JII)Z
- */
-JNIEXPORT s4 JNICALL Java_sun_misc_Unsafe_compareAndSwapInt(JNIEnv *env, sun_misc_Unsafe* this, java_lang_Object* obj, s8 offset, s4 expect, s4 update)
-{
-       s4 *p;
-       s4  value;
-
-       p = (s4 *) (((u1 *) obj) + offset);
-
-       /* XXX this should be atomic */
-
-       value = *p;
-
-       if (value == expect) {
-               *p = update;
-
-               return true;
-       }
-
-       return false;
-}
-
-
-#if 0
-/*
- * Class:     sun/misc/Unsafe
- * Method:    compareAndSwapLong
- * Signature: (Ljava/lang/Object;JJJ)Z
- */
-JNIEXPORT s4 JNICALL Java_sun_misc_Unsafe_compareAndSwapLong(JNIEnv *env, struct sun_misc_Unsafe* this, struct java_lang_Object* par1, s8 par2, s8 par3, s8 par4)
-{
-}
-
-
-/*
- * Class:     sun/misc/Unsafe
- * Method:    compareAndSwapObject
- * Signature: (Ljava/lang/Object;JLjava/lang/Object;Ljava/lang/Object;)Z
- */
-JNIEXPORT s4 JNICALL Java_sun_misc_Unsafe_compareAndSwapObject(JNIEnv *env, struct sun_misc_Unsafe* this, struct java_lang_Object* par1, s8 par2, struct java_lang_Object* par3, struct java_lang_Object* par4)
-{
-}
-
-
-/*
- * Class:     sun/misc/Unsafe
- * Method:    putOrderedInt
- * Signature: (Ljava/lang/Object;JI)V
- */
-JNIEXPORT void JNICALL Java_sun_misc_Unsafe_putOrderedInt(JNIEnv *env, struct sun_misc_Unsafe* this, struct java_lang_Object* par1, s8 par2, s4 par3)
-{
-}
-
-
-/*
- * Class:     sun/misc/Unsafe
- * Method:    putOrderedLong
- * Signature: (Ljava/lang/Object;JJ)V
- */
-JNIEXPORT void JNICALL Java_sun_misc_Unsafe_putOrderedLong(JNIEnv *env, struct sun_misc_Unsafe* this, struct java_lang_Object* par1, s8 par2, s8 par3)
-{
-}
-
-
-/*
- * Class:     sun/misc/Unsafe
- * Method:    putOrderedObject
- * Signature: (Ljava/lang/Object;JLjava/lang/Object;)V
- */
-JNIEXPORT void JNICALL Java_sun_misc_Unsafe_putOrderedObject(JNIEnv *env, struct sun_misc_Unsafe* this, struct java_lang_Object* par1, s8 par2, struct java_lang_Object* par3)
-{
-}
-
-
-/*
- * Class:     sun/misc/Unsafe
- * Method:    putIntVolatile
- * Signature: (Ljava/lang/Object;JI)V
- */
-JNIEXPORT void JNICALL Java_sun_misc_Unsafe_putIntVolatile(JNIEnv *env, struct sun_misc_Unsafe* this, struct java_lang_Object* par1, s8 par2, s4 par3)
-{
-}
-
-
-/*
- * Class:     sun/misc/Unsafe
- * Method:    getIntVolatile
- * Signature: (Ljava/lang/Object;J)I
- */
-JNIEXPORT s4 JNICALL Java_sun_misc_Unsafe_getIntVolatile(JNIEnv *env, struct sun_misc_Unsafe* this, struct java_lang_Object* par1, s8 par2)
-{
-}
-
-
-/*
- * Class:     sun/misc/Unsafe
- * Method:    putLongVolatile
- * Signature: (Ljava/lang/Object;JJ)V
- */
-JNIEXPORT void JNICALL Java_sun_misc_Unsafe_putLongVolatile(JNIEnv *env, struct sun_misc_Unsafe* this, struct java_lang_Object* par1, s8 par2, s8 par3)
-{
-}
-
-
-/*
- * Class:     sun/misc/Unsafe
- * Method:    putLong
- * Signature: (Ljava/lang/Object;JJ)V
- */
-JNIEXPORT void JNICALL Java_sun_misc_Unsafe_putLong(JNIEnv *env, struct sun_misc_Unsafe* this, struct java_lang_Object* par1, s8 par2, s8 par3)
-{
-}
-
-
-/*
- * Class:     sun/misc/Unsafe
- * Method:    getLongVolatile
- * Signature: (Ljava/lang/Object;J)J
- */
-JNIEXPORT s8 JNICALL Java_sun_misc_Unsafe_getLongVolatile(JNIEnv *env, struct sun_misc_Unsafe* this, struct java_lang_Object* par1, s8 par2)
-{
-}
-
-
-/*
- * Class:     sun/misc/Unsafe
- * Method:    getLong
- * Signature: (Ljava/lang/Object;J)J
- */
-JNIEXPORT s8 JNICALL Java_sun_misc_Unsafe_getLong(JNIEnv *env, struct sun_misc_Unsafe* this, struct java_lang_Object* par1, s8 par2)
-{
-}
-
-
-/*
- * Class:     sun/misc/Unsafe
- * Method:    putObjectVolatile
- * Signature: (Ljava/lang/Object;JLjava/lang/Object;)V
- */
-JNIEXPORT void JNICALL Java_sun_misc_Unsafe_putObjectVolatile(JNIEnv *env, struct sun_misc_Unsafe* this, struct java_lang_Object* par1, s8 par2, struct java_lang_Object* par3)
-{
-}
-
-
-/*
- * Class:     sun/misc/Unsafe
- * Method:    putObject
- * Signature: (Ljava/lang/Object;JLjava/lang/Object;)V
- */
-JNIEXPORT void JNICALL Java_sun_misc_Unsafe_putObject(JNIEnv *env, struct sun_misc_Unsafe* this, struct java_lang_Object* par1, s8 par2, struct java_lang_Object* par3)
-{
-}
-
-
-/*
- * Class:     sun/misc/Unsafe
- * Method:    getObjectVolatile
- * Signature: (Ljava/lang/Object;J)Ljava/lang/Object;
- */
-JNIEXPORT struct java_lang_Object* JNICALL Java_sun_misc_Unsafe_getObjectVolatile(JNIEnv *env, struct sun_misc_Unsafe* this, struct java_lang_Object* par1, s8 par2)
-{
-}
-
-
-/*
- * Class:     sun/misc/Unsafe
- * Method:    arrayBaseOffset
- * Signature: (Ljava/lang/Class;)I
- */
-JNIEXPORT s4 JNICALL Java_sun_misc_Unsafe_arrayBaseOffset(JNIEnv *env, struct sun_misc_Unsafe* this, struct java_lang_Class* par1)
-{
-}
-
-
-/*
- * Class:     sun/misc/Unsafe
- * Method:    arrayIndexScale
- * Signature: (Ljava/lang/Class;)I
- */
-JNIEXPORT s4 JNICALL Java_sun_misc_Unsafe_arrayIndexScale(JNIEnv *env, struct sun_misc_Unsafe* this, struct java_lang_Class* par1)
-{
-}
-
-
-/*
- * Class:     sun/misc/Unsafe
- * Method:    unpark
- * Signature: (Ljava/lang/Thread;)V
- */
-JNIEXPORT void JNICALL Java_sun_misc_Unsafe_unpark(JNIEnv *env, struct sun_misc_Unsafe* this, struct java_lang_Thread* par1)
-{
-}
-
-
-/*
- * Class:     sun/misc/Unsafe
- * Method:    park
- * Signature: (ZJ)V
- */
-JNIEXPORT void JNICALL Java_sun_misc_Unsafe_park(JNIEnv *env, struct sun_misc_Unsafe* this, s4 par1, s8 par2)
-{
-}
-#endif
-
-
-/*
- * These are local overrides for various environment variables in Emacs.
- * Please do not remove this and leave it at the end of the file, where
- * Emacs will automagically detect them.
- * ---------------------------------------------------------------------
- * Local variables:
- * mode: c
- * indent-tabs-mode: t
- * c-basic-offset: 4
- * tab-width: 4
- * End:
- */
index 6c0c8cda776f39587414ed88bb8fefed85c85cbe..004de731040f08d014a3ad05039590f4d8225f47 100644 (file)
 #include "vm/exceptions.h"
 #include "vm/global.h"
 #include "vm/initialize.h"
+#include "vm/resolve.h"
 #include "vm/stringlocal.h"
 
 #include "vmcore/class.h"
 #include "vmcore/loader.h"
-#include "vm/resolve.h"
 
 
 /*
@@ -269,17 +269,13 @@ s4 _Jv_java_lang_Class_isInterface(java_lang_Class *klass)
 s4 _Jv_java_lang_Class_isPrimitive(java_lang_Class *klass)
 {
        classinfo *c;
-       s4         i;
+       bool       result;
 
        c = (classinfo *) klass;
 
-       /* search table of primitive classes */
+       result = class_is_primitive(c);
 
-       for (i = 0; i < PRIMITIVETYPE_COUNT; i++)
-               if (primitivetype_table[i].class_primitive == c)
-                       return true;
-
-       return false;
+       return result;
 }
 
 
@@ -447,7 +443,7 @@ java_lang_Class *_Jv_java_lang_Class_getDeclaringClass(java_lang_Class *klass)
 
        c = (classinfo *) klass;
 
-       if (!_Jv_java_lang_Class_isPrimitive(klass) && (c->name->text[0] != '[')) {
+       if (!class_is_primitive(c) && (c->name->text[0] != '[')) {
                if (c->innerclasscount == 0)  /* no innerclasses exist */
                        return NULL;
     
@@ -502,7 +498,7 @@ java_objectarray *_Jv_java_lang_Class_getDeclaredClasses(java_lang_Class *klass,
        c = (classinfo *) klass;
        declaredclasscount = 0;
 
-       if (!_Jv_java_lang_Class_isPrimitive(klass) && (c->name->text[0] != '[')) {
+       if (!class_is_primitive(c) && (c->name->text[0] != '[')) {
                /* determine number of declared classes */
 
                for (i = 0; i < c->innerclasscount; i++) {
index a0d459561cd3dfb34687ac45b48e2fa63bc33567..5dda6b4c1c4303e3e8adbf3928dd43aaf8593e42 100644 (file)
@@ -86,17 +86,28 @@ static s4 critical_comparator(const void *treenode, const void *node)
        treecsn = treenode;
        csn     = node;
 
+#ifdef __S390__
+#      define ADDR_MASK(x) ((u1 *)((s4)(x) & 0x7FFFFFFF))
+#else
+#      define ADDR_MASK(x) (x)
+#endif
+
        /* compare for avl_find if we have found an entry */
 
-       if ((treecsn->start <= csn->start) && (csn->start < treecsn->end))
+       if (
+               (ADDR_MASK(treecsn->start) <= ADDR_MASK(csn->start)) && 
+               (ADDR_MASK(csn->start) < ADDR_MASK(treecsn->end))
+       )
                return 0;
 
        /* these are for walking the tree */
 
-       if (treecsn->start < csn->start)
+       if (ADDR_MASK(treecsn->start) < ADDR_MASK(csn->start))
                return -1;
        else
                return 1;
+
+#undef ADDR_MASK
 }
 
 
index 9e9636581e0e8b4830e3ffd36d6643665aaaca91..a10877933ad528c325c6b125afee716304fd195e 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: threads.c 4903 2006-05-11 12:48:43Z edwin $
+   $Id: lock.c 7954 2007-05-23 17:58:18Z twisti $
 
 */
 
index 54d385dc530307541c6effed96143c272d159418..0945843866417c804095cafb622407e4b586c2b2 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: threads.h 4866 2006-05-01 21:40:38Z edwin $
+   $Id: lock.h 7954 2007-05-23 17:58:18Z twisti $
 
 */
 
index b6173b45a1da12a7b75207e50593b84940c0e706..220adf226bfa4549817946d17383ceafde0f83ff 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: threads.c 7922 2007-05-20 23:50:43Z michi $
+   $Id: threads.c 8027 2007-06-07 10:30:33Z michi $
 
 */
 
@@ -231,7 +231,7 @@ pthread_key_t threads_current_threadobject_key;
 #endif
 
 /* global mutex for the threads table */
-static pthread_mutex_t mutex_threads_table;
+static pthread_mutex_t mutex_threads_list;
 
 /* global mutex for stop-the-world                                            */
 static pthread_mutex_t stopworldlock;
@@ -240,6 +240,11 @@ static pthread_mutex_t stopworldlock;
 static pthread_mutex_t mutex_join;
 static pthread_cond_t  cond_join;
 
+/* XXX We disable that whole bunch of code until we have the exact-GC
+   running. */
+
+#if 1
+
 /* this is one of the STOPWORLD_FROM_ constants, telling why the world is     */
 /* being stopped                                                              */
 static volatile int stopworldwhere;
@@ -251,6 +256,8 @@ static pthread_mutex_t suspend_ack_lock = PTHREAD_MUTEX_INITIALIZER;
 static pthread_cond_t suspend_cond = PTHREAD_COND_INITIALIZER;
 #endif
 
+#endif /* 0 */
+
 /* mutexes used by the fake atomic instructions                               */
 #if defined(USE_FAKE_ATOMIC_INSTRUCTIONS)
 pthread_mutex_t _atomic_add_lock = PTHREAD_MUTEX_INITIALIZER;
@@ -352,7 +359,7 @@ void threads_sem_post(sem_t *sem)
 void lock_stopworld(int where)
 {
        pthread_mutex_lock(&stopworldlock);
-       stopworldwhere = where;
+/*     stopworldwhere = where; */
 }
 
 
@@ -364,12 +371,55 @@ void lock_stopworld(int where)
 
 void unlock_stopworld(void)
 {
-       stopworldwhere = 0;
+/*     stopworldwhere = 0; */
        pthread_mutex_unlock(&stopworldlock);
 }
 
-#if defined(__DARWIN__)
+/* XXX We disable that whole bunch of code until we have the exact-GC
+   running. */
+
+#if 0
+
+#if !defined(__DARWIN__)
 /* Caller must hold threadlistlock */
+static s4 threads_cast_sendsignals(s4 sig)
+{
+       threadobject *t;
+       threadobject *self;
+       s4            count;
+
+       self = THREADOBJECT;
+
+       /* iterate over all started threads */
+
+       count = 0;
+
+       for (t = threads_list_first(); t != NULL; t = threads_list_next(t)) {
+               /* don't send the signal to ourself */
+
+               if (t == self)
+                       continue;
+
+               /* don't send the signal to NEW threads (because they are not
+                  completely initialized) */
+
+               if (t->state == THREAD_STATE_NEW)
+                       continue;
+
+               /* send the signal */
+
+               pthread_kill(t->tid, sig);
+
+               /* increase threads count */
+
+               count++;
+       }
+
+       return count;
+}
+
+#else
+
 static void threads_cast_darwinstop(void)
 {
        threadobject *tobj = mainthreadobj;
@@ -443,8 +493,8 @@ static void threads_cast_irixresume(void)
        pthread_mutex_unlock(&suspend_ack_lock);
 }
 #endif
+#endif
 
-#if 0
 #if !defined(__DARWIN__)
 static void threads_sigsuspend_handler(ucontext_t *_uc)
 {
@@ -475,8 +525,6 @@ static void threads_sigsuspend_handler(ucontext_t *_uc)
 #endif
 }
 #endif
-#endif
-
 
 /* threads_stopworld ***********************************************************
 
@@ -493,14 +541,14 @@ void threads_stopworld(void)
        threadobject *t;
        threadobject *self;
        bool result;
-       int count, i;
+       s4 count, i;
 #endif
 
        lock_stopworld(STOPWORLD_FROM_CLASS_NUMBERING);
 
-       /* lock the threads table */
+       /* lock the threads lists */
 
-       threads_table_lock();
+       threads_list_lock();
 
 #if defined(__DARWIN__)
        threads_cast_darwinstop();
@@ -510,25 +558,39 @@ void threads_stopworld(void)
 #else
        self = THREADOBJECT;
 
+       count = 0;
+
        /* suspend all running threads */
-       for (t = threads_table_first(); t != NULL; t = threads_table_next(t)) {
-               /* don't suspend ourself */
+       for (t = threads_list_first(); t != NULL; t = threads_list_next(t)) {
+               /* don't send the signal to ourself */
 
-               if (t != self) {
-                       result = threads_suspend_thread(t, SUSPEND_REASON_STOPWORLD);
-                       assert(result);
-               }
+               if (t == self)
+                       continue;
+
+               /* don't send the signal to NEW threads (because they are not
+                  completely initialized) */
+
+               if (t->state == THREAD_STATE_NEW)
+                       continue;
+
+               /* send the signal */
+
+               result = threads_suspend_thread(t, SUSPEND_REASON_STOPWORLD);
+               assert(result);
+
+               /* increase threads count */
+
+               count++;
        }
 
-       /* wait till all threads are suspended */
-       count = threads_table_get_threads() - 1;
+       /* wait for all threads signaled to suspend */
        for (i = 0; i < count; i++)
                threads_sem_wait(&suspend_ack);
 #endif
 
-       /* unlock the threads table */
-
-       threads_table_unlock();
+       /* ATTENTION: Don't unlock the threads-lists here so that
+          non-signaled NEW threads can't change their state and execute
+          code. */
 }
 #endif /* !defined(DISABLE_GC) */
 
@@ -546,13 +608,9 @@ void threads_startworld(void)
        threadobject *t;
        threadobject *self;
        bool result;
-       int count, i;
+       s4 count, i;
 #endif
 
-       /* lock the threads table */
-
-       threads_table_lock();
-
 #if defined(__DARWIN__)
        threads_cast_darwinresume();
 #elif defined(__MIPS__)
@@ -563,29 +621,44 @@ void threads_startworld(void)
 #else
        self = THREADOBJECT;
 
+       count = 0;
+
        /* resume all thread we haltet */
-       for (t = threads_table_first(); t != NULL; t = threads_table_next(t)) {
-               /* don't resume ourself */
+       for (t = threads_list_first(); t != NULL; t = threads_list_next(t)) {
+               /* don't send the signal to ourself */
 
-               if (t != self) {
-                       result = threads_resume_thread(t);
-                       assert(result);
-               }
+               if (t == self)
+                       continue;
+
+               /* don't send the signal to NEW threads (because they are not
+                  completely initialized) */
+
+               if (t->state == THREAD_STATE_NEW)
+                       continue;
+
+               /* send the signal */
+
+               result = threads_resume_thread(t);
+               assert(result);
+
+               /* increase threads count */
+
+               count++;
        }
 
-       /* wait till all threads are suspended */
-       count = threads_table_get_threads() - 1;
+       /* wait for all threads signaled to suspend */
        for (i = 0; i < count; i++)
                threads_sem_wait(&suspend_ack);
+
 #endif
 
-       /* unlock the threads table */
+       /* unlock the threads lists */
 
-       threads_table_unlock();
+       threads_list_unlock();
 
        unlock_stopworld();
 }
-#endif /* DISABLE_GC */
+#endif
 
 
 /* threads_set_current_threadobject ********************************************
@@ -629,6 +702,12 @@ void threads_impl_thread_new(threadobject *t)
        pthread_cond_init(&(t->waitcond), NULL);
        pthread_mutex_init(&(t->suspendmutex), NULL);
        pthread_cond_init(&(t->suspendcond), NULL);
+
+#if defined(ENABLE_DEBUG_FILTER)
+       /* Initialize filter counters */
+       t->filterverbosecallctr[0] = 0;
+       t->filterverbosecallctr[1] = 0;
+#endif
 }
 
 
@@ -697,55 +776,75 @@ void threads_impl_preinit(void)
        pthread_mutex_init(&mutex_join, NULL);
        pthread_cond_init(&cond_join, NULL);
 
+       /* initialize the threads-list mutex */
+
+       pthread_mutex_init(&mutex_threads_list, NULL);
+
 #if !defined(HAVE___THREAD)
        pthread_key_create(&threads_current_threadobject_key, NULL);
 #endif
 
-       threads_sem_init(&suspend_ack, 0, 0);
+       threads_sem_init(&suspend_ack, 0, 0);
 }
 
 
-/* threads_table_lock **********************************************************
+/* threads_list_lock ***********************************************************
 
-   Initialize threads table mutex.
+   Enter the threads table mutex.
+
+   NOTE: We need this function as we can't use an internal lock for
+         the threads lists because the thread's lock is initialized in
+         threads_table_add (when we have the thread index), but we
+         already need the lock at the entry of the function.
 
 *******************************************************************************/
 
-void threads_impl_table_init(void)
+void threads_list_lock(void)
 {
-       pthread_mutex_init(&mutex_threads_table, NULL);
+       if (pthread_mutex_lock(&mutex_threads_list) != 0)
+               vm_abort("threads_list_lock: pthread_mutex_lock failed: %s",
+                                strerror(errno));
 }
 
 
-/* threads_table_lock **********************************************************
+/* threads_list_unlock *********************************************************
 
-   Enter the threads table mutex.
+   Leave the threads list mutex.
 
-   NOTE: We need this function as we can't use an internal lock for
-         the threads table because the thread's lock is initialized in
-         threads_table_add (when we have the thread index), but we
-         already need the lock at the entry of the function.
+*******************************************************************************/
+
+void threads_list_unlock(void)
+{
+       if (pthread_mutex_unlock(&mutex_threads_list) != 0)
+               vm_abort("threads_list_unlock: pthread_mutex_unlock failed: %s",
+                                strerror(errno));
+}
+
+
+/* threads_mutex_join_lock *****************************************************
+
+   Enter the join mutex.
 
 *******************************************************************************/
 
-void threads_table_lock(void)
+void threads_mutex_join_lock(void)
 {
-       if (pthread_mutex_lock(&mutex_threads_table) != 0)
-               vm_abort("threads_table_lock: pthread_mutex_lock failed: %s",
+       if (pthread_mutex_lock(&mutex_join) != 0)
+               vm_abort("threads_mutex_join_lock: pthread_mutex_lock failed: %s",
                                 strerror(errno));
 }
 
 
-/* threads_table_unlock ********************************************************
+/* threads_mutex_join_unlock ***************************************************
 
-   Leave the threads table mutex.
+   Leave the join mutex.
 
 *******************************************************************************/
 
-void threads_table_unlock(void)
+void threads_mutex_join_unlock(void)
 {
-       if (pthread_mutex_unlock(&mutex_threads_table) != 0)
-               vm_abort("threads_table_unlock: pthread_mutex_unlock failed: %s",
+       if (pthread_mutex_unlock(&mutex_join) != 0)
+               vm_abort("threads_mutex_join_unlock: pthread_mutex_unlock failed: %s",
                                 strerror(errno));
 }
 
@@ -796,9 +895,9 @@ bool threads_init(void)
                return false;
 
        /* Get the main-thread (NOTE: The main threads is always the first
-          thread in the table). */
+          thread in the list). */
 
-       mainthread = threads_table_first();
+       mainthread = threads_list_first();
 
        /* create a java.lang.Thread for the main thread */
 
@@ -921,14 +1020,14 @@ bool threads_init(void)
                 threads_startup.
 
    IN:
-      t............the argument passed to pthread_create, ie. a pointer to
+      arg..........the argument passed to pthread_create, ie. a pointer to
                       a startupinfo struct. CAUTION: When the `psem` semaphore
                                   is posted, the startupinfo struct becomes invalid! (It
                                   is allocated on the stack of threads_start_thread.)
 
 ******************************************************************************/
 
-static void *threads_startup_thread(void *t)
+static void *threads_startup_thread(void *arg)
 {
        startupinfo        *startup;
        threadobject       *thread;
@@ -956,8 +1055,7 @@ static void *threads_startup_thread(void *t)
 
        /* get passed startupinfo structure and the values in there */
 
-       startup = t;
-       t = NULL; /* make sure it's not used wrongly */
+       startup = arg;
 
        thread   = startup->thread;
        function = startup->function;
@@ -977,13 +1075,13 @@ static void *threads_startup_thread(void *t)
 
        threads_set_current_threadobject(thread);
 
-       /* thread is running */
+       /* set our priority */
 
-       thread->state = THREAD_STATE_RUNNABLE;
+       threads_set_thread_priority(thread->tid, thread->object->priority);
 
-       /* insert the thread into the threads table */
+       /* thread is completely initialized */
 
-       threads_table_add(thread);
+       threads_thread_state_runnable(thread);
 
        /* tell threads_startup_thread that we registered ourselves */
        /* CAUTION: *startup becomes invalid with this!             */
@@ -991,10 +1089,6 @@ static void *threads_startup_thread(void *t)
        startup = NULL;
        threads_sem_post(psem);
 
-       /* set our priority */
-
-       threads_set_thread_priority(thread->tid, thread->object->priority);
-
 #if defined(ENABLE_INTRP)
        /* set interpreter stack */
 
@@ -1224,31 +1318,41 @@ bool threads_attach_current_thread(JavaVMAttachArgs *vm_aargs, bool isdaemon)
        java_lang_VMThread    *vmt;
 #endif
 
+       /* Enter the join-mutex, so if the main-thread is currently
+          waiting to join all threads, the number of non-daemon threads
+          is correct. */
+
+       threads_mutex_join_lock();
+
        /* create internal thread data-structure */
 
        thread = threads_thread_new();
 
+       /* thread is a Java thread and running */
+
+       thread->flags = THREAD_FLAG_JAVA;
+
+       if (isdaemon)
+               thread->flags |= THREAD_FLAG_DAEMON;
+
+       /* The thread is flagged and (non-)daemon thread, we can leave the
+          mutex. */
+
+       threads_mutex_join_unlock();
+
        /* create a java.lang.Thread object */
 
        t = (java_lang_Thread *) builtin_new(class_java_lang_Thread);
 
+       /* XXX memory leak!!! */
        if (t == NULL)
                return false;
 
        thread->object = t;
 
-       /* thread is a Java thread and running */
+       /* thread is completely initialized */
 
-       thread->flags = THREAD_FLAG_JAVA;
-
-       if (isdaemon)
-               thread->flags |= THREAD_FLAG_DAEMON;
-
-       thread->state = THREAD_STATE_RUNNABLE;
-
-       /* insert the thread into the threads table */
-
-       threads_table_add(thread);
+       threads_thread_state_runnable(thread);
 
 #if !defined(NDEBUG)
        if (opt_verbosethreads) {
@@ -1272,6 +1376,7 @@ bool threads_attach_current_thread(JavaVMAttachArgs *vm_aargs, bool isdaemon)
 
        vmt = (java_lang_VMThread *) builtin_new(class_java_lang_VMThread);
 
+       /* XXX memory leak!!! */
        if (vmt == NULL)
                return false;
 
@@ -1294,7 +1399,7 @@ bool threads_attach_current_thread(JavaVMAttachArgs *vm_aargs, bool isdaemon)
 #if defined(ENABLE_JAVASE)
                /* get the main thread */
 
-               mainthread = threads_table_first();
+               mainthread = threads_list_first();
                group = mainthread->object->group;
 #endif
        }
@@ -1388,11 +1493,7 @@ bool threads_detach_thread(threadobject *thread)
 
        /* thread is terminated */
 
-       thread->state = THREAD_STATE_TERMINATED;
-
-       /* remove thread from the threads table */
-
-       threads_table_remove(thread);
+       threads_thread_state_terminated(thread);
 
 #if !defined(NDEBUG)
        if (opt_verbosethreads) {
@@ -1402,16 +1503,21 @@ bool threads_detach_thread(threadobject *thread)
        }
 #endif
 
-       /* signal that this thread has finished */
+       /* Enter the join-mutex before calling threads_thread_free, so
+          threads_join_all_threads gets the correct number of non-daemon
+          threads. */
 
-       pthread_mutex_lock(&mutex_join);
-       pthread_cond_signal(&cond_join);
-       pthread_mutex_unlock(&mutex_join);
+       threads_mutex_join_lock();
 
        /* free the vm internal thread object */
 
        threads_thread_free(thread);
 
+       /* Signal that this thread has finished and leave the mutex. */
+
+       pthread_cond_signal(&cond_join);
+       threads_mutex_join_unlock();
+
        return true;
 }
 
@@ -1556,30 +1662,30 @@ bool threads_resume_thread(threadobject *thread)
 
 void threads_join_all_threads(void)
 {
-       threadobject *thread;
+       threadobject *t;
 
        /* get current thread */
 
-       thread = THREADOBJECT;
+       t = THREADOBJECT;
 
        /* this thread is waiting for all non-daemon threads to exit */
 
-       thread->state = THREAD_STATE_WAITING;
+       threads_thread_state_waiting(t);
 
        /* enter join mutex */
 
-       pthread_mutex_lock(&mutex_join);
+       threads_mutex_join_lock();
 
        /* Wait for condition as long as we have non-daemon threads.  We
           compare against 1 because the current (main thread) is also a
           non-daemon thread. */
 
-       while (threads_table_get_non_daemons() > 1)
+       while (threads_list_get_non_daemons() > 1)
                pthread_cond_wait(&cond_join, &mutex_join);
 
        /* leave join mutex */
 
-       pthread_mutex_unlock(&mutex_join);
+       threads_mutex_join_unlock();
 }
 
 
@@ -1675,22 +1781,22 @@ static bool threads_wait_with_timeout(threadobject *thread,
                while (!thread->interrupted && !thread->signaled
                           && threads_current_time_is_earlier_than(wakeupTime))
                {
-                       thread->state = THREAD_STATE_TIMED_WAITING;
+                       threads_thread_state_timed_waiting(thread);
 
                        pthread_cond_timedwait(&thread->waitcond, &thread->waitmutex,
                                                                   wakeupTime);
 
-                       thread->state = THREAD_STATE_RUNNABLE;
+                       threads_thread_state_runnable(thread);
                }
        }
        else {
                /* no timeout */
                while (!thread->interrupted && !thread->signaled) {
-                       thread->state = THREAD_STATE_WAITING;
+                       threads_thread_state_waiting(thread);
 
                        pthread_cond_wait(&thread->waitcond, &thread->waitmutex);
 
-                       thread->state = THREAD_STATE_RUNNABLE;
+                       threads_thread_state_runnable(thread);
                }
        }
 
index d565c7b53238301208e0c90794af65b8d77b326f..9a6dc6ff6c30ff496fefddd5897fdaece09423bc 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: threads.h 7918 2007-05-20 20:42:18Z michi $
+   $Id: threads.h 8027 2007-06-07 10:30:33Z michi $
 
 */
 
@@ -156,6 +156,12 @@ struct threadobject {
 #endif
 
        dumpinfo_t            dumpinfo;     /* dump memory info structure         */
+
+#if defined(ENABLE_DEBUG_FILTER)
+       u2                    filterverbosecallctr[2]; /* counters for verbose call filter */
+#endif
+
+       listnode_t            linkage;      /* threads-list                       */
 };
 
 
@@ -168,6 +174,11 @@ struct threadobject {
 
 #define STACKFRAMEINFO    (THREADOBJECT->_stackframeinfo)
 
+/* counter for verbose call filter ********************************************/
+
+#if defined(ENABLE_DEBUG_FILTER)
+#      define FILTERVERBOSECALLCTR (THREADOBJECT->filterverbosecallctr)
+#endif
 
 /* functions ******************************************************************/
 
index 4216d8582d8225f052535a6b2b96e1d7d960ba88..19146040aa79a98ac66401802f48744c0909da5d 100644 (file)
@@ -59,6 +59,11 @@ extern struct stackframeinfo       *_no_threads_stackframeinfo;
 
 #define STACKFRAMEINFO      (_no_threads_stackframeinfo)
 
+#if defined(ENABLE_DEBUG_FILTER)
+extern u2 _no_threads_filterverbosecallctr[2];
+#define FILTERVERBOSECALLCTR (_no_threads_filterverbosecallctr)
+#endif
+
 #endif /* _THREADS_H */
 
 
index 7cc65e752da6a8eac0bb8b542f07675b34c4b8c1..b1534d2a4a7fe5d11efd48984ece52594868c67e 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: threads-common.c 7923 2007-05-20 23:57:39Z michi $
+   $Id: threads-common.c 8027 2007-06-07 10:30:33Z michi $
 
 */
 
 #include "config.h"
 
 #include <assert.h>
+#include <unistd.h>
 
 #include "vm/types.h"
 
+#include "mm/memory.h"
+
 #include "native/jni.h"
 
 #include "native/include/java_lang_Object.h"
@@ -47,6 +50,8 @@
 #include "threads/lock-common.h"
 #include "threads/threads-common.h"
 
+#include "toolbox/list.h"
+
 #include "vm/builtin.h"
 #include "vm/stringlocal.h"
 #include "vm/vm.h"
 
 /* global variables ***********************************************************/
 
-/* global threads table */
-static threads_table_t threads_table;
-
+/* global threads list */
+static list_t *list_threads;
 
-/* prototypes *****************************************************************/
+/* global threads free-list */
+static list_t *list_threads_free;
 
-static void threads_table_init(threadobject *mainthread);
+#if defined(__LINUX__)
+/* XXX Remove for exact-GC. */
+bool threads_pthreads_implementation_nptl;
+#endif
 
 
 /* threads_preinit *************************************************************
@@ -86,6 +94,40 @@ static void threads_table_init(threadobject *mainthread);
 void threads_preinit(void)
 {
        threadobject *mainthread;
+#if defined(__LINUX__)
+       char         *pathbuf;
+       size_t        len;
+#endif
+
+#if defined(__LINUX__)
+       /* XXX Remove for exact-GC. */
+
+       /* On Linux we need to check the pthread implementation. */
+
+       /* _CS_GNU_LIBPTHREAD_VERSION (GNU C library only; since glibc 2.3.2) */
+       /* If the glibc is a pre-2.3.2 version, we fall back to
+          linuxthreads. */
+
+# if defined(_CS_GNU_LIBPTHREAD_VERSION)
+       len = confstr(_CS_GNU_LIBPTHREAD_VERSION, NULL, (size_t) 0);
+
+       pathbuf = MNEW(char, len);
+
+       (void) confstr(_CS_GNU_LIBPTHREAD_VERSION, pathbuf, len);
+
+       if (strstr(pathbuf, "NPTL") != NULL)
+               threads_pthreads_implementation_nptl = true;
+       else
+               threads_pthreads_implementation_nptl = false;
+# else
+       threads_pthreads_implementation_nptl = false;
+# endif
+#endif
+
+       /* initialize the threads lists */
+
+       list_threads      = list_create(OFFSET(threadobject, linkage));
+       list_threads_free = list_create(OFFSET(threadobject, linkage));
 
        /* Initialize the threads implementation (sets the thinlock on the
           main thread). */
@@ -96,10 +138,6 @@ void threads_preinit(void)
 
        mainthread = threads_thread_new();
 
-       mainthread->object   = NULL;
-       mainthread->index    = 1;
-       mainthread->thinlock = lock_pre_compute_thinlock(mainthread->index);
-
        /* thread is a Java thread and running */
 
        mainthread->flags = THREAD_FLAG_JAVA;
@@ -108,10 +146,6 @@ void threads_preinit(void)
        /* store the internal thread data-structure in the TSD */
 
        threads_set_current_threadobject(mainthread);
-       
-       /* initialize the threads table with the main-thread */
-
-       threads_table_init(mainthread);
 
        /* initialize locking subsystems */
 
@@ -123,465 +157,194 @@ void threads_preinit(void)
 }
 
 
-/* threads_table_init **********************************************************
-
-   Initialize the global threads table.  We initialize the table with
-   the main-thread, which has always the index 1.
-
-   IN:
-      mainthread....the main-thread
-
-*******************************************************************************/
-
-#define THREADS_INITIAL_TABLE_SIZE    8
-
-static void threads_table_init(threadobject *mainthread)
-{
-       threads_table_entry_t *ttemain;
-       s4                     size;
-       s4                     i;
-
-       /* initialize the threads table lock */
-
-       threads_impl_table_init();
-
-       /* initialize the table */
-
-       size = THREADS_INITIAL_TABLE_SIZE;
-
-       threads_table.table   = MNEW(threads_table_entry_t, size);
-       threads_table.size    = size;
-       threads_table.used    = 0;
-       threads_table.daemons = 0;
-
-       /* Link the entries in a freelist.  Skip 2 entries: 0 is the
-          free-list header and 1 is the main thread. */
-
-       for (i = 2; i < size; i++) {
-               threads_table.table[i].thread = NULL;
-               threads_table.table[i].next   = i + 1;
-       }
-
-       threads_table.table[0].next = 2;
-
-       /* terminate the freelist */
-
-       threads_table.table[size - 1].next = 0;          /* index 0 is never free */
-
-       /* insert the main-thread */
-
-       ttemain = &(threads_table.table[1]);
-
-       ttemain->thread = mainthread;
-       ttemain->next   = 0;
-
-       /* now 1 entry is used */
-
-       threads_table.used = 1;
-}
-
-
-/* threads_table_add ***********************************************************
+/* threads_list_first **********************************************************
 
-   Add a thread to the global threads table. The index is entered in the
-   threadobject. The thinlock value for the thread is pre-computed.
+   Return the first entry in the threads list.
 
-   IN:
-      thread............the thread to add
-
-   RETURN VALUE:
-      The table index for the newly added thread. This value has also been
-         entered in the threadobject.
+   NOTE: This function does not lock the lists.
 
 *******************************************************************************/
 
-s4 threads_table_add(threadobject *thread)
-{
-       threads_table_entry_t *ttefree;
-       threads_table_entry_t *ttemain;
-       threads_table_entry_t *tte;
-       s4 index;
-       s4 oldsize;
-       s4 newsize;
-       s4 i;
-
-       /* lock the threads table */
-
-       threads_table_lock();
-
-       /* get free and main entry */
-
-       ttefree = &(threads_table.table[0]);
-       ttemain = &(threads_table.table[1]);
-
-       /* get the next free index */
-
-       index = ttefree->next;
-
-       /* no entry free anymore? resize the table */
-
-       if (index == 0) {
-               /* we must grow the table */
-
-               oldsize = threads_table.size;
-               newsize = oldsize * 2;
-
-               threads_table.table = MREALLOC(threads_table.table,
-                                                                          threads_table_entry_t, oldsize, newsize);
-               threads_table.size = newsize;
-
-               /* the addresses have changed, get them again */
-
-               ttefree = &(threads_table.table[0]);
-               ttemain = &(threads_table.table[1]);
-
-               /* link the new entries to a free list */
-
-               for (i = oldsize; i < newsize; i++) {
-                       threads_table.table[i].thread = NULL;
-                       threads_table.table[i].next   = i + 1;
-               }
-
-               ttefree->next = oldsize;
-
-               /* terminate the freelist */
-
-               threads_table.table[newsize - 1].next = 0;   /* index 0 is never free */
-
-               /* use the first of the new entries */
-
-               index = ttefree->next;
-       }
-
-       /* get the entry with the assigned index */
-
-       tte = &(threads_table.table[index]);
-
-       /* store the next free index into the free-list header */
-
-       ttefree->next = tte->next;
-
-       /* store the thread in the table */
-
-       tte->thread = thread;
-
-       /* link the new entry into the used-list */
-
-       tte->next     = ttemain->next;
-       ttemain->next = index;
-
-       /* update the counters */
-
-       threads_table.used++;
-
-       if (thread->flags & THREAD_FLAG_DAEMON)
-               threads_table.daemons++;
-
-       assert(threads_table.used < threads_table.size);
-
-       /* set the thread variables */
-
-       thread->index    = index;
-       thread->thinlock = lock_pre_compute_thinlock(index);
-
-       /* unlock the threads table */
-
-       threads_table_unlock();
-
-       return index;
-}
-
-
-/* threads_table_remove *******************************************************
-
-   Remove a thread from the global threads table.
-
-   IN:
-      thread............the thread to remove
-
-******************************************************************************/
-
-void threads_table_remove(threadobject *thread)
+threadobject *threads_list_first(void)
 {
-       threads_table_entry_t *ttefree;
-       threads_table_entry_t *tte;
-       s4                     index;
-       s4                     i;
-
-       /* lock the threads table */
-
-       threads_table_lock();
-
-       /* get the free entry */
-
-       ttefree = &(threads_table.table[0]);
-
-       /* get the current entry */
-
-       index = thread->index;
-       tte   = &(threads_table.table[index]);
-
-       assert(tte->thread == thread);
-
-       /* Find the entry which has the one to be removed as next entry (I
-          think it's better to do it at the removal in linear time than
-          to have a list or to do it every time we iterate over all
-          threads). */
-
-       for (i = 0; i < threads_table.size; i++) {
-               if (threads_table.table[i].next == index) {
-                       threads_table.table[i].next = tte->next;
-                       break;
-               }
-       }
-
-       /* clear the thread pointer in the entry */
-
-       tte->thread = NULL;
-
-       /* this entry is free now, add it to the free-list */
-
-       tte->next     = ttefree->next;
-       ttefree->next = index;
-
-       /* update the counters */
-
-       threads_table.used--;
-
-       if (thread->flags & THREAD_FLAG_DAEMON)
-               threads_table.daemons--;
-
-       assert(threads_table.used >= 0);
-
-       /* delete the index in the threadobject to discover bugs */
-#if !defined(NDEBUG)
-       thread->index = 0;
-#endif
+       threadobject *t;
 
-       /* unlock the threads table */
+       t = list_first_unsynced(list_threads);
 
-       threads_table_unlock();
+       return t;
 }
 
 
-/* threads_table_get ***********************************************************
+/* threads_list_next ***********************************************************
 
-   Return the thread of the given table-entry index.
+   Return the next entry in the threads list.
 
-   NOTE: It is valid to pass and index of 0, as this entry is the
-         free-list header where the thread pointer is always NULL and
-         this is thre expected behavior.
-
-   NOTE: This function does not lock the table.
+   NOTE: This function does not lock the lists.
 
 *******************************************************************************/
 
-static threadobject *threads_table_get(s4 index)
+threadobject *threads_list_next(threadobject *t)
 {
-       threadobject *thread;
-
-       /* get the requested entry */
-
-       assert((index >= 0) && (index < threads_table.size));
+       threadobject *next;
 
-       thread = threads_table.table[index].thread;
+       next = list_next_unsynced(list_threads, t);
 
-       return thread;
+       return next;
 }
 
 
-/* threads_table_get_threads ***************************************************
+/* threads_list_get_non_daemons ************************************************
 
-   Return the number of running threads.
+   Return the number of non-daemon threads.
 
-   NOTE: This function does not lock the table.
+   NOTE: This function does a linear-search over the threads list,
+         because it's only used for joining the threads.
 
 *******************************************************************************/
 
-s4 threads_table_get_threads(void)
+s4 threads_list_get_non_daemons(void)
 {
-       return threads_table.used;
-}
-
-
-/* threads_table_get_non_daemons ***********************************************
-
-   Return the number of non-daemon threads.
-
-*******************************************************************************/
+       threadobject *t;
+       s4            nondaemons;
 
-s4 threads_table_get_non_daemons(void)
-{
-       s4 nondaemons;
+       /* lock the threads lists */
 
-       /* lock the threads table */
+       threads_list_lock();
 
-       threads_table_lock();
+       nondaemons = 0;
 
-       nondaemons = threads_table.used - threads_table.daemons;
+       for (t = threads_list_first(); t != NULL; t = threads_list_next(t)) {
+               if (!(t->flags & THREAD_FLAG_DAEMON))
+                       nondaemons++;
+       }
 
-       /* unlock the threads table */
+       /* unlock the threads lists */
 
-       threads_table_unlock();
+       threads_list_unlock();
 
        return nondaemons;
 }
 
 
-/* threads_table_first *********************************************************
-
-   Return the first thread of the threads table.
-
-   NOTE: This is always the entry with index 1 and must be the main
-         thread.
+/* threads_thread_new **********************************************************
 
-   NOTE: This function does not lock the table.
+   Allocates and initializes an internal thread data-structure and
+   adds it to the threads list.
 
 *******************************************************************************/
 
-threadobject *threads_table_first(void)
+threadobject *threads_thread_new(void)
 {
-       threadobject *thread;
-
-       /* get the requested entry */
+       threadobject *t;
 
-       thread = threads_table_get(1);
+       /* lock the threads-lists */
 
-       return thread;
-}
+       threads_list_lock();
 
+       /* try to get a thread from the free-list */
 
-/* threads_table_next **********************************************************
+       t = list_first_unsynced(list_threads_free);
 
-   Return the next thread of the threads table relative to the passed
-   one.
+       /* is a free thread available? */
 
-   NOTE: This function does not lock the table.
-
-*******************************************************************************/
+       if (t != NULL) {
+               /* yes, remove it from the free list */
 
-threadobject *threads_table_next(threadobject *thread)
-{
-       threads_table_entry_t *tte;
-       threadobject          *next;
-       s4                     index;
-
-       index = thread->index;
+               list_remove_unsynced(list_threads_free, t);
+       }
+       else {
+               /* no, allocate a new one */
 
-       /* get the passed entry */
+#if defined(ENABLE_GC_BOEHM)
+               t = GCNEW_UNCOLLECTABLE(threadobject, 1);
+#else
+               t = NEW(threadobject);
+#endif
 
-       assert((index > 0) && (index < threads_table.size));
+#if defined(ENABLE_STATISTICS)
+               if (opt_stat)
+                       size_threadobject += sizeof(threadobject);
+#endif
 
-       tte = &(threads_table.table[index]);
+               /* clear memory */
 
-       /* get the requested entry */
+               MZERO(t, threadobject, 1);
 
-       next = threads_table_get(tte->next);
+               /* set the threads-index */
 
-       return next;
-}
+               t->index = list_threads->size + 1;
+       }
 
+       /* pre-compute the thinlock-word */
 
-/* threads_table_dump *********************************************************
+       assert(t->index != 0);
 
-   Dump the threads table for debugging purposes.
+       t->thinlock = lock_pre_compute_thinlock(t->index);
+       t->flags    = 0;
+       t->state    = THREAD_STATE_NEW;
 
-******************************************************************************/
+#if defined(ENABLE_GC_CACAO)
+       t->flags |= THREAD_FLAG_IN_NATIVE; 
+#endif
 
-#if !defined(NDEBUG)
-void threads_table_dump(void)
-{
-       s4 i;
-       s4 size;
-       ptrint index;
+       /* initialize the implementation-specific bits */
 
-       size = threads_table.size;
+       threads_impl_thread_new(t);
 
-       log_println("threads table ==========");
+       /* add the thread to the threads-list */
 
-       log_println("size:    %d", size);
-       log_println("used:    %d", threads_table.used);
-       log_println("daemons: %d", threads_table.daemons);
+       list_add_last_unsynced(list_threads, t);
 
-       for (i = 0; i < size; i++) {
-               index = threads_table.table[i].next;
+       /* unlock the threads-lists */
 
-               if (threads_table.table[i].thread != NULL)
-                       log_println("%4d: thread=0x%08x, next=%d", i,
-                                               threads_table.table[i].thread->tid, (int) index);
-               else
-                       log_println("%4d: free, next=%d", i, (int) index);
-       }
+       threads_list_unlock();
 
-       log_println("end of threads table ==========");
+       return t;
 }
-#endif
 
 
-/* threads_thread_new **********************************************************
+/* threads_thread_free *********************************************************
+
+   Frees an internal thread data-structure by removing it from the
+   threads-list and adding it to the free-list.
 
-   Allocates and initializes an internal thread data-structure.
+   NOTE: The data-structure is NOT freed, the pointer keeps valid!
 
 *******************************************************************************/
 
-threadobject *threads_thread_new(void)
+void threads_thread_free(threadobject *t)
 {
-       threadobject *t;
-
-       /* allocate internal thread data-structure */
-
-#if defined(ENABLE_GC_BOEHM)
-       t = GCNEW_UNCOLLECTABLE(threadobject, 1);
-#else
-       t = NEW(threadobject);
-#endif
+       s4 index;
 
-#if defined(ENABLE_STATISTICS)
-       if (opt_stat)
-               size_threadobject += sizeof(threadobject);
-#endif
+       /* lock the threads-lists */
 
-       /* initialize thread data structure */
+       threads_list_lock();
 
-       t->index       = 0;
-       t->flags       = 0;
-       t->interrupted = false;
-       t->signaled    = false;
-       t->sleeping    = false;
+       /* cleanup the implementation-specific bits */
 
-#if defined(ENABLE_GC_CACAO)
-       t->gc_critical = false;
-       t->flags      |= THREAD_FLAG_IN_NATIVE;
-#endif
+       threads_impl_thread_free(t);
 
-       threads_impl_thread_new(t);
+       /* remove the thread from the threads-list */
 
-       return t;
-}
+       list_remove_unsynced(list_threads, t);
 
+       /* Clear memory, but keep the thread-index. */
+       /* ATTENTION: Do this after list_remove, otherwise the linkage
+          pointers are invalid. */
 
-/* threads_thread_free *********************************************************
+       index = t->index;
 
-   Frees an internal thread data-structure.
+       MZERO(t, threadobject, 1);
 
-*******************************************************************************/
+       t->index = index;
 
-void threads_thread_free(threadobject *t)
-{
-       /* cleanup the implementation-specific bits */
+       /* add the thread to the free list */
 
-       threads_impl_thread_free(t);
+       list_add_first_unsynced(list_threads_free, t);
 
-#if defined(ENABLE_GC_BOEHM)
-       GCFREE(t);
-#else
-       FREE(t, threadobject);
-#endif
+       /* unlock the threads-lists */
 
-#if defined(ENABLE_STATISTICS)
-       if (opt_stat)
-               size_threadobject -= sizeof(threadobject);
-#endif
+       threads_list_unlock();
 }
 
 
@@ -598,58 +361,79 @@ void threads_thread_free(threadobject *t)
 
 bool threads_thread_start_internal(utf *name, functionptr f)
 {
-       threadobject       *thread;
-       java_lang_Thread   *t;
+       threadobject       *t;
+       java_lang_Thread   *object;
 #if defined(WITH_CLASSPATH_GNU)
        java_lang_VMThread *vmt;
 #endif
 
+       /* Enter the join-mutex, so if the main-thread is currently
+          waiting to join all threads, the number of non-daemon threads
+          is correct. */
+
+       threads_mutex_join_lock();
+
        /* create internal thread data-structure */
 
-       thread = threads_thread_new();
+       t = threads_thread_new();
+
+       t->flags |= THREAD_FLAG_INTERNAL | THREAD_FLAG_DAEMON;
+
+       /* The thread is flagged as (non-)daemon thread, we can leave the
+          mutex. */
+
+       threads_mutex_join_unlock();
 
        /* create the java thread object */
 
-       t = (java_lang_Thread *) builtin_new(class_java_lang_Thread);
+       object = (java_lang_Thread *) builtin_new(class_java_lang_Thread);
 
-       if (t == NULL)
+       /* XXX memory leak!!! */
+       if (object == NULL)
                return false;
 
 #if defined(WITH_CLASSPATH_GNU)
        vmt = (java_lang_VMThread *) builtin_new(class_java_lang_VMThread);
 
+       /* XXX memory leak!!! */
        if (vmt == NULL)
                return false;
 
-       vmt->thread = t;
-       vmt->vmdata = (java_lang_Object *) thread;
+       vmt->thread = object;
+       vmt->vmdata = (java_lang_Object *) t;
 
-       t->vmThread = vmt;
+       object->vmThread = vmt;
 #elif defined(WITH_CLASSPATH_CLDC1_1)
-       t->vm_thread = (java_lang_Object *) thread;
+       object->vm_thread = (java_lang_Object *) t;
 #endif
 
 #if defined(ENABLE_GC_CACAO)
        /* register reference to java.lang.Thread with the GC */
 
-       gc_reference_register(&(thread->object));
+       gc_reference_register(&(t->object));
 #endif
 
-       thread->object = t;
-
-       thread->flags |= THREAD_FLAG_INTERNAL | THREAD_FLAG_DAEMON;
+       t->object = object;
 
        /* set java.lang.Thread fields */
 
-       t->name     = (java_lang_String *) javastring_new(name);
+#if defined(WITH_CLASSPATH_GNU)
+       object->name     = (java_lang_String *) javastring_new(name);
+#elif defined(WITH_CLASSPATH_CLDC1_1)
+       /* FIXME: In cldc the name is a char[] */
+/*     object->name     = (java_chararray *) javastring_new(name); */
+       object->name     = NULL;
+#endif
+
 #if defined(ENABLE_JAVASE)
-       t->daemon   = true;
+       object->daemon   = true;
 #endif
-       t->priority = NORM_PRIORITY;
+
+       object->priority = NORM_PRIORITY;
 
        /* start the thread */
 
-       threads_impl_thread_start(thread, f);
+       threads_impl_thread_start(t, f);
 
        /* everything's ok */
 
@@ -671,19 +455,15 @@ void threads_thread_start(java_lang_Thread *object)
 {
        threadobject *thread;
 
-       /* create internal thread data-structure */
-
-       thread = threads_thread_new();
+       /* Enter the join-mutex, so if the main-thread is currently
+          waiting to join all threads, the number of non-daemon threads
+          is correct. */
 
-#if defined(ENABLE_GC_CACAO)
-       /* register reference to java.lang.Thread with the GC */
+       threads_mutex_join_lock();
 
-       gc_reference_register(&(thread->object));
-#endif
-
-       /* link the two objects together */
+       /* create internal thread data-structure */
 
-       thread->object = object;
+       thread = threads_thread_new();
 
        /* this is a normal Java thread */
 
@@ -696,6 +476,21 @@ void threads_thread_start(java_lang_Thread *object)
                thread->flags |= THREAD_FLAG_DAEMON;
 #endif
 
+       /* The thread is flagged and (non-)daemon thread, we can leave the
+          mutex. */
+
+       threads_mutex_join_unlock();
+
+#if defined(ENABLE_GC_CACAO)
+       /* register reference to java.lang.Thread with the GC */
+
+       gc_reference_register(&(thread->object));
+#endif
+
+       /* link the two objects together */
+
+       thread->object = object;
+
 #if defined(WITH_CLASSPATH_GNU)
        assert(object->vmThread);
        assert(object->vmThread->vmdata == NULL);
@@ -723,6 +518,8 @@ void threads_thread_print_info(threadobject *t)
        java_lang_Thread *object;
        utf              *name;
 
+       assert(t->state != THREAD_STATE_NEW);
+
        /* the thread may be currently in initalization, don't print it */
 
        object = t->object;
@@ -733,7 +530,9 @@ void threads_thread_print_info(threadobject *t)
 #if defined(ENABLE_JAVASE)
                name = javastring_toutf((java_objectheader *) object->name, false);
 #elif defined(ENABLE_JAVAME_CLDC1_1)
-               name = object->name;
+               /* FIXME: In cldc the name is a char[] */
+/*             name = object->name; */
+               name = utf_null;
 #endif
 
                printf("\"");
@@ -753,6 +552,8 @@ void threads_thread_print_info(threadobject *t)
                           (ptrint) t, (ptrint) t->tid, (ptrint) t->tid);
 #endif
 
+               printf(" index=%d", t->index);
+
                /* print thread state */
 
                switch (t->state) {
@@ -806,17 +607,91 @@ ptrint threads_get_current_tid(void)
 }
 
 
+/* threads_thread_state_runnable ***********************************************
+
+   Set the current state of the given thread to THREAD_STATE_RUNNABLE.
+
+*******************************************************************************/
+
+void threads_thread_state_runnable(threadobject *t)
+{
+       /* set the state inside the lock */
+
+       threads_list_lock();
+
+       t->state = THREAD_STATE_RUNNABLE;
+
+       threads_list_unlock();
+}
+
+
+/* threads_thread_state_waiting ************************************************
+
+   Set the current state of the given thread to THREAD_STATE_WAITING.
+
+*******************************************************************************/
+
+void threads_thread_state_waiting(threadobject *t)
+{
+       /* set the state in the lock */
+
+       threads_list_lock();
+
+       t->state = THREAD_STATE_WAITING;
+
+       threads_list_unlock();
+}
+
+
+/* threads_thread_state_timed_waiting ******************************************
+
+   Set the current state of the given thread to
+   THREAD_STATE_TIMED_WAITING.
+
+*******************************************************************************/
+
+void threads_thread_state_timed_waiting(threadobject *t)
+{
+       /* set the state in the lock */
+
+       threads_list_lock();
+
+       t->state = THREAD_STATE_TIMED_WAITING;
+
+       threads_list_unlock();
+}
+
+
+/* threads_thread_state_terminated *********************************************
+
+   Set the current state of the given thread to
+   THREAD_STATE_TERMINATED.
+
+*******************************************************************************/
+
+void threads_thread_state_terminated(threadobject *t)
+{
+       /* set the state in the lock */
+
+       threads_list_lock();
+
+       t->state = THREAD_STATE_TERMINATED;
+
+       threads_list_unlock();
+}
+
+
 /* threads_thread_get_state ****************************************************
 
    Returns the current state of the given thread.
 
 *******************************************************************************/
 
-utf *threads_thread_get_state(threadobject *thread)
+utf *threads_thread_get_state(threadobject *t)
 {
        utf *u;
 
-       switch (thread->state) {
+       switch (t->state) {
        case THREAD_STATE_NEW:
                u = utf_new_char("NEW");
                break;
@@ -836,7 +711,7 @@ utf *threads_thread_get_state(threadobject *thread)
                u = utf_new_char("TERMINATED");
                break;
        default:
-               vm_abort("threads_get_state: unknown thread state %d", thread->state);
+               vm_abort("threads_get_state: unknown thread state %d", t->state);
 
                /* keep compiler happy */
 
@@ -895,15 +770,15 @@ void threads_dump(void)
 
        /* XXX we should stop the world here */
 
-       /* lock the threads table */
+       /* lock the threads lists */
 
-       threads_table_lock();
+       threads_list_lock();
 
        printf("Full thread dump CACAO "VERSION":\n");
 
        /* iterate over all started threads */
 
-       for (t = threads_table_first(); t != NULL; t = threads_table_next(t)) {
+       for (t = threads_list_first(); t != NULL; t = threads_list_next(t)) {
                /* print thread info */
 
                printf("\n");
@@ -915,9 +790,9 @@ void threads_dump(void)
                threads_thread_print_stacktrace(t);
        }
 
-       /* unlock the threads table */
+       /* unlock the threads lists */
 
-       threads_table_unlock();
+       threads_list_unlock();
 }
 
 
index 2695d52859332a27781e40bd09a185dfc7a5978d..9fab77ae9c9a6910839e3fd3cd6def10c799a5c8 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: threads-common.h 7904 2007-05-14 13:29:32Z twisti $
+   $Id: threads-common.h 8003 2007-06-03 18:42:09Z twisti $
 
 */
 
 
 #if defined(ENABLE_THREADS)
 
-/* typedefs *******************************************************************/
-
-typedef struct threads_table_entry_t threads_table_entry_t;
-typedef struct threads_table_t       threads_table_t;
-
-
 /* thread states **************************************************************/
 
-#define THREAD_STATE_NEW              0
-#define THREAD_STATE_RUNNABLE         1
-#define THREAD_STATE_BLOCKED          2
-#define THREAD_STATE_WAITING          3
-#define THREAD_STATE_TIMED_WAITING    4
-#define THREAD_STATE_TERMINATED       5
+#define THREAD_STATE_NEW              1
+#define THREAD_STATE_RUNNABLE         2
+#define THREAD_STATE_BLOCKED          3
+#define THREAD_STATE_WAITING          4
+#define THREAD_STATE_TIMED_WAITING    5
+#define THREAD_STATE_TERMINATED       6
 
 
 /* thread priorities **********************************************************/
@@ -73,58 +67,36 @@ typedef struct threads_table_t       threads_table_t;
 #define MAX_PRIORITY     10
 
 
-/* threads_table_entry_t *******************************************************
-
-   An entry in the global threads table.
-
-*******************************************************************************/
-
-struct threads_table_entry_t {
-       threadobject *thread;              /* an existing thread                  */
-       s4            next;                /* next free or used index             */
-};
-
-
-/* threads_table_t *************************************************************
-
-   Struct for the global threads table.
-
-*******************************************************************************/
-
-struct threads_table_t {
-       threads_table_entry_t *table;      /* the table, threads[0] is the head   */
-                                          /* of the free list. Real entries      */
-                                                                          /* start at threads[1].                */
-       s4                     size;       /* current size of the table           */
-       s4                     used;       /* number of thread entries            */
-       s4                     daemons;    /* number of daemon thread entries     */
-};
+#if defined(__LINUX__)
+/* XXX Remove for exact-GC. */
+extern bool threads_pthreads_implementation_nptl;
+#endif
 
 
 /* function prototypes ********************************************************/
 
 void          threads_preinit(void);
 
-s4            threads_table_add(threadobject *thread);
-void          threads_table_remove(threadobject *thread);
-s4            threads_table_get_threads(void);
-s4            threads_table_get_non_daemons(void);
-threadobject *threads_table_first(void);
-threadobject *threads_table_next(threadobject *thread);
-
-#if !defined(NDEBUG)
-void          threads_table_dump(void);
-#endif
+threadobject *threads_list_first(void);
+threadobject *threads_list_next(threadobject *t);
+s4            threads_list_get_non_daemons(void);
 
 threadobject *threads_thread_new(void);
 void          threads_thread_free(threadobject *t);
+
 bool          threads_thread_start_internal(utf *name, functionptr f);
 void          threads_thread_start(java_lang_Thread *object);
 
 void          threads_thread_print_info(threadobject *t);
 
 ptrint        threads_get_current_tid(void);
-utf          *threads_thread_get_state(threadobject *thread);
+
+void          threads_thread_state_runnable(threadobject *t);
+void          threads_thread_state_waiting(threadobject *t);
+void          threads_thread_state_timed_waiting(threadobject *t);
+void          threads_thread_state_terminated(threadobject *t);
+utf          *threads_thread_get_state(threadobject *t);
+
 bool          threads_thread_is_alive(threadobject *thread);
 
 void          threads_dump(void);
@@ -136,9 +108,11 @@ void          threads_print_stacktrace(void);
 
 void          threads_impl_preinit(void);
 
-void          threads_impl_table_init(void);
-void          threads_table_lock(void);
-void          threads_table_unlock(void);
+void          threads_list_lock(void);
+void          threads_list_unlock(void);
+
+void          threads_mutex_join_lock(void);
+void          threads_mutex_join_unlock(void);
 
 void          threads_set_current_threadobject(threadobject *thread);
 void          threads_impl_thread_new(threadobject *t);
index 502cb1f41e74f93548f662060d2805b04e497521..b01d7d2c4ce9b76faf0c23f8a3b206dcf510e962 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: access.c 7563 2007-03-23 21:33:53Z twisti $
+   $Id: access.c 7976 2007-05-29 12:22:55Z twisti $
 
 */
 
 #include "config.h"
 
 #include <assert.h>
+#include <string.h>
 
 #include "vm/types.h"
 
+#include "mm/memory.h"
+
 #include "vm/access.h"
 #include "vm/builtin.h"
 #include "vm/exceptions.h"
@@ -40,6 +43,8 @@
 #include "vm/jit/stacktrace.h"
 
 #include "vmcore/class.h"
+#include "vmcore/field.h"
+#include "vmcore/method.h"
 
 
 /****************************************************************************/
@@ -155,13 +160,94 @@ bool access_is_accessible_member(classinfo *referer, classinfo *declarer,
 }
 
 
-/* access_check_member *********************************************************
+/* access_check_field **********************************************************
  
-   Check if the (indirect) caller has access rights to a member.
+   Check if the (indirect) caller has access rights to the specified
+   field.
   
    IN:
-       declarer.........the class declaring the member
-       memberflags......the access flags of the member
+       f................the field to check
+          calldepth........number of callers to ignore
+                           For example if the stacktrace looks like this:
+
+                                          java.lang.reflect.Method.invokeNative (Native Method)
+                                  [0] java.lang.reflect.Method.invoke (Method.java:329)
+                                  [1] <caller>
+
+                                       you must specify 1 so the access rights of <caller> 
+                                               are checked.
+  
+   RETURN VALUE:
+       true.............access permitted
+       false............access denied, an exception has been thrown
+   
+*******************************************************************************/
+
+bool access_check_field(fieldinfo *f, s4 calldepth)
+{
+       java_objectarray *oa;
+       classinfo        *callerclass;
+       char             *msg;
+       s4                msglen;
+       utf              *u;
+
+       /* if everything is public, there is nothing to check */
+
+       if ((f->class->flags & ACC_PUBLIC) && (f->flags & ACC_PUBLIC))
+               return true;
+
+       /* get the caller's class */
+
+       oa = stacktrace_getClassContext();
+
+       if (oa == NULL)
+               return false;
+
+       assert(calldepth >= 0 && calldepth < oa->header.size);
+
+       callerclass = (classinfo *) oa->data[calldepth];
+
+       /* check access rights */
+
+       if (!access_is_accessible_member(callerclass, f->class, f->flags)) {
+               msglen =
+                       utf_bytes(f->class->name) +
+                       strlen(".") +
+                       utf_bytes(f->name) +
+                       strlen(" not accessible from ") +
+                       utf_bytes(callerclass->name) +
+                       strlen("0");
+
+               msg = MNEW(char, msglen);
+
+               utf_copy_classname(msg, f->class->name);
+               strcat(msg, ".");
+               utf_cat_classname(msg, f->name);
+               strcat(msg, " not accessible from ");
+               utf_cat_classname(msg, callerclass->name);
+
+               u = utf_new_char(msg);
+
+               MFREE(msg, char, msglen);
+               
+               exceptions_throw_illegalaccessexception(u);
+
+               return false;
+       }
+
+       /* access granted */
+
+       return true;
+}
+
+
+/* access_check_method *********************************************************
+   Check if the (indirect) caller has access rights to the specified
+   method.
+  
+   IN:
+       m................the method to check
           calldepth........number of callers to ignore
                            For example if the stacktrace looks like this:
 
@@ -178,14 +264,17 @@ bool access_is_accessible_member(classinfo *referer, classinfo *declarer,
    
 *******************************************************************************/
 
-bool access_check_member(classinfo *declarer, s4 memberflags, s4 calldepth)
+bool access_check_method(methodinfo *m, s4 calldepth)
 {
        java_objectarray *oa;
        classinfo        *callerclass;
+       char             *msg;
+       s4                msglen;
+       utf              *u;
 
        /* if everything is public, there is nothing to check */
 
-       if ((declarer->flags & ACC_PUBLIC) && (memberflags & ACC_PUBLIC))
+       if ((m->class->flags & ACC_PUBLIC) && (m->flags & ACC_PUBLIC))
                return true;
 
        /* get the caller's class */
@@ -201,8 +290,31 @@ bool access_check_member(classinfo *declarer, s4 memberflags, s4 calldepth)
 
        /* check access rights */
 
-       if (!access_is_accessible_member(callerclass, declarer, memberflags)) {
-               exceptions_throw_illegalaccessexception(callerclass);
+       if (!access_is_accessible_member(callerclass, m->class, m->flags)) {
+               msglen =
+                       utf_bytes(m->class->name) +
+                       strlen(".") +
+                       utf_bytes(m->name) +
+                       utf_bytes(m->descriptor) +
+                       strlen(" not accessible from ") +
+                       utf_bytes(callerclass->name) +
+                       strlen("0");
+
+               msg = MNEW(char, msglen);
+
+               utf_copy_classname(msg, m->class->name);
+               strcat(msg, ".");
+               utf_cat_classname(msg, m->name);
+               utf_cat_classname(msg, m->descriptor);
+               strcat(msg, " not accessible from ");
+               utf_cat_classname(msg, callerclass->name);
+
+               u = utf_new_char(msg);
+
+               MFREE(msg, char, msglen);
+               
+               exceptions_throw_illegalaccessexception(u);
+
                return false;
        }
 
index e2b867be1d64626641f4a536a88dab122da571e9..c11bcd557f7002de1c493660e9f3cb78dcce08b2 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: access.h 7441 2007-03-02 23:13:10Z michi $
+   $Id: access.h 7976 2007-05-29 12:22:55Z twisti $
 
 */
 
@@ -36,6 +36,8 @@
 #include "vm/global.h"
 
 #include "vmcore/class.h"
+#include "vmcore/field.h"
+#include "vmcore/method.h"
 
 
 /* macros *********************************************************************/
@@ -52,7 +54,8 @@ bool access_is_accessible_class(classinfo *referer, classinfo *cls);
 bool access_is_accessible_member(classinfo *referer, classinfo *declarer,
                                                                 s4 memberflags);
 
-bool access_check_member(classinfo *declarer, s4 memberflags, s4 calldepth);
+bool access_check_field(fieldinfo *f, s4 calldepth);
+bool access_check_method(methodinfo *m, s4 calldepth);
 
 #endif /* _ACCESS_H */
 
index 21453355e075def1193955bdd1d0119a4feacfa0..1a1de55a52a6ba7a200632b182a3482e51e379c0 100644 (file)
@@ -28,7 +28,7 @@
    calls instead of machine instructions, using the C calling
    convention.
 
-   $Id: builtin.c 7918 2007-05-20 20:42:18Z michi $
+   $Id: builtin.c 8027 2007-06-07 10:30:33Z michi $
 
 */
 
@@ -37,7 +37,6 @@
 
 #include <assert.h>
 #include <errno.h>
-#include <math.h>
 #include <stdlib.h>
 #include <string.h>
 #include <sys/time.h>
@@ -83,6 +82,9 @@
 #include <vmlog_cacao.h>
 #endif
 
+#if defined(ENABLE_DEBUG_FILTER)
+#      include "vm/jit/show.h"
+#endif
 
 /* include builtin tables *****************************************************/
 
@@ -1219,6 +1221,10 @@ java_objectheader *builtin_trace_exception(java_objectheader *xptr,
        s4    dumpsize;
        codeinfo *code;
 
+#if defined(ENABLE_DEBUG_FILTER)
+       if (! show_filters_test_verbosecall_exit(m)) return xptr;
+#endif
+
 #if defined(ENABLE_VMLOG)
        return xptr;
 #endif
@@ -1462,7 +1468,6 @@ static char *builtin_print_argument(char *logtext, s4 *logtextlen,
 }
 #endif /* !defined(NDEBUG) */
 
-
 /* builtin_verbosecall_enter ***************************************************
 
    Print method call with arguments for -verbose:call.
@@ -1491,6 +1496,10 @@ void builtin_verbosecall_enter(s8 a0, s8 a1,
        s4          i;
        s4          pos;
 
+#if defined(ENABLE_DEBUG_FILTER)
+       if (! show_filters_test_verbosecall_enter(m)) return;
+#endif
+
 #if defined(ENABLE_VMLOG)
        vmlog_cacao_enter_method(m);
        return;
@@ -1645,6 +1654,7 @@ void builtin_verbosecall_enter(s8 a0, s8 a1,
        dump_release(dumpsize);
 
        methodindent++;
+
 }
 #endif
 #endif /* !defined(NDEBUG) */
@@ -1667,6 +1677,10 @@ void builtin_verbosecall_exit(s8 l, double d, float f, methodinfo *m)
        s4          pos;
        imm_union   val;
 
+#if defined(ENABLE_DEBUG_FILTER)
+       if (! show_filters_test_verbosecall_exit(m)) return;
+#endif
+
 #if defined(ENABLE_VMLOG)
        vmlog_cacao_leave_method(m);
        return;
@@ -1748,6 +1762,7 @@ void builtin_verbosecall_exit(s8 l, double d, float f, methodinfo *m)
        /* release memory */
 
        dump_release(dumpsize);
+
 }
 #endif /* !defined(NDEBUG) */
 
index 1d2259c5e5bd45ea41881b44e8f02c0d7251dcd9..96798bc0c2ebdda7ddee807fe34c92176e369404 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: exceptions.c 7785 2007-04-21 10:55:30Z edwin $
+   $Id: exceptions.c 8005 2007-06-04 13:12:56Z twisti $
 
 */
 
@@ -33,6 +33,8 @@
 #include <string.h>
 #include <stdarg.h>
 #include <stdlib.h>
+#include <unistd.h>
+#include <sys/mman.h>
 
 #include "vm/types.h"
 
 #include "native/include/java_lang_String.h"
 #include "native/include/java_lang_Throwable.h"
 
-#if defined(ENABLE_THREADS)
-# include "threads/native/threads.h"
-#else
-# include "threads/none/threads.h"
-#endif
+#include "threads/lock-common.h"
+#include "threads/threads-common.h"
 
 #include "toolbox/logging.h"
 #include "toolbox/util.h"
@@ -90,6 +89,20 @@ java_objectheader *_no_threads_exceptionptr = NULL;
 
 bool exceptions_init(void)
 {
+       int pagesize;
+
+       /* mmap a memory page at address 0x0, so our hardware-exceptions
+          work. */
+
+       pagesize = getpagesize();
+
+       (void) memory_mmap_anon(NULL, pagesize, PROT_NONE, MAP_PRIVATE | MAP_FIXED);
+
+       /* check if we get into trouble with our hardware-exceptions */
+
+       if (OFFSET(java_bytearray, data) <= EXCEPTION_HARDWARE_PATCHER)
+               vm_abort("signal_init: array-data offset is less or equal the maximum hardware-exception displacement: %d <= %d", OFFSET(java_bytearray, data), EXCEPTION_HARDWARE_PATCHER);
+
        /* java/lang/Throwable */
 
        if (!(class_java_lang_Throwable =
@@ -395,38 +408,6 @@ static java_objectheader *exceptions_new_utf_utf(utf *classname, utf *message)
 }
 
 
-/* new_exception_message *******************************************************
-
-   Creates an exception object with the given name and initalizes it
-   with the given char message.
-
-   IN:
-      classname....class name in UTF-8
-         message......message in UTF-8
-
-   RETURN VALUE:
-      an exception pointer (in any case -- either it is the newly created
-         exception, or an exception thrown while trying to create it).
-
-*******************************************************************************/
-
-static java_objectheader *new_exception_message(const char *classname,
-                                                                                               const char *message)
-{
-       java_objectheader *o;
-       java_objectheader *s;
-
-       s = javastring_new_from_utf_string(message);
-
-       if (s == NULL)
-               return *exceptionptr;
-
-       o = exceptions_new_utf_javastring(classname, s);
-
-       return o;
-}
-
-
 /* exceptions_throw_class_utf **************************************************
 
    Creates an exception object of the given class, initalizes and
@@ -461,38 +442,6 @@ static void exceptions_throw_utf_utf(utf *classname, utf *message)
 }
 
 
-/* new_exception_int ***********************************************************
-
-   Creates an exception object with the given name and initalizes it
-   with the given int value.
-
-   IN:
-      classname....class name in UTF-8
-         i............the integer
-
-   RETURN VALUE:
-      an exception pointer (in any case -- either it is the newly created
-         exception, or an exception thrown while trying to create it).
-
-*******************************************************************************/
-
-java_objectheader *new_exception_int(const char *classname, s4 i)
-{
-       java_objectheader *o;
-       classinfo         *c;
-   
-       if (!(c = load_class_bootstrap(utf_new_char(classname))))
-               return *exceptionptr;
-
-       o = native_new_and_init_int(c, i);
-
-       if (!o)
-               return *exceptionptr;
-
-       return o;
-}
-
-
 /* exceptions_new_abstractmethoderror ****************************************
 
    Generates a java.lang.AbstractMethodError for the VM.
@@ -593,36 +542,13 @@ void exceptions_throw_abstractmethoderror(void)
    classloader.
 
    IN:
-      c............the class in which the error was found
+      c....the class in which the error was found
 
 *******************************************************************************/
 
 void exceptions_throw_classcircularityerror(classinfo *c)
 {
-       java_objectheader *o;
-       char              *msg;
-       s4                 msglen;
-
-       /* calculate message length */
-
-       msglen = utf_bytes(c->name) + strlen("0");
-
-       /* allocate a buffer */
-
-       msg = MNEW(char, msglen);
-
-       /* print message into allocated buffer */
-
-       utf_copy_classname(msg, c->name);
-
-       o = new_exception_message(utf_java_lang_ClassCircularityError, msg);
-
-       MFREE(msg, char, msglen);
-
-       if (o == NULL)
-               return;
-
-       *exceptionptr = o;
+       exceptions_throw_utf_utf(utf_java_lang_ClassCircularityError, c->name);
 }
 
 
@@ -638,10 +564,10 @@ void exceptions_throw_classcircularityerror(classinfo *c)
 
 void exceptions_throw_classformaterror(classinfo *c, const char *message, ...)
 {
-       java_objectheader *o;
-       char              *msg;
-       s4                 msglen;
-       va_list            ap;
+       char    *msg;
+       s4       msglen;
+       va_list  ap;
+       utf     *u;
 
        /* calculate message length */
 
@@ -677,11 +603,15 @@ void exceptions_throw_classformaterror(classinfo *c, const char *message, ...)
        if (c != NULL)
                strcat(msg, ")");
 
-       o = new_exception_message(utf_java_lang_ClassFormatError, msg);
+       u = utf_new_char(msg);
+
+       /* free memory */
 
        MFREE(msg, char, msglen);
 
-       *exceptionptr = o;
+       /* throw exception */
+
+       exceptions_throw_utf_utf(utf_java_lang_ClassFormatError, u);
 }
 
 
@@ -769,7 +699,7 @@ void classnotfoundexception_to_noclassdeffounderror(void)
        java_objectheader   *xptr;
        java_objectheader   *cause;
        java_lang_Throwable *t;
-       java_lang_String    *s;
+       java_objectheader   *s;
 
        /* get the cause */
 
@@ -785,9 +715,10 @@ void classnotfoundexception_to_noclassdeffounderror(void)
                /* create new error */
 
                t = (java_lang_Throwable *) cause;
-               s = t->detailMessage;
+               s = (java_objectheader *) t->detailMessage;
 
-               xptr = exceptions_new_utf_javastring(utf_java_lang_NoClassDefFoundError, s);
+               xptr = exceptions_new_utf_javastring(utf_java_lang_NoClassDefFoundError,
+                                                                                        s);
 
                /* we had an exception while creating the error */
 
@@ -830,9 +761,9 @@ void exceptions_throw_exceptionininitializererror(java_objectheader *cause)
 
 void exceptions_throw_incompatibleclasschangeerror(classinfo *c, const char *message)
 {
-       java_objectheader *o;
-       char              *msg;
-       s4                 msglen;
+       char *msg;
+       s4    msglen;
+       utf  *u;
 
        /* calculate exception message length */
 
@@ -845,17 +776,15 @@ void exceptions_throw_incompatibleclasschangeerror(classinfo *c, const char *mes
        utf_copy_classname(msg, c->name);
        strcat(msg, message);
 
-       o = native_new_and_init_string(utf_java_lang_IncompatibleClassChangeError,
-                                                                  javastring_new_from_utf_string(msg));
+       u = utf_new_char(msg);
 
        /* free memory */
 
        MFREE(msg, char, msglen);
 
-       if (o == NULL)
-               return;
+       /* throw exception */
 
-       *exceptionptr = o;
+       exceptions_throw_utf_utf(utf_java_lang_IncompatibleClassChangeError, u);
 }
 
 
@@ -882,10 +811,10 @@ void exceptions_throw_instantiationerror(classinfo *c)
 
 void exceptions_throw_internalerror(const char *message, ...)
 {
-       java_objectheader *o;
-       va_list            ap;
-       char              *msg;
-       s4                 msglen;
+       va_list  ap;
+       char    *msg;
+       s4       msglen;
+       utf     *u;
 
        /* calculate exception message length */
 
@@ -903,18 +832,15 @@ void exceptions_throw_internalerror(const char *message, ...)
        vsprintf(msg, message, ap);
        va_end(ap);
 
-       /* create exception object */
-
-       o = new_exception_message(utf_java_lang_InternalError, msg);
+       u = utf_new_char(msg);
 
        /* free memory */
 
        MFREE(msg, char, msglen);
 
-       if (o == NULL)
-               return;
+       /* throw exception */
 
-       *exceptionptr = o;
+       exceptions_throw_utf_utf(utf_java_lang_InternalError, u);
 }
 
 
@@ -1101,9 +1027,9 @@ void exceptions_throw_unsatisfiedlinkerror(utf *name)
 
 void exceptions_throw_unsupportedclassversionerror(classinfo *c, u4 ma, u4 mi)
 {
-       java_objectheader *o;
-       char              *msg;
-    s4                 msglen;
+       char *msg;
+    s4    msglen;
+       utf  *u;
 
        /* calculate exception message length */
 
@@ -1122,18 +1048,15 @@ void exceptions_throw_unsupportedclassversionerror(classinfo *c, u4 ma, u4 mi)
        sprintf(msg + strlen(msg), " (Unsupported major.minor version %d.%d)",
                        ma, mi);
 
-       /* create exception object */
-
-       o = new_exception_message(utf_java_lang_UnsupportedClassVersionError, msg);
+       u = utf_new_char(msg);
 
        /* free memory */
 
        MFREE(msg, char, msglen);
 
-       if (o == NULL)
-               return;
+       /* throw exception */
 
-       *exceptionptr = o;
+       exceptions_throw_utf_utf(utf_java_lang_UnsupportedClassVersionError, u);
 }
 
 
@@ -1149,10 +1072,10 @@ void exceptions_throw_unsupportedclassversionerror(classinfo *c, u4 ma, u4 mi)
 
 void exceptions_throw_verifyerror(methodinfo *m, const char *message, ...)
 {
-       java_objectheader *o;
-       va_list            ap;
-       char              *msg;
-       s4                 msglen;
+       va_list  ap;
+       char    *msg;
+       s4       msglen;
+       utf     *u;
 
        /* calculate exception message length */
 
@@ -1189,15 +1112,15 @@ void exceptions_throw_verifyerror(methodinfo *m, const char *message, ...)
        vsprintf(msg + strlen(msg), message, ap);
        va_end(ap);
 
-       /* create exception object */
-
-       o = new_exception_message(utf_java_lang_VerifyError, msg);
+       u = utf_new_char(msg);
 
        /* free memory */
 
        MFREE(msg, char, msglen);
 
-       *exceptionptr = o;
+       /* throw exception */
+
+       exceptions_throw_utf_utf(utf_java_lang_VerifyError, u);
 }
 
 
@@ -1215,18 +1138,18 @@ void exceptions_throw_verifyerror(methodinfo *m, const char *message, ...)
 
 *******************************************************************************/
 
-void exceptions_throw_verifyerror_for_stack(methodinfo *m,int type)
+void exceptions_throw_verifyerror_for_stack(methodinfo *m, int type)
 {
-       java_objectheader *o;
-       char              *msg;
-       s4                 msglen;
-       char              *typename;
+       char *msg;
+       s4    msglen;
+       char *typename;
+       utf  *u;
 
        /* calculate exception message length */
 
        msglen = 0;
 
-       if (m)
+       if (m != NULL)
                msglen = strlen("(class: ") + utf_bytes(m->class->name) +
                        strlen(", method: ") + utf_bytes(m->name) +
                        strlen(" signature: ") + utf_bytes(m->descriptor) +
@@ -1239,7 +1162,7 @@ void exceptions_throw_verifyerror_for_stack(methodinfo *m,int type)
 
        /* generate message */
 
-       if (m) {
+       if (m != NULL) {
                strcpy(msg, "(class: ");
                utf_cat_classname(msg, m->class->name);
                strcat(msg, ", method: ");
@@ -1252,7 +1175,8 @@ void exceptions_throw_verifyerror_for_stack(methodinfo *m,int type)
                msg[0] = 0;
        }
 
-       strcat(msg,"Expecting to find ");
+       strcat(msg, "Expecting to find ");
+
        switch (type) {
                case TYPE_INT: typename = "integer"; break;
                case TYPE_LNG: typename = "long"; break;
@@ -1262,18 +1186,19 @@ void exceptions_throw_verifyerror_for_stack(methodinfo *m,int type)
                case TYPE_RET: typename = "returnAddress"; break;
                default:       typename = "<INVALID>"; assert(0); break;
        }
+
        strcat(msg, typename);
        strcat(msg, " on stack");
 
-       /* create exception object */
-
-       o = new_exception_message(utf_java_lang_VerifyError, msg);
+       u = utf_new_char(msg);
 
        /* free memory */
 
        MFREE(msg, char, msglen);
 
-       *exceptionptr = o;
+       /* throw exception */
+
+       exceptions_throw_utf_utf(utf_java_lang_VerifyError, u);
 }
 
 
@@ -1287,10 +1212,8 @@ java_objectheader *exceptions_new_arithmeticexception(void)
 {
        java_objectheader *o;
 
-       o = new_exception_message(utf_java_lang_ArithmeticException, "/ by zero");
-
-       if (o == NULL)
-               return *exceptionptr;
+       o = exceptions_new_utf_utf(utf_java_lang_ArithmeticException,
+                                                          utf_division_by_zero);
 
        return o;
 }
@@ -1371,16 +1294,10 @@ java_objectheader *exceptions_new_classcastexception(java_objectheader *o)
 {
        java_objectheader *e;
        utf               *classname;
-       java_lang_String  *s;
 
        classname = o->vftbl->class->name;
 
-       s = javastring_new(classname);
-
-       e = native_new_and_init_string(class_java_lang_ClassCastException, s);
-
-       if (e == NULL)
-               return *exceptionptr;
+       e = exceptions_new_class_utf(class_java_lang_ClassCastException, classname);
 
        return e;
 }
@@ -1405,11 +1322,9 @@ void exceptions_throw_clonenotsupportedexception(void)
 
 *******************************************************************************/
 
-void exceptions_throw_illegalaccessexception(classinfo *c)
+void exceptions_throw_illegalaccessexception(utf *message)
 {
-       /* XXX handle argument */
-
-       exceptions_throw_utf(utf_java_lang_IllegalAccessException);
+       exceptions_throw_utf_utf(utf_java_lang_IllegalAccessException, message);
 }
 
 
@@ -1714,6 +1629,10 @@ java_objectheader *exceptions_new_hardware_exception(u1 *pv, u1 *sp, u1 *ra, u1
 #endif
 
                vm_abort("Exiting...");
+
+               /* keep compiler happy */
+
+               e = NULL;
        }
 
        /* remove stackframeinfo */
@@ -1952,7 +1871,7 @@ void exceptions_print_exception(java_objectheader *xptr)
        utf_display_printable_ascii_classname(t->header.vftbl->class->name);
 
        if (t->detailMessage != NULL) {
-               u = javastring_toutf(t->detailMessage, false);
+               u = javastring_toutf((java_objectheader *) t->detailMessage, false);
 
                printf(": ");
                utf_display_printable_ascii(u);
@@ -1967,8 +1886,9 @@ void exceptions_print_exception(java_objectheader *xptr)
                printf("Caused by: ");
                utf_display_printable_ascii_classname(cause->header.vftbl->class->name);
 
-               if (cause->detailMessage) {
-                       u = javastring_toutf(cause->detailMessage, false);
+               if (cause->detailMessage != NULL) {
+                       u = javastring_toutf((java_objectheader *) cause->detailMessage,
+                                                                false);
 
                        printf(": ");
                        utf_display_printable_ascii(u);
index f8aa9ab034db179f6b316b691ea60a61bb8b7222..0a23a1eb594b1c4722b500fea85e90826643a4f6 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: exceptions.h 7773 2007-04-19 19:44:54Z twisti $
+   $Id: exceptions.h 8004 2007-06-04 12:59:04Z twisti $
 
 */
 
    8-byte boundaries, since normal loads could have such offsets with
    a base of NULL which should result in a NullPointerException.
 
-   NOTE: In signal_init() we have an assert checking that the offset
-   of java_objectheader.data[0] is greater than the largest
-   displacement defined below.  Otherwise normal array loads/stores
-   could trigger an exception.
+   NOTE: In signal_init() we have a check whether the offset of
+   java_objectheader.data[0] is greater than the largest displacement
+   defined below.  Otherwise normal array loads/stores could trigger
+   an exception.
 
 *******************************************************************************/
 
@@ -64,7 +64,6 @@
 #define EXCEPTION_HARDWARE_CLASSCAST                3
 
 #define EXCEPTION_HARDWARE_EXCEPTION                5
-
 #define EXCEPTION_HARDWARE_PATCHER                  6
 
 
@@ -78,8 +77,6 @@ bool exceptions_init(void);
 java_objectheader *new_exception_utfmessage(const char *classname,
                                                                                        utf *message);
 
-java_objectheader *new_exception_int(const char *classname, s4 i);
-
 
 /* functions to generate compiler exceptions */
 
@@ -116,7 +113,7 @@ void exceptions_throw_arraystoreexception(void);
 java_objectheader *exceptions_new_classcastexception(java_objectheader *o);
 
 void exceptions_throw_clonenotsupportedexception(void);
-void exceptions_throw_illegalaccessexception(classinfo *c);
+void exceptions_throw_illegalaccessexception(utf *message);
 void exceptions_throw_illegalargumentexception(void);
 void exceptions_throw_illegalmonitorstateexception(void);
 void exceptions_throw_interruptedexception(void);
index c1fa249dd8fd88df18fa9e1737c172935db4d3bf..f53bbc457e906b34ab8c3c859bb44bdd586dea11 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: md-os.c 7886 2007-05-07 21:34:01Z twisti $
+   $Id: md-os.c 7955 2007-05-23 18:05:26Z twisti $
 
 */
 
@@ -163,10 +163,8 @@ void md_critical_section_restart(ucontext_t *_uc)
 
        npc = critical_find_restart_point(pc);
 
-       if (npc != NULL) {
-               log_println("md_critical_section_restart: pc=%p, npc=%p", pc, npc);
+       if (npc != NULL)
                _mc->sc_pc = (ptrint) npc;
-       }
 }
 #endif
 
index 4ed764b31f2e3ba2478642c73235faba29df7fda..c88d893b74755cc30cc08061a42407adfc0d92aa 100644 (file)
@@ -220,10 +220,8 @@ void md_critical_section_restart(ucontext_t *_uc)
 
        npc = critical_find_restart_point(pc);
 
-       if (npc != NULL) {
-               log_println("md_critical_section_restart: pc=%p, npc=%p", pc, npc);
+       if (npc != NULL)
                _sc->arm_pc = (ptrint) npc;
-       }
 }
 #endif
 
index fd46f72c6748c03298567e3ae43d3cbb26b1ba91..15e41a79a6a80ed4355ded8c3ff899475dbf3b8f 100644 (file)
@@ -85,6 +85,9 @@ struct codeinfo {
        s4            stackframesize;       /* size of the stackframe in slots    */
        u1            savedintcount;        /* number of callee saved int regs    */
        u1            savedfltcount;        /* number of callee saved flt regs    */
+# if defined(HAS_ADDRESS_REGISTER_FILE)
+       u1            savedadrcount;        /* number of callee saved adr regs    */
+# endif
        u1           *savedmcode;           /* saved code under patches           */
 #endif
 
index 344dcad6ceb7392d30e33666f349dac078fb2fae..401b3edd52e7c8cb98508d98c722baa3ac981f4e 100644 (file)
@@ -39,7 +39,7 @@
    memory. All functions writing values into the data area return the offset
    relative the begin of the code area (start of procedure).   
 
-   $Id: codegen-common.c 7940 2007-05-23 09:42:08Z michi $
+   $Id: codegen-common.c 8027 2007-06-07 10:30:33Z michi $
 
 */
 
 # include "codegen.h"
 #endif
 
-#if defined(__ARM__)
-/* this is required for REG_SPLIT */
-# include "md-abi.h"
-#endif
-
 #include "mm/memory.h"
 
 #include "toolbox/avl.h"
 #include <vmlog_cacao.h>
 #endif
 
+#include "show.h"
 
 /* in this tree we store all method addresses *********************************/
 
@@ -142,7 +138,9 @@ void codegen_init(void)
 
                avl_insert(methodtree, mte);
 #endif /* defined(ENABLE_JIT) */
+
        }
+
 }
 
 
@@ -547,7 +545,16 @@ void codegen_add_patch_ref(codegendata *cd, functionptr patcher, voidptr ref,
        if (opt_shownops)
                PATCHER_NOPS;
 
+       /* If the codegen provides a PACHER_LONGBRANCHES_NOPS macro, honour it. */
+
+#if defined(PATCHER_LONGBRANCHES_NOPS)
+       if (CODEGENDATA_HAS_FLAG_LONGBRANCHES(cd)) {
+               PATCHER_LONGBRANCHES_NOPS;
+       }
+#endif
+
 #if defined(ENABLE_JIT) && (defined(__I386__) || defined(__MIPS__) || defined(__X86_64__) || defined(__M68K__))
+
        /* On some architectures the patcher stub call instruction might
           be longer than the actual instruction generated.  On this
           architectures we store the last patcher call position and after
@@ -1350,16 +1357,21 @@ codeinfo *codegen_generate_stub_native(methodinfo *m, functionptr f)
        /* disassemble native stub */
 
        if (opt_shownativestub) {
+#if defined(ENABLE_DEBUG_FILTER)
+               if (m->filtermatches & SHOW_FILTER_FLAG_SHOW_METHOD)
+#endif
+               {
 #if defined(ENABLE_DISASSEMBLER)
-               codegen_disassemble_nativestub(m,
-                                                                          (u1 *) (ptrint) code->entrypoint,
-                                                                          (u1 *) (ptrint) code->entrypoint + (code->mcodelength - jd->cd->dseglen));
+                       codegen_disassemble_nativestub(m,
+                                                                                  (u1 *) (ptrint) code->entrypoint,
+                                                                                  (u1 *) (ptrint) code->entrypoint + (code->mcodelength - jd->cd->dseglen));
 #endif
 
-               /* show data segment */
+                       /* show data segment */
 
-               if (opt_showddatasegment)
-                       dseg_display(jd);
+                       if (opt_showddatasegment)
+                               dseg_display(jd);
+               }
        }
 #endif /* !defined(NDEBUG) */
 
@@ -1497,6 +1509,8 @@ void codegen_start_native_call(u1 *datasp, u1 *pv, u1 *sp, u1 *ra)
        stackframeinfo *sfi;
        localref_table *lrt;
 
+       STATISTICS(count_calls_java_to_native++);
+
        /* get data structures from stack */
 
        sfi = (stackframeinfo *) (datasp - sizeof(stackframeinfo));
@@ -1640,11 +1654,6 @@ void removenativestub(u1 *stub)
    spilled) this function returns tempregnum.  If not already done,
    regoff and flags are set in the stack location.
        
-   On ARM we have to check if a long/double variable is splitted
-   across reg/stack (HIGH_REG == REG_SPLIT). We return the actual
-   register of v for LOW_REG and the tempregnum for HIGH_REG in such
-   cases.  (michi 2005/07/24)
-
 *******************************************************************************/
 
 s4 codegen_reg_of_var(u2 opcode, varinfo *v, s4 tempregnum)
@@ -1659,19 +1668,8 @@ s4 codegen_reg_of_var(u2 opcode, varinfo *v, s4 tempregnum)
                return tempregnum;
 #endif
 
-       if (!(v->flags & INMEMORY)) {
-#if defined(__ARM__) && defined(__ARMEL__)
-               if (IS_2_WORD_TYPE(v->type) && (GET_HIGH_REG(v->vv.regoff) == REG_SPLIT))
-                       return PACK_REGS(GET_LOW_REG(v->vv.regoff),
-                                                        GET_HIGH_REG(tempregnum));
-#endif
-#if defined(__ARM__) && defined(__ARMEB__)
-               if (IS_2_WORD_TYPE(v->type) && (GET_LOW_REG(v->vv.regoff) == REG_SPLIT))
-                       return PACK_REGS(GET_LOW_REG(tempregnum),
-                                                        GET_HIGH_REG(v->vv.regoff));
-#endif
+       if (!(v->flags & INMEMORY))
                return v->vv.regoff;
-       }
 
 #if defined(ENABLE_STATISTICS)
        if (opt_stat)
@@ -1681,6 +1679,7 @@ s4 codegen_reg_of_var(u2 opcode, varinfo *v, s4 tempregnum)
        return tempregnum;
 }
 
+
 /* codegen_reg_of_dst **********************************************************
 
    This function determines a register, to which the result of an
@@ -1690,11 +1689,6 @@ s4 codegen_reg_of_var(u2 opcode, varinfo *v, s4 tempregnum)
    spilled) this function returns tempregnum.  If not already done,
    regoff and flags are set in the stack location.
        
-   On ARM we have to check if a long/double variable is splitted
-   across reg/stack (HIGH_REG == REG_SPLIT). We return the actual
-   register of dst.var for LOW_REG and the tempregnum for HIGH_REG in such
-   cases.  (michi 2005/07/24)
-
 *******************************************************************************/
 
 s4 codegen_reg_of_dst(jitdata *jd, instruction *iptr, s4 tempregnum)
index b37c063eb9dbabba04411df6592c23b19a7668a0..5d39dc3481066fc8d114c36a713838cd9d06874e 100644 (file)
@@ -145,7 +145,7 @@ void emit_buge(codegendata *cd, basicblock *target);
 void emit_bugt(codegendata *cd, basicblock *target);
 #endif
 
-#if defined(__POWERPC__)
+#if defined(__POWERPC__) || defined(__POWERPC64__)
 void emit_bnan(codegendata *cd, basicblock *target);
 #endif
 
index 3ff69fcbce10f1be4f31cd41cead97af1625bb13..0a6c24fe4bac2af133a3cbe8f1387ceb13b3dd0e 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: md-os.c 7925 2007-05-21 00:06:33Z michi $
+   $Id: md-os.c 8027 2007-06-07 10:30:33Z michi $
 
 */
 
@@ -107,6 +107,7 @@ void md_signal_handler_sigsegv(int sig, siginfo_t *siginfo, void *_p)
                /* this was a normal NPE */
 
                type = EXCEPTION_HARDWARE_NULLPOINTER;
+               val  = 0;
        }
 
        /* generate appropriate exception */
@@ -226,9 +227,9 @@ void md_signal_handler_sigusr2(int sig, siginfo_t *siginfo, void *_p)
 #if defined(ENABLE_THREADS)
 void md_critical_section_restart(ucontext_t *_uc)
 {
-       mcontext_t    *_mc;
-       u1            *pc;
-       void          *npc;
+       mcontext_t *_mc;
+       u1         *pc;
+       u1         *npc;
 
        _mc = &_uc->uc_mcontext;
 
@@ -236,10 +237,8 @@ void md_critical_section_restart(ucontext_t *_uc)
 
        npc = critical_find_restart_point(pc);
 
-       if (npc != NULL) {
-               log_println("md_critical_section_restart: pc=%p, npc=%p", pc, npc);
+       if (npc != NULL)
                _mc->gregs[REG_EIP] = (ptrint) npc;
-       }
 }
 #endif
 
index b6e4c69dd4884462164ef6fe72e07c438d448343..9061bd8c779b0111e4d3c8e854193c3aa8908c16 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: jit.c 7835 2007-04-26 13:43:08Z twisti $
+   $Id: jit.c 7966 2007-05-25 12:41:03Z pm $
 
 */
 
@@ -1283,6 +1283,10 @@ static u1 *jit_compile_intern(jitdata *jd)
 
        DEBUG_JIT_COMPILEVERBOSE("Compiling: ");
 
+#if defined(ENABLE_DEBUG_FILTER)
+       show_filters_apply(jd->m);
+#endif
+
        /* handle native methods and create a native stub */
 
        if (m->flags & ACC_NATIVE) {
@@ -1457,7 +1461,7 @@ static u1 *jit_compile_intern(jitdata *jd)
 #endif /* defined(ENABLE_JIT) */
        RT_TIMING_GET_TIME(time_alloc);
 
-#if defined(ENABLE_PROFLING)
+#if defined(ENABLE_PROFILING)
        /* Allocate memory for basic block profiling information. This
           _must_ be done after loop optimization and register allocation,
           since they can change the basic block count. */
@@ -1509,20 +1513,25 @@ static u1 *jit_compile_intern(jitdata *jd)
        DEBUG_JIT_COMPILEVERBOSE("Generating code done: ");
 
 #if !defined(NDEBUG)
-       /* intermediate and assembly code listings */
+#if defined(ENABLE_DEBUG_FILTER)
+       if (jd->m->filtermatches & SHOW_FILTER_FLAG_SHOW_METHOD)
+#endif
+       {
+               /* intermediate and assembly code listings */
                
-       if (JITDATA_HAS_FLAG_SHOWINTERMEDIATE(jd)) {
-               show_method(jd, SHOW_CODE);
-       }
-       else if (JITDATA_HAS_FLAG_SHOWDISASSEMBLE(jd)) {
+               if (JITDATA_HAS_FLAG_SHOWINTERMEDIATE(jd)) {
+                       show_method(jd, SHOW_CODE);
+               }
+               else if (JITDATA_HAS_FLAG_SHOWDISASSEMBLE(jd)) {
 # if defined(ENABLE_DISASSEMBLER)
-               DISASSEMBLE(code->entrypoint,
-                                       code->entrypoint + (code->mcodelength - cd->dseglen));
+                       DISASSEMBLE(code->entrypoint,
+                                               code->entrypoint + (code->mcodelength - cd->dseglen));
 # endif
-       }
+               }
 
-       if (opt_showddatasegment)
-               dseg_display(jd);
+               if (opt_showddatasegment)
+                       dseg_display(jd);
+       }
 #endif
 
        DEBUG_JIT_COMPILEVERBOSE("Compiling done: ");
index e227e48e829a378675be2394a42efadba3f0a5c3..5faa716fe20fa0bc86e9c80e798c43c9471b3b70 100644 (file)
@@ -1,6 +1,6 @@
 ## src/vm/jit/mips/Makefile.am
 ##
-## Copyright (C) 1996-2005, 2006 R. Grafl, A. Krall, C. Kruegel,
+## Copyright (C) 1996-2005, 2006, 2007 R. Grafl, A. Krall, C. Kruegel,
 ## C. Oates, R. Obermaisser, M. Platter, M. Probst, S. Ring,
 ## E. Steiner, C. Thalinger, D. Thuernbeck, P. Tomsich, C. Ullrich,
 ## J. Wenninger, Institut f. Computersprachen - TU Wien
 ## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 ## 02110-1301, USA.
 ##
-## Contact: cacao@cacaojvm.org
-##
-## Authors: Christian Thalinger
-##
-## Changes:
-##
-## $Id: Makefile.am 5815 2006-10-20 18:35:32Z twisti $
+## $Id: Makefile.am 7957 2007-05-23 18:28:01Z twisti $
 
 ## Process this file with automake to produce Makefile.in
 
 DIST_SUBDIRS = \
        irix \
-       linux
+       linux \
+       uclinux
 
 SUBDIRS = $(OS_DIR)
 
index a2768dfe41524ee68d22e13654d1ac03c21281aa..435edccf9ea68e9183039c74397c8c7b13360084 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: asmpart.S 7678 2007-04-09 17:23:55Z twisti $
+   $Id: asmpart.S 8011 2007-06-05 10:06:18Z twisti $
 
 */
 
@@ -266,7 +266,7 @@ calljava_argsloaded:
        aaddu   sp,sp,t2                  /* create stackframe                    */
        aaddu   t2,t2,t4                  /* also set temp sp                     */
 #if SIZEOF_VOID_P == 4
-       aaddiu  t2,t2,4*8                 /* skip stack space for 4 arguments     */
+       aaddiu  t2,t2,4*4                 /* skip stack space for 4 arguments     */
        addiu   t1,t1,4
 #endif
 
index 3af2ae78e7341175b9b2c882b4674bed3cb4ba1f..684c6ce4ea9b04acea4b4912119de57740b60982 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: codegen.c 7880 2007-05-07 14:13:45Z twisti $
+   $Id: codegen.c 8011 2007-06-05 10:06:18Z twisti $
 
 */
 
@@ -224,15 +224,15 @@ bool codegen_emit(jitdata *jd)
                                else
                                        M_LST(s1, REG_SP, var->vv.regoff * 8);
 #else
-                               if (IS_2_WORD_TYPE(t)) {
-                                       if (!(var->flags & INMEMORY))
+                               if (!(var->flags & INMEMORY)) {
+                                       if (IS_2_WORD_TYPE(t))
                                                M_LNGMOVE(s1, var->vv.regoff);
                                        else
-                                               M_LST(s1, REG_SP, var->vv.regoff * 8);
+                                               M_INTMOVE(s1, var->vv.regoff);
                                }
                                else {
-                                       if (!(var->flags & INMEMORY))
-                                               M_INTMOVE(s1, var->vv.regoff);
+                                       if (IS_2_WORD_TYPE(t))
+                                               M_LST(s1, REG_SP, var->vv.regoff * 8);
                                        else
                                                M_IST(s1, REG_SP, var->vv.regoff * 8);
                                }
@@ -255,12 +255,11 @@ bool codegen_emit(jitdata *jd)
                }
                else {                                       /* floating args         */
                        if (!md->params[p].inmemory) {
-#if SIZEOF_VOID_P == 8
                                if (!(var->flags & INMEMORY)) {
                                        if (IS_2_WORD_TYPE(t))
-                                               M_DMOV(s1, var->vv.regoff);
+                                               M_DBLMOVE(s1, var->vv.regoff);
                                        else
-                                               M_FMOV(s1, var->vv.regoff);
+                                               M_FLTMOVE(s1, var->vv.regoff);
                                }
                                else {
                                        if (IS_2_WORD_TYPE(t))
@@ -268,42 +267,6 @@ bool codegen_emit(jitdata *jd)
                                        else
                                                M_FST(s1, REG_SP, var->vv.regoff * 8);
                                }
-#else
-                               if ((p == 0) ||
-                                       ((p == 1) && IS_FLT_DBL_TYPE(md->paramtypes[0].type))) {
-                                       if (!(var->flags & INMEMORY)) {
-                                               if (IS_2_WORD_TYPE(t))
-                                                       M_DBLMOVE(s1, var->vv.regoff);
-                                               else
-                                                       M_FLTMOVE(s1, var->vv.regoff);
-                                       }
-                                       else {
-                                               if (IS_2_WORD_TYPE(t))
-                                                       M_DST(s1, REG_SP, var->vv.regoff * 8);
-                                               else
-                                                       M_FST(s1, REG_SP, var->vv.regoff * 8);
-                                       }
-                               }
-                               else {
-                                       if (IS_2_WORD_TYPE(t)) {
-                                               if (!(var->flags & INMEMORY)) {
-                                                       M_MTC1(GET_LOW_REG(s1), var->vv.regoff);
-                                                       M_MTC1(GET_HIGH_REG(s1), var->vv.regoff + 1);
-                                                       M_NOP;
-                                               }
-                                               else
-                                                       M_LST(s1, REG_SP, var->vv.regoff * 8);
-                                       }
-                                       else {
-                                               if (!(var->flags & INMEMORY)) {
-                                                       M_MTC1(s1, var->vv.regoff);
-                                                       M_NOP;
-                                               }
-                                               else
-                                                       M_IST(s1, REG_SP, var->vv.regoff * 8);
-                                       }
-                               }
-#endif
                        }
                        else {
                                if (!(var->flags & INMEMORY)) {
@@ -3118,35 +3081,11 @@ gen_method:
                                }
                                else {
                                        if (!md->params[s3].inmemory) {
-#if SIZEOF_VOID_P == 8
                                                s1 = emit_load(jd, iptr, var, d);
                                                if (IS_2_WORD_TYPE(var->type))
-                                                       M_DMOV(s1, d);
+                                                       M_DBLMOVE(s1, d);
                                                else
-                                                       M_FMOV(s1, d);
-#else
-                                               if ((s3 == 0) ||
-                                                       ((s3 == 1) && IS_FLT_DBL_TYPE(md->paramtypes[0].type))) {
-                                                       s1 = emit_load(jd, iptr, var, d);
-                                                       if (IS_2_WORD_TYPE(var->type))
-                                                               M_DBLMOVE(s1, d);
-                                                       else
-                                                               M_FLTMOVE(s1, d);
-                                               }
-                                               else {
-                                                       if (IS_2_WORD_TYPE(var->type)) {
-                                                               s1 = emit_load(jd, iptr, var, REG_FTMP1);
-                                                               M_MFC1(GET_LOW_REG(d), s1);
-                                                               M_MFC1(GET_HIGH_REG(d), s1 + 1);
-                                                               M_NOP;
-                                                       }
-                                                       else {
-                                                               s1 = emit_load(jd, iptr, var, d);
-                                                               M_MFC1(d, s1);
-                                                               M_NOP;
-                                                       }
-                                               }       
-#endif
+                                                       M_FLTMOVE(s1, d);
                                        }
                                        else {
                                                s1 = emit_load(jd, iptr, var, REG_FTMP1);
@@ -3922,7 +3861,7 @@ void codegen_emit_stub_native(jitdata *jd, methoddesc *nmd, functionptr f)
                                        /* On MIPS32 float arguments for native functions
                                           can never be in float argument registers, since
                                           the first argument is _always_ an integer
-                                          argument (JNIenv) */
+                                          argument (JNIEnv) */
 
                                        if (IS_2_WORD_TYPE(t)) {
                                                /* double high/low order is endian
@@ -3958,6 +3897,7 @@ void codegen_emit_stub_native(jitdata *jd, methoddesc *nmd, functionptr f)
                                s1 = md->params[i].regoff + cd->stackframesize;
                                s2 = nmd->params[j].regoff;
 
+#if SIZEOF_VOID_P == 8
                                if (IS_2_WORD_TYPE(t)) {
                                        M_DLD(REG_FTMP1, REG_SP, s1 * 8);
                                        M_DST(REG_FTMP1, REG_SP, s2 * 8);
@@ -3966,6 +3906,16 @@ void codegen_emit_stub_native(jitdata *jd, methoddesc *nmd, functionptr f)
                                        M_FLD(REG_FTMP1, REG_SP, s1 * 8);
                                        M_FST(REG_FTMP1, REG_SP, s2 * 8);
                                }
+#else
+                               if (IS_2_WORD_TYPE(t)) {
+                                       M_DLD(REG_FTMP1, REG_SP, s1 * 8);
+                                       M_DST(REG_FTMP1, REG_SP, s2 * 4);
+                               }
+                               else {
+                                       M_FLD(REG_FTMP1, REG_SP, s1 * 8);
+                                       M_FST(REG_FTMP1, REG_SP, s2 * 4);
+                               }
+#endif
                        }
                }
        }
index 37b1e7e3d7f4a41ee268ef2a6b08d4d082603dde..ee99bae04cea1a5dde02ff3f2b9c8eec978dd139 100644 (file)
@@ -1,6 +1,6 @@
 /* src/vm/jit/mips/irix/md-os.c - machine dependent MIPS IRIX functions
 
-   Copyright (C) 1996-2005, 2006 R. Grafl, A. Krall, C. Kruegel,
+   Copyright (C) 1996-2005, 2006, 2007 R. Grafl, A. Krall, C. Kruegel,
    C. Oates, R. Obermaisser, M. Platter, M. Probst, S. Ring,
    E. Steiner, C. Thalinger, D. Thuernbeck, P. Tomsich, C. Ullrich,
    J. Wenninger, Institut f. Computersprachen - TU Wien
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   Contact: cacao@cacaojvm.org
-
-   Authors: Andreas Krall
-            Reinhard Grafl
-            Christian Thalinger
-
-   $Id: md-os.c 7615 2007-03-29 23:10:59Z michi $
+   $Id: md-os.c 8027 2007-06-07 10:30:33Z michi $
 
 */
 
 
 #include "vm/types.h"
 
+#include "vm/jit/mips/codegen.h"
 #include "vm/jit/mips/md-abi.h"
 
 #include "mm/gc-common.h"
+
 #include "vm/exceptions.h"
 #include "vm/global.h"
 #include "vm/signallocal.h"
 #include "vm/stringlocal.h"
+
 #include "vm/jit/asmpart.h"
 #include "vm/jit/codegen-common.h"
 #include "vm/jit/stacktrace.h"
@@ -82,21 +79,26 @@ void md_init(void)
 
 /* md_signal_handler_sigsegv ***************************************************
 
-   NullPointerException signal handler for hardware null pointer
-   check.
+   Signal handler for hardware-exceptions.
 
 *******************************************************************************/
 
 void md_signal_handler_sigsegv(int sig, siginfo_t *siginfo, void *_p)
 {
-       ucontext_t  *_uc;
-       mcontext_t  *_mc;
-       u4           instr;
-       ptrint       addr;
-       u1          *pv;
-       u1          *sp;
-       u1          *ra;
-       u1          *xpc;
+       ucontext_t        *_uc;
+       mcontext_t        *_mc;
+       u1                *pv;
+       u1                *sp;
+       u1                *ra;
+       u1                *xpc;
+       u4                 mcode;
+       s4                 d;
+       s4                 s1;
+       s4                 disp;
+       ptrint             val;
+       ptrint             addr;
+       s4                 type;
+       java_objectheader *o;
 
        _uc = (struct ucontext *) _p;
        _mc = &_uc->uc_mcontext;
@@ -106,35 +108,67 @@ void md_signal_handler_sigsegv(int sig, siginfo_t *siginfo, void *_p)
        ra  = (u1 *) _mc->gregs[REG_RA];             /* this is correct for leafs */
        xpc = (u1 *) _mc->gregs[CTX_EPC];
 
-       instr = *((u4 *) (_mc->gregs[CTX_EPC]));
-       addr = _mc->gregs[(instr >> 21) & 0x1f];
+       /* get exception-throwing instruction */
+
+       mcode = *((u4 *) xpc);
 
-       if (addr == 0) {
-               _mc->gregs[REG_ITMP1_XPTR] =
-                       (ptrint) stacktrace_hardware_nullpointerexception(pv, sp, ra, xpc);
+       d    = M_ITYPE_GET_RT(mcode);
+       s1   = M_ITYPE_GET_RS(mcode);
+       disp = M_ITYPE_GET_IMM(mcode);
 
-               _mc->gregs[REG_ITMP2_XPC] = (ptrint) xpc;
-               _mc->gregs[CTX_EPC] = (ptrint) asm_handle_exception;
+       /* check for special-load */
+
+       if (s1 == REG_ZERO) {
+               /* we use the exception type as load displacement */
+
+               type = disp;
+               val  = _mc->gregs[d];
        }
        else {
-               codegen_get_pv_from_pc(xpc);
-
-               /* this should not happen */
+               /* This is a normal NPE: addr must be NULL and the NPE-type
+                  define is 0. */
 
-               assert(0);
+               addr = _mc->gregs[s1];
+               type = (s4) addr;
+               val  = 0;
        }
+
+       /* generate appropriate exception */
+
+       o = exceptions_new_hardware_exception(pv, sp, ra, xpc, type, val);
+
+       /* set registers */
+
+       _mc->gregs[REG_ITMP1_XPTR] = (ptrint) o;
+       _mc->gregs[REG_ITMP2_XPC]  = (ptrint) xpc;
+       _mc->gregs[CTX_EPC]        = (ptrint) asm_handle_exception;
 }
 
 
+/* md_critical_section_restart *************************************************
+
+   Search the critical sections tree for a matching section and set
+   the PC to the restart point, if necessary.
+
+*******************************************************************************/
+
 #if defined(ENABLE_THREADS)
-void thread_restartcriticalsection(ucontext_t *uc)
+void md_critical_section_restart(ucontext_t *_uc)
 {
-       void *critical;
+       mcontext_t *_mc;
+       u1         *pc;
+       u1         *npc;
+
+       _mc = &_uc->uc_mcontext;
 
-       critical = critical_find_restart_point((void*) uc->uc_mcontext.gregs[CTX_EPC]);
+       pc = (u1 *) _mc->gregs[CTX_EPC];
 
-       if (critical)
-               uc->uc_mcontext.gregs[CTX_EPC] = (ptrint) critical;
+       npc = critical_find_restart_point(pc);
+
+       if (npc != NULL) {
+               log_println("md_critical_section_restart: pc=%p, npc=%p", pc, npc);
+               _mc->gregs[CTX_EPC] = (ptrint) npc;
+       }
 }
 #endif
 
index d539eef67d2d48ac43689e3a0a547f446da2cf15..f31ea649d9a09884921bb3b0f50146cc70c24d18 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: md-abi.c 7713 2007-04-15 21:49:48Z twisti $
+   $Id: md-abi.c 8013 2007-06-05 10:19:09Z twisti $
 
 */
 
@@ -264,31 +264,24 @@ void md_param_alloc(methoddesc *md)
        s4         i;
        s4         reguse;
        s4         stacksize;
-#if SIZEOF_VOID_P == 4 && !defined(ENABLE_SOFT_FLOAT)
-       s4         t;
-       bool       a0_is_float;
-#endif
 
        /* set default values */
 
        reguse      = 0;
        stacksize   = 0;
-#if SIZEOF_VOID_P == 4 && !defined(ENABLE_SOFT_FLOAT)
-       a0_is_float = false;
-#endif
 
        /* get params field of methoddesc */
 
        pd = md->params;
 
-       for (i = 0; i < md->paramcount; i++, pd++) {
 #if SIZEOF_VOID_P == 8
 
+       for (i = 0; i < md->paramcount; i++, pd++) {
                switch (md->paramtypes[i].type) {
                case TYPE_INT:
                case TYPE_ADR:
                case TYPE_LNG:
-                       if (i < INT_ARG_CNT) {
+                       if (reguse < INT_ARG_CNT) {
                                pd->inmemory = false;
                                pd->regoff   = abi_registers_integer_argument[reguse];
                                reguse++;
@@ -300,9 +293,10 @@ void md_param_alloc(methoddesc *md)
                                stacksize++;
                        }
                        break;
+
                case TYPE_FLT:
                case TYPE_DBL:
-                       if (i < FLT_ARG_CNT) {
+                       if (reguse < FLT_ARG_CNT) {
                                pd->inmemory = false;
                                pd->regoff   = abi_registers_float_argument[reguse];
                                reguse++;
@@ -319,13 +313,180 @@ void md_param_alloc(methoddesc *md)
                /* register type is the same as java type */
 
                pd->type = md->paramtypes[i].type;
+       }
 
 #else /* SIZEOF_VOID_P == 8 */
 
-#if !defined(ENABLE_SOFT_FLOAT)
+# if !defined(ENABLE_SOFT_FLOAT)
+
+       /* Set stacksize to 2, as 4 32-bit argument registers can be
+          stored. */
+       /* XXX maybe this should be done in stack.c? */
+
+       stacksize = 2;
+
+       for (i = 0; i < md->paramcount; i++, pd++) {
+               switch (md->paramtypes[i].type) {
+               case TYPE_INT:
+               case TYPE_ADR:
+                       if (reguse < INT_ARG_CNT) {
+                               pd->inmemory = false;
+                               pd->regoff   = abi_registers_integer_argument[reguse];
+                               reguse++;
+                               md->argintreguse = reguse;
+                       }
+                       else {
+                               pd->inmemory = true;
+                               pd->regoff   = stacksize;
+                               stacksize++;
+                       }
+                       break;
+
+               case TYPE_LNG:
+                       ALIGN_2(reguse);
+
+                       if (reguse < INT_ARG_CNT) {
+                               pd->inmemory = false;
+#  if WORDS_BIGENDIAN == 1
+                               pd->regoff   =
+                                       PACK_REGS(abi_registers_integer_argument[reguse + 1],
+                                                         abi_registers_integer_argument[reguse]);
+#  else
+                               pd->regoff   =
+                                       PACK_REGS(abi_registers_integer_argument[reguse],
+                                                         abi_registers_integer_argument[reguse + 1]);
+#  endif
+                               reguse += 2;
+                               md->argintreguse = reguse;
+                       }
+                       else {
+                               pd->inmemory = true;
+                               pd->regoff   = stacksize;
+                               stacksize++;
+                       }
+                       break;
+
+               case TYPE_FLT:
+               case TYPE_DBL:
+                       if (reguse < FLT_ARG_CNT) {
+                               pd->inmemory = false;
+                               pd->regoff   = abi_registers_float_argument[reguse];
+                               reguse++;
+                               md->argfltreguse = reguse;
+                       }
+                       else {
+                               pd->inmemory = true;
+                               pd->regoff   = stacksize;
+                               stacksize++;
+                       }
+                       break;
+               }
+
+               /* register type is the same as java type */
+
+               pd->type = md->paramtypes[i].type;
+       }
+
+# else /* !defined(ENABLE_SOFT_FLOAT) */
+#  error never actually tested!
+
+       for (i = 0; i < md->paramcount; i++, pd++) {
+               switch (md->paramtypes[i].type) {
+               case TYPE_INT:
+               case TYPE_ADR:
+               case TYPE_FLT:
+                       pd->type = TYPE_INT;
+
+                       if (reguse < INT_ARG_CNT) {
+                               pd->inmemory = false;
+                               pd->regoff   = abi_registers_integer_argument[reguse];
+                               reguse++;
+                               md->argintreguse = reguse;
+                       }
+                       else {
+                               pd->inmemory = true;
+                               pd->regoff   = stacksize;
+                       }
+                       stacksize++;
+                       break;
+
+               case TYPE_LNG:
+               case TYPE_DBL:
+                       pd->type = TYPE_LNG;
+
+                       if (reguse < INT_ARG_CNT) {
+                               pd->inmemory = false;
+#  if WORDS_BIGENDIAN == 1
+                               pd->regoff   =
+                                       PACK_REGS(abi_registers_integer_argument[reguse + 1],
+                                                         abi_registers_integer_argument[reguse]);
+#  else
+                               pd->regoff   =
+                                       PACK_REGS(abi_registers_integer_argument[reguse],
+                                                         abi_registers_integer_argument[reguse + 1]);
+#  endif
+                               reguse += 2;
+                               md->argintreguse = reguse;
+                       }
+                       else {
+                               pd->inmemory = true;
+                               pd->regoff   = stacksize;
+                       }
+                       stacksize += 2;
+                       break;
+               }
+       }
+
+# endif /* !defined(ENABLE_SOFT_FLOAT) */
+#endif /* SIZEOF_VOID_P == 8 */
+
+       /* fill register and stack usage */
+
+       md->memuse = stacksize;
+}
+
+
+/* md_param_alloc_native *******************************************************
+
+   Pre-allocate arguments according the native ABI.
+
+*******************************************************************************/
+
+void md_param_alloc_native(methoddesc *md)
+{
+#if SIZEOF_VOID_P == 8
+
+       /* On MIPS n64 we use the same ABI for JIT method calls as for
+          native method calls. */
+
+       md_param_alloc(md);
+
+#else /* SIZEOF_VOID_P == 8 */
+
+       paramdesc *pd;
+       s4         i;
+       s4         reguse;
+       s4         stacksize;
+# if !defined(ENABLE_SOFT_FLOAT)
+       s4         t;
+       bool       a0_is_float;
+# endif
 
-#define ALIGN_2_WORD(s)    ((s) & 1) ? ++(s) : (s)
+       /* set default values */
 
+       reguse      = 0;
+       stacksize   = 0;
+# if !defined(ENABLE_SOFT_FLOAT)
+       a0_is_float = false;
+# endif
+
+       /* get params field of methoddesc */
+
+       pd = md->params;
+
+# if !defined(ENABLE_SOFT_FLOAT)
+
+       for (i = 0; i < md->paramcount; i++, pd++) {
                t = md->paramtypes[i].type;
 
                if (IS_FLT_DBL_TYPE(t) &&
@@ -348,26 +509,28 @@ void md_param_alloc(methoddesc *md)
                }
                else {
                        if (IS_2_WORD_TYPE(t)) {
-                               ALIGN_2_WORD(reguse);
+                               ALIGN_2(reguse);
                                pd->type = TYPE_LNG;
 
                                if (reguse < INT_ARG_CNT) {
                                        pd->inmemory = false;
-# if WORDS_BIGENDIAN == 1
+#  if WORDS_BIGENDIAN == 1
                                        pd->regoff   =
                                                PACK_REGS(abi_registers_integer_argument[reguse + 1],
                                                                  abi_registers_integer_argument[reguse]);
-# else
+#  else
                                        pd->regoff   =
                                                PACK_REGS(abi_registers_integer_argument[reguse],
                                                                  abi_registers_integer_argument[reguse + 1]);
-# endif
+#  endif
                                        reguse += 2;
                                        md->argintreguse = reguse;
                                }
                                else {
+                                       ALIGN_2(stacksize);
+
                                        pd->inmemory = true;
-                                       pd->regoff   = ALIGN_2_WORD(stacksize);
+                                       pd->regoff   = stacksize;
                                }
                                stacksize += 2;
                        }
@@ -387,10 +550,12 @@ void md_param_alloc(methoddesc *md)
                                stacksize++;
                        }
                }
+       }
 
-#else /* !defined(ENABLE_SOFT_FLOAT) */
-#error never actually tested!
+# else /* !defined(ENABLE_SOFT_FLOAT) */
+#  error never actually tested!
 
+       for (i = 0; i < md->paramcount; i++, pd++) {
                switch (md->paramtypes[i].type) {
                case TYPE_INT:
                case TYPE_ADR:
@@ -415,15 +580,15 @@ void md_param_alloc(methoddesc *md)
 
                        if (i < INT_ARG_CNT) {
                                pd->inmemory = false;
-#if WORDS_BIGENDIAN == 1
+#  if WORDS_BIGENDIAN == 1
                                pd->regoff   =
                                        PACK_REGS(abi_registers_integer_argument[reguse + 1],
                                                          abi_registers_integer_argument[reguse]);
-#else
+#  else
                                pd->regoff   =
                                        PACK_REGS(abi_registers_integer_argument[reguse],
                                                          abi_registers_integer_argument[reguse + 1]);
-#endif
+#  endif
                                reguse += 2;
                                md->argintreguse = reguse;
                        }
@@ -434,31 +599,15 @@ void md_param_alloc(methoddesc *md)
                        stacksize += 2;
                        break;
                }
-
-
-#endif /* !defined(ENABLE_SOFT_FLOAT) */
-
-#endif /* SIZEOF_VOID_P == 8 */
        }
 
+# endif /* !defined(ENABLE_SOFT_FLOAT) */
+
        /* fill register and stack usage */
 
        md->memuse = stacksize;
-}
-
 
-/* md_param_alloc_native *******************************************************
-
-   Pre-allocate arguments according the native ABI.
-
-*******************************************************************************/
-
-void md_param_alloc_native(methoddesc *md)
-{
-       /* On MIPS we use the same ABI for JIT method calls as for native
-          method calls. */
-
-       md_param_alloc(md);
+#endif /* SIZEOF_VOID_P == 8 */
 }
 
 
index a80946728cad028ab5d7d02c05bea0e944242aa1..cb032b8e66bc46937643a2a908ed81471fd544b0 100644 (file)
@@ -33,6 +33,8 @@
 
 #include "vm/types.h"
 
+#include "vm/vm.h"
+
 #include "vm/jit/codegen-common.h"
 #include "vm/jit/jit.h"
 #include "vm/jit/reg.h"
@@ -239,10 +241,11 @@ bool ifconv_static(jitdata *jd)
                                /* keep compiler happy */
 
                                pattern     = NULL;
+                               patternsize = 0;
 
                                /* that should not happen */
 
-                               assert(0);
+                               vm_abort("ifconv_static: invalid instruction count %d", icount);
                        }
 
                        /* Iterate over all patterns of the given pattern. */
@@ -334,7 +337,7 @@ bool ifconv_static(jitdata *jd)
 
                                        condition = 0;
 
-                                       assert(0);
+                                       vm_abort("ifconv_static: invalid opcode: %d", iptr->opc);
                                }
 
                                /* get the condition array index */
index 9f0a43bf9681f9dd09a76f3b94e053f0577c5a30..1f988b702a17348fb05af75bd0bdb7520f49452f 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: cacao.c 4357 2006-01-22 23:33:38Z twisti $
+   $Id: profile.c 7952 2007-05-23 17:53:13Z twisti $
 
 */
 
@@ -94,19 +94,20 @@ static void profile_thread(void)
                threads_sleep(0, nanos);
                runs++;
 
-               /* lock the threads table */
+               /* lock the threads lists */
 
-               threads_table_lock();
+               threads_list_lock();
 
                /* iterate over all started threads */
 
-               for (t = threads_table_first(); t != NULL; t = threads_table_next(t)) {
+               for (t = threads_list_first(); t != NULL; t = threads_list_next(t)) {
                        /* is this a Java thread? */
 
                        if (!(t->flags & THREAD_FLAG_JAVA))
                                continue;
 
                        /* send SIGUSR2 to thread to get the current PC */
+                       /* XXX write a threads-function for that */
 
                        pthread_kill(t->tid, SIGUSR2);
 
@@ -156,9 +157,9 @@ static void profile_thread(void)
                        }
                }
 
-               /* unlock the threads table */
+               /* unlock the threads lists */
 
-               threads_table_unlock();
+               threads_list_unlock();
        }
 }
 #endif
index 7d8ce2f4885b56095d0f54bacd0f8ab6e8764816..ab55c89e26517a7d1cd10bd7d20e8db07e56a7ae 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: asmpart.S 7678 2007-04-09 17:23:55Z twisti $
+   $Id: asmpart.S 7989 2007-05-30 21:04:42Z twisti $
 
 */
 
@@ -1405,11 +1405,12 @@ asm_cacheflush:
 *******************************************************************************/
 
 asm_compare_and_swap:
-1:  lwarx   a6,r0,a0 
+1:
+       lwarx   a6,0,a0 
        subf.   r0,a6,a1 
        bne-    2f 
        or      r0,a2,a2 
-       stwcx.  r0,r0,a0 
+       stwcx.  r0,0,a0 
        bne-    1b 
 2: 
        mr      a0,a6
@@ -1632,6 +1633,8 @@ L_patcher_wrapper$lazy_ptr:
        .long dyld_stub_binding_helper
 
 
+# if defined(ENABLE_REPLACEMENT)
+
 .section __TEXT,__picsymbolstub1,symbol_stubs,pure_instructions,32
        .align 2
 L_replace_me$stub:
@@ -1691,6 +1694,8 @@ L_replace_free_safestack$lazy_ptr:
        .indirect_symbol _replace_free_safestack
        .long dyld_stub_binding_helper
 
+# endif /* ENABLE_REPLACEMENT */
+
 #endif /* defined(__DARWIN__) */
 
 
index 8ba7d3418c5b1ab52100b1a98ce0a1a986797450..543cb726415344c88fbc88f7a533e91d2be30c31 100644 (file)
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   Contact: cacao@cacaojvm.org
-
-   Authors: Christian Thalinger
-
-   Changes: Christian Ullrich
-
-   $Id: md-abi.c 7770 2007-04-19 19:39:06Z twisti $
+   $Id: md-abi.c 7988 2007-05-30 20:53:56Z twisti $
 
 */
 
index 23a4b0d2229702895bb9a2117fbf665e438271ef..0c0045c7682a3fd25f7f29c4fa89d50715dda7c5 100644 (file)
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   Contact: cacao@cacaojvm.org
-
-   Authors: Christian Thalinger
-
-   Changes: Christian Ullrich
-
-   $Id: md-abi.h 7770 2007-04-19 19:39:06Z twisti $
+   $Id: md-abi.h 7988 2007-05-30 20:53:56Z twisti $
 
 */
 
index eefc9930fad46cea978a39bfe2614c2261b0e8d1..f947e75981310929e81623b1b380ef17d5d0e205 100644 (file)
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   Contact: cacao@cacaojvm.org
-
-   Authors: Christian Thalinger
-
-   $Id: md-os.c 7770 2007-04-19 19:39:06Z twisti $
+   $Id: md-os.c 7990 2007-05-30 21:05:20Z twisti $
 
 */
 
@@ -222,20 +218,30 @@ void md_signal_handler_sigusr2(int sig, siginfo_t *siginfo, void *_p)
 }
 
 
+/* md_critical_section_restart *************************************************
+
+   Search the critical sections tree for a matching section and set
+   the PC to the restart point, if necessary.
+
+*******************************************************************************/
+
 #if defined(ENABLE_THREADS)
-void thread_restartcriticalsection(ucontext_t *_uc)
+void md_critical_section_restart(ucontext_t *_uc)
 {
        mcontext_t          _mc;
        ppc_thread_state_t *_ss;
-       void               *critical;
+       u1                 *pc;
+       u1                 *npc;
 
        _mc = _uc->uc_mcontext;
        _ss = &_mc->ss;
 
-       critical = critical_find_restart_point((void *) _ss->srr0);
+       pc = (u1 *) _ss->srr0;
+
+       npc = critical_find_restart_point(pc);
 
-       if (critical)
-               _ss->srr0 = (ptrint) critical;
+       if (npc != NULL)
+               _ss->srr0 = (ptrint) npc;
 }
 #endif
 
index 7129ce511ed2c101c29c3c8851b80c0adc2a6b5d..fc0e11ccd3bb8e69e03fbb8acf319200ac6c5c93 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: md-os.c 7864 2007-05-03 21:17:26Z twisti $
+   $Id: md-os.c 7955 2007-05-23 18:05:26Z twisti $
 
 */
 
@@ -222,6 +222,7 @@ void md_signal_handler_sigusr2(int sig, siginfo_t *siginfo, void *_p)
 
        tobj->pc = pc;
 }
+#endif
 
 
 /* md_critical_section_restart *************************************************
@@ -231,6 +232,7 @@ void md_signal_handler_sigusr2(int sig, siginfo_t *siginfo, void *_p)
 
 *******************************************************************************/
 
+#if defined(ENABLE_THREADS)
 void md_critical_section_restart(ucontext_t *_uc)
 {
        mcontext_t    *_mc;
@@ -250,11 +252,8 @@ void md_critical_section_restart(ucontext_t *_uc)
 
        npc = critical_find_restart_point(pc);
 
-       if (npc != NULL) {
-               log_println("md_critical_section_restart: pc=%p, npc=%p", pc, npc);
-
+       if (npc != NULL)
                _gregs[PT_NIP] = (ptrint) npc;
-       }
 }
 #endif
 
index 227a37090b843796258f84103354997354bd1c43..3e0ec2e7fee3efe60406bc3167cd52165bf2e04b 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: md.c 7596 2007-03-28 21:05:53Z twisti $
+   $Id: md.c 7968 2007-05-25 15:05:04Z twisti $
 
 */
 
@@ -125,6 +125,7 @@ u1 *md_get_method_patch_address(u1 *ra, stackframeinfo *sfi, u1 *mptr)
 
        if ((mcode >> 16) == 0x3c19) {
                /* XXX write a regression for this */
+               pa = NULL;
                assert(0);
 
                /* get displacement of first instruction (addis) */
@@ -138,8 +139,8 @@ u1 *md_get_method_patch_address(u1 *ra, stackframeinfo *sfi, u1 *mptr)
                assert((mcode >> 16) != 0x6739);
 
                offset += (s2) (mcode & 0x0000ffff);
-
-       else {
+       }
+       else {
                /* get the offset from the instruction */
 
                offset = (s2) (mcode & 0x0000ffff);
@@ -150,8 +151,8 @@ u1 *md_get_method_patch_address(u1 *ra, stackframeinfo *sfi, u1 *mptr)
                        /* get the final data segment address */
 
                        pa = sfi->pv + offset;
-
-               else if ((mcode >> 16) == 0x81ac) {
+               }
+               else if ((mcode >> 16) == 0x81ac) {
                        /* in this case we use the passed method pointer */
 
                        /* return NULL if no mptr was specified (used for replacement) */
@@ -160,11 +161,16 @@ u1 *md_get_method_patch_address(u1 *ra, stackframeinfo *sfi, u1 *mptr)
                                return NULL;
 
                        pa = mptr + offset;
-
-               else {
+               }
+               else {
                        /* catch any problems */
 
-                       assert(0);
+                       vm_abort("md_get_method_patch_address: unknown instruction %x",
+                                        mcode);
+
+                       /* keep compiler happy */
+
+                       pa = NULL;
                }
        }
 
index 3df801b9bb4e8b422adae998567ceb849924505a..261b2590d5949be14d8a27d3952e3c9c5bcba5f7 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: codegen.c 7891 2007-05-09 16:37:20Z tbfg $
+   $Id: codegen.c 7982 2007-05-30 20:01:49Z twisti $
 
 */
 
@@ -111,9 +111,11 @@ bool codegen_emit(jitdata *jd)
 
        /* prevent compiler warnings */
 
-       d = 0;
-       lm = NULL;
+       d   = 0;
+       lm  = NULL;
+       um  = NULL;
        bte = NULL;
+       uf  = NULL;
 
        {
        s4 i, p, t, l;
@@ -316,9 +318,9 @@ bool codegen_emit(jitdata *jd)
 #if !defined (NDEBUG)
        if (JITDATA_HAS_FLAG_VERBOSECALL(jd))
                emit_verbosecall_enter(jd);
+#endif
 
        }
-#endif
 
        /* end of header generation */
 
@@ -344,7 +346,7 @@ bool codegen_emit(jitdata *jd)
                /* copy interface registers to their destination */
 
                len = bptr->indepth;
-               MCODECHECK(64+len);
+               MCODECHECK(128+len);
 
 #if defined(ENABLE_LSRA)
                if (opt_lsra) {
@@ -390,7 +392,7 @@ bool codegen_emit(jitdata *jd)
                                currentline = iptr->line;
                        }
 
-                       MCODECHECK(64);   /* an instruction usually needs < 64 words      */
+                       MCODECHECK(128);   /* an instruction usually needs < 64 words      */
 
                switch (iptr->opc) {
                case ICMD_NOP:        /* ...  ==> ...                                 */
@@ -1561,19 +1563,18 @@ bool codegen_emit(jitdata *jd)
                case ICMD_GETSTATIC:  /* ...  ==> ..., value                          */
 
                        if (INSTRUCTION_IS_UNRESOLVED(iptr)) {
-                               uf = iptr->sx.s23.s3.uf;
-
+                               uf        = iptr->sx.s23.s3.uf;
                                fieldtype = uf->fieldref->parseddesc.fd->type;
-                               disp = dseg_add_unique_address(cd, NULL);
+                               disp      = dseg_add_unique_address(cd, NULL);
 
                                codegen_addpatchref(cd, PATCHER_get_putstatic,
                                                                        iptr->sx.s23.s3.uf, disp);
 
-                       } else {
-                               fieldinfo *fi = iptr->sx.s23.s3.fmiref->p.field;
-
+                       }
+                       else {
+                               fi        = iptr->sx.s23.s3.fmiref->p.field;
                                fieldtype = fi->type;
-                               disp = dseg_add_address(cd, &(fi->value));
+                               disp      = dseg_add_address(cd, &(fi->value));
 
                                if (!CLASS_IS_OR_ALMOST_INITIALIZED(fi->class)) {
                                        codegen_addpatchref(cd, PATCHER_clinit, fi->class, disp);
@@ -1610,18 +1611,17 @@ bool codegen_emit(jitdata *jd)
 
 
                        if (INSTRUCTION_IS_UNRESOLVED(iptr)) {
-                               uf = iptr->sx.s23.s3.uf;
-
+                               uf        = iptr->sx.s23.s3.uf;
                                fieldtype = uf->fieldref->parseddesc.fd->type;
-                               disp = dseg_add_unique_address(cd, NULL);
+                               disp      = dseg_add_unique_address(cd, NULL);
 
                                codegen_addpatchref(cd, PATCHER_get_putstatic,
                                                                        iptr->sx.s23.s3.uf, disp);
-                       } else {
-                               fieldinfo *fi = iptr->sx.s23.s3.fmiref->p.field;
-
+                       }
+                       else {
+                               fi        = iptr->sx.s23.s3.fmiref->p.field;
                                fieldtype = fi->type;
-                               disp = dseg_add_address(cd, &(fi->value));
+                               disp      = dseg_add_address(cd, &(fi->value));
 
                                if (!CLASS_IS_OR_ALMOST_INITIALIZED(fi->class)) {
                                        codegen_addpatchref(cd, PATCHER_clinit, fi->class, disp);
@@ -1659,15 +1659,16 @@ bool codegen_emit(jitdata *jd)
                        s1 = emit_load_s1(jd, iptr, REG_ITMP1);
 
                        if (INSTRUCTION_IS_UNRESOLVED(iptr)) {
-                               uf = iptr->sx.s23.s3.uf;
+                               uf        = iptr->sx.s23.s3.uf;
                                fieldtype = uf->fieldref->parseddesc.fd->type;
-                               disp = 0;
+                               disp      = 0;
 
                                codegen_addpatchref(cd, PATCHER_get_putfield, uf, 0);
-                       } else {
-                               fi = iptr->sx.s23.s3.fmiref->p.field;
+                       }
+                       else {
+                               fi        = iptr->sx.s23.s3.fmiref->p.field;
                                fieldtype = fi->type;
-                               disp = fi->offset;
+                               disp      = fi->offset;
                        }
 
                        /* implicit null-pointer check */
@@ -1953,9 +1954,8 @@ nowperformreturn:
                        /* call trace function */
 
 #if !defined(NDEBUG)
-                       if (JITDATA_HAS_FLAG_VERBOSECALL(jd)) {
+                       if (JITDATA_HAS_FLAG_VERBOSECALL(jd))
                                emit_verbosecall_exit(jd);
-                       }
 #endif         
 
 #if defined(ENABLE_THREADS)
@@ -2092,7 +2092,7 @@ nowperformreturn:
 
                        i = iptr->sx.s23.s2.lookupcount;
                        
-                       MCODECHECK((i<<2)+8);
+                       MCODECHECK((i<<3)+8);
                        s1 = emit_load_s1(jd, iptr, REG_ITMP1);
                        while (--i >= 0) {
                                val = lookup->value;
@@ -2142,7 +2142,7 @@ nowperformreturn:
 gen_method:
                        s3 = md->paramcount;
 
-                       MCODECHECK((s3 << 1) + 64);
+                       MCODECHECK((s3 << 2) + 128);
 
                        /* copy arguments to registers or stack location */
 
@@ -2312,10 +2312,11 @@ gen_method:
                                s4         superindex;
 
                                if (INSTRUCTION_IS_UNRESOLVED(iptr)) {
-                                       super = NULL;
+                                       super      = NULL;
                                        superindex = 0;
-                               } else {
-                                       super = iptr->sx.s23.s3.c.cls;
+                               }
+                               else {
+                                       super      = iptr->sx.s23.s3.c.cls;
                                        superindex = super->index;
                                }
                
@@ -2477,15 +2478,14 @@ gen_method:
 
                        {
                        classinfo *super;
-                       vftbl_t   *supervftbl;
                        s4         superindex;
 
                        if (INSTRUCTION_IS_UNRESOLVED(iptr)) {
-                               super = NULL;
+                               super      = NULL;
                                superindex = 0;
                        }
                        else {
-                               super = iptr->sx.s23.s3.c.cls;
+                               super      = iptr->sx.s23.s3.c.cls;
                                superindex = super->index;
                        }
                        
@@ -2601,7 +2601,7 @@ gen_method:
 
                        /* check for negative sizes and copy sizes to stack if necessary  */
 
-                       MCODECHECK((iptr->s1.argcount << 1) + 64);
+                       MCODECHECK((iptr->s1.argcount << 2) + 128);
 
                        for (s1 = iptr->s1.argcount; --s1 >= 0; ) {
 
@@ -2767,10 +2767,10 @@ void codegen_emit_stub_native(jitdata *jd, methoddesc *nmd, functionptr f)
        M_STDU(REG_SP, REG_SP, -(cd->stackframesize * 8));
 
 #if !defined(NDEBUG)
-       if (JITDATA_HAS_FLAG_VERBOSECALL(jd)) {
+       if (JITDATA_HAS_FLAG_VERBOSECALL(jd))
                emit_verbosecall_enter(jd);
-       }
 #endif
+
        /* get function address (this must happen before the stackframeinfo) */
 
        funcdisp = dseg_add_functionptr(cd, f);
@@ -2921,12 +2921,14 @@ void codegen_emit_stub_native(jitdata *jd, methoddesc *nmd, functionptr f)
                }
        }
 
+#if !defined(NDEBUG)
        /* print call trace */
-#if ! defined(NDEBGUU)
+
        if (JITDATA_HAS_FLAG_VERBOSECALL(jd)) {
                emit_verbosecall_exit(jd);
        }
 #endif
+
        /* remove native stackframe info */
 
        M_AADD_IMM(REG_SP, cd->stackframesize * 8, REG_A0);
index 237263729949640869153871795c430f7dacc3ae..35bffbf9fbcaad981f9aa4312847430afaafb2ab 100644 (file)
@@ -207,7 +207,8 @@ void emit_lconst(codegendata *cd, s4 d, s8 value)
 
 *******************************************************************************/
 
-void emit_verbosecall_enter (jitdata *jd)
+#if !defined(NDEBUG)
+void emit_verbosecall_enter(jitdata *jd)
 {
        methodinfo   *m;
        codegendata  *cd;
@@ -344,6 +345,7 @@ void emit_verbosecall_enter (jitdata *jd)
        /* mark trace code */
        M_NOP;
 }
+#endif
 
 
 /* emit_verbosecall_exit ******************************************************
@@ -354,6 +356,7 @@ void emit_verbosecall_enter (jitdata *jd)
 
 *******************************************************************************/
 
+#if !defined(NDEBUG)
 void emit_verbosecall_exit(jitdata *jd)
 {
        methodinfo   *m;
@@ -400,6 +403,8 @@ void emit_verbosecall_exit(jitdata *jd)
 
        M_NOP;
 }
+#endif
+
 
 /* emit_branch *****************************************************************
 
@@ -426,7 +431,6 @@ void emit_branch(codegendata *cd, s4 disp, s4 condition, s4 reg, u4 opt)
                        /* if the long-branches flag isn't set yet, do it */
 
                        if (!CODEGENDATA_HAS_FLAG_LONGBRANCHES(cd)) {
-                               log_println("setting error");
                                cd->flags |= (CODEGENDATA_FLAG_ERROR |
                                                          CODEGENDATA_FLAG_LONGBRANCHES);
                        }
@@ -444,11 +448,9 @@ void emit_branch(codegendata *cd, s4 disp, s4 condition, s4 reg, u4 opt)
                        /* if the long-branches flag isn't set yet, do it */
 
                        if (!CODEGENDATA_HAS_FLAG_LONGBRANCHES(cd)) {
-                               log_println("setting error");
                                cd->flags |= (CODEGENDATA_FLAG_ERROR |
                                                          CODEGENDATA_FLAG_LONGBRANCHES);
                        }
-                       log_println("generating long-branch");
 
                        branchdisp --;          /* we jump from the second instruction */
                        switch (condition) {
@@ -676,7 +678,7 @@ void emit_patcher_stubs(jitdata *jd)
        for (pref = cd->patchrefs; pref != NULL; pref = pref->next) {
                /* check code segment size */
 
-               MCODECHECK(16);
+               MCODECHECK(32);
 
                /* Get machine code which is patched back in later. The
                   call is 1 instruction word long. */
@@ -789,7 +791,7 @@ void emit_replacement_stubs(jitdata *jd)
 
                /* check code segment size */
 
-               MCODECHECK(100);
+               MCODECHECK(200);
 
 #if !defined(NDEBUG)
                savedmcodeptr = cd->mcodeptr;
index 5c7648744ec5615ca70fa4e133d0ac3126b37390..89a00576ce103e84e40f89ae828ba1631eb839a9 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: md-os.c 7888 2007-05-09 08:36:16Z tbfg $
+   $Id: md-os.c 7958 2007-05-23 19:11:10Z twisti $
 
 */
 
@@ -133,24 +133,31 @@ void md_signal_handler_sigusr2(int sig, siginfo_t *siginfo, void *_p)
 
        tobj->pc = pc;
 }
+#endif
+
 
+/* md_critical_section_restart *************************************************
 
+   Search the critical sections tree for a matching section and set
+   the PC to the restart point, if necessary.
+
+*******************************************************************************/
+
+#if defined(ENABLE_THREADS)
 void md_critical_section_restart(ucontext_t *_uc)
 {
        mcontext_t *_mc;
        u1         *pc;
-       void       *critical;
+       u1         *npc;
 
        _mc = &(_uc->uc_mcontext);
 
        pc = (u1 *) _mc->gp_regs[PT_NIP];
 
-       critical = critical_find_restart_point(pc);
+       npc = critical_find_restart_point(pc);
 
-       if (critical != NULL)   {
-               log_println("md_critical_section_restart: pc=%p, npc=%p", pc, critical);
-               _mc->gp_regs[PT_NIP] = (ptrint) critical;
-       }
+       if (npc != NULL)
+               _mc->gp_regs[PT_NIP] = (ptrint) npc;
 }
 #endif
 
index 6da5d7ce18373fa8f2e6ea106bf981d4255b811a..21bbd31da7df1223e7d5e657f89d3c5207999a98 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: md.c 7596 2007-03-28 21:05:53Z twisti $
+   $Id: md.c 7980 2007-05-30 16:01:09Z twisti $
 
 */
 
@@ -168,6 +168,7 @@ u1 *md_get_method_patch_address(u1 *ra, stackframeinfo *sfi, u1 *mptr)
 
        if ((mcode >> 16) == 0x3c19) {
                /* XXX write a regression for this */
+               pa = NULL;
                assert(0);
 
                /* get displacement of first instruction (addis) */
@@ -181,8 +182,8 @@ u1 *md_get_method_patch_address(u1 *ra, stackframeinfo *sfi, u1 *mptr)
                assert((mcode >> 16) != 0x6739);
 
                offset += (s2) (mcode & 0x0000ffff);
-
-       else {
+       }
+       else {
                /* get the offset from the instruction */
 
                offset = (s2) (mcode & 0x0000ffff);
@@ -193,8 +194,8 @@ u1 *md_get_method_patch_address(u1 *ra, stackframeinfo *sfi, u1 *mptr)
                        /* get the final data segment address */
 
                        pa = sfi->pv + offset;
-
-               else if ((mcode >> 16) == 0xe9cc) { 
+               }
+               else if ((mcode >> 16) == 0xe9cc) { 
                        /* in this case we use the passed method pointer */
 
                        /* return NULL if no mptr was specified (used for replacement) */
@@ -203,11 +204,16 @@ u1 *md_get_method_patch_address(u1 *ra, stackframeinfo *sfi, u1 *mptr)
                                return NULL;
 
                        pa = mptr + offset;
-
-               else {
+               }
+               else {
                        /* catch any problems */
 
-                       assert(0);
+                       vm_abort("md_get_method_patch_address: unknown instruction %x",
+                                        mcode);
+
+                       /* keep compiler happy */
+
+                       pa = NULL;
                }
        }
 
@@ -256,16 +262,19 @@ u1 *md_codegen_get_pv_from_pc(u1 *ra)
                assert((mcode >> 16) == 0x39ce);
 
                offset += (s2) (mcode & 0x0000ffff);
-
-       } else {
-               /* check for addi instruction */
-
-               assert((mcode >> 16) == 0x39cb);
-
+       }
+       else if ((mcode >> 16) == 0x39cb) {
                /* get offset of first instruction (addi) */
 
                offset = (s2) (mcode & 0x0000ffff);
        }
+       else {
+               vm_abort("md_codegen_get_pv_from_pc: unknown instruction %x", mcode);
+
+               /* keep compiler happy */
+
+               offset = 0;
+       }
 
        /* calculate PV via RA + offset */
 
index 30ad2bf71126842db95b8043162add820425a39a..fdd349c98881e3db0b9b0df829b6221fc942c26d 100644 (file)
@@ -76,8 +76,8 @@
 #undef REPLACE_LEAFMETHODS_RA_REGISTER
 #undef REPLACE_REG_RA
 
-/* i386 and x86_64 */
-#if defined(__I386__) || defined(__X86_64__)
+/* i386, x86_64 and m68k */
+#if defined(__I386__) || defined(__X86_64__) || defined(__M68K__)
 #define REPLACE_RA_BETWEEN_FRAMES
 /* alpha */
 #elif defined(__ALPHA__)
@@ -716,6 +716,9 @@ bool replace_create_replacement_points(jitdata *jd)
        code->globalcount   = 0;
        code->savedintcount = INT_SAV_CNT - rd->savintreguse;
        code->savedfltcount = FLT_SAV_CNT - rd->savfltreguse;
+#if defined(HAS_ADDRESS_REGISTER_FILE)
+       code->savedadrcount = ADR_SAV_CNT - rd->savadrreguse;
+#endif
        code->memuse        = rd->memuse;
        code->stackframesize = jd->cd->stackframesize;
 
@@ -955,6 +958,11 @@ static void replace_read_value(executionstate_t *es,
                        if (ra->type == TYPE_FLT)
                                javaval->f = javaval->d;
                }
+#if defined(HAS_ADDRESS_REGISTER_FILE)
+               else if (IS_ADR_TYPE(ra->type)) {
+                       javaval->p = es->adrregs[ra->regoff];
+               }
+#endif
                else {
 #if defined(SUPPORT_COMBINE_INTEGER_REGISTERS)
                        if (ra->type == TYPE_LNG) {
@@ -1013,6 +1021,10 @@ static void replace_write_value(executionstate_t *es,
                                es->intregs[GET_LOW_REG(ra->regoff)] = javaval->words.lo;
                                es->intregs[GET_HIGH_REG(ra->regoff)] = javaval->words.hi;
                                break;
+#endif
+#if defined(HAS_ADDRESS_REGISTER_FILE)
+                       case TYPE_ADR:
+                               es->adrregs[ra->regoff] = javaval->p;
 #endif
                        default:
                                es->intregs[ra->regoff] = javaval->p;
@@ -1531,6 +1543,17 @@ u1* replace_pop_activation_record(executionstate_t *es,
                es->fltregs[reg] = *(double*)basesp;
        }
 
+#if defined(HAS_ADDRESS_REGISTER_FILE)
+       /* restore saved adr registers */
+
+       reg = ADR_REG_CNT;
+       for (i=0; i<es->code->savedadrcount; ++i) {
+               while (nregdescadr[--reg] != REG_SAV)
+                       ;
+               es->adrregs[reg] = *--basesp;
+       }
+#endif
+
        /* adjust the stackpointer */
 
        es->sp += SIZE_OF_STACKSLOT * es->code->stackframesize;
@@ -1576,6 +1599,11 @@ u1* replace_pop_activation_record(executionstate_t *es,
        for (i=0; i<FLT_REG_CNT; ++i)
                if (nregdescfloat[i] != REG_SAV)
                        *(u8*)&(es->fltregs[i]) = 0x33dead3333dead33ULL;
+# if defined(HAS_ADDRESS_REGISTER_FILE)
+       for (i=0; i<ADR_REG_CNT; ++i)
+               if (nregdescadr[i] != REG_SAV)
+                       es->adrregs[i] = (ptrint) 0x33dead3333dead33ULL;
+# endif
 #endif /* !defined(NDEBUG) */
 
        return (code) ? ra : NULL;
@@ -1947,6 +1975,22 @@ void replace_push_activation_record(executionstate_t *es,
 #endif
        }
 
+#if defined(HAS_ADDRESS_REGISTER_FILE)
+       /* save adr registers */
+
+       reg = ADR_REG_CNT;
+       for (i=0; i<calleecode->savedadrcount; ++i) {
+               while (nregdescadr[--reg] != REG_SAV)
+                       ;
+               *--basesp = es->adrregs[reg];
+
+               /* XXX may not clobber saved regs used by native code! */
+#if !defined(NDEBUG) && 0
+               es->adrregs[reg] = (ptrint) 0x44dead4444dead44ULL;
+#endif
+       }
+#endif
+
        /* write slots used for synchronization */
 
        count = code_get_sync_slot_count(calleecode);
@@ -2147,6 +2191,14 @@ static void replace_pop_native_frame(executionstate_t *es,
                        frame->nativesavflt[j++] = es->fltregs[i];
        }
 
+#if defined(HAS_ADDRESS_REGISTER_FILE)
+       j = 0;
+       for (i=0; i<ADR_REG_CNT; ++i) {
+               if (nregdescadr[i] == REG_SAV)
+                       frame->nativesavadr[j++] = es->adrregs[i];
+       }
+#endif
+
        /* restore saved registers */
 
 #if defined(ENABLE_GC_CACAO)
@@ -2171,6 +2223,13 @@ static void replace_pop_native_frame(executionstate_t *es,
                        es->fltregs[i] = 0.0;
        }
 
+#if defined(HAS_ADDRESS_REGISTER_FILE)
+       for (i=0; i<ADR_REG_CNT; ++i) {
+               if (nregdescadr[i] == REG_SAV)
+                       es->adrregs[i] = 0;
+       }
+#endif
+
        /* restore pv, pc, and sp */
 
        if (sfi->pv == NULL) {
@@ -2264,6 +2323,14 @@ static void replace_push_native_frame(executionstate_t *es, sourcestate_t *ss)
                        es->fltregs[i] = frame->nativesavflt[j++];
        }
 
+#if defined(HAS_ADDRESS_REGISTER_FILE)
+       j = 0;
+       for (i=0; i<ADR_REG_CNT; ++i) {
+               if (nregdescadr[i] == REG_SAV)
+                       es->adrregs[i] = frame->nativesavadr[j++];
+       }
+#endif
+
        /* skip the native frame on the machine stack */
 
        es->sp -= frame->nativeframesize;
@@ -3116,6 +3183,9 @@ void replace_show_replacement_points(codeinfo *code)
        printf("\ttotal allocations : %d\n",code->regalloccount);
        printf("\tsaved int regs    : %d\n",code->savedintcount);
        printf("\tsaved flt regs    : %d\n",code->savedfltcount);
+#if defined(HAS_ADDRESS_REGISTER_FILE)
+       printf("\tsaved adr regs    : %d\n",code->savedadrcount);
+#endif
        printf("\tmemuse            : %d\n",code->memuse);
 
        printf("\n");
@@ -3184,6 +3254,17 @@ void replace_executionstate_println(executionstate_t *es)
                if (i%4 == 3)
                        printf("\n");
        }
+# if defined(HAS_ADDRESS_REGISTER_FILE)
+       for (i=0; i<ADR_REG_CNT; ++i) {
+               if (i%4 == 0)
+                       printf("\t");
+               else
+                       printf(" ");
+               printf("A%02d = %016llx",i,(unsigned long long)es->adrregs[i]);
+               if (i%4 == 3)
+                       printf("\n");
+       }
+# endif
 #endif
 
        sp = (stackslot_t *) es->sp;
index a63d0fe7a8548c95ec8a98be10d5e0996cbe13c6..dd3e32bc387e428857b220cd9abb492abdb046f1 100644 (file)
@@ -164,6 +164,9 @@ struct executionstate_t {
 
        ptrint        intregs[INT_REG_CNT];             /* register values */
        double        fltregs[FLT_REG_CNT];             /* register values */
+#if defined(HAS_ADDRESS_REGISTER_FILE)
+       ptrint        adrregs[ADR_REG_CNT];             /* register values */
+#endif
 
        codeinfo     *code;            /* codeinfo corresponding to the pv */
 };
@@ -202,6 +205,9 @@ struct sourceframe_t {
        u1            *nativepc;
        ptrint         nativesavint[INT_SAV_CNT]; /* XXX temporary */
        double         nativesavflt[FLT_REG_CNT]; /* XXX temporary */
+#if defined(HAS_ADDRESS_REGISTER_FILE)
+       ptrint         nativesavadr[ADR_SAV_CNT]; /* XXX temporary */
+#endif
 };
 
 #define REPLACE_IS_NATIVE_FRAME(frame)  ((frame)->sfi != NULL)
index bf0b938813b8e60723e0c45f3aff4ffab4ecda81..cef1c16333023338cb6fdc6206cf5aeffc634281 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: codegen.c 7848 2007-05-01 21:40:26Z pm $
+   $Id: codegen.c 7966 2007-05-25 12:41:03Z pm $
 
 */
 
@@ -1902,7 +1902,7 @@ bool codegen_emit(jitdata *jd)
                                M_ILD(d, REG_ITMP1, 0);
                                break;
                        case TYPE_LNG:
-                               d = codegen_reg_of_dst(jd, iptr, REG_ITMP12_PACKED);
+                               d = codegen_reg_of_dst(jd, iptr, REG_ITMP23_PACKED);
                                M_LLD(d, REG_ITMP1, 0);
                                break;
                        case TYPE_ADR:
@@ -1991,7 +1991,7 @@ bool codegen_emit(jitdata *jd)
                                M_ILD(d, s1, disp);
                                break;
                        case TYPE_LNG:
-                               d = codegen_reg_of_dst(jd, iptr, REG_ITMP12_PACKED);
+                               d = codegen_reg_of_dst(jd, iptr, REG_ITMP23_PACKED);
                                if (GET_HIGH_REG(d) == s1) {
                                        M_ILD(GET_LOW_REG(d), s1, disp + 4);
                                        M_ILD(GET_HIGH_REG(d), s1, disp);
@@ -2018,6 +2018,8 @@ bool codegen_emit(jitdata *jd)
                        break;
 
                case ICMD_PUTFIELD:   /* ..., objectref, value  ==> ...               */
+                       {
+                       u1 *ref;
 
                        s1 = emit_load_s1_notzero(jd, iptr, REG_ITMP1);
                        emit_nullpointer_check(cd, iptr, s1);
@@ -2033,36 +2035,53 @@ bool codegen_emit(jitdata *jd)
                                disp      = fi->offset;
                        }
 
+                       /* We can't add a patcher ref behind this load,
+                        * because the patcher would destroy REG_ITMP3.
+                        *
+                        * We pass in the disp parameter, how many bytes
+                        * to skip to the to the actual store.
+                        *
+                        * XXX this relies on codegen_add_patch_ref internals
+                        */
+
+                       if (INSTRUCTION_IS_UNRESOLVED(iptr)) {
+                               codegen_addpatchref(cd, PATCHER_get_putfield, uf, 0);
+                               ref = cd->mcodeptr;
+                       }
+
+
                        if (IS_INT_LNG_TYPE(fieldtype)) {
                                if (IS_2_WORD_TYPE(fieldtype))
                                        s2 = emit_load_s2(jd, iptr, REG_ITMP23_PACKED);
                                else
                                        s2 = emit_load_s2(jd, iptr, REG_ITMP2);
-                       }
-                       else
+                       } else {
                                s2 = emit_load_s2(jd, iptr, REG_FTMP2);
+                       }
 
-                       if (INSTRUCTION_IS_UNRESOLVED(iptr))
-                               codegen_addpatchref(cd, PATCHER_get_putfield, uf, 0);
+                       if (INSTRUCTION_IS_UNRESOLVED(iptr)) {
+                               cd->patchrefs->disp = (cd->mcodeptr - ref);
+                       }
 
                        switch (fieldtype) {
-                       case TYPE_INT:
-                               M_IST(s2, s1, disp);
-                               break;
-                       case TYPE_LNG:
-                               /* TODO really order */
-                               M_IST(GET_LOW_REG(s2), s1, disp + 4);      /* keep this order */
-                               M_IST(GET_HIGH_REG(s2), s1, disp);         /* keep this order */
-                               break;
-                       case TYPE_ADR:
-                               M_AST(s2, s1, disp);
-                               break;
-                       case TYPE_FLT:
-                               M_FST(s2, s1, disp);
-                               break;
-                       case TYPE_DBL:
-                               M_DST(s2, s1, disp);
-                               break;
+                               case TYPE_INT:
+                                       M_IST(s2, s1, disp);
+                                       break;
+                               case TYPE_LNG:
+                                       M_IST(GET_LOW_REG(s2), s1, disp + 4);      /* keep this order */
+                                       M_IST(GET_HIGH_REG(s2), s1, disp);         /* keep this order */
+                                       break;
+                               case TYPE_ADR:
+                                       M_AST(s2, s1, disp);
+                                       break;
+                               case TYPE_FLT:
+                                       M_FST(s2, s1, disp);
+                                       break;
+                               case TYPE_DBL:
+                                       M_DST(s2, s1, disp);
+                                       break;
+                       }
+
                        }
                        break;
 
@@ -2826,9 +2845,9 @@ gen_method:
                                        supervftbl = super->vftbl;
                                }
 
-#if defined(ENABLE_THREADS)
-                               codegen_threadcritrestart(cd, cd->mcodeptr - cd->mcodebase);
-#endif
+                               if ((super == NULL) || !(super->flags & ACC_INTERFACE))
+                                       CODEGEN_CRITICAL_SECTION_NEW;
+
                                s1 = emit_load_s1_notzero(jd, iptr, REG_ITMP1);
 
                                /* if class is not resolved, check which code to call */
@@ -2902,17 +2921,17 @@ gen_method:
 
                                        M_ALD(REG_ITMP2, s1, OFFSET(java_objectheader, vftbl));
                                        M_ALD(REG_ITMP3, REG_PV, disp);
-#if defined(ENABLE_THREADS)
-                                       codegen_threadcritstart(cd, cd->mcodeptr - cd->mcodebase);
-#endif
+
+                                       CODEGEN_CRITICAL_SECTION_START;
+
                                        M_ILD(REG_ITMP2, REG_ITMP2, OFFSET(vftbl_t, baseval));
                                        M_ILD(REG_ITMP3, REG_ITMP3, OFFSET(vftbl_t, baseval));
                                        M_ISUB(REG_ITMP3, REG_ITMP2);
                                        M_ALD(REG_ITMP3, REG_PV, disp);
                                        M_ILD(REG_ITMP3, REG_ITMP3, OFFSET(vftbl_t, diffval));
-#if defined(ENABLE_THREADS)
-                                       codegen_threadcritstop(cd, cd->mcodeptr - cd->mcodebase);
-#endif
+
+                                       CODEGEN_CRITICAL_SECTION_END;
+                                       
                                        M_CMPU(REG_ITMP2, REG_ITMP3); /* Unsigned compare */
                                        /* M_CMPULE(REG_ITMP2, REG_ITMP3, REG_ITMP3); itmp3 = (itmp2 <= itmp3) */
                                        /* M_BEQZ(REG_ITMP3, 0); branch if (! itmp) -> branch if > */
@@ -3014,9 +3033,9 @@ gen_method:
 #                      define LABEL_EXIT_INTERFACE_DONE BRANCH_LABEL_5
 #                      define LABEL_EXIT_CLASS_NULL BRANCH_LABEL_6
 
-#if defined(ENABLE_THREADS)
-                       codegen_threadcritrestart(cd, cd->mcodeptr - cd->mcodebase);
-#endif
+                       if ((super == NULL) || !(super->flags & ACC_INTERFACE))
+                               CODEGEN_CRITICAL_SECTION_NEW;
+
                        s1 = emit_load_s1_notzero(jd, iptr, REG_ITMP1);
                        d = codegen_reg_of_dst(jd, iptr, REG_ITMP2);
                        if (s1 == d) {
@@ -3111,15 +3130,15 @@ gen_method:
 
                                M_ALD(REG_ITMP1, s1, OFFSET(java_objectheader, vftbl));
                                M_ALD(REG_ITMP2, REG_PV, disp);
-#if defined(ENABLE_THREADS)
-                               codegen_threadcritstart(cd, cd->mcodeptr - cd->mcodebase);
-#endif
+
+                               CODEGEN_CRITICAL_SECTION_START;
+
                                M_ILD(REG_ITMP1, REG_ITMP1, OFFSET(vftbl_t, baseval));
                                M_ILD(REG_ITMP3, REG_ITMP2, OFFSET(vftbl_t, baseval));
                                M_ILD(REG_ITMP2, REG_ITMP2, OFFSET(vftbl_t, diffval));
-#if defined(ENABLE_THREADS)
-                               codegen_threadcritstop(cd, cd->mcodeptr - cd->mcodebase);
-#endif
+
+                               CODEGEN_CRITICAL_SECTION_END;
+
                                M_ISUB(REG_ITMP3, REG_ITMP1); /* itmp1 :=  itmp1 (sub.baseval) - itmp3 (super.baseval) */
 
                                M_CMPU(REG_ITMP1, REG_ITMP2); /* d := (uint)REG_ITMP1 <= (uint)REG_ITMP2 */
index 5d01e252eb97a281bc0ede0a10f0b610c239fbfb..832da7879cb622ed944466d34b09f30dc6ebf444 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: codegen.h 7848 2007-05-01 21:40:26Z pm $
+   $Id: codegen.h 7966 2007-05-25 12:41:03Z pm $
 
 */
 
 
 #define PATCHER_NOPS \
     do { \
-        M_NOP; \
-               M_NOP; \
-               M_NOP; \
+               /* do not generate additonal nops for long patcher branches */ \
+               if (! CODEGENDATA_HAS_FLAG_LONGBRANCHES(cd)) { \
+               M_NOP; \
+                       M_NOP; \
+                       M_NOP; \
+               } \
     } while (0)
 
+#define PATCHER_LONGBRANCHES_NOPS \
+       do { \
+               M_BR(SZ_BRC + (10 * 2)); \
+               M_NOP2; M_NOP2; M_NOP2; M_NOP2; M_NOP2; M_NOP2; M_NOP2; M_NOP2; /* ild */ \
+               M_NOP2; /* aadd */ \
+               M_NOP2; /* jmp */ \
+       } while (0)
+
 #define PATCHER_NOPS_SKIP   12 
+#define PATCHER_LONGBRANCHES_NOPS_SKIP 24
 
 /* branch defines ************************************************************/
 
-#define BRANCH_NOPS M_NOP /* Size of at least M_BRC */
+#define BRANCH_NOPS \
+       do { \
+               if (CODEGENDATA_HAS_FLAG_LONGBRANCHES(cd)) { \
+                       M_NOP2; M_NOP2; /* brc */ \
+                       M_NOP2; M_NOP2; M_NOP2; M_NOP2; M_NOP2; M_NOP2; M_NOP2; M_NOP2; /* ild */ \
+                       M_NOP2; /* ar, bcr */ \
+               } else { \
+                       M_NOP; /* brc */ \
+               } \
+       } while (0) 
 
 /* stub defines **************************************************************/
 
        do { \
                if (N_VALID_DISP(d)) { \
                        N_L(r, d, RN, b); \
-               } else if (r == R0) { \
+               } else if ((r == R0) && N_VALID_IMM(d)) { \
                        N_LR(R0, R1); \
                        N_LHI(R1, d); \
                        N_L(R1, 0, R1, b); \
                        N_XR(R1, R0); \
                        N_XR(R0, R1); \
                        N_XR(R1, R0); \
-               } else { \
+               } else if ((r != R0) && N_VALID_IMM(d)) { \
                        N_LHI(r, d); N_L(r, 0, r, b); \
+               } else { \
+                       N_BRAS(r, SZ_BRAS + SZ_LONG); \
+                       N_LONG(d); \
+                       N_L(r, 0, RN, r); \
+                       N_L(r, 0, r, b); \
                } \
        } while (0)
 
 #define M_ALD(r, b, d) M_ILD(r, b, d)
 
-#define M_LDA(r, b, d) _IFNEG( \
-       d, \
-       N_LHI(r, d); N_LA(r, 0, r, b), \
-       N_LA(r, d, RN, b) \
-)
+#define M_LDA(r, b, d) \
+       do { \
+               if (N_VALID_DISP(d)) { \
+                       N_LA(r, d, RN, b); \
+               } else if (N_VALID_IMM(d)) { \
+                       N_LHI(r, d); \
+                       N_LA(r, 0, r, b); \
+               } else { \
+                       N_BRAS(r, SZ_BRAS + SZ_LONG); \
+                       N_LONG(d); \
+                       N_L(r, 0, RN, r); \
+                       N_LA(r, 0, r, b); \
+               } \
+       } while (0)
 
 #define M_FLD(r, b, d) N_LE(r, d, RN, b)
 
 #define M_BR(disp) N_BRC(DD_ANY, disp)
 #define M_JMP(rs, rd) _IF(rs == RN, N_BCR(DD_ANY, rd), N_BASR(rs, rd))
 #define M_NOP N_BC(0, 0, RN, RN)
+#define M_NOP2 N_BCR(0, RN)
 #define M_JSR(reg_ret, reg_addr) N_BASR(reg_ret, reg_addr)
 #define M_ICMP(a, b) N_CR(a, b)
 #define M_ICMPU(a, b) N_CLR(a, b)
 #define M_CVTFI(src, dst) N_CFEBR(dst, 5, src)
 #define M_CVTDI(src, dst) N_CFDBR(dst, 5, src)
 #define M_IADD(a, dest) N_AR(dest, a)
+#define M_AADD(a, dest) N_AR(dest, a)
 #define M_ISUB(a, dest) N_SR(dest, a)
 #define M_ASUB(a, dest) N_SR(dest, a)
 #define M_IAND(a, dest) N_NR(dest, a)
 
 #define M_AST_IMM32(a,b,c) _DEPR( M_AST_IMM32(a,b,c) )
 
-#define M_AADD(a,b) _DEPR( M_AADD(a,b) )
-
 #define M_LADD_IMM32(a,b) _DEPR( M_LADD_IMM32(a,b) )
 #define M_AADD_IMM32(a,b) _DEPR( M_AADD_IMM32(a,b) )
 #define M_LSUB_IMM32(a,b) _DEPR( M_LSUB_IMM32(a,b) )
index ff0b786a875a2ea52eb293cba7a7e8540685a3b7..4ea81f56c3a85e88a02b75480093563d627664fd 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: emit.c 7848 2007-05-01 21:40:26Z pm $
+   $Id: emit.c 7966 2007-05-25 12:41:03Z pm $
 
 */
 
@@ -227,6 +227,7 @@ __PORTED__ void emit_patcher_stubs(jitdata *jd)
        u1          *tmpmcodeptr;
        s4           targetdisp;
        s4           disp;
+       u1          *ref;
 
        /* get required compiler data */
 
@@ -255,7 +256,46 @@ __PORTED__ void emit_patcher_stubs(jitdata *jd)
                cd->mcodeptr  = tmpmcodeptr;    /* set mcodeptr to patch position     */
 
                disp = (savedmcodeptr) - (tmpmcodeptr);
-               M_BSR(REG_ITMP3, disp);
+
+               if (! N_VALID_BRANCH(disp)) {
+                       /* Displacement overflow */
+
+                       /* If LONGBRANCHES is not set, the flag and the error flag */
+                       
+                       if (! CODEGENDATA_HAS_FLAG_LONGBRANCHES(cd)) {
+                               cd->flags |= (CODEGENDATA_FLAG_ERROR |
+                                       CODEGENDATA_FLAG_LONGBRANCHES);
+                       }
+
+                       /* If error flag is set, do nothing. The method has to be recompiled. */
+
+                       if (CODEGENDATA_HAS_FLAG_LONGBRANCHES(cd) && CODEGENDATA_HAS_FLAG_ERROR(cd)) {
+                               return;
+                       }
+               }
+
+               if (CODEGENDATA_HAS_FLAG_LONGBRANCHES(cd)) {    
+
+                       /* Generating long branches */
+
+                       disp = dseg_add_s4(cd, savedmcodeptr - cd->mcodebase);
+       
+                       M_ILD(REG_ITMP3, REG_PV, disp);
+                       M_AADD(REG_PV, REG_ITMP3);
+
+                       /* Do the branch at the end of NOP sequence.
+                        * This way the patch position is at a *fixed* offset 
+                        * (PATCHER_LONGBRANCHES_NOPS_SKIP) of the return address.
+                        */
+
+                       cd->mcodeptr = tmpmcodeptr + PATCHER_LONGBRANCHES_NOPS_SKIP - SZ_BASR;
+                       M_JMP(REG_ITMP3, REG_ITMP3);
+               } else {
+
+                       /* Generating short branches */
+
+                       M_BSR(REG_ITMP3, disp);
+               }
 
                cd->mcodeptr = savedmcodeptr;   /* restore the current mcodeptr       */
 
@@ -317,7 +357,7 @@ __PORTED__ void emit_patcher_stubs(jitdata *jd)
                        disp = ((cd->mcodebase) + targetdisp) -
                                (( cd->mcodeptr) );
 
-                       M_BR(disp);
+                       emit_branch(cd, disp, BRANCH_UNCONDITIONAL, RN, 0);
                }
        }
 }
@@ -840,31 +880,99 @@ void emit_copy_dst(jitdata *jd, instruction *iptr, s4 dtmpreg) {
 void emit_branch(codegendata *cd, s4 disp, s4 condition, s4 reg, u4 opt) {
 
        s4 branchdisp = disp;
+       s4 branchmpc;
+       u1 *ref;
+
+       if (N_VALID_BRANCH(branchdisp)) {
+
+               /* valid displacement */
 
-       switch (condition) {
-               case BRANCH_EQ:
-                       M_BEQ(branchdisp);
-                       break;
-               case BRANCH_NE:
-                       M_BNE(branchdisp);
-                       break;
-               case BRANCH_LT:
-                       M_BLT(branchdisp);
-                       break;
-               case BRANCH_GE:
-                       M_BGE(branchdisp);
-                       break;
-               case BRANCH_GT:
-                       M_BGT(branchdisp);
-                       break;
-               case BRANCH_LE:
-                       M_BLE(branchdisp);
-                       break;
-               case BRANCH_UNCONDITIONAL:
-                       M_BR(branchdisp);
-                       break;
-               default:
-                       vm_abort("emit_branch: unknown condition %d", condition);
+               switch (condition) {
+                       case BRANCH_EQ:
+                               M_BEQ(branchdisp);
+                               break;
+                       case BRANCH_NE:
+                               M_BNE(branchdisp);
+                               break;
+                       case BRANCH_LT:
+                               M_BLT(branchdisp);
+                               break;
+                       case BRANCH_GE:
+                               M_BGE(branchdisp);
+                               break;
+                       case BRANCH_GT:
+                               M_BGT(branchdisp);
+                               break;
+                       case BRANCH_LE:
+                               M_BLE(branchdisp);
+                               break;
+                       case BRANCH_UNCONDITIONAL:
+                               M_BR(branchdisp);
+                               break;
+                       default:
+                               vm_abort("emit_branch: unknown condition %d", condition);
+               }
+       } else {
+
+               /* If LONGBRANCHES is not set, the flag and the error flag */
+
+               if (!CODEGENDATA_HAS_FLAG_LONGBRANCHES(cd)) {
+                       cd->flags |= (CODEGENDATA_FLAG_ERROR |
+                               CODEGENDATA_FLAG_LONGBRANCHES);
+               }
+
+               /* If error flag is set, do nothing. The method has to be recompiled. */
+
+               if (CODEGENDATA_HAS_FLAG_LONGBRANCHES(cd) && CODEGENDATA_HAS_FLAG_ERROR(cd)) {
+                       return;
+               }
+
+               /* Patch the displacement to branch over the actual branch manually
+                * to not get yet more nops.
+                */
+
+               branchmpc = cd->mcodeptr - cd->mcodebase;
+               ref = cd->mcodeptr;
+
+               switch (condition) {
+                       case BRANCH_EQ:
+                               M_BNE(0);
+                               break;
+                       case BRANCH_NE:
+                               M_BEQ(0);
+                               break;
+                       case BRANCH_LT:
+                               M_BGE(0);
+                               break;
+                       case BRANCH_GE:
+                               M_BLT(0);
+                               break;
+                       case BRANCH_GT:
+                               M_BLE(0);
+                               break;
+                       case BRANCH_LE:
+                               M_BGT(0);
+                               break;
+                       case BRANCH_UNCONDITIONAL:
+                               /* fall through, no displacement to patch */
+                               ref = NULL;
+                               break;
+                       default:
+                               vm_abort("emit_branch: unknown condition %d", condition);
+               }
+
+               /* The actual long branch */
+
+               disp = dseg_add_s4(cd, branchmpc + disp);
+               M_ILD(REG_ITMP3, REG_PV, disp);
+               M_AADD(REG_PV, REG_ITMP3);
+               M_JMP(RN, REG_ITMP3);
+
+               /* Patch back the displacement */
+
+               if (ref != NULL) {
+                       *(u4 *)ref |= (u4)((cd->mcodeptr - ref) / 2);
+               }
        }
 }
 
index 6129ff20a1db309d808130c084cb6b6cd47a9d6b..fd1485583b5d9df4dd8c14ca17af783a67d70297 100644 (file)
@@ -28,7 +28,7 @@
 
    Changes: Edwin Steiner
 
-   $Id: md.c 7848 2007-05-01 21:40:26Z pm $
+   $Id: md.c 7966 2007-05-25 12:41:03Z pm $
 
 */
 
@@ -77,14 +77,6 @@ void md_dump_context(u1 *pc, mcontext_t *mc);
 
 void md_init(void)
 {
-       struct sigaction act;
-       
-       act.sa_sigaction = md_signal_handler_sigill;
-       act.sa_flags     = SA_NODEFER | SA_SIGINFO;
-
-       if (sigaction(SIGILL, &act, NULL) == -1)        {
-               vm_abort("%s: error registering SIGILL signal handler.", __FUNCTION__);
-       }
 }
 
 /* md_dump_context ************************************************************
@@ -345,17 +337,22 @@ void md_signal_handler_sigusr2(int sig, siginfo_t *siginfo, void *_p)
 
 
 #if defined(ENABLE_THREADS)
-void thread_restartcriticalsection(ucontext_t *_uc)
+void md_critical_section_restart(ucontext_t *_uc)
 {
        mcontext_t *_mc;
-       void       *pc;
+       u1         *pc;
+       void       *npc;
 
        _mc = &_uc->uc_mcontext;
 
-       pc = critical_find_restart_point((void *) _mc->psw.addr);
+       pc = (u1 *)_mc->psw.addr;
 
-       if (pc != NULL)
-               _mc->psw.addr = (ptrint) pc;
+       npc = critical_find_restart_point(pc);
+
+       if (npc != NULL) {
+               log_println("%s: pc=%p, npc=%p", __FUNCTION__, pc, npc);
+               _mc->psw.addr = (ptrint) npc;
+       }
 }
 #endif
 
index 7b06b708e8a0cd3112b899402cf21adeed068fa6..47ad89989591627746ddac7df946536879dc448e 100644 (file)
 
    Changes:
 
-   $Id: patcher.c 7839 2007-04-29 22:46:56Z pm $
+   $Id: patcher.c 7966 2007-05-25 12:41:03Z pm $
+
+     GENERATED      PATCHER BRANCH           AFTER PATCH
+
+   Short patcher call:
+
+     foo            bras %r14, OFFSET        foo
+     bar     ===>   bar                ===>  bar
+     baz            baz                      baz
+
+   Short patcher call with nops:
+                                             PATCHER_NOPS_SKIP <-+
+                                                                 |
+     nop            bras %r14, OFFSET        nop               --+
+     nop     ===>   nop                ===>  nop                 |
+     nop            nop                      nop               --+
+     foo            foo                      foo
+
+   Long pacher call:
+                                PATCHER_LONGBRANCHES_NOPS_SKIP <-+
+                                                                 |
+     br exit:       ild itmp3, disp(pv)      br exit            -+
+        nop            aadd pv, itmp3           aadd pv, itmp3      | 
+        nop     ===>   nop                ===>  nop                 |
+        .....          ....                     ....                |
+        nop            basr itmp3, itmp3        basr itmp3, itmp3  -+
+   exit:                                   exit:
 
 */
 
@@ -56,6 +82,9 @@
 #define OOPS() assert(0);
 #define __PORTED__
 
+/* A normal patcher branch done using BRAS */
+#define PATCHER_IS_SHORTBRANCH(brcode) ((brcode & 0xFF0F0000) == 0xA7050000)
+
 /* patcher_wrapper *************************************************************
 
    Wrapper for all patchers.  It also creates the stackframe info
@@ -69,7 +98,6 @@
 
 java_objectheader *patcher_wrapper(u1 *sp, u1 *pv, u1 *ra)
 {
-#if 1
        stackframeinfo     sfi;
        u1                *xpc;
        java_objectheader *o;
@@ -87,7 +115,15 @@ java_objectheader *patcher_wrapper(u1 *sp, u1 *pv, u1 *ra)
        o   = (java_objectheader *) *((ptrint *) (sp + 4 * 4));
        f   = (functionptr)         *((ptrint *) (sp + 0 * 4));
        
-       xpc = xpc - 4; /* the patch position is 4 bytes before the RA */
+       /* For a normal branch, the patch position is SZ_BRAS bytes before the RA.
+        * For long branches it is PATCHER_LONGBRANCHES_NOPS_SKIP before the RA.
+        */
+
+       if (PATCHER_IS_SHORTBRANCH(*(u4 *)(xpc - SZ_BRAS))) {
+               xpc = xpc - SZ_BRAS;
+       } else {
+               xpc = xpc - PATCHER_LONGBRANCHES_NOPS_SKIP;
+       }
 
        *((ptrint *) (sp + 5 * 4)) = (ptrint) xpc;
 
@@ -132,69 +168,6 @@ java_objectheader *patcher_wrapper(u1 *sp, u1 *pv, u1 *ra)
        PATCHER_MARK_PATCHED_MONITOREXIT;
 
        return NULL;
-#else
-
-       stackframeinfo     sfi;
-       u1                *xpc;
-       java_objectheader *o;
-       u4                 mcode;
-       functionptr        f;
-       bool               result;
-       java_objectheader *e;
-
-       /* define the patcher function */
-
-       bool (*patcher_function)(u1 *);
-
-       assert(pv != NULL);
-
-       /* get stuff from the stack */
-
-       xpc = (u1 *)                *((ptrint *) (sp + 5 * 4));
-       o   = (java_objectheader *) *((ptrint *) (sp + 4 * 4));
-       f   = (functionptr)         *((ptrint *) (sp + 0 * 4));
-
-       /* Correct RA is calculated in codegen.c and stored in the patcher
-          stub stack.  There's no need to adjust xpc. */
-
-       /* store PV into the patcher function position */
-
-       *((ptrint *) (sp + 0 * 4)) = (ptrint) pv;
-
-       /* cast the passed function to a patcher function */
-
-       patcher_function = (bool (*)(u1 *)) (ptrint) f;
-
-       /* enter a monitor on the patching position */
-
-       PATCHER_MONITORENTER;
-
-       /* create the stackframeinfo */
-
-       stacktrace_create_extern_stackframeinfo(&sfi, pv, sp + 8 * 4, ra, xpc);
-
-       /* call the proper patcher function */
-
-       result = (patcher_function)(sp);
-
-       /* remove the stackframeinfo */
-
-       stacktrace_remove_stackframeinfo(&sfi);
-
-       /* check for return value and exit accordingly */
-
-       if (result == false) {
-               e = exceptions_get_and_clear_exception();
-
-               PATCHER_MONITOREXIT;
-
-               return e;
-       }
-
-       PATCHER_MARK_PATCHED_MONITOREXIT;
-
-       return NULL;
-#endif
 }
 
 
@@ -251,16 +224,18 @@ bool patcher_get_putstatic(u1 *sp)
 bool patcher_get_putfield(u1 *sp)
 {
        u1               *ra;
-       u4                mcode;
+       u4                mcode, brcode;
        unresolved_field *uf;
        fieldinfo        *fi;
        u1                byte;
+       s4                disp;
 
        /* get stuff from the stack */
 
        ra    = (u1 *)               *((ptrint *) (sp + 5 * 4));
        mcode =                      *((u4 *)     (sp + 3 * 4));
        uf    = (unresolved_field *) *((ptrint *) (sp + 2 * 4));
+       disp  =                      *((s4 *)     (sp + 1 * 4));
 
        /* get the fieldinfo */
 
@@ -269,13 +244,20 @@ bool patcher_get_putfield(u1 *sp)
 
        /* patch back original code */
 
+       brcode = *((u4 *) ra);
        *((u4 *) ra) = mcode;
 
        /* If NOPs are generated, skip them */
 
-       if (opt_shownops)
+       if (! PATCHER_IS_SHORTBRANCH(brcode))
+               ra += PATCHER_LONGBRANCHES_NOPS_SKIP;
+       else if (opt_shownops)
                ra += PATCHER_NOPS_SKIP;
 
+       /* If there is an operand load before, skip the load size passed in disp (see ICMD_PUTFIELD) */
+
+       ra += disp;
+
        /* patch correct offset */
 
        if (fi->type == TYPE_LNG) {
@@ -548,7 +530,7 @@ __PORTED__ bool patcher_invokestatic_special(u1 *sp)
 bool patcher_invokevirtual(u1 *sp)
 {
        u1                *ra;
-       u4                 mcode;
+       u4                 mcode, brcode;
        unresolved_method *um;
        methodinfo        *m;
        s4                off;
@@ -566,11 +548,14 @@ bool patcher_invokevirtual(u1 *sp)
 
        /* patch back original code */
 
+       brcode = *((u4 *) ra);
        *((u4 *) ra) = mcode;
 
        /* If NOPs are generated, skip them */
 
-       if (opt_shownops)
+       if (! PATCHER_IS_SHORTBRANCH(brcode))
+               ra += PATCHER_LONGBRANCHES_NOPS_SKIP;
+       else if (opt_shownops)
                ra += PATCHER_NOPS_SKIP;
 
        /* patch vftbl index */
@@ -596,7 +581,7 @@ bool patcher_invokevirtual(u1 *sp)
 bool patcher_invokeinterface(u1 *sp)
 {
        u1                *ra;
-       u4                 mcode;
+       u4                 mcode, brcode;
        unresolved_method *um;
        methodinfo        *m;
        s4                 idx, off;
@@ -614,11 +599,14 @@ bool patcher_invokeinterface(u1 *sp)
 
        /* patch back original code */
 
+       brcode = *((u4 *) ra);
        *((u4 *) ra) = mcode;
 
        /* If NOPs are generated, skip them */
 
-       if (opt_shownops)
+       if (! PATCHER_IS_SHORTBRANCH(brcode))
+               ra += PATCHER_LONGBRANCHES_NOPS_SKIP;
+       else if (opt_shownops)
                ra += PATCHER_NOPS_SKIP;
 
        /* get interfacetable index */
@@ -775,7 +763,7 @@ bool patcher_resolve_classref_to_vftbl(u1 *sp)
 bool patcher_checkcast_instanceof_interface(u1 *sp)
 {
        u1                *ra;
-       u4                 mcode;
+       u4                 mcode, brcode;
        constant_classref *cr;
        classinfo         *c;
 
@@ -792,11 +780,14 @@ bool patcher_checkcast_instanceof_interface(u1 *sp)
 
        /* patch back original code */
 
+       brcode = *((u4 *) ra);
        *((u4 *) ra) = mcode;
 
        /* If NOPs are generated, skip them */
 
-       if (opt_shownops)
+       if (! PATCHER_IS_SHORTBRANCH(brcode))
+               ra += PATCHER_LONGBRANCHES_NOPS_SKIP;
+       else if (opt_shownops)
                ra += PATCHER_NOPS_SKIP;
 
        /* patch super class index */
index 12f28753f328db6c1be1f0cfd0d7de24a7f08841..0c2d989ed9d2d0d66abd4986d8356896d610898d 100644 (file)
@@ -40,6 +40,7 @@
 #include "vm/global.h"
 #include "vm/builtin.h"
 #include "vm/stringlocal.h"
+#include "vm/vm.h"
 
 #include "vm/jit/abi.h"
 #include "vm/jit/jit.h"
 
 #include "vmcore/options.h"
 
+#if defined(ENABLE_DEBUG_FILTER)
+#      include <sys/types.h>
+#      include <regex.h>
+#      if defined(ENABLE_THREADS)
+#              include "threads/native/threads.h"
+#      else
+#              include "threads/none/threads.h"
+#      endif
+#endif
 
 /* global variables ***********************************************************/
 
@@ -82,6 +92,10 @@ bool show_init(void)
        LOCK_INIT_OBJECT_LOCK(show_global_lock);
 #endif
 
+#if defined(ENABLE_DEBUG_FILTER)
+       show_filters_init();
+#endif
+
        /* everything's ok */
 
        return true;
@@ -1431,6 +1445,222 @@ void show_icmd(jitdata *jd, instruction *iptr, bool deadcode, int stage)
 }
 #endif /* !defined(NDEBUG) */
 
+/* Debug output filtering */
+
+#if defined(ENABLE_DEBUG_FILTER)
+
+#if !defined(ENABLE_THREADS)
+u2 _no_threads_filterverbosecallctr[2] = { 0, 0 };
+#endif
+
+struct show_filter {
+       /* Boolean indicating if filter is enabled. */
+       u1 enabled;
+       /* Regular expression the method name is matched against */
+       regex_t regex;
+       /* Flag set on m->filtermatches if regex matches */
+       u1 flag;
+};
+
+typedef struct show_filter show_filter_t;
+
+#define SHOW_FILTERS_SIZE 3
+
+/* Array of filters applyed on a method */
+static struct show_filter show_filters[SHOW_FILTERS_SIZE];
+
+static void show_filter_init(show_filter_t *cf, const char *str, u1 flag, u1 default_flag, const char *description) {
+       int err;
+       char err_buf[128];
+
+       if (str) {
+               err = regcomp(&cf->regex, str, REG_EXTENDED | REG_NOSUB);
+               if (err != 0) {
+                       regerror(err, &cf->regex, err_buf, sizeof(err_buf));
+                       vm_abort(
+                               "Invalid value given for %s: `%s' (%s).", 
+                               description, str, err_buf
+                       );
+               }
+               cf->flag = flag;
+               cf->enabled = 1;
+       } else {
+               cf->flag = default_flag;
+               cf->enabled = 0;
+       }
+}
+
+void show_filters_init(void) {
+
+       show_filter_init(
+               show_filters + 0,
+               opt_filter_verbosecall_include,
+               SHOW_FILTER_FLAG_VERBOSECALL_INCLUDE,
+               SHOW_FILTER_FLAG_VERBOSECALL_INCLUDE,
+               "verbose call include filter"
+       );
+
+       show_filter_init(
+               show_filters + 1,
+               opt_filter_verbosecall_exclude,
+               SHOW_FILTER_FLAG_VERBOSECALL_EXCLUDE,
+               0,
+               "verbose call exclude filter"
+       );
+
+       show_filter_init(
+               show_filters + 2,
+               opt_filter_show_method,
+               SHOW_FILTER_FLAG_SHOW_METHOD,
+               SHOW_FILTER_FLAG_SHOW_METHOD,
+               "show method filter"
+       );
+}
+
+/*
+ (Pseudo)State machine:
+
+ States are INITIAL, INCLUDE1, INCLUDE2, ..., EXCLUDE1, ..., EXCLUDE2, ...
+
+                                                        Enter              Enter
+ Enter                                                  Include            Include
+ Exclude                                                  | |                | |
+  | |    Enter              Enter              Enter      | |     Enter      | |
+  | |    Include            Include            Exclude    | |     Exclude    | |
+  | v   --------->        ---------->        ---------->  | v   ---------->  | v
+INITIAL           INCLUDE1           INCLUDE2           EXCLUDE1           EXCLUDE2
+  | ^   <---------        <----------        <----------  | ^   <----------  | ^
+  | |    Exit               Exit               Exit       | |     Exit       | |
+  | |    Include            Include            Exclude    | |     Exclude    | |
+  | |                                                     | |                | |
+ Exit                                                    Exit               Exit
+ Exclude                                                 Include            Include
+
+  Verbose call scope is active if we are in a INCLUDE state.
+
+  State encoding:
+
+  INITIAL: ctr[0] == 0, ctr[1] == 0
+  INCLUDEN: ctr[1] == N, ctr[1] == 0
+  EXCLUDEN: ctr[1] == N
+*/
+
+void show_filters_apply(methodinfo *m) {
+       int i;
+       int res;
+       char *method_name;
+       s4 len;
+       s4 dumpsize;
+
+       /* compose full name of method */
+
+       len = 
+               utf_bytes(m->class->name) +
+               1 +
+               utf_bytes(m->name) +
+               utf_bytes(m->descriptor) +
+               1;
+
+       dumpsize = dump_size(); /* allocate memory */
+
+       method_name = DMNEW(char, len);
+
+       utf_cat_classname(method_name, m->class->name);
+       strcat(method_name, ".");
+       utf_cat(method_name, m->name);
+       utf_cat(method_name, m->descriptor);
+
+       /* reset all flags */
+
+       m->filtermatches = 0;
+
+       for (i = 0; i < SHOW_FILTERS_SIZE; ++i) {
+               if (show_filters[i].enabled) {
+
+                       res = regexec(&show_filters[i].regex, method_name, 0, NULL, 0);
+
+                       if (res == 0) {
+                               m->filtermatches |= show_filters[i].flag;
+                       }
+               } else {
+                       /* Default is to show all */
+                       m->filtermatches |= show_filters[i].flag;
+               }
+       }
+
+       /* release memory */
+
+       dump_release(dumpsize); 
+
+}
+
+#define STATE_IS_INITIAL() ((FILTERVERBOSECALLCTR[0] == 0) && (FILTERVERBOSECALLCTR[1] == 0))
+#define STATE_IS_INCLUDE() ((FILTERVERBOSECALLCTR[0] > 0) && (FILTERVERBOSECALLCTR[1] == 0))
+#define STATE_IS_EXCLUDE() (FILTERVERBOSECALLCTR[1] > 0)
+#define EVENT_INCLUDE() (m->filtermatches & SHOW_FILTER_FLAG_VERBOSECALL_INCLUDE)
+#define EVENT_EXCLUDE() (m->filtermatches & SHOW_FILTER_FLAG_VERBOSECALL_EXCLUDE)
+#define TRANSITION_NEXT_INCLUDE() ++FILTERVERBOSECALLCTR[0]
+#define TRANSITION_PREV_INCLUDE() --FILTERVERBOSECALLCTR[0]
+#define TRANSITION_NEXT_EXCLUDE() ++FILTERVERBOSECALLCTR[1]
+#define TRANSITION_PREV_EXCLUDE() --FILTERVERBOSECALLCTR[1]
+
+#if 0
+void dump_state() {
+       if (STATE_IS_INITIAL()) printf("<INITIAL>\n");
+       else if (STATE_IS_INCLUDE()) printf("<INCLUDE %hd>\n", FILTERVERBOSECALLCTR[0]);
+       else if (STATE_IS_EXCLUDE()) printf("<EXCLUDE %hd>\n", FILTERVERBOSECALLCTR[1]);
+}
+#endif
+
+int show_filters_test_verbosecall_enter(methodinfo *m) {
+
+       int force_show = 0;
+
+       if (STATE_IS_INITIAL()) {
+               if (EVENT_INCLUDE()) {
+                       TRANSITION_NEXT_INCLUDE();
+               }
+       } else if (STATE_IS_INCLUDE()) {
+               if (EVENT_EXCLUDE()) {
+                       TRANSITION_NEXT_EXCLUDE();
+                       /* just entered exclude, show this method */
+                       force_show = 1;
+               } else if (EVENT_INCLUDE()) {
+                       TRANSITION_NEXT_INCLUDE();
+               }
+       } else if (STATE_IS_EXCLUDE()) {
+               if (EVENT_EXCLUDE()) {
+                       TRANSITION_NEXT_EXCLUDE();
+               }
+       }
+
+       return STATE_IS_INCLUDE() || force_show;
+}
+
+int show_filters_test_verbosecall_exit(methodinfo *m) {
+
+       int force_show = 0;
+
+       if (m) {
+               if (STATE_IS_INCLUDE()) {
+                       if (EVENT_INCLUDE()) {
+                               TRANSITION_PREV_INCLUDE();
+                               /* just entered initial, show this method */
+                               if (STATE_IS_INITIAL()) force_show = 1;
+                       }
+           } else if (STATE_IS_EXCLUDE()) {
+                       if (EVENT_EXCLUDE()) {
+                               TRANSITION_PREV_EXCLUDE();
+                       }
+               }
+       }
+
+       return STATE_IS_INCLUDE() || force_show;
+}
+
+#endif
+
 
 /*
  * These are local overrides for various environment variables in Emacs.
index 79dae83cd8871429702a6f86b5704ba8dae21c6d..4690513c6a84d42bded80612c4588909c8283cdf 100644 (file)
@@ -71,6 +71,19 @@ void show_javalocals_array(jitdata *jd, s4 *vars, int n, int stage);
 void show_allocation(s4 type, s4 flags, s4 regoff);
 #endif /* !defined(NDEBUG) */
 
+/* Debug output filtering */
+
+#if defined(ENABLE_DEBUG_FILTER)
+void show_filters_init(void);
+#define SHOW_FILTER_FLAG_VERBOSECALL_INCLUDE 0x01
+#define SHOW_FILTER_FLAG_VERBOSECALL_EXCLUDE 0x02
+#define SHOW_FILTER_FLAG_SHOW_METHOD 0x04
+void show_filters_apply(methodinfo *m);
+int show_filters_test_verbosecall_enter(methodinfo *m);
+int show_filters_test_verbosecall_exit(methodinfo *m);
+#endif
+
+
 #endif /* _SHOW_H */
 
 /*
index 9656923c785fa8f3acbf8d6360ba467e3a7d8986..60af8ea3e3e5407c2e4e0b3f755124b37043d889 100644 (file)
@@ -50,7 +50,7 @@ CLEANFILES = offsets.h
 
 noinst_HEADERS = \
        arch.h \
-       machine-instr.h 
+       machine-instr.h \
        \
        md-asm.h
 
@@ -68,6 +68,7 @@ libarch_la_SOURCES = \
        codegen.h \
        $(DISASS_SOURCES) \
        emit.c \
+       emit.h \
        patcher.c \
        \
        md-abi.c \
index ce7a16fda60822ab24b3c126edff6710207803b3..b135b6559702ba31b65dba3cbcb80cfb5d583360 100644 (file)
@@ -67,6 +67,8 @@
  *                                                                         *
  * This function calls a Java-method (which possibly needs compilation)    *
  *
+ * If the java method is throwing an exception, NULL will be returned.
+ *
  * C-prototype:
  *  java_objectheader *asm_vm_call_method(methodinfo *m, s4 vmargscount,
  *                                              vm_arg *vmargs);
@@ -213,7 +215,7 @@ asm_vm_call_method_exception_handler:
        nop
        return  %i7 + 8                          /* implicit window restore */
 asm_vm_call_method_end:
-       nop
+       mov    zero,%o0                  /* delay: return NULL      */
        
 
 
@@ -415,10 +417,11 @@ asm_patcher_wrapper:
        mov     pv_callee,pv_caller
 
        /* create window and stack frame              */
-       save  %sp,-((FLT_ARG_CNT+FLT_TMP_CNT+CSTACK_CNT+4)*8),%sp
+       save  %sp,-((FLT_ARG_CNT+FLT_TMP_CNT+CSTACK_CNT+6)*8),%sp
 
-       SAVE_FLOAT_ARGUMENT_REGISTERS(CSTACK_CNT)
-       SAVE_FLOAT_TEMPORARY_REGISTERS(CSTACK_CNT+FLT_ARG_CNT)
+       SAVE_FLOAT_RETURN_REGISTER(CSTACK_CNT)
+       SAVE_FLOAT_ARGUMENT_REGISTERS(CSTACK_CNT+1)
+       SAVE_FLOAT_TEMPORARY_REGISTERS(CSTACK_CNT+1+FLT_ARG_CNT)
 
        mov     itmp1,%l0               /* save itmp1                             */
        mov     itmp2,%l1               /* save itmp2                             */
@@ -429,8 +432,9 @@ asm_patcher_wrapper:
        call    patcher_wrapper
        nop
 
-       RESTORE_FLOAT_ARGUMENT_REGISTERS(CSTACK_CNT)
-       RESTORE_FLOAT_TEMPORARY_REGISTERS(CSTACK_CNT+FLT_ARG_CNT)
+       RESTORE_FLOAT_RETURN_REGISTER(CSTACK_CNT)
+       RESTORE_FLOAT_ARGUMENT_REGISTERS(CSTACK_CNT+1)
+       RESTORE_FLOAT_TEMPORARY_REGISTERS(CSTACK_CNT+1+FLT_ARG_CNT)
 
        mov     %l0,itmp1               /* restore itmp1                          */
        mov     %l1,itmp2               /* restore itmp2                          */
index df4212e37183a491ab8972c64d3ff9750880a551..e0c75073404507fb77f791fb08bbaa6456000b81 100644 (file)
@@ -179,7 +179,7 @@ bool codegen_emit(jitdata *jd)
        */
 
        if (checksync && (m->flags & ACC_SYNCHRONIZED))
-               (void) dseg_add_unique_s4(cd, (rd->memuse + 1) * 8); /* IsSync        */
+               (void) dseg_add_unique_s4(cd, JITSTACK + (rd->memuse + 1) * 8); /* IsSync */
        else
 #endif
                (void) dseg_add_unique_s4(cd, 0);                  /* IsSync          */
@@ -2978,8 +2978,19 @@ gen_method:
        } /* switch */
                
        } /* for instruction */
+
+       MCODECHECK(64);
        
+       /* At the end of a basic block we may have to append some nops,
+          because the patcher stub calling code might be longer than the
+          actual instruction. So codepatching does not change the
+          following block unintentionally. */
 
+       if (cd->mcodeptr < cd->lastmcodeptr) {
+               while (cd->mcodeptr < cd->lastmcodeptr) {
+                       M_NOP;
+               }
+       }
                
        } /* if (bptr -> flags >= BBREACHED) */
        } /* for basic block */
@@ -3104,8 +3115,8 @@ void codegen_emit_stub_native(jitdata *jd, methoddesc *nmd, functionptr f)
 
        for (i = 0, j = 0; i < md->paramcount && i < FLT_ARG_CNT; i++) {
                if (IS_FLT_DBL_TYPE(md->paramtypes[i].type)) {
-                       s1 = WINSAVE_CNT + (j * 8);
-                       M_DST(abi_registers_float_argument[i], REG_SP, BIAS + s1);
+                       s1 = WINSAVE_CNT + nmd->memuse + j;
+                       M_DST(abi_registers_float_argument[i], REG_SP, BIAS + (s1*8));
                        fltregarg_offset[i] = s1; /* remember stack offset */
                        j++;
                }
@@ -3113,7 +3124,7 @@ void codegen_emit_stub_native(jitdata *jd, methoddesc *nmd, functionptr f)
 
        /* prepare data structures for native function call */
 
-       M_ADD_IMM(REG_FP, BIAS, REG_OUT0); /* datasp == top of the stack frame (absolute == +BIAS) */
+       M_ADD_IMM(REG_FP, BIAS, REG_OUT0); /* datasp == top of the stack frame (absolute, ie. + BIAS) */
        M_MOV(REG_PV_CALLEE, REG_OUT1);
        M_MOV(REG_FP, REG_OUT2); /* java sp */
        M_MOV(REG_RA_CALLEE, REG_OUT3);
@@ -3183,7 +3194,7 @@ void codegen_emit_stub_native(jitdata *jd, methoddesc *nmd, functionptr f)
                                        s2 = nmd->params[j].regoff;
 
                                        /* JIT float regs are still on the stack */
-                                       M_DLD(s2, REG_SP, BIAS + fltregarg_offset[i]);
+                                       M_DLD(s2, REG_SP, BIAS + (fltregarg_offset[i] * 8));
                                } 
                                else {
                                        /* not supposed to happen with 16 NAT flt args */
index 2f4820066cf69684230cf830c9dbb7d428e91204..9acf13b8b6a11bac0b70deed87a3630f297ab1f6 100644 (file)
@@ -494,8 +494,7 @@ s4   get_lopart_disp(s4 disp);
         } \
         else { \
             DO_SETHI_PART(disp,rs,REG_ITMP3); \
-            M_STX_INTERN(rd,REG_ITMP3,setlo_part(disp)); \
-                       assert(0); \
+            M_STX_INTERN(rd,REG_ITMP3,get_lopart_disp(disp)); \
         } \
     } while (0)
 
@@ -508,8 +507,7 @@ s4   get_lopart_disp(s4 disp);
        } \
         else { \
             DO_SETHI_PART(disp,rs,REG_ITMP3); \
-            M_IST_INTERN(rd,REG_ITMP3,setlo_part(disp)); \
-                       assert(0); \
+            M_IST_INTERN(rd,REG_ITMP3,get_lopart_disp(disp)); \
         } \
     } while (0)
 
index b69caa2cdf1e372beccef0803157f755c90ef3fc..d9741b09ae8d420f9de3ffc56f6e314dbc7d4d87 100644 (file)
@@ -30,9 +30,9 @@ compare_and_swap (volatile long *p, long oldval, long newval)
 
   __asm__ __volatile__ (
     "mov %3,%0\n\t"
-    "casx %1,%2,%0\n\t"
+    "casx [%4],%2,%0\n\t"
     : "=&r"(ret), "=m"(*p) 
-    : "r"(oldval), "r"(newval), "m"(*p));
+    : "r"(oldval), "r"(newval), "r"(p));
 
   /*dolog("compare_and_swap() return=%d mem=%d", ret, *p);*/
   return ret;
index faee75458c44fc0232d5e48dc518697f5043895e..a7ea007bd2a0fe38bd54a5d1ef9b4cfeef123f83 100644 (file)
@@ -42,6 +42,8 @@
 #include "mm/memory.h"
 #include <assert.h>
 
+/* helper macros for allocation methods ***************************************/
+#define MIN(a,b) (((a) <= (b)) ? (a) : (b))
 
 /* register descripton array **************************************************/
 
@@ -216,12 +218,17 @@ void md_param_alloc_native(methoddesc *md)
        s4         i;
        s4         reguse;
        s4         stacksize;
+       s4         min_nat_regs;
 
        /* set default values */
 
        reguse = 0;
        stacksize = 6;
 
+       /* when we are above this, we have to increase the stacksize with every */
+       /* single argument to create the proper argument array                  */
+       min_nat_regs = MIN(INT_NATARG_CNT, FLT_NATARG_CNT);
+
        /* get params field of methoddesc */
 
        pd = md->params;
@@ -241,8 +248,10 @@ void md_param_alloc_native(methoddesc *md)
                                pd->inmemory = true;
                                pd->regoff = reguse;
                                reguse++;
-                               stacksize++;
                        }
+
+                       if (i >= min_nat_regs)
+                               stacksize++;
                        break;
                case TYPE_FLT:
                case TYPE_DBL:
@@ -255,8 +264,10 @@ void md_param_alloc_native(methoddesc *md)
                                pd->inmemory = true;
                                pd->regoff = reguse;
                                reguse++;
-                               stacksize++;
                        }
+
+                       if (i >= min_nat_regs)
+                               stacksize++;
                        break;
                }
        }
index d366051a963660397400c9b52ce33a09c41ca2bd..50017946f378d78c8ea663d4c93da6d044ac3681 100644 (file)
 
 /* save and restore macros ****************************************************/
 
+#define SAVE_FLOAT_RETURN_REGISTER(off) \
+       std     fv0,[%sp + bias + ((off)*8)] ;
+
+#define RESTORE_FLOAT_RETURN_REGISTER(off) \
+       ldd     [%sp + bias + ((off)*8)],fv0 ;
+
 
 #define SAVE_FLOAT_ARGUMENT_REGISTERS(off) \
        std     fa0,[%sp + bias + ((0+(off))*8)] ; \
index efb6f9f21c70df82920ae8df2d423b8ec4238e5a..af5c148fe7cccbb28c10037cae10c4d8b5942134 100644 (file)
@@ -151,7 +151,6 @@ u1 *md_codegen_get_pv_from_pc(u1 *ra)
 {
        u1 *pv;
        u8  mcode;
-       u4  mcode_masked;
        s4  offset;
 
        pv = ra;
@@ -197,73 +196,84 @@ u1 *md_codegen_get_pv_from_pc(u1 *ra)
 
    INVOKESTATIC/SPECIAL:
 
-   dfdeffb8    ldx      [i5 - 72],o5
-   03c0f809    jmp      o5
-   00000000    nop
+   ????????    ldx      [i5 - 72],o5
+   ????????    jmp      o5             <-- ra
+   ????????    nop
+
+   w/ sethi (mptr in dseg out of 13-bit simm range)
+
+   ????????    sethi    hi(0x2000),o5
+   ????????    sub      i5,o5,o5
+   ????????    ldx      [o5 - 72],o5
+   ????????    jmp      o5             <-- ra
+   ????????    nop
 
    INVOKEVIRTUAL:
 
-   dc990000    ld       t9,0(a0)
-   df3e0000    ld       [g2 + 0],o5
-   03c0f809    jmp      o5
-   00000000    nop
+   ????????    ldx      [o0 + 0},g2
+   ????????    ldx      [g2 + 0],o5
+   ????????    jmp      o5             <-- ra
+   ????????    nop
 
    INVOKEINTERFACE:
 
-   dc990000    ld       t9,0(a0)
-   df39ff90    ld       [g2 - 112],g2
-   df3e0018    ld       [g2 + 24],o5
-   03c0f809    jmp      o5
-   00000000    nop
+   ????????    ldx      [o0 + 0},g2
+   ????????    ldx      [g2 - 112],g2
+   ????????    ldx      [g2 + 24],o5
+   ????????    jmp      o5             <-- ra
+   ????????    nop
 
 *******************************************************************************/
 
 u1 *md_get_method_patch_address(u1 *ra, stackframeinfo *sfi, u1 *mptr)
 {
-       u4  mcode, mcode_masked;
+       u4  mcode, mcode_sethi, mcode_masked;
        s4  offset;
        u1 *pa, *iptr;
 
        /* go back to the location of a possible sethi (3 instruction before jump) */
        /* note: ra is the address of the jump instruction on SPARC                */
-       iptr = ra - 3 * 4;
 
-       /* get first instruction word on current PC */
-
-       mcode = *((u4 *) iptr);
+       mcode_sethi = *((u4 *) (ra - 3 * 4));
 
        /* check for sethi instruction */
 
-       if (IS_SETHI(mcode)) {
-               /* XXX write a regression for this */
+       if (IS_SETHI(mcode_sethi)) {
+               u4 mcode_sub, mcode_ldx;
+
+               mcode_sub = *((u4 *) (ra - 2 * 4));
+               mcode_ldx = *((u4 *) (ra - 1 * 4));
+
+               /* make sure the sequence of instructions is a loadhi */
+               if ((IS_SUB(mcode_sub)) && (IS_LDX_IMM(mcode_ldx)))
+               {
+
 
                /* get 22-bit immediate of sethi instruction */
 
-               offset = (s4) (mcode & 0x3fffff);
+               offset = (s4) (mcode_sethi & 0x3fffff);
                offset = offset << 10;
                
                /* goto next instruction */
-               iptr += 4;
-               mcode = *((u4 *) iptr);
                
                /* make sure it's a sub instruction (pv - big_disp) */
-               assert(IS_SUB(mcode));
+               assert(IS_SUB(mcode_sub));
                offset = -offset;
 
                /* get displacement of load instruction */
 
-               mcode = *((u4 *) (ra - 1 * 4));
-               assert(IS_LDX_IMM(mcode));
+               assert(IS_LDX_IMM(mcode_ldx));
 
-               offset += decode_13bit_imm(mcode);
+               offset += decode_13bit_imm(mcode_ldx);
                
                pa = sfi->pv + offset;
 
                return pa;
+               }
        }
 
-
-       /* simple (one-instruction) load */
+       /* we didn't find a sethi, or it didn't belong to a loadhi */
+       /* check for simple (one-instruction) load */
        iptr = ra - 1 * 4;
        mcode = *((u4 *) iptr);
 
@@ -324,6 +334,8 @@ void md_cacheflush(u1 *addr, s4 nbytes)
 void md_dcacheflush(u1 *addr, s4 nbytes)
 {
        /* XXX don't know yet */        
+       /* printf("md_dcacheflush\n"); */
+       __asm__ __volatile__ ( "membar 0x7F" : : : "memory" );
 }
 
 
index f675dab46b39ff824f1d858a73f7ff2b192a3d6b..4ddaac8ee5ac5d73269e288c2884227f94b91496 100644 (file)
@@ -155,6 +155,7 @@ void md_signal_handler_sigsegv(int sig, siginfo_t *siginfo, void *_p)
                /* this was a normal NPE */
 
                type = EXCEPTION_HARDWARE_NULLPOINTER;
+               val  = 0;
        }
 
        /* generate appropriate exception */
@@ -257,7 +258,7 @@ void md_critical_section_restart(ucontext_t *_uc)
 {
        mcontext_t *_mc;
        u1         *pc;
-       void       *npc;
+       u1         *npc;
 
        _mc = &_uc->uc_mcontext;
 
@@ -268,10 +269,8 @@ void md_critical_section_restart(ucontext_t *_uc)
 
        npc = critical_find_restart_point(pc);
 
-       if (npc != NULL) {
-               log_println("md_critical_section_restart: pc=%p, npc=%p", pc, npc);
+       if (npc != NULL)
                _mc->gregs[REG_RIP] = (ptrint) npc;
-       }
 }
 #endif
 
index 36ca91a5d32e620d3a074fa7987ebe8e48a58df8..f1bdabdccbd059f34fa3c4da7933fa51e2c3bf66 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: md.c 7935 2007-05-22 11:18:15Z twisti $
+   $Id: md.c 7947 2007-05-23 15:57:41Z twisti $
 
 */
 
@@ -154,6 +154,10 @@ u1 *md_get_method_patch_address(u1 *ra, stackframeinfo *sfi, u1 *mptr)
                /* catch any problems */
 
                vm_abort("md_get_method_patch_address: unknown instruction %x", mcode);
+
+               /* keep compiler happy */
+
+               pa = NULL;
        }
 
        return pa;
index 259ff7c104bb976ff28074e98fe6c04a26fbdc4c..5ec4e07d7846b32f6ba6694e6045d2b7152d585d 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: resolve.c 7486 2007-03-08 13:50:07Z twisti $
+   $Id: resolve.c 7983 2007-05-30 20:04:42Z twisti $
 
 */
 
@@ -102,10 +102,13 @@ bool resolve_class_from_name(classinfo *referer,
                                                         bool link,
                                                         classinfo **result)
 {
-       classinfo *cls = NULL;
-       char *utf_ptr;
-       int len;
-       
+       classinfo *cls;
+       char      *utf_ptr;
+       int        len;
+       char      *msg;
+       s4         msglen;
+       utf       *u;
+
        assert(result);
        assert(referer);
        assert(classname);
@@ -187,21 +190,26 @@ bool resolve_class_from_name(classinfo *referer,
 #endif
        
        /* check access rights of referer to refered class */
+
        if (checkaccess && !access_is_accessible_class(referer,cls)) {
-               int msglen;
-               char *message;
+               msglen =
+                       utf_bytes(cls->name) +
+                       utf_bytes(referer->name) +
+                       100;
+
+               msg = MNEW(char, msglen);
+
+               strcpy(msg, "class is not accessible (");
+               utf_cat_classname(msg, cls->name);
+               strcat(msg, " from ");
+               utf_cat_classname(msg, referer->name);
+               strcat(msg, ")");
 
-               msglen = utf_bytes(cls->name) + utf_bytes(referer->name) + 100;
-               message = MNEW(char, msglen);
-               strcpy(message, "class is not accessible (");
-               utf_cat_classname(message, cls->name);
-               strcat(message, " from ");
-               utf_cat_classname(message, referer->name);
-               strcat(message, ")");
+               u = utf_new_char(msg);
 
-               exceptions_throw_illegalaccessexception(message);
+               MFREE(msg, char, msglen);
 
-               MFREE(message, char, msglen);
+               exceptions_throw_illegalaccessexception(u);
 
                return false; /* exception */
        }
@@ -502,9 +510,12 @@ static resolve_result_t resolve_subtype_check(methodinfo *refmethod,
                                                                                          resolve_mode_t mode,
                                                                                          resolve_err_t error)
 {
-       classinfo *subclass;
-       typeinfo subti;
-       typecheck_result r;
+       classinfo        *subclass;
+       typeinfo          subti;
+       typecheck_result  r;
+       char             *msg;
+       s4                msglen;
+       utf              *u;
 
        assert(refmethod);
        assert(subtype.any);
@@ -559,9 +570,6 @@ check_again:
        if (!r) {
                /* sub class relationship is false */
 
-               char *message;
-               int msglen;
-
 #if defined(RESOLVE_VERBOSE)
                printf("SUBTYPE CHECK FAILED!\n");
 #endif
@@ -571,23 +579,28 @@ check_again:
                        utf_bytes(CLASSREF_OR_CLASSINFO_NAME(supertype))
                        + 200;
 
-               message = MNEW(char, msglen);
+               msg = MNEW(char, msglen);
+
+               strcpy(msg, (error == resolveIllegalAccessError) ?
+                          "illegal access to protected member (" :
+                          "subtype constraint violated (");
 
-               strcpy(message, (error == resolveIllegalAccessError) ?
-                               "illegal access to protected member ("
-                               : "subtype constraint violated (");
+               utf_cat_classname(msg, subclass->name);
+               strcat(msg, " is not a subclass of ");
+               utf_cat_classname(msg, CLASSREF_OR_CLASSINFO_NAME(supertype));
+               strcat(msg, ")");
 
-               utf_cat_classname(message, subclass->name);
-               strcat(message, " is not a subclass of ");
-               utf_cat_classname(message, CLASSREF_OR_CLASSINFO_NAME(supertype));
-               strcat(message, ")");
+               u = utf_new_char(msg);
 
                if (error == resolveIllegalAccessError)
-                       exceptions_throw_illegalaccessexception(message);
+                       exceptions_throw_illegalaccessexception(u);
                else
-                       exceptions_throw_linkageerror(message, NULL);
+                       exceptions_throw_linkageerror(msg, NULL);
 
-               MFREE(message, char, msglen);
+               /* ATTENTION: We probably need msg for
+                  exceptions_throw_linkageerror. */
+
+               MFREE(msg, char, msglen);
 
                return resolveFailed; /* exception */
        }
@@ -1039,10 +1052,13 @@ resolve_result_t resolve_field_verifier_checks(methodinfo *refmethod,
                                                                                           bool isstatic,
                                                                                           bool isput)
 {
-       classinfo *declarer;
-       classinfo *referer;
-       resolve_result_t result;
+       classinfo         *declarer;
+       classinfo         *referer;
+       resolve_result_t   result;
        constant_classref *fieldtyperef;
+       char              *msg;
+       s4                 msglen;
+       utf               *u;
 
        assert(refmethod);
        assert(fieldref);
@@ -1079,28 +1095,27 @@ resolve_result_t resolve_field_verifier_checks(methodinfo *refmethod,
        /* check access rights */
 
        if (!access_is_accessible_member(referer,declarer,fi->flags)) {
-               int msglen;
-               char *message;
-
                msglen =
                        utf_bytes(declarer->name) +
                        utf_bytes(fi->name) +
                        utf_bytes(referer->name) +
                        100;
 
-               message = MNEW(char, msglen);
+               msg = MNEW(char, msglen);
+
+               strcpy(msg, "field is not accessible (");
+               utf_cat_classname(msg, declarer->name);
+               strcat(msg, ".");
+               utf_cat(msg, fi->name);
+               strcat(msg, " from ");
+               utf_cat_classname(msg, referer->name);
+               strcat(msg, ")");
 
-               strcpy(message, "field is not accessible (");
-               utf_cat_classname(message, declarer->name);
-               strcat(message, ".");
-               utf_cat(message, fi->name);
-               strcat(message, " from ");
-               utf_cat_classname(message, referer->name);
-               strcat(message, ")");
+               u = utf_new_char(msg);
 
-               exceptions_throw_illegalaccessexception(message);
+               MFREE(msg, char, msglen);
 
-               MFREE(message, char, msglen);
+               exceptions_throw_illegalaccessexception(u);
 
                return resolveFailed; /* exception */
        }
@@ -1566,6 +1581,9 @@ resolve_result_t resolve_method_verifier_checks(methodinfo *refmethod,
 {
        classinfo *declarer;
        classinfo *referer;
+       char      *msg;
+       s4         msglen;
+       utf       *u;
 
        assert(refmethod);
        assert(methodref);
@@ -1599,10 +1617,8 @@ resolve_result_t resolve_method_verifier_checks(methodinfo *refmethod,
        /* check access rights */
 
        if (!access_is_accessible_member(referer,declarer,mi->flags)) {
-               int msglen;
-               char *message;
-
                /* XXX clean this up. this should be in exceptions.c */
+
                msglen =
                        utf_bytes(declarer->name) +
                        utf_bytes(mi->name) +
@@ -1610,20 +1626,22 @@ resolve_result_t resolve_method_verifier_checks(methodinfo *refmethod,
                        utf_bytes(referer->name) +
                        100;
 
-               message = MNEW(char, msglen);
+               msg = MNEW(char, msglen);
+
+               strcpy(msg, "method is not accessible (");
+               utf_cat_classname(msg, declarer->name);
+               strcat(msg, ".");
+               utf_cat(msg, mi->name);
+               utf_cat(msg, mi->descriptor);
+               strcat(msg, " from ");
+               utf_cat_classname(msg, referer->name);
+               strcat(msg, ")");
 
-               strcpy(message, "method is not accessible (");
-               utf_cat_classname(message, declarer->name);
-               strcat(message, ".");
-               utf_cat(message, mi->name);
-               utf_cat(message, mi->descriptor);
-               strcat(message, " from ");
-               utf_cat_classname(message, referer->name);
-               strcat(message, ")");
+               u = utf_new_char(msg);
 
-               exceptions_throw_illegalaccessexception(message);
+               MFREE(msg, char, msglen);
 
-               MFREE(message, char, msglen);
+               exceptions_throw_illegalaccessexception(u);
 
                return resolveFailed; /* exception */
        }
index bf6f4a675aaf1edb90833754c7594eacd78371c7..1b9aca5cb8636c6b458d0923d47f94cadd0df48e 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: signal.c 7918 2007-05-20 20:42:18Z michi $
+   $Id: signal.c 8027 2007-06-07 10:30:33Z michi $
 
 */
 
@@ -33,8 +33,6 @@
 #include <errno.h>
 #include <signal.h>
 #include <stdlib.h>
-#include <unistd.h>
-#include <sys/mman.h>
 
 #if defined(__DARWIN__)
 /* If we compile with -ansi on darwin, <sys/types.h> is not
@@ -50,6 +48,8 @@
 
 #if defined(ENABLE_THREADS)
 # include "threads/threads-common.h"
+#else
+# include "threads/none/threads.h"
 #endif
 
 #include "vm/exceptions.h"
@@ -74,23 +74,16 @@ void signal_handler_sighup(int sig, siginfo_t *siginfo, void *_p);
 
 *******************************************************************************/
 
-void signal_init(void)
+bool signal_init(void)
 {
 #if !defined(__CYGWIN__)
-       int              pagesize;
        sigset_t         mask;
        struct sigaction act;
 
-       /* mmap a memory page at address 0x0, so our hardware-exceptions
-          work. */
-
-       pagesize = getpagesize();
-
-       (void) memory_mmap_anon(NULL, pagesize, PROT_NONE, MAP_PRIVATE | MAP_FIXED);
-
-       /* check if we get into trouble with our hardware-exceptions */
-
-       assert(OFFSET(java_bytearray, data) > EXCEPTION_HARDWARE_PATCHER);
+#if defined(__LINUX__) && defined(ENABLE_THREADS)
+       /* XXX Remove for exact-GC. */
+       if (threads_pthreads_implementation_nptl) {
+#endif
 
        /* Block the following signals (SIGINT for <ctrl>-c, SIGQUIT for
           <ctrl>-\).  We enable them later in signal_thread, but only for
@@ -110,6 +103,11 @@ void signal_init(void)
        if (sigprocmask(SIG_BLOCK, &mask, NULL) != 0)
                vm_abort("signal_init: sigprocmask failed: %s", strerror(errno));
 
+#if defined(__LINUX__) && defined(ENABLE_THREADS)
+       /* XXX Remove for exact-GC. */
+       }
+#endif
+
 #if defined(ENABLE_GC_BOEHM)
        /* Allocate something so the garbage collector's signal handlers
           are installed. */
@@ -147,7 +145,7 @@ void signal_init(void)
                sigaction(SIGFPE, &act, NULL);
 #  endif
 
-#  if defined(__ARM__)
+#  if defined(__ARM__) || defined(__S390__)
                /* XXX use better defines for that (in arch.h) */
                /* SIGILL handler */
 
@@ -194,6 +192,8 @@ void signal_init(void)
 #endif
 
 #endif /* !defined(__CYGWIN__) */
+
+       return true;
 }
 
 
@@ -201,15 +201,17 @@ void signal_init(void)
 
    This thread sets the signal mask to catch the user input signals
    (SIGINT, SIGQUIT).  We use such a thread, so we don't get the
-   signals on every single thread running.  Especially, this makes
-   problems on slow machines.
+   signals on every single thread running.
 
 *******************************************************************************/
 
 static void signal_thread(void)
 {
-       sigset_t mask;
-       int      sig;
+       threadobject *t;
+       sigset_t      mask;
+       int           sig;
+
+       t = THREADOBJECT;
 
        if (sigemptyset(&mask) != 0)
                vm_abort("signal_thread: sigemptyset failed: %s", strerror(errno));
@@ -230,10 +232,18 @@ static void signal_thread(void)
                   but it seems to make problems with Boehm-GC.  We should
                   revisit this code with our new exact-GC. */
 
+#if defined(ENABLE_THREADS)
+               threads_thread_state_waiting(t);
+#endif
+
 /*             if (sigwait(&mask, &sig) != 0) */
 /*                     vm_abort("signal_thread: sigwait failed: %s", strerror(errno)); */
                (void) sigwait(&mask, &sig);
 
+#if defined(ENABLE_THREADS)
+               threads_thread_state_runnable(t);
+#endif
+
                switch (sig) {
                case SIGINT:
                        /* exit the vm properly */
index eaef44b327111940d1840534589d1439783d7555..e80c5413fe703d38f1a5ed98499b13081bfad145 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: signallocal.h 7601 2007-03-28 23:02:50Z michi $
+   $Id: signallocal.h 8027 2007-06-07 10:30:33Z michi $
 
 */
 
@@ -41,7 +41,7 @@
 
 /* function prototypes ********************************************************/
 
-void signal_init(void);
+bool signal_init(void);
 bool signal_start_thread(void);
 
 /* machine dependent signal handler */
@@ -52,7 +52,7 @@ void md_signal_handler_sigsegv(int sig, siginfo_t *siginfo, void *_p);
 void md_signal_handler_sigfpe(int sig, siginfo_t *siginfo, void *_p);
 #endif
 
-#if defined(__ARM__)
+#if defined(__ARM__) || defined(__S390__)
 /* XXX use better defines for that (in arch.h) */
 void md_signal_handler_sigill(int sig, siginfo_t *siginfo, void *_p);
 #endif
index 1d127f76f57c0248bdaf7d18043a187bc915e6ac..148dfea11c1adaabe3c9cb6e77a59d331a90064c 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: string.c 7813 2007-04-25 19:20:13Z twisti $
+   $Id: string.c 7967 2007-05-25 15:03:46Z twisti $
 
 */
 
@@ -152,7 +152,8 @@ void stringtable_update(void)
 
 *******************************************************************************/
 
-java_objectheader *javastring_new_from_utf_buffer(const char *buffer, u4 blength)
+static java_objectheader *javastring_new_from_utf_buffer(const char *buffer,
+                                                                                                                u4 blength)
 {
        const char *utf_ptr;            /* current utf character in utf string    */
        u4 utflength;                   /* length of utf-string if uncompressed   */
index b7faec3c28c732ace9b68d5d831cc8293f2fec31..c1ad5b62cb91fe8b599454053972f2b11c6bb01c 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: stringlocal.h 7246 2007-01-29 18:49:05Z twisti $
+   $Id: stringlocal.h 7967 2007-05-25 15:03:46Z twisti $
 
 */
 
@@ -72,7 +72,6 @@ java_objectheader *javastring_new_slash_to_dot(utf *text);
 java_objectheader *javastring_new_from_ascii(const char *text);
 
 /* creates a new object of type java/lang/String from UTF-8 */
-java_objectheader *javastring_new_from_utf_buffer(const char *buffer, u4 blength);
 java_objectheader *javastring_new_from_utf_string(const char *utfstr);
 
 /* creates a new object of type java/lang/String from (possibly invalid) UTF-8 */
index 00abe045ef45aa17a1d9dd828861d9a142739e28..cb604f80b3d12ca2ed8747f778ffbbd29a810449 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: vm.c 4357 2006-01-22 23:33:38Z twisti $
+   $Id: vm.c 8027 2007-06-07 10:30:33Z michi $
 
 */
 
@@ -74,6 +74,7 @@
 
 #include "vmcore/classcache.h"
 #include "vmcore/options.h"
+#include "vmcore/statistics.h"
 #include "vmcore/suck.h"
 
 #if defined(ENABLE_JVMTI)
@@ -252,6 +253,12 @@ enum {
        OPT_AGENTPATH,
 #endif
 
+#if defined(ENABLE_DEBUG_FILTER)
+       OPT_FILTER_VERBOSECALL_INCLUDE,
+       OPT_FILTER_VERBOSECALL_EXCLUDE,
+       OPT_FILTER_SHOW_METHOD,
+#endif
+
        DUMMY
 };
 
@@ -392,6 +399,12 @@ opt_struct opts[] = {
        { "s",                 true,  OPT_SHOW },
        { "debug-color",      false,  OPT_DEBUGCOLOR },
 
+#if defined(ENABLE_DEBUG_FILTER)
+       { "XXfi",              true,  OPT_FILTER_VERBOSECALL_INCLUDE },
+       { "XXfx",              true,  OPT_FILTER_VERBOSECALL_EXCLUDE },
+       { "XXfm",              true,  OPT_FILTER_SHOW_METHOD },
+#endif
+
        { NULL,                false, 0 }
 };
 
@@ -555,7 +568,11 @@ static void XXusage(void)
 #if defined(ENABLE_SSA)
        puts("    -lsra                    use linear scan register allocation (with SSA)");
 #endif
-
+#if defined(ENABLE_DEBUG_FILTER)
+       puts("    -XXfi <regex>            begin of dynamic scope for verbosecall filter");
+       puts("    -XXfx <regex>            end of dynamic scope for verbosecall filter");
+       puts("    -XXfm <regex>            filter for show options");
+#endif
        /* exit with error code */
 
        exit(1);
@@ -1408,6 +1425,20 @@ bool vm_create(JavaVMInitArgs *vm_args)
                        break;
 #endif
 
+#if defined(ENABLE_DEBUG_FILTER)
+               case OPT_FILTER_VERBOSECALL_INCLUDE:
+                       opt_filter_verbosecall_include = opt_arg;
+                       break;
+
+               case OPT_FILTER_VERBOSECALL_EXCLUDE:
+                       opt_filter_verbosecall_exclude = opt_arg;
+                       break;
+
+               case OPT_FILTER_SHOW_METHOD:
+                       opt_filter_show_method = opt_arg;
+                       break;
+
+#endif
                default:
                        printf("Unknown option: %s\n",
                                   vm_args->options[opt_index].optionString);
@@ -1469,6 +1500,11 @@ bool vm_create(JavaVMInitArgs *vm_args)
 
        gc_init(opt_heapmaxsize, opt_heapstartsize);
 
+       /* install architecture dependent signal handlers */
+
+       if (!signal_init())
+               vm_abort("vm_create: signal_init failed");
+
 #if defined(ENABLE_INTRP)
        /* Allocate main thread stack on the Java heap. */
 
@@ -1535,10 +1571,6 @@ bool vm_create(JavaVMInitArgs *vm_args)
        if (!finalizer_init())
                vm_abort("vm_create: finalizer_init failed");
 
-       /* install architecture dependent signal handlers */
-
-       signal_init();
-
        /* initialize the codegen subsystems */
 
        codegen_init();
@@ -1569,6 +1601,8 @@ bool vm_create(JavaVMInitArgs *vm_args)
        if (!linker_init())
                vm_abort("vm_create: linker_init failed");
 
+       /* Initialize the native subsystem. */
+
        if (!native_init())
                vm_abort("vm_create: native_init failed");
 
@@ -1607,8 +1641,12 @@ bool vm_create(JavaVMInitArgs *vm_args)
 
        /* start the signal handler thread */
 
-       if (!signal_start_thread())
-               vm_abort("vm_create: signal_start_thread failed");
+#if defined(__LINUX__)
+       /* XXX Remove for exact-GC. */
+       if (threads_pthreads_implementation_nptl)
+#endif
+               if (!signal_start_thread())
+                       vm_abort("vm_create: signal_start_thread failed");
 
        /* finally, start the finalizer thread */
 
@@ -1634,7 +1672,7 @@ bool vm_create(JavaVMInitArgs *vm_args)
 
 /*     if (opt_prof) */
 /*             if (!profile_start_thread()) */
-/*                     exceptions_print_stacktrace(); */
+/*                     vm_abort("vm_create: profile_start_thread failed"); */
 # endif
 #endif
 
@@ -2501,6 +2539,8 @@ java_objectheader *vm_call_method_vmarg(methodinfo *m, s4 vmargscount,
 {
        java_objectheader *o;
 
+       STATISTICS(count_calls_native_to_java++);
+
 #if defined(ENABLE_THREADS) && defined(ENABLE_GC_CACAO)
        THREADOBJECT->flags &= ~THREAD_FLAG_IN_NATIVE;
 #endif
@@ -2639,6 +2679,8 @@ s4 vm_call_method_int_vmarg(methodinfo *m, s4 vmargscount, vm_arg *vmargs)
 {
        s4 i;
 
+       STATISTICS(count_calls_native_to_java++);
+
 #if defined(ENABLE_THREADS) && defined(ENABLE_GC_CACAO)
        THREADOBJECT->flags &= ~THREAD_FLAG_IN_NATIVE;
 #endif
@@ -2777,6 +2819,8 @@ s8 vm_call_method_long_vmarg(methodinfo *m, s4 vmargscount, vm_arg *vmargs)
 {
        s8 l;
 
+       STATISTICS(count_calls_native_to_java++);
+
 #if defined(ENABLE_THREADS) && defined(ENABLE_GC_CACAO)
        THREADOBJECT->flags &= ~THREAD_FLAG_IN_NATIVE;
 #endif
@@ -2917,6 +2961,8 @@ float vm_call_method_float_vmarg(methodinfo *m, s4 vmargscount, vm_arg *vmargs)
 {
        float f;
 
+       STATISTICS(count_calls_native_to_java++);
+
 #if defined(ENABLE_THREADS) && defined(ENABLE_GC_CACAO)
        THREADOBJECT->flags &= ~THREAD_FLAG_IN_NATIVE;
 #endif
@@ -3058,6 +3104,8 @@ double vm_call_method_double_vmarg(methodinfo *m, s4 vmargscount,
 {
        double d;
 
+       STATISTICS(count_calls_native_to_java++);
+
 #if defined(ENABLE_THREADS) && defined(ENABLE_GC_CACAO)
        THREADOBJECT->flags &= ~THREAD_FLAG_IN_NATIVE;
 #endif
index cbd0a509bde86878951367cb90ac28ed0d339244..42ad332154d7de9c037f1cfbe3144014e5526108 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: class.c 7918 2007-05-20 20:42:18Z michi $
+   $Id: class.c 8027 2007-06-07 10:30:33Z michi $
 
 */
 
@@ -1368,6 +1368,26 @@ fieldinfo *class_resolvefield(classinfo *c, utf *name, utf *desc,
 }
 
 
+/* class_is_primitive **********************************************************
+
+   Check if the given class is a primitive class.
+
+*******************************************************************************/
+
+bool class_is_primitive(classinfo *c)
+{
+       s4 i;
+
+       /* search table of primitive classes */
+
+       for (i = 0; i < PRIMITIVETYPE_COUNT; i++)
+               if (primitivetype_table[i].class_primitive == c)
+                       return true;
+
+       return false;
+}
+
+
 /* class_issubclass ************************************************************
 
    Checks if sub is a descendant of super.
index bf9130f5ad5b38cd9c7e8c6c07a8fe690028cd39..84082ba2a14bb8a54aae31019b92186831c380d0 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: class.h 7797 2007-04-23 20:12:39Z michi $
+   $Id: class.h 8027 2007-06-07 10:30:33Z michi $
 
 */
 
@@ -337,6 +337,8 @@ methodinfo *class_resolvemethod(classinfo *c, utf *name, utf *dest);
 methodinfo *class_resolveclassmethod(classinfo *c, utf *name, utf *dest, classinfo *referer, bool throwexception);
 methodinfo *class_resolveinterfacemethod(classinfo *c, utf *name, utf *dest, classinfo *referer, bool throwexception);
 
+bool class_is_primitive(classinfo *c);
+
 bool class_issubclass(classinfo *sub, classinfo *super);
 bool class_isanysubclass(classinfo *sub, classinfo *super);
 
index 3dbb7a13eb78f7153304f41f90dd99f6d8ec96a3..20e78dc8ec31b02d0b1c25f7aebf800cbecd6737 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: linker.c 7923 2007-05-20 23:57:39Z michi $
+   $Id: linker.c 8027 2007-06-07 10:30:33Z michi $
 
 */
 
@@ -953,7 +953,7 @@ static classinfo *link_class_intern(classinfo *c)
                if (!(f->flags & ACC_STATIC)) {
                        dsize = descriptor_typesize(f->parseddesc);
 
-#if defined(__I386__) || defined(__ARM__)
+#if defined(__I386__) || (defined(__ARM__) && !defined(__ARM_EABI__))
                        /* On i386 and ARM we align double and s8 fields to
                           4-bytes.  This matches what GCC does for struct
                           members. We must do the same as gcc here because the
@@ -1212,9 +1212,12 @@ static arraydescriptor *link_array(classinfo *c)
 
 static void linker_compute_subclasses(classinfo *c)
 {
-#if defined(ENABLE_THREADS) && !defined(DISABLE_GC)
+       LOCK_MONITOR_ENTER(linker_classrenumber_lock);
+
+#if 0 && defined(ENABLE_THREADS) && !defined(DISABLE_GC)
        threads_stopworld();
 #endif
+
        if (!(c->flags & ACC_INTERFACE)) {
                c->nextsub = NULL;
                c->sub     = NULL;
@@ -1231,7 +1234,9 @@ static void linker_compute_subclasses(classinfo *c)
 
        linker_compute_class_values(class_java_lang_Object);
 
-#if defined(ENABLE_THREADS) && !defined(DISABLE_GC)
+       LOCK_MONITOR_EXIT(linker_classrenumber_lock);
+
+#if 0 && defined(ENABLE_THREADS) && !defined(DISABLE_GC)
        threads_startworld();
 #endif
 }
index ea02e1a3959bea4ad4dc70f68cc90779d9aa5285..71ce13c366328e763b92fa10a99eff7a8cdb4b86 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: method.h 7575 2007-03-25 20:30:50Z twisti $
+   $Id: method.h 7966 2007-05-25 12:41:03Z pm $
 */
 
 
@@ -104,6 +104,10 @@ struct methodinfo {                 /* method structure                       */
 #if defined(ENABLE_REPLACEMENT)
        s4            hitcountdown;     /* decreased for each hit                 */
 #endif
+
+#if defined(ENABLE_DEBUG_FILTER)
+       u1            filtermatches;    /* flags indicating which filters the method matches */
+#endif
 };
 
 
index 4f31ef465bcf360293f20c1b99243b9bbe4dd920..a7087529aba72268316a12ddfbe0fa0bd0c74242 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: options.c 7894 2007-05-10 14:04:05Z twisti $
+   $Id: options.c 7966 2007-05-25 12:41:03Z pm $
 
 */
 
@@ -163,6 +163,11 @@ s4   opt_static_supers = 0x7fffffff;
 bool vm_debug = false;          /* XXX this should be called `opt_trace'      */
 #endif
 
+#if defined(ENABLE_DEBUG_FILTER)
+const char *opt_filter_verbosecall_include = 0;
+const char *opt_filter_verbosecall_exclude = 0;
+const char *opt_filter_show_method = 0;
+#endif
 
 /* options_get *****************************************************************
 
index 92ecd07bb5f8fc6bd15710667cf565c8fb67d42c..3abb564e88334a5a4fd0f288cd052ed0fa50fc81 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: options.h 7894 2007-05-10 14:04:05Z twisti $
+   $Id: options.h 7966 2007-05-25 12:41:03Z pm $
 
 */
 
@@ -170,6 +170,13 @@ extern s4   opt_static_supers;
 extern bool vm_debug;
 #endif
 
+/* debug output filtering options *********************************************/
+
+#if defined(ENABLE_DEBUG_FILTER)
+extern const char *opt_filter_verbosecall_include;
+extern const char *opt_filter_verbosecall_exclude;
+extern const char *opt_filter_show_method;
+#endif
 
 /* function prototypes ********************************************************/
 
index ac68015cbcae4c18ee3803fbf338ddc215fe6340..b97064ace03684a0dae64727f6d550b9d3d09348 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: statistics.c 7916 2007-05-18 14:24:21Z twisti $
+   $Id: statistics.c 8006 2007-06-05 07:40:49Z twisti $
 
 */
 
@@ -103,6 +103,9 @@ s4 size_lock_record      = 0;
 s4 size_lock_hashtable   = 0;
 s4 size_lock_waiter      = 0;
 
+u8 count_calls_java_to_native = 0;
+u8 count_calls_native_to_java = 0;
+
 int count_const_pool_len = 0;
 int count_classref_len = 0;
 int count_parsed_desc_len = 0;
@@ -177,7 +180,6 @@ int count_upper_bound_new_stack = 0;
 s4 count_branches_resolved   = 0;
 s4 count_branches_unresolved = 0;
 
-u8 count_native_function_calls=0;
 u8 count_jni_callXmethod_calls=0;
 u8 count_jni_calls=0;
 
@@ -229,19 +231,6 @@ s4 count_schedule_max_leaders = 0;
 s4 count_schedule_critical_path = 0;
 
 
-/* nativeinvokation ***********************************************************
-
-   increments the native invokation count by one
-       
-*******************************************************************************/
-
-void nativeinvokation(void)
-{
-       /* XXX do locking here */
-       count_native_function_calls++;
-}
-
-
 /* jnicallXmethodinvokation ***************************************************
 
    increments the jni CallXMethod invokation count by one
@@ -590,13 +579,14 @@ void print_stats(void)
        /* call statistics ********************************************************/
 
        dolog("Function call statistics:");
-       dolog("Number of native function invokations:           %ld",
-                 count_native_function_calls);
        dolog("Number of jni->CallXMethod function invokations: %ld",
                  count_jni_callXmethod_calls);
        dolog("Overall number of jni invokations:               %ld",
                  count_jni_calls);
 
+       log_println("java-to-native calls:   %10ld", count_calls_java_to_native);
+       log_println("native-to-java calls:   %10ld", count_calls_native_to_java);
+
 
        /* now print other statistics ********************************************/
 
@@ -709,9 +699,9 @@ void statistics_print_memory_usage(void)
 
        log_println("                        %10d", sum);
        log_println("");
-       log_println("max. memory usage:      %10d", maxcodememusage);
-       log_println("max. heap memory usage: %10d", maxmemusage);
-       log_println("max. dump memory usage: %10d", maxdumpsize);
+       log_println("max. code memory:       %10d", maxcodememusage);
+       log_println("max. heap memory:       %10d", maxmemusage);
+       log_println("max. dump memory:       %10d", maxdumpsize);
        log_println("");
        log_println("heap memory not freed:  %10d", (s4) memoryusage);
        log_println("dump memory not freed:  %10d", (s4) globalallocateddumpsize);
index e9ad8d4df98ffaf6fdf75fdce5899227033aded8..0393ba0f6f0b0d6d2d85453989c81fe102d6386f 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: statistics.h 7916 2007-05-18 14:24:21Z twisti $
+   $Id: statistics.h 8006 2007-06-05 07:40:49Z twisti $
 
 */
 
@@ -106,6 +106,9 @@ extern s4 size_lock_record;
 extern s4 size_lock_hashtable;
 extern s4 size_lock_waiter;
 
+extern u8 count_calls_java_to_native;
+extern u8 count_calls_native_to_java;
+
 extern int count_const_pool_len;
 extern int count_classref_len;
 extern int count_parsed_desc_len;
@@ -226,7 +229,6 @@ void statistics_print_gc_memory_usage(void);
 
 void mem_usagelog(bool givewarnings);
 
-void nativeinvokation(void);
 void compiledinvokation(void);
 void jnicallXmethodnvokation(void);
 void jniinvokation(void);
index 65a4126568349fa2784c11d278f46815c4aef54c..11cffc103434935059d8b7c73f7fa66e6ffe52cb 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: utf8.c 7813 2007-04-25 19:20:13Z twisti $
+   $Id: utf8.c 7942 2007-05-23 12:40:31Z twisti $
 
 */
 
@@ -173,6 +173,8 @@ utf *utf_getSystemClassLoader;
 utf *utf_loadClass;
 utf *utf_printStackTrace;
 
+utf *utf_division_by_zero;
+
 utf *utf_Z;                             /* Z                                  */
 utf *utf_B;                             /* B                                  */
 utf *utf_C;                             /* C                                  */
@@ -399,10 +401,12 @@ bool utf8_init(void)
        utf_get                        = utf_new_char("get");
        utf_value                      = utf_new_char("value");
 
-       utf_printStackTrace            = utf_new_char("printStackTrace");
        utf_fillInStackTrace           = utf_new_char("fillInStackTrace");
-       utf_loadClass                  = utf_new_char("loadClass");
        utf_getSystemClassLoader       = utf_new_char("getSystemClassLoader");
+       utf_loadClass                  = utf_new_char("loadClass");
+       utf_printStackTrace            = utf_new_char("printStackTrace");
+
+       utf_division_by_zero           = utf_new_char("/ by zero");
 
        utf_Z                          = utf_new_char("Z");
        utf_B                          = utf_new_char("B");
index fffb6554700a30faa71bc9590e55ecdd6f0f9d23..5f606487415ea6228b52917c677b4648ddced955 100644 (file)
@@ -22,7 +22,7 @@
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.
 
-   $Id: utf8.h 7387 2007-02-21 23:26:24Z twisti $
+   $Id: utf8.h 7942 2007-05-23 12:40:31Z twisti $
 
 */
 
@@ -169,6 +169,8 @@ extern utf *utf_getSystemClassLoader;
 extern utf *utf_loadClass;
 extern utf *utf_printStackTrace;
 
+extern utf *utf_division_by_zero;
+
 extern utf *utf_Z;
 extern utf *utf_B;
 extern utf *utf_C;