Michael Starzinger [Mon, 7 Sep 2009 22:23:11 +0000 (00:23 +0200)]
* src/toolbox/sequence.hpp: Added new file to hold sequence builder class.
* src/toolbox/Makefile.am (libtoolbox_la_SOURCES): Added above file.
* src/native/vm/nativevm.cpp: Use new sequence builder class.
* src/native/vm/openjdk/hpi.cpp: Likewise.
* src/native/vm/gnuclasspath/gnu_classpath_VMSystemProperties.cpp: Likewise.
Michael Starzinger [Sun, 6 Sep 2009 21:58:54 +0000 (23:58 +0200)]
* src/native/native.hpp (NativeAgent, NativeAgents): Added new classes for
handling JVMTI agent loading.
* src/native/native.cpp: Implemented methods for above classes.
* src/vm/vm.hpp (VM): Added table to hold all registered agents.
* src/vm/vm.cpp (VM::VM): Agents are now correctly registered and loaded
during VM startup.
Michael Starzinger [Tue, 1 Sep 2009 00:59:25 +0000 (02:59 +0200)]
* src/toolbox/list.hpp (DumpList): Made sort function accessible.
* src/vm/jit/code.cpp (code_codeinfo_free): Release memory for profiling.
* src/vm/jit/code.hpp (codeinfo): Basicblockcount only needed for profiling.
* src/vm/jit/codegen-common.cpp (codegen_emit): Adapted CPU cycle counting.
* src/vm/jit/emit-common.hpp: Likewise.
* src/vm/jit/jit.cpp (jit_compile): This is not the place to free resources.
* src/vm/jit/optimizing/Makefile.am (PROFILE_SOURCES): Moved to C++.
* src/vm/jit/optimizing/profile.cpp: Fixed and moved to C++.
* src/vm/jit/optimizing/profile.hpp: Likewise.
* src/vm/vm.cpp: Fixed includes.
* src/vm/jit/i386/emit.c: Added dummies for CPU cycle counting.
* src/vm/jit/powerpc/emit.c: Likewise.
* src/vm/jit/s390/emit.c: Likewise.
* src/vm/jit/x86_64/emit.c: Moved CPU cycle counting here.
Michael Starzinger [Mon, 31 Aug 2009 22:59:30 +0000 (00:59 +0200)]
* src/vm/jit/codegen-common.cpp (codegen_emit): New generic version of the
code generating loop. This is the main point of this huge commit.
There are some other changes which might be interesting about this commit,
which are described in detail:
* src/vm/jit/code.hpp (codeinfo): Added runtime information to replace most
parts of the method header.
* src/vm/jit/codegen-common.cpp (codegen_finish): Sets runtime information.
(codegen_start_native_call): Use MD function to determine size of stackframe.
(codegen_finish_native_call): Likewise.
* src/vm/jit/codegen-common.hpp: Added prototypes of new MD functions.
* src/vm/jit/emit-common.hpp: Added prototypes of new MD functions.
(emit_xmove): Added generic inline functions for register moves.
* src/vm/jit/optimizing/profile.c: Disabled some broken profiling code.
* src/vm/jit/optimizing/profile.h: Moved definitions CPU cycle counting
macros to where they belong.
* src/vm/jit/replace.cpp: Uses new architecture description macros.
* src/vm/jit/stacktrace.cpp: Use MD function to determine size of stackframe.
The rest of the files were machine dependent adaptions of the different ports
with too many changes to describe here, so I just list the files:
* src/vm/jit/alpha/arch.h
* src/vm/jit/alpha/codegen.c
* src/vm/jit/alpha/codegen.h
* src/vm/jit/alpha/emit.c
* src/vm/jit/alpha/md.h
* src/vm/jit/arm/arch.h
* src/vm/jit/arm/codegen.c
* src/vm/jit/arm/codegen.h
* src/vm/jit/arm/emit.c
* src/vm/jit/arm/md.h
* src/vm/jit/i386/arch.h
* src/vm/jit/i386/codegen.c
* src/vm/jit/i386/codegen.h
* src/vm/jit/i386/emit.c
* src/vm/jit/i386/emit.h
* src/vm/jit/i386/md.h
* src/vm/jit/m68k/arch.h
* src/vm/jit/m68k/codegen.c
* src/vm/jit/m68k/codegen.h
* src/vm/jit/m68k/emit.c
* src/vm/jit/m68k/md.h
* src/vm/jit/mips/arch.h
* src/vm/jit/mips/codegen.c
* src/vm/jit/mips/codegen.h
* src/vm/jit/mips/emit.c
* src/vm/jit/mips/md.h
* src/vm/jit/powerpc/arch.h
* src/vm/jit/powerpc/codegen.c
* src/vm/jit/powerpc/codegen.h
* src/vm/jit/powerpc/emit.c
* src/vm/jit/powerpc/md.h
* src/vm/jit/powerpc64/arch.h
* src/vm/jit/powerpc64/codegen.c
* src/vm/jit/powerpc64/codegen.h
* src/vm/jit/powerpc64/emit.c
* src/vm/jit/powerpc64/md.h
* src/vm/jit/s390/arch.h
* src/vm/jit/s390/codegen.c
* src/vm/jit/s390/codegen.h
* src/vm/jit/s390/emit.c
* src/vm/jit/s390/md.h
* src/vm/jit/sparc64/arch.h
* src/vm/jit/sparc64/codegen.c
* src/vm/jit/sparc64/codegen.h
* src/vm/jit/sparc64/emit.c
* src/vm/jit/sparc64/md.h
* src/vm/jit/x86_64/arch.h
* src/vm/jit/x86_64/codegen.c
* src/vm/jit/x86_64/codegen.h
* src/vm/jit/x86_64/emit.c
* src/vm/jit/x86_64/emit.h
* src/vm/jit/x86_64/md.h
Michael Starzinger [Mon, 31 Aug 2009 14:51:17 +0000 (16:51 +0200)]
* src/vm/jit/show.cpp (show_method): Now shows patcher references as well.
* src/vm/jit/patcher-common.cpp (patcher_list_show): Supports above task.
* src/vm/jit/patcher-common.hpp: Likewise.
* src/vm/global.h (PRINTF_FORMAT_INTPTR_T): Added very useful define.
Michael Starzinger [Mon, 31 Aug 2009 14:51:16 +0000 (16:51 +0200)]
* src/vm/jit/methodtree.c (methodtree_find): Detect and avoid endless loop when
methodtree lookup fails during stacktrace creation.
Michael Starzinger [Mon, 31 Aug 2009 13:25:49 +0000 (15:25 +0200)]
* src/vm/loader.cpp (load_constantpool): Uses DumpList instead of reinvented
wheel to resolve forward references.
Michael Starzinger [Mon, 31 Aug 2009 13:22:31 +0000 (15:22 +0200)]
* src/mm/dumpmemory.hpp (DumpClass): Added new base class for dump memory.
* src/toolbox/list.hpp (DumpList): Uses above class to be allocated on dump
memory.
Michael Starzinger [Mon, 24 Aug 2009 10:02:42 +0000 (12:02 +0200)]
* src/vm/primitive.cpp: Removed obsolete legacy C interface.
* src/vm/primitive.hpp: Likewise.
Stefan Ring [Thu, 12 Feb 2009 19:10:08 +0000 (20:10 +0100)]
* INSTALL: Minor textual changes.
* README: Likewise.
Michael Starzinger [Sun, 2 Aug 2009 12:13:17 +0000 (14:13 +0200)]
* src/vm/jit/trace.cpp: Method tracer can now trace builtin functions as well.
* src/vm/jit/codegen-common.cpp: Some minor adaption to allow above change.
* src/vm/options.c (opt_TraceBuiltinCalls): Added new tracer option.
* src/vm/options.h (opt_TraceBuiltinCalls): Likewise.
Michael Starzinger [Wed, 15 Jul 2009 11:03:54 +0000 (13:03 +0200)]
* src/vm/global.h: Added definition of MIN macro with guard.
* src/vm/jit/sparc64/md-abi.c (MIN): Removed macro.
* src/vm/jit/stack.c (MIN): Likewise.
Stefan Ring [Mon, 6 Jul 2009 15:16:20 +0000 (17:16 +0200)]
i386 / x86_64: Align patcher trap instruction.
* src/vm/jit/i386/emit.c: Added emit_patcher_alignment.
* src/vm/jit/x86_64/emit.c: Likewise.
* src/vm/jit/i386/md-trap.h: Added emit_patcher_alignment, defined
ALIGN_PATCHER_TRAP.
* src/vm/jit/x86_64/md-trap.h: Likewise.
* src/vm/jit/patcher-common.cpp (patcher_add_patch_ref): Use
emit_patcher_alignment if requested.
Stefan Ring [Wed, 1 Jul 2009 06:58:28 +0000 (08:58 +0200)]
* src/vm/jit/show.cpp (show_method, show_allocation): Show register
allocation even without disassembler.
Stefan Ring [Tue, 30 Jun 2009 14:44:11 +0000 (16:44 +0200)]
* src/vm/jit/trap.cpp (trap_handle): Suppress PR85 warning by default.
Stefan Ring [Tue, 30 Jun 2009 09:14:34 +0000 (11:14 +0200)]
* NEWS: Slight clarification.
Stefan Ring [Tue, 30 Jun 2009 06:14:51 +0000 (08:14 +0200)]
* NEWS: Brought in line with cacao-1.0.x branch, added preliminary release info
for trunk.
Stefan Ring [Mon, 29 Jun 2009 15:50:56 +0000 (17:50 +0200)]
OpenSolaris x86_64
* src/vm/jit/x86_64/md-abi.h: #undef REG_SP on Solaris.
* src/vm/jit/x86_64/codegen.c, src/vm/jit/x86_64/emit.c: Added an
include in order to pick up the register defines from
/usr/include/sys.
* src/vm/jit/x86_64/solaris/md-os.c: Simplified signal handlers
("new-trap-decoding").
(md_executionstate_read, md_executionstate_write): Fixed register
translation.
Stefan Ring [Mon, 29 Jun 2009 08:20:53 +0000 (10:20 +0200)]
* src/vm/jit/i386/solaris/md-os.c: Forgot to remove a comment.
Stefan Ring [Sat, 27 Jun 2009 15:33:23 +0000 (17:33 +0200)]
Now runs on OpenSolaris i386.
* src/vm/array.hpp, src/native/jni.cpp: Compile fixes (on OpenSolaris).
* src/vm/jit/i386/arch.h: Added SKIP_REG_DEFS for Solaris build.
Also #undef register symbols on Solaris.
* src/vm/jit/i386/md-abi.h: #undef REG_SP on Solaris.
* src/vm/jit/i386/codegen.c, src/vm/jit/i386/emit.c: Added an include
in order to pick up the register defines from /usr/include/sys.
* src/vm/jit/i386/solaris/md-os.c: Simplified signal handlers
("new-trap-decoding"). Also using UESP instead of ESP.
* src/vm/jit/optimizing/recompiler.cpp: Fixed a bug.
This "sanity" check is not sane in the presence of spurious wakeups.
Stefan Ring [Fri, 26 Jun 2009 14:44:10 +0000 (16:44 +0200)]
Added test for PR131.
Stefan Ring [Fri, 26 Jun 2009 14:52:10 +0000 (16:52 +0200)]
* tests/regression/bugzilla/PR119.java: Compile fix.
Stefan Ring [Wed, 24 Jun 2009 06:26:11 +0000 (08:26 +0200)]
Minor bugfix for previous commit.
* src/threads/lock.cpp (lock_hashtable_get): Use unordered finalization
like in src/mm/gc-boehm.cpp (heap_alloc).
Stefan Ring [Tue, 23 Jun 2009 13:13:04 +0000 (15:13 +0200)]
Fixes PR131.
* src/threads/lock.cpp: Remove lock records only after they have become
absolutely unreachable.
* src/threads/lock.hpp: Added lock_schedule_lockrecord_removal.
* src/vm/finalizer.cpp: Schedule lock record removal.
Stefan Ring [Mon, 22 Jun 2009 19:55:11 +0000 (21:55 +0200)]
* configure.ac: Added AC_CONFIG_AUX_DIR.
Without this, autogen'ing inside an icedtea tree did not work with libtool
2.2.6.
Stefan Ring [Sat, 20 Jun 2009 13:32:59 +0000 (15:32 +0200)]
Fixes PR130 (os::scandir invocation).
* src/vm/os.hpp (os::scandir): Invoke the system's scandir function via
a template helper.
Stefan Ring [Tue, 2 Jun 2009 23:35:48 +0000 (01:35 +0200)]
* src/vm/options.c (options_xx): Don't clutter output with warning (print to
stderr instead).
Stefan Ring [Tue, 2 Jun 2009 12:24:17 +0000 (14:24 +0200)]
Fixes PR128 (changed resolution order for native methods).
* src/native/native.cpp (NativeMethods::resolve_method): Consider internal
methods before descending into java.lang.ClassLoader.
Stefan Ring [Tue, 2 Jun 2009 12:15:35 +0000 (14:15 +0200)]
* src/native/vm/sun_misc_Unsafe.cpp: Make both OpenJDK 6/7 versions of
setMemory/copyMemory available.
Stefan Ring [Thu, 28 May 2009 08:33:15 +0000 (10:33 +0200)]
* src/vm/os.cpp (os::abort_errnum, os::abort_errno): Fixed.
Stefan Ring [Thu, 28 May 2009 08:31:45 +0000 (10:31 +0200)]
* src/native/jni.cpp (_Jv_JNI_CallStaticObjectMethodV,
_Jv_JNI_CallStaticVoidMethodV): Cannot dump va_list in a meaningful way.
Stefan Ring [Tue, 26 May 2009 12:03:39 +0000 (14:03 +0200)]
* src/vm/os.hpp (os::fprintf): Fixed vfprintf invocation.
Looks like a typo; was discovered because of a gcc warning on Alpha.
--HG--
extra : transplant_source : U%24%C4%C3%FE%1Dk%0D%1E%A1%B4%EEC%B3%EAB%EA%B4Q%E7
Michael Starzinger [Wed, 20 May 2009 15:15:31 +0000 (17:15 +0200)]
* src/native/vm/openjdk/jvm.cpp (JVM_GetAllThreads): Fixed minor typo
missed during list renaming.
Michael Starzinger [Wed, 20 May 2009 15:13:39 +0000 (17:13 +0200)]
* src/vm/jit/codegen-common.cpp (codegen_start_native_call) [__MIPS__],
(codegen_finish_native_call) [__MIPS__]: Trace native calls implicitly now.
* src/vm/jit/mips/codegen.c (codegen_emit_stub_native): Removed explicit
calltracer code generation.
Michael Starzinger [Wed, 20 May 2009 14:43:41 +0000 (16:43 +0200)]
* src/vm/jit/mips/codegen.c (codegen_emit): Fixed minor problem in ICMD_ATHROW.
Michael Starzinger [Tue, 12 May 2009 08:21:16 +0000 (10:21 +0200)]
* src/toolbox/list.hpp (List): Added new list class without a mutex.
(LockedList): Renamed list class with mutex to make mutex obvious.
* src/threads/threadlist.hpp (ThreadList): Use above class.
* src/threads/threadlist.cpp: Likewise.
* src/vm/jit/code.hpp (codeinfo): Patcher list uses above class.
* src/vm/jit/patcher-common.cpp (patcher_list_create): Likewise.
Michael Starzinger [Mon, 11 May 2009 11:23:44 +0000 (13:23 +0200)]
* configure.ac: Made ARM cpu types more generic.
Stefan Ring [Thu, 30 Apr 2009 08:27:57 +0000 (10:27 +0200)]
* src/vm/jit/powerpc/arch.h: Added USES_NEW_SUBTYPE.
* src/vm/jit/powerpc/codegen.c: New subtype code for ppc, almost identical to
the ppc64 code.
* src/vm/jit/powerpc/codegen.h: Added M_CNTLZ.
* src/vm/jit/powerpc/emit.c (emit_classcast_check): Slightly extended.
Michael Starzinger [Tue, 28 Apr 2009 16:50:37 +0000 (18:50 +0200)]
* src/vm/jit/powerpc/darwin/md-os.c: Brought ppc-darwin up to date. Should be
backwards compatible to previous darwin versions.
Stefan Ring [Wed, 22 Apr 2009 09:20:27 +0000 (11:20 +0200)]
* src/vm/jit/alpha/codegen.c: Fixed a register-spilling bug.
Stefan Ring [Mon, 20 Apr 2009 17:59:44 +0000 (19:59 +0200)]
* src/vm/jit/powerpc64/codegen.c: Fixed 2 register-spilling bugs.
Michael Starzinger [Mon, 20 Apr 2009 14:10:14 +0000 (16:10 +0200)]
* src/vm/jit/allocator/simplereg.c: Respects opt_RegallocSpillAll flag now.
* src/vm/options.c (opt_RegallocSpillAll): Added.
* src/vm/options.h: Likewise.
Stefan Ring [Mon, 20 Apr 2009 10:10:53 +0000 (12:10 +0200)]
* src/vm/jit/powerpc64/arch.h: Added USES_NEW_SUBTYPE.
* src/vm/jit/powerpc64/codegen.c: New subtype code for ppc64, brought closer
in line with the Alpha version.
* src/vm/jit/powerpc64/codegen.h: Added M_RLDICL, M_CNTLZ.
* src/vm/jit/powerpc64/emit.c (emit_classcast_check): Slightly extended.
Michael Starzinger [Wed, 15 Apr 2009 15:04:15 +0000 (17:04 +0200)]
Merged with new-trap-decoding branch at rev
a792088a3f04 (branch closed).
Michael Starzinger [Wed, 15 Apr 2009 14:52:31 +0000 (16:52 +0200)]
* src/vm/jit/powerpc/linux/md-os.c: Simplified signal handlers.
* src/vm/jit/powerpc/md-trap.h (MD_TRAP_COMPILER_FIXUP): Implemented.
* src/vm/jit/powerpc/md.c (md_trap_decode): Implemented.
--HG--
branch : new-trap-decoding
Michael Starzinger [Wed, 15 Apr 2009 09:39:14 +0000 (11:39 +0200)]
* src/native/vm/openjdk/jvm.cpp (JVM_CurrentClassLoader): Implemented.
* src/vm/javaobjects.hpp [ENABLE_JAVASE] (java_lang_ClassLoader): Added.
* src/vm/javaobjects.cpp (java_lang_ClassLoader::invoke_getSystemClassLoader):
Implemented new invocation wrapper method.
* src/vm/loader.cpp (load_class_from_sysloader): Use above invocation wrapper.
* src/vm/jit/stacktrace.cpp (stacktrace_first_nonsystem_classloader): Added.
* src/vm/jit/stacktrace.hpp: Likewise.
* src/vm/vm.cpp (vm_get_mainclass_from_jar): Added workaround to make it
compile with CLDC. We have to look into this at some point.
Michael Starzinger [Thu, 2 Apr 2009 15:45:14 +0000 (17:45 +0200)]
Fixes PR126.
* src/vm/loader.cpp (load_class_from_classloader): Correct faulty classloader behavior.
* src/vm/options.c: Added option flag for -XX:+PrintWarnings.
* src/vm/options.h: Likewise.
Stefan Ring [Tue, 24 Mar 2009 09:58:44 +0000 (10:58 +0100)]
* src/vm/jit/i386/darwin/md-os.c: Simplified signal handlers.
--HG--
branch : new-trap-decoding
Michael Starzinger [Mon, 23 Mar 2009 23:58:04 +0000 (00:58 +0100)]
Fixes PR125.
* src/vm/method.cpp (method_load): Ignore access flags for clinit methods.
Michael Starzinger [Mon, 23 Mar 2009 21:49:24 +0000 (22:49 +0100)]
* tests/regression/bugzilla/PR125.java: Added new regression test.
* tests/regression/bugzilla/All.java: Added above test to testsuite.
Michael Starzinger [Mon, 23 Mar 2009 12:43:51 +0000 (13:43 +0100)]
* src/vm/jit/i386/linux/md-os.c: Simplified signal handlers.
* src/vm/jit/i386/md-trap.h (MD_TRAP_COMPILER_FIXUP): Implemented.
* src/vm/jit/i386/md.c (md_trap_decode): Implemented.
* src/vm/jit/trap.cpp (trap_handle) [__I386__]: Fixed minor conflict.
--HG--
branch : new-trap-decoding
Michael Starzinger [Mon, 23 Mar 2009 12:37:14 +0000 (13:37 +0100)]
* src/vm/jit/alpha/linux/md-os.c: Simplified signal handlers.
* src/vm/jit/alpha/md-trap.h (MD_TRAP_COMPILER_FIXUP): Implemented.
* src/vm/jit/alpha/md.c (md_trap_decode): Implemented.
--HG--
branch : new-trap-decoding
Michael Starzinger [Sat, 21 Mar 2009 16:00:53 +0000 (17:00 +0100)]
Fixes PR121. Cherry-picked from upstream BoehmGC CVS head.
* src/mm/boehm-gc/os_dep.c (GC_linux_stack_base): Relax sanity test.
Michael Starzinger [Fri, 20 Mar 2009 12:24:09 +0000 (13:24 +0100)]
* src/native/vm/cldc1.1/java_lang_String.cpp: Added missing include.
* src/native/vm/cldc1.1/com_sun_cldc_io_ResourceInputStream.cpp: Likewise.
* src/native/vm/cldc1.1/com_sun_cldc_io_j2me_socket_Protocol.cpp: Likewise.
Michael Starzinger [Mon, 16 Mar 2009 19:45:58 +0000 (20:45 +0100)]
Merged with michi branch at rev
1684fe51cf3d.
Michael Starzinger [Mon, 16 Mar 2009 19:35:17 +0000 (20:35 +0100)]
* src/vm/array.hpp (ArrayTemplate::get_raw_data_ptr): Added as pure virtual.
(Array::get_raw_data_ptr): Removed obsolete method.
Removed some superfluous inline keywords.
--HG--
branch : michi
Michael Starzinger [Fri, 13 Mar 2009 15:01:44 +0000 (16:01 +0100)]
* src/vm/jit/powerpc64/linux/md-os.c: Simplified signal handlers.
* src/vm/jit/powerpc64/md-trap.h (MD_TRAP_COMPILER_FIXUP): Implemented.
* src/vm/jit/powerpc64/md.c (md_trap_decode): Implemented.
* src/vm/jit/powerpc64/patcher.c (patcher_is_valid_trap_instruction_at):
Removed obsolete method.
--HG--
branch : new-trap-decoding
Michael Starzinger [Thu, 12 Mar 2009 14:35:16 +0000 (15:35 +0100)]
* src/vm/jit/trap.cpp (trap_handle): Further generalized trap handling and
changed signature accordingly.
* src/vm/jit/trap.hpp (trapinfo_t): Added together with signal number defines.
* src/vm/jit/arm/linux/md-os.c: Simplified signal handlers.
* src/vm/jit/arm/md-trap.h (MD_TRAP_COMPILER_FIXUP): Implemented.
* src/vm/jit/arm/md.c (md_trap_decode): Implemented.
* src/vm/jit/x86_64/linux/md-os.c: Simplified signal handlers.
* src/vm/jit/x86_64/md-trap.h (MD_TRAP_COMPILER_FIXUP): Implemented.
* src/vm/jit/x86_64/md.c (md_trap_decode): Implemented.
--HG--
branch : new-trap-decoding
Michael Starzinger [Thu, 12 Mar 2009 09:11:25 +0000 (10:11 +0100)]
* src/vm/options.c: Moved -m, -sig and -all flags to -XX options.
* src/vm/options.h: Likewise.
* src/vm/vm.cpp: Removed obsolete flags and adapted to above changes.
Michael Starzinger [Wed, 11 Mar 2009 15:12:59 +0000 (16:12 +0100)]
* src/vm/jit/mips/arch.h (USES_NEW_SUBTYPE): Added define.
* src/vm/jit/mips/codegen.c (codegen_emit): Added new subtype checking code
to ICMD_CHECKCAST and ICMD_INSTANCEOF.
* src/vm/jit/emit-common.cpp (emit_label_beq): Added.
* src/vm/jit/emit-common.hpp (emit_label_beq): Likewise.
Michael Starzinger [Tue, 10 Mar 2009 10:23:15 +0000 (11:23 +0100)]
* src/vm/vm.cpp (vm_abort_errnum, vm_abort_errno): Removed obsolete functions.
* src/vm/vm.hpp: Likewise.
* src/mm/memory.cpp: Adapted to use os::abort_errnum() instead.
* src/native/vm/cldc1.1/com_sun_cldc_io_j2me_socket_Protocol.cpp: Likewise.
* src/threads/posix/thread-posix.cpp: Likewise.
* src/threads/posix/thread-posix.hpp: Likewise.
* src/vm/jit/oprofile-agent.cpp: Likewise.
* src/vm/options.c: Likewise.
* src/vm/signal.cpp: Likewise.
Michael Starzinger [Tue, 10 Mar 2009 10:19:42 +0000 (11:19 +0100)]
* src/vm/jit/arm/arch.h (USES_NEW_SUBTYPE): Added define.
* src/vm/jit/arm/codegen.c (codegen_emit): Added new subtype checking code
to ICMD_CHECKCAST and ICMD_INSTANCEOF.
* src/vm/jit/arm/codegen.h: Added new conditional traps.
* src/vm/jit/arm/emit.c (emit_classcast_check): Likewise.
Michael Starzinger [Thu, 5 Mar 2009 15:13:32 +0000 (16:13 +0100)]
* src/native/jni.hpp (JNI_VERSION_CACAO): Added to be able to reveal ourselves.
* src/native/jni.cpp (JNI_GetDefaultJavaVMInitArgs): Now accepts above version
number.
Michael Starzinger [Thu, 5 Mar 2009 13:44:30 +0000 (14:44 +0100)]
* src/vm/suck.hpp (SuckClasspath): Added as list of classpath entries.
* src/vm/suck.cpp: Moved existing methods into above class.
* src/vm/vm.hpp (VM): Added SuckClasspath as global classpath entries list.
* src/vm/vm.cpp (VM::VM): Adapted to above changes.
* src/vm/loader.cpp (loader_load_all_classes): Likewise.
* src/native/vm/cldc1.1/com_sun_cldc_io_ResourceInputStream.cpp: Likewise.
* src/native/vm/gnuclasspath/java_lang_VMClassLoader.cpp: Likewise.
Michael Starzinger [Thu, 26 Feb 2009 14:32:41 +0000 (15:32 +0100)]
Fixes PR81.
* src/vm/jit/patcher-common.cpp (patcher_function_list) [!ENABLE_VERIFIER]:
Removed reference to patcher_resolve_class if verifier is disabled.
* src/vm/jit/arm/codegen.c (codegen_emit) [!ENABLE_VERIFIER]: Likewise.
Michael Starzinger [Thu, 26 Feb 2009 12:29:44 +0000 (13:29 +0100)]
Fixes PR122.
* src/vm/jit/arm/md.c (md_jit_method_patch_address): Fixed for corner case with
large displacements.
Michael Starzinger [Wed, 25 Feb 2009 08:38:31 +0000 (09:38 +0100)]
* src/native/vm/nativevm.cpp (nativevm_init): Return boolean to indicate error.
* src/native/vm/nativevm.hpp (nativevm_init): Adapted signature accordignly.
* src/vm/vm.cpp (VM::VM): Check for above error flag.
Stefan Ring [Sun, 22 Feb 2009 17:43:23 +0000 (18:43 +0100)]
* src/native/vm/gnuclasspath/java_lang_VMThread.cpp: Use thread_handle_*
functions for interrupt, isInterrupted, setPriority, getState.
* src/threads/thread.cpp (threads_thread_start): Take the ThreadList lock
when calling set_vmdata.
* src/threads/thread.cpp, src/threads/thread.hpp: Added
thread_handle_set_priority, thread_handle_is_interrupted,
thread_handle_interrupt, thread_handle_get_state for querying/manipulating
threadobjects while holding the ThreadList lock.
* src/threads/threadlist.hpp: Added RAII ThreadListLocker.
These changes seem to fix PR120 for GNU classpath. For OpenJDK, the situation
is still a bit messy.
--HG--
extra : transplant_source : %15%8B%B4%86%CAk%2C%0DL%D0%D6V%97%81%F1%7E%07.%A5M
Stefan Ring [Sat, 21 Feb 2009 14:35:16 +0000 (15:35 +0100)]
* src/vm/javaobjects.hpp: Removed lots of superfluous inline keywords.
Stefan Ring [Fri, 20 Feb 2009 19:04:57 +0000 (20:04 +0100)]
* src/threads/thread.cpp, src/threads/thread.hpp (thread_is_interrupted,
thread_set_interrupted): Moved to .cpp file so we can get rid of
#ifdef __cplusplus.
* src/threads/thread.hpp (thread_is_attached, thread_is_daemon,
thread_current_is_attached): Made a bit shorter.
Stefan Ring [Sat, 14 Feb 2009 13:43:32 +0000 (14:43 +0100)]
compare_and_swap reorganization. This should finally make it compile on MacOS X.
* src/threads/atomic.hpp: Reorganized namespace declarations.
(CAS_32_functor, CAS_64_functor, CAS_chooser, CAS): Helper templates for letting
the compiler figure out which version of compare_and_swap to use.
* src/threads/atomic.cpp: generic_compare_and_swap now lives in namespace Atomic.
* src/native/vm/sun_misc_Unsafe.cpp: Adapted usage of compare_and_swap.
* src/vm/jit/alpha/md-atomic.hpp: Adapted to new namespace.
* src/vm/jit/arm/md-atomic.hpp: Likewise.
* src/vm/jit/i386/md-atomic.hpp: Likewise.
* src/vm/jit/m68k/md-atomic.hpp: Likewise.
* src/vm/jit/mips/md-atomic.hpp: Likewise.
* src/vm/jit/powerpc/md-atomic.hpp: Likewise.
* src/vm/jit/powerpc64/md-atomic.hpp: Likewise.
* src/vm/jit/s390/md-atomic.hpp: Likewise.
* src/vm/jit/sparc64/md-atomic.hpp: Likewise.
* src/vm/jit/x86_64/md-atomic.hpp: Likewise.
Stefan Ring [Thu, 12 Feb 2009 19:00:47 +0000 (20:00 +0100)]
* INSTALL: Restoring version before
9f7c675ac362. Looks like an accidental
change.
Stefan Ring [Wed, 11 Feb 2009 16:27:42 +0000 (17:27 +0100)]
* src/threads/posix/thread-posix.cpp (threads_calc_absolute_time):
An attempt at improved integer overflow handling.
Stefan Ring [Sun, 8 Feb 2009 18:34:23 +0000 (19:34 +0100)]
* src/vm/jit/i386/darwin/md-os.c: Make compilable on Tiger (10.4).
Michael Starzinger [Mon, 26 Jan 2009 15:26:54 +0000 (16:26 +0100)]
* src/vm/jit/trap.cpp (trap_handle): Enhanced debug output of trap tracer.
Michael Starzinger [Thu, 15 Jan 2009 08:52:28 +0000 (09:52 +0100)]
* src/vm/jit/mips/emit.c (emit_verbosecall_enter): Switch to new call tracer.
(emit_verbosecall_exit): Likewise.
Michael Starzinger [Tue, 13 Jan 2009 15:30:34 +0000 (16:30 +0100)]
Fixes PR102 and PR119.
* src/vm/primitive.hpp (Primitive::unbox_typed): Added new method.
* src/vm/primitive.cpp: Implemented above method for typesafe unboxing
of primitive values with conversion.
* src/vm/array.cpp (Array::set_boxed_element): Use new unboxing function and
special handling for object arrays.
--HG--
branch : michi
Stefan Ring [Fri, 9 Jan 2009 23:43:35 +0000 (00:43 +0100)]
* src/threads/atomic.cpp (generic_compare_and_swap): Fixed typo.
Stefan Ring [Fri, 9 Jan 2009 21:37:21 +0000 (22:37 +0100)]
Stronger assembler constraints for cmpxchg on i386/x86_64.
* src/vm/jit/i386/md-atomic.hpp, src/vm/jit/x86_64/md-atomic.hpp: Said changes.
Stefan Ring [Wed, 7 Jan 2009 10:41:04 +0000 (11:41 +0100)]
* src/threads/threadlist.hpp: Removed superfluous inline keywords; improves readability.
Stefan Ring [Tue, 30 Dec 2008 10:57:17 +0000 (11:57 +0100)]
* src/vm/jit/i386/darwin/md-os.c, src/vm/jit/i386/freebsd/md-os.c,
src/vm/jit/i386/solaris/md-os.c, src/vm/jit/x86_64/solaris/md-os.c:
Copied the PR85 fix (untested except for i386 darwin).
Stefan Ring [Tue, 30 Dec 2008 10:33:04 +0000 (11:33 +0100)]
* src/vm/jit/Makefile.am: Fixed build.
Michael Starzinger [Tue, 30 Dec 2008 02:12:18 +0000 (03:12 +0100)]
* tests/regression/base/TestCloning.java: Added testcase for object cloning.
* tests/regression/base/All.java: Added above test to our base suite.
Stefan Ring [Mon, 29 Dec 2008 18:59:23 +0000 (19:59 +0100)]
PR85 for i386.
* src/vm/jit/i386/linux/md-os.c: Check for already patched instructions.
* src/vm/jit/i386/patcher.c (patcher_is_valid_trap_instruction_at):
Implemented.
Stefan Ring [Mon, 29 Dec 2008 18:46:42 +0000 (19:46 +0100)]
Fixed PR84 for i386.
* src/vm/jit/i386/patcher.c: Reordered code patching.
* src/vm/jit/i386/emit.c (emit_mov_imm2_reg): Added.
* src/vm/jit/i386/emit.h: Likewise.
* src/vm/jit/i386/codegen.h: Added M_MOV_IMM2.
* src/vm/jit/i386/codegen.c: Use M_MOV_IMM2.
--HG--
extra : transplant_source : %C9%12%24%F2%D3%CC%E66%844%9F%3Ez%28%2B%D2E%8B%5E%BB
Michael Starzinger [Mon, 29 Dec 2008 16:57:40 +0000 (17:57 +0100)]
* src/vm/jit/trap.cpp (trap_handle): Cleaned code for compiler traps.
This also fixes an issue on some archs not yet ported to executionstates.
Michael Starzinger [Mon, 29 Dec 2008 12:02:05 +0000 (13:02 +0100)]
* src/vm/class.cpp (class_is_assignable_from): Fixed for array classes.
Michael Starzinger [Sun, 28 Dec 2008 14:32:21 +0000 (15:32 +0100)]
* src/vm/jit/trap.c: Moved to C++
* src/vm/jit/trap.h: Likewise.
* src/vm/jit/trap.cpp: See above.
* src/vm/jit/trap.hpp: Likeiwse.
Adapted includes in the following files:
* src/vm/jit/alpha/codegen.c
* src/vm/jit/alpha/emit.c
* src/vm/jit/alpha/linux/md-os.c
* src/vm/jit/alpha/md.c
* src/vm/jit/arm/emit.c
* src/vm/jit/arm/linux/md-os.c
* src/vm/jit/i386/codegen.c
* src/vm/jit/i386/darwin/md-os.c
* src/vm/jit/i386/emit.c
* src/vm/jit/i386/freebsd/md-os.c
* src/vm/jit/i386/linux/md-os.c
* src/vm/jit/i386/solaris/md-os.c
* src/vm/jit/m68k/codegen.c
* src/vm/jit/m68k/emit.c
* src/vm/jit/m68k/linux/md-os.c
* src/vm/jit/mips/codegen.c
* src/vm/jit/mips/emit.c
* src/vm/jit/mips/linux/md-os.c
* src/vm/jit/powerpc/codegen.c
* src/vm/jit/powerpc/emit.c
* src/vm/jit/powerpc/linux/md-os.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/s390/codegen.c
* src/vm/jit/s390/emit.c
* src/vm/jit/s390/md.c
* src/vm/jit/sparc64/linux/md-os.c
* src/vm/jit/sparc64/solaris/md-os.c
* src/vm/jit/x86_64/codegen.c
* src/vm/jit/x86_64/emit.c
* src/vm/jit/x86_64/linux/md-os.c
* src/vm/jit/x86_64/solaris/md-os.c
* src/vm/vm.cpp
--HG--
rename : src/vm/jit/trap.c => src/vm/jit/trap.cpp
rename : src/vm/jit/trap.h => src/vm/jit/trap.hpp
Michael Starzinger [Sat, 27 Dec 2008 14:38:41 +0000 (15:38 +0100)]
* src/vm/class.hpp (class_is_arraycompatible): New method (moved from builtin).
* src/vm/class.hpp (class_is_arraycompatible): Likewise.
(class_is_assignable_from): Fixed for array classes.
(class_is_instance): Likewise.
* src/vm/jit/builtin.cpp (builtin_descriptorscompatible): Removed.
(builtin_fast_arraycheckcast): Switched to new method.
(builtin_fast_canstore): Likewise.
Michael Starzinger [Sat, 27 Dec 2008 14:26:55 +0000 (15:26 +0100)]
* tests/regression/base/TestArrayClasses.java: Adapted this testcase to JUnit.
* tests/regression/base/All.java: Added above test to our base suite.
* tests/TestArrayClasses.java: Removed.
* tests/TestArrayClasses.output: Likewise.
* tests/TestBase.java: Likewise.
Michael Starzinger [Sat, 27 Dec 2008 00:09:27 +0000 (01:09 +0100)]
* src/vm/class.cpp (class_isanysubclass): Fixed warning about unused variable.
* src/vm/jit/builtin.cpp (builtin_fast_canstore): Likewise.
Michael Starzinger [Fri, 26 Dec 2008 15:20:56 +0000 (16:20 +0100)]
* src/vm/array.hpp: Implemented array access classes in C++.
* src/vm/array.cpp: Likewise.
* src/vm/jit/builtin.hpp (builtin_newarray, builtin_anewarray): Removed.
* src/vm/jit/builtin.cpp: Likewise.
* src/vm/vm.cpp (vm_run): Minor rework of argument handling.
* src/vm/string.cpp: This code is messed up and needs to be cleaned up soon.
The rest of the files were just updated to the new array access classes, so I
simply list them below:
* src/native/jni.cpp
* src/native/llni.h
* src/native/vm/cldc1.1/com_sun_cldc_io_ResourceInputStream.cpp
* src/native/vm/cldc1.1/com_sun_cldc_io_j2me_socket_Protocol.cpp
* src/native/vm/cldc1.1/java_lang_String.cpp
* src/native/vm/gnuclasspath/gnu_java_lang_VMCPStringBuilder.cpp
* src/native/vm/gnuclasspath/gnu_java_lang_management_VMRuntimeMXBeanImpl.cpp
* src/native/vm/gnuclasspath/java_lang_VMClassLoader.cpp
* src/native/vm/gnuclasspath/java_lang_VMThrowable.cpp
* src/native/vm/gnuclasspath/java_lang_management_VMManagementFactory.cpp
* src/native/vm/openjdk/jvm.cpp
* src/native/vm/reflection.cpp
* src/native/vm/sun_misc_Unsafe.cpp
* src/vm/annotation.cpp
* src/vm/class.cpp
* src/vm/field.cpp
* src/vm/global.h
* src/vm/jit/argument.cpp
* src/vm/jit/stacktrace.cpp
* src/vm/jit/trace.cpp
* src/vm/method.cpp
--HG--
branch : michi
Stefan Ring [Fri, 26 Dec 2008 13:28:58 +0000 (14:28 +0100)]
* configure.ac, m4/threads.m4: Revived check for __thread.
--HG--
extra : transplant_source : %26b%A5%C4%C5%D2%87%B6%EB%F0%E4%B4q%5C%14%8C%DA%20%ED%2B
Michael Starzinger [Fri, 26 Dec 2008 12:23:04 +0000 (13:23 +0100)]
* tests/regression/bugzilla/PR119.java: Added new regression test.
* tests/regression/bugzilla/All.java: Added above test to testsuite.
Stefan Ring [Tue, 23 Dec 2008 11:18:11 +0000 (12:18 +0100)]
Added tag cacao-0.92 for changeset
cc0fa1a904e9
Stefan Ring [Tue, 23 Dec 2008 10:56:12 +0000 (11:56 +0100)]
* src/vm/jit/alpha/codegen.c: Use REG_ITMP3 in some cases where REG_ITMP2 would
conflict with the destination operand.
Stefan Ring [Sat, 20 Dec 2008 15:06:26 +0000 (16:06 +0100)]
Merged branch subtype-trunk into default.
Stefan Ring [Sat, 20 Dec 2008 14:25:49 +0000 (15:25 +0100)]
PR85 for x86_64.
* src/vm/jit/patcher-common.cpp (patcher_is_patched): Also support 16 bit
instructions.
* src/vm/jit/x86_64/linux/md-os.c: Check for already patched instructions.
* src/vm/jit/x86_64/patcher.c (patcher_is_valid_trap_instruction_at):
Implemented.
Michael Starzinger [Wed, 17 Dec 2008 22:45:14 +0000 (23:45 +0100)]
* src/native/vm/openjdk/jvm.cpp (JVM_IsInterrupted): Fixed for threads which
have not been started yet.
* src/native/vm/gnuclasspath/java_lang_VMThread.cpp: Added assertions to
clearly detect race-conditions.
Michael Starzinger [Wed, 17 Dec 2008 18:26:38 +0000 (19:26 +0100)]
* src/threads/threadlist.hpp (ThreadList::get_active_threads): Added.
* src/threads/threadlist.cpp: Likewise.
* src/native/vm/openjdk/jvm.cpp (JVM_GetAllThreads): Implemented.
(JVM_DumpThreads): Fixed if stacktrace is not available.
* src/vm/jit/stacktrace.cpp (stacktrace_get_StackTraceElements): Return empty
array if stacktrace is not available.