cacao.git
17 years ago* src/vm/suck.c (vm/vm.h): Added.
twisti [Fri, 20 Oct 2006 13:54:54 +0000 (13:54 +0000)]
* 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.

17 years ago* src/vm/signal.c (signal_init): Added dummy allocation to install
twisti [Fri, 20 Oct 2006 13:09:54 +0000 (13:09 +0000)]
* src/vm/signal.c (signal_init): Added dummy allocation to install
Boehm's signal handlers.
* src/threads/native/threads.c (threads_preinit): Removed dummy
allocation.

* src/vm/vm.c (vm_create): Call threads_preinit before gc_init.
* src/cacaoh/cacaoh.c (main): Likewise.

17 years ago* src/vm/exceptions.c [ENABLE_JIT] (exceptions_handle_exception): Only
twisti [Fri, 20 Oct 2006 12:00:18 +0000 (12:00 +0000)]
* src/vm/exceptions.c [ENABLE_JIT] (exceptions_handle_exception): Only
required for JIT.

17 years ago* src/mm/memory.c: fixed typo in _no_threads_dumpinfo definition
ajordan [Fri, 20 Oct 2006 00:37:37 +0000 (00:37 +0000)]
* src/mm/memory.c: fixed typo in _no_threads_dumpinfo definition

17 years ago* src/threads/native/threads.c (threads_interrupt_thread): Renamed to
twisti [Thu, 19 Oct 2006 10:10:23 +0000 (10:10 +0000)]
* src/threads/native/threads.c (threads_interrupt_thread): Renamed to
threads_thread_interrupt, send thread a SIGHUP singal to interrupt
blocking system calls (thanks to Robert Schuster).
(threads_dump): Removed threads_sleep call.

* src/threads/native/threads.h (threads_interrupt_thread): Renamed to
threads_thread_interrupt.
* src/native/vm/java_lang_VMThread.c (interrupt): Likewise.
* src/native/jvmti/jvmti.c (InterruptThread): Likewise.

* src/vm/signal.c (signal_init): Register SIGHUP.
(signal_handler_sighup): Added.

17 years ago* src/vm/jit/stacktrace.c (stacktrace_dump_trace): Changed signature.
twisti [Thu, 19 Oct 2006 09:32:29 +0000 (09:32 +0000)]
* src/vm/jit/stacktrace.c (stacktrace_dump_trace): Changed signature.
* src/vm/jit/stacktrace.h: Likewise.

* src/vm/jit/codegen-common.c (codegen_get_pv_from_pc): Pass
threadobject to stacktrace_dump_trace.

* src/vm/signal.c (signal_init): Don't register SIGUSR1.
(signal_handler_sigusr1): Removed.

* src/native/jni.h: Include GNU Classpath JNI header before we define
our header.
(localref_table): Forward typedef.

* src/threads/native/threads.c (threads_dump): Pass threadobject to
stacktrace_dump_trace.

* src/cacaoh/headers.c (stacktrace_dump_trace): Added.

17 years ago* src/threads/native/threads.h (threadobject, threads_table_entry_t)
twisti [Thu, 19 Oct 2006 09:27:24 +0000 (09:27 +0000)]
* src/threads/native/threads.h (threadobject, threads_table_entry_t)
(threads_table_t): Forward typedef.
(threadobject): Changed dumpinfo to dumpinfo_t.

17 years ago* src/mm/memory.h (dumpblock): Postfixed with _t and moved before
twisti [Thu, 19 Oct 2006 09:25:41 +0000 (09:25 +0000)]
* 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.

17 years ago* src/vm/jit/powerpc/codegen.c (codegen): Warning fixes.
twisti [Thu, 19 Oct 2006 09:23:26 +0000 (09:23 +0000)]
* src/vm/jit/powerpc/codegen.c (codegen): Warning fixes.

17 years ago* src/vm/jit/codegen-common.c (codegen_createnativestub): Initialize
edwin [Wed, 18 Oct 2006 16:55:43 +0000 (16:55 +0000)]
* src/vm/jit/codegen-common.c (codegen_createnativestub): Initialize
jd->flags to zero.

17 years ago* tests/regression/jasmin/runtest: Removed debugging `tee TEST`.
edwin [Wed, 18 Oct 2006 16:27:41 +0000 (16:27 +0000)]
* tests/regression/jasmin/runtest: Removed debugging `tee TEST`.
* tests/regression/jasmin/Makefile.am (CLEANFILES): Added file TESTSIA.

17 years ago* tests/regression/jasmin/Makefile.am (SOURCE_FILES): Use EXTRA_DIST, instead.
edwin [Wed, 18 Oct 2006 16:19:21 +0000 (16:19 +0000)]
* tests/regression/jasmin/Makefile.am (SOURCE_FILES): Use EXTRA_DIST, instead.

17 years ago* src/vm/jit/i386/linux/Makefile.am (noinst_HEADERS): Added md-asm.h.
edwin [Wed, 18 Oct 2006 15:57:10 +0000 (15:57 +0000)]
* src/vm/jit/i386/linux/Makefile.am (noinst_HEADERS): Added md-asm.h.
* src/vm/jit/i386/freebsd/Makefile.am (noinst_HEADERS): Likewise.

17 years ago* src/vm/jit/Makefile.am (DIST_SUBDIRS): Added powerpc64.
twisti [Wed, 18 Oct 2006 15:27:42 +0000 (15:27 +0000)]
* src/vm/jit/Makefile.am (DIST_SUBDIRS): Added powerpc64.

17 years ago* src/vm/jit/Makefile.am (DIST_SUBDIRS): Added optimizing.
twisti [Wed, 18 Oct 2006 15:19:39 +0000 (15:19 +0000)]
* src/vm/jit/Makefile.am (DIST_SUBDIRS): Added optimizing.

17 years ago* src/vm/jit/sparc64/Makefile.am (libarch_la_SOURCES): Removed md.h.
twisti [Wed, 18 Oct 2006 15:14:11 +0000 (15:14 +0000)]
* src/vm/jit/sparc64/Makefile.am (libarch_la_SOURCES): Removed md.h.

17 years ago* src/vm/jit/i386/Makefile.am (libarch_la_SOURCES): Renamed md-emit.h
twisti [Wed, 18 Oct 2006 15:09:56 +0000 (15:09 +0000)]
* src/vm/jit/i386/Makefile.am (libarch_la_SOURCES): Renamed md-emit.h
to emit.h.

17 years ago* configure.ac (AC_INIT): Changed to version 0.97rc.
twisti [Wed, 18 Oct 2006 15:04:27 +0000 (15:04 +0000)]
* configure.ac (AC_INIT): Changed to version 0.97rc.
(CFLAGS): Changed to -O2.

17 years ago* tests/regression/jasmin/Makefile.am: Temporarily disable failing
edwin [Wed, 18 Oct 2006 14:53:43 +0000 (14:53 +0000)]
* tests/regression/jasmin/Makefile.am: Temporarily disable failing
tests for the release.

17 years ago* src/vm/jit/stack.c (stack_analyse): Check field type when creating
edwin [Wed, 18 Oct 2006 14:53:05 +0000 (14:53 +0000)]
* src/vm/jit/stack.c (stack_analyse): Check field type when creating
a PUTFIELDCONST/PUTSTATICCONST instruction.

17 years ago* src/vm/jit/parse.c (parse_resolve_exception_table): Do not use
edwin [Mon, 16 Oct 2006 09:59:52 +0000 (09:59 +0000)]
* src/vm/jit/parse.c (parse_resolve_exception_table): Do not use
codegendata.
(parse): Likewise.

* src/vm/jit/stack.c (stack_analyse): Likewise.

17 years ago* src/vm/jit/allocator/simplereg.c [ENABLE_STATISTICS]
twisti [Mon, 16 Oct 2006 09:02:40 +0000 (09:02 +0000)]
* src/vm/jit/allocator/simplereg.c [ENABLE_STATISTICS]
(simplereg_make_statistics): Don't print this INREGISTER stuff.

17 years ago* src/vm/jit/jit.c (jit_compile_intern) [ENABLE_STATISTICS]:
twisti [Mon, 16 Oct 2006 08:53:13 +0000 (08:53 +0000)]
* src/vm/jit/jit.c (jit_compile_intern) [ENABLE_STATISTICS]:
exceptiontablelength is now in jitdata.

17 years ago* src/vm/jit/sparc64/codegen.c: Ported to unified variables.
ajordan [Mon, 16 Oct 2006 00:05:25 +0000 (00:05 +0000)]
* src/vm/jit/sparc64/codegen.c: Ported to unified variables.
* src/vm/jit/sparc64/emit.c: Likewise.

* src/vm/jit/sparc64/md.c: Implemented md_codegen_get_pv_from_pc.

* src/vm/jit/sparc64/codegen.h: Some fixes.
* src/vm/jit/sparc64/asmpart.S: Likewise.

17 years ago* src/vm/linker.c (link_class_intern): Removed unused variable.
edwin [Sun, 15 Oct 2006 22:44:56 +0000 (22:44 +0000)]
* src/vm/linker.c (link_class_intern): Removed unused variable.

17 years ago* src/vm/jit/jit.h (exception_entry): New struct.
edwin [Sun, 15 Oct 2006 22:25:54 +0000 (22:25 +0000)]
* src/vm/jit/jit.h (exception_entry): New struct.
(jitdata): Added exceptiontable fields. Cleaned up.

* src/vm/exceptions.h (exceptionentry): Removed.

* src/vm/jit/dseg.h (dseg_exception_entry): New struct.

* src/vm/jit/stack.h (BLOCK_OF): Moved to parse.h.
* src/vm/jit/parse.h (BLOCK_OF): Added.

* src/vm/jit/codegen-common.h (codegendata): Removed exceptiontable
and exceptiontablelength.

* src/vm/loader.c (load_method): Renamed m->exceptiontable* to
m->rawexceptiontable*.
(load_class_from_classbuffer): Likewise.
* src/vm/method.c (method_free): Likewise.

* src/vm/method.h (methodinfo): Renamed m->exceptiontable* to
m->rawexceptiontable*.
(exceptiontable): Renamed to raw_exception_entry. Removed fields that
are only used in jd->exceptiontable.

* src/vm/jit/powerpc/codegen.c (codegen): Moved exceptiontable to jd,
renamed struct exceptiontable to exception_entry.
* src/vm/jit/sparc64/codegen.c (codegen): Likewise.
* src/vm/jit/alpha/codegen.c (codegen): Likewise.
* src/vm/jit/stack.c (stackdata_t): Likewise.
(stack_analyse): Likewise.
(stack_reanalyse_block): Likewise.
* src/vm/jit/optimizing/graph.c (graph_add_exceptions): Likewise.
* src/vm/jit/show.c (show_method): Likewise.
* src/vm/jit/verify/typecheck-common.h (verifier_state): Likewise.
* src/vm/jit/verify/typecheck.c (verify_basic_block): Likewise.
* src/vm/jit/verify/typecheck-stackbased.c (typecheck_stackbased):
Likewise.
* src/vm/jit/mips/codegen.c (codegen):
* src/vm/jit/loop/loop.h (LoopContainer): Likewise.
* src/vm/jit/loop/analyze.c (analyze_nested): Likewise.
(analyze_or_exceptions): Likewise.
(update_internal_exceptions): Likewise.
(create_static_checks): Likewise.
(optimize_loops): Likewise.
* src/vm/jit/inline/inline.c (test_inlining): Likewise.
* src/vm/jit/allocator/lsra.c (lsra_add_exceptions): Likewise.
* src/vm/jit/i386/codegen.c (codegen): Likewise.
* src/vm/jit/powerpc64/codegen.c (codegen): Likewise.
* src/vm/jit/intrp/codegen.c (codegen): Likewise.
* src/vm/jit/schedule/schedule.h (M_SCHEDULE_SET_EXCEPTION_POINT):
Likewise.
* src/vm/jit/x86_64/codegen.c (codegen): Likewise.
* src/vm/jit/jit.c (jit_compile_intern): Likewise.
(jit_jitdata_new): Initialize exceptiontable fields.

* src/vm/jit/codegen-common.c (codegen_setup): Removed exceptiontable
fields.

* src/vm/jit/parse.c (parse_mark_exception_boundaries): New function.
(parse_resolve_exception_table): New function.
(fillextable): Removed.
(parse): Use parse_mark_exception_boundaries and
parse_resolve_exception_table. Write the basicblockindex for the end
marker block.

* src/vm/jit/intrp/asmpart.c (exceptionentry): Renamed to
dseg_exception_entry.
* src/vm/exceptions.c (exceptions_handle_exception): Likewise.

* src/vm/linker.c (link_class_intern): Do not resolve exception
classes here. This is now done in parse.c.

17 years ago* src/vm/jit/jit.h: Indentation cleanup.
edwin [Sun, 15 Oct 2006 13:52:06 +0000 (13:52 +0000)]
* src/vm/jit/jit.h: Indentation cleanup.

17 years ago* src/vm/jit/jit.h (flags_operand_t): Removed `fields` struct. It was
edwin [Sun, 15 Oct 2006 13:37:46 +0000 (13:37 +0000)]
* src/vm/jit/jit.h (flags_operand_t): Removed `fields` struct. It was
not safe to use, as defined.

17 years ago* src/vm/jit/jit.h (flags_operand_t): Removed unused argcount.
edwin [Sun, 15 Oct 2006 13:19:41 +0000 (13:19 +0000)]
* src/vm/jit/jit.h (flags_operand_t): Removed unused argcount.
(ACONST_LOAD): Removed.
(ACONST_BUILTIN): Removed.

17 years ago* src/vm/method.h (methodinfo): Removed c_block_nr.
edwin [Sun, 15 Oct 2006 12:59:04 +0000 (12:59 +0000)]
* src/vm/method.h (methodinfo): Removed c_block_nr.
* src/vm/jit/jit.h (jitdata): Removed c_block_nr.
(BASICBLOCK_INIT): Do not set bptr->nr here.

* src/vm/jit/jit.c (jit_compile_intern): Renumber basic blocks after
transformations.
(jit_check_basicblock_numbers): Made stricter.

* src/vm/jit/stack.c (stack_append_block): Set basic block numbers
correctly.
(stack_clone_block): Do not set bptr->nr here.

* src/vm/jit/verify/typecheck.c (typestate_reach): Use the correct
check for setting the repeat flag.
(typecheck): Check basic block numbers.

* src/vm/jit/verify/typecheck-stackbased.c (typecheck_stackbased):
Check basic block numbers.

* src/vm/jit/loop/analyze.c (copy_handler): Do not use c_block_nr.
(create_static_checks): Likewise.
* src/vm/jit/inline/inline.c (create_block): Likewise.
* src/vm/jit/parse.c (parse): Likewise.

17 years ago* src/vm/jit/jit.c (jit_renumber_basicblocks): New function.
edwin [Sun, 15 Oct 2006 12:20:15 +0000 (12:20 +0000)]
* src/vm/jit/jit.c (jit_renumber_basicblocks): New function.
(jit_check_basicblock_numbers): Likewise.
(jit_init): Removed obsolete variable `i`.

* src/vm/jit/jit.h (jit_renumber_basicblocks): New function.
(jit_check_basicblock_numbers): Likewise.

17 years ago* src/native/jni.c (_Jv_JNI_DetachCurrentThread): Made
twisti [Sat, 14 Oct 2006 19:12:58 +0000 (19:12 +0000)]
* src/native/jni.c (_Jv_JNI_DetachCurrentThread): Made
--disable-threads-safe.

17 years ago* tests/regression/jasmin/Makefile.am: Added new tests.
edwin [Fri, 13 Oct 2006 18:29:03 +0000 (18:29 +0000)]
* tests/regression/jasmin/Makefile.am: Added new tests.

17 years ago* src/vm/jit/verify/icmds.c: Check basic types of instance for field
edwin [Fri, 13 Oct 2006 18:25:21 +0000 (18:25 +0000)]
* src/vm/jit/verify/icmds.c: Check basic types of instance for field
access.
* src/vm/jit/verify/typecheck-fields.inc: Check basic type of value.

* src/vm/jit/verify/typecheck-stackbased-gen.inc: Regenerated.
* src/vm/jit/verify/typecheck-variablesbased-gen.inc: Likewise.

* src/vm/jit/verify/typecheck.c (verify_fieldaccess): Define
VERIFY_ERROR for the include file.

* src/vm/jit/verify/typecheck-stackbased.c (VERIFY_ERROR): Fixed
macro.

* tests/regression/jasmin/test_verify_fail_putfieldconst_basic_type_instance.j,
tests/regression/jasmin/test_verify_fail_getfield_basic_type_instance.j,
tests/regression/jasmin/test_verify_fail_putfield_basic_type_value.j,
tests/regression/jasmin/test_verify_fail_putstatic_basic_type_value.j,
tests/regression/jasmin/test_verify_fail_putfieldconst_basic_type_value.j,
tests/regression/jasmin/test_verify_fail_getfield_basic_type_value.j,
tests/regression/jasmin/test_verify_fail_putfield_basic_type_instance.j,
tests/regression/jasmin/test_verify_fail_putfield_basic_type_lookup.j,
tests/regression/jasmin/test_verify_fail_getfield_basic_type_lookup.j,
tests/regression/jasmin/test_verify_fail_putstaticconst_basic_type_value.j:
New tests.

* tests/regression/jasmin/runtest: Look for specified ICMDs in -sia
output.

17 years ago* src/vm/jit/powerpc64/md.c (md_get_method_patch_address): Fixed
tbfg [Fri, 13 Oct 2006 17:06:39 +0000 (17:06 +0000)]
* src/vm/jit/powerpc64/md.c (md_get_method_patch_address): Fixed
 comments.

* src/vm/jit/powerpc64/codegen.c: Added credits.

* src/vm/jit/powerpc64/asmpart.S (asm_handle_nat_exception): Fixed
 exception handling code. Added credits.

17 years ago* src/vm/jit/verify/typecheck-fields.inc: Re-activate stack overflow
edwin [Fri, 13 Oct 2006 16:30:57 +0000 (16:30 +0000)]
* src/vm/jit/verify/typecheck-fields.inc: Re-activate stack overflow
checking.

* src/vm/jit/verify/typecheck-common.h (verifier_state): Added field
`stackceiling`.

* src/vm/jit/verify/typecheck-stackbased.c (CHECK_STACK_DEPTH):
Cleaned up.
(CHECK_STACK_SPACE): Cleaned up.
(typecheck_stackbased_verify_fieldaccess): Check for stack overflow.
(typecheck_stackbased): Moved stackceiling into state.

17 years ago* src/vm/jit/codegen-common.c (codegen_reg_of_var): Removed `inline`
edwin [Fri, 13 Oct 2006 16:06:18 +0000 (16:06 +0000)]
* src/vm/jit/codegen-common.c (codegen_reg_of_var): Removed `inline`
declaration. The crappy IRIX compiler does not create a global symbol
otherwise.

17 years ago* src/vm/jit/verify/typecheck.c (verify_basic_block): Use generated
edwin [Fri, 13 Oct 2006 14:34:19 +0000 (14:34 +0000)]
* src/vm/jit/verify/typecheck.c (verify_basic_block): Use generated
code.

* src/vm/jit/verify/typecheck-stackbased-gen.inc: New file, GENERATED!
* src/vm/jit/verify/typecheck-variablesbased-gen.inc: Likewise.

* src/vm/jit/verify/typecheck.h (typecheck_stackbased): Added.

* src/vm/jit/verify/Makefile.am: Added source files for both generated
verifiers.

* src/vm/jit/jit.c (jit_compile_intern): Call the stack-based verifier
for the interpreter.

* src/vm/vm.c (vm_create): Re-enable verification fot the interpreter.

17 years ago* src/vm/jit/verify/generate.pl: Clearly mark generated code.
edwin [Fri, 13 Oct 2006 14:22:36 +0000 (14:22 +0000)]
* src/vm/jit/verify/generate.pl: Clearly mark generated code.

17 years ago* src/vm/jit/icmdtable.inc: Documented prettily.
edwin [Fri, 13 Oct 2006 14:00:52 +0000 (14:00 +0000)]
* src/vm/jit/icmdtable.inc: Documented prettily.

17 years ago* src/vm/jit/jit.h (op_data): Removed.
edwin [Fri, 13 Oct 2006 13:11:09 +0000 (13:11 +0000)]
* src/vm/jit/jit.h (op_data): Removed.
(stackreq): Moved to a more logical place.

* src/vm/jit/jit.c (op_data): Removed.
(jit_init): Removed code initializing op_data.

* src/vm/jit/optimizing/lifetimes.c (LifeOutAtStatement): Use
icmd_table.
* src/vm/jit/optimizing/ssa.c (dead_code_elimination): Likewise.

17 years ago* src/vm/jit/jit.h (icmd_table): Added.
edwin [Fri, 13 Oct 2006 12:49:25 +0000 (12:49 +0000)]
* src/vm/jit/jit.h (icmd_table): Added.
(icmd_names): Removed.

* src/vm/jit/jit.c (icmd_table): Added.
(icmd_names): Removed.

* src/vm/jit/show.c (show_icmd): Use icmd_table.
* src/vm/jit/optimizing/ssa.c (dead_code_elimination): Likewise.

17 years ago* src/vm/resolve.c: Removed obsolete debug prints.
edwin [Fri, 13 Oct 2006 12:47:03 +0000 (12:47 +0000)]
* src/vm/resolve.c: Removed obsolete debug prints.

17 years ago* src/vm/jit/jit.h: Added DF_ constants for ICMD table.
edwin [Fri, 13 Oct 2006 11:57:23 +0000 (11:57 +0000)]
* src/vm/jit/jit.h: Added DF_ constants for ICMD table.
Added CF_ constants.
Added ICMDTABLE_ constants.
(icmdtable_entry_t): New struct.

17 years ago* src/vm/jit/icmdtable.inc: New file. Not used, yet.
edwin [Fri, 13 Oct 2006 11:28:10 +0000 (11:28 +0000)]
* src/vm/jit/icmdtable.inc: New file. Not used, yet.
* src/vm/jit/Makefile.am: Added new file.

17 years ago* src/vm/jit/verify/generate.pl: Omit comma at end of ICMD table.
edwin [Fri, 13 Oct 2006 11:27:40 +0000 (11:27 +0000)]
* src/vm/jit/verify/generate.pl: Omit comma at end of ICMD table.

17 years ago* src/vm/jit/verify/typecheck-stackbased.c: New file. Not used, yet.
edwin [Fri, 13 Oct 2006 11:11:20 +0000 (11:11 +0000)]
* src/vm/jit/verify/typecheck-stackbased.c: New file. Not used, yet.
* src/vm/jit/verify/icmds.c: New file.
* src/vm/jit/verify/generate.pl: New file.

* src/vm/jit/verify/typecheck-invoke.inc: Added copyright notice.
* src/vm/jit/verify/typecheck-fields.inc: Likewise.
* src/vm/jit/verify/typecheck-builtins.inc: Likewise.
* src/vm/jit/verify/typecheck-common.c: Likewise.
* src/vm/jit/verify/typecheck-common.h: Likewise.

17 years ago* src/vm/jit/verify/typeinfo.c (typevector_store): Remove obsolete
edwin [Fri, 13 Oct 2006 10:36:34 +0000 (10:36 +0000)]
* src/vm/jit/verify/typeinfo.c (typevector_store): Remove obsolete
assertion.

17 years ago* src/vm/jit/stack.c (stack_analyse): Set iptr->dst for CHECKNULL.
edwin [Fri, 13 Oct 2006 10:33:20 +0000 (10:33 +0000)]
* src/vm/jit/stack.c (stack_analyse): Set iptr->dst for CHECKNULL.

17 years ago* src/vm/builtin.c (builtin_isanysubclass): Bugfix for the case that
edwin [Fri, 13 Oct 2006 00:47:59 +0000 (00:47 +0000)]
* src/vm/builtin.c (builtin_isanysubclass): Bugfix for the case that
`sub` is an interface and `super` is a class. The function returned
random values in this case, since it used the <= 0 base value of the
interface class to perform the subclass check. The only case in which
an interface can be a subclass of a non-interface `super` is when
`super` is java.lang.Object, so we check explicitly for this case.
This fixes a bug with BeanShell-2.0b4.

(builtin_isanysubclass_vftbl): Likewise.

17 years ago* src/vm/jit/stack.c (stack_check_invars): Bugfix: Only set flags to
edwin [Thu, 12 Oct 2006 23:34:27 +0000 (23:34 +0000)]
* src/vm/jit/stack.c (stack_check_invars): Bugfix: Only set flags to
BBTYPECHECK_REACHED if the block has already been analysed.

(stack_check_invars_from_outvars): Likewise.

17 years ago* src/vm/jit/cfg.c (cfg_build): Check for EXH basic blocks in
twisti [Thu, 12 Oct 2006 20:06:48 +0000 (20:06 +0000)]
* src/vm/jit/cfg.c (cfg_build): Check for EXH basic blocks in
fall-through case.

17 years ago* tests/regression/jasmin/runtest: Added timeout capability.
edwin [Thu, 12 Oct 2006 15:59:13 +0000 (15:59 +0000)]
* tests/regression/jasmin/runtest: Added timeout capability.

17 years ago* src/vm/jit/verify/typecheck-common.h (typecheck_print_statistics):
edwin [Thu, 12 Oct 2006 15:22:51 +0000 (15:22 +0000)]
* 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.

17 years ago* src/vm/jit/verify/typecheck-common.c: Made debugging and statistics
edwin [Thu, 12 Oct 2006 15:07:45 +0000 (15:07 +0000)]
* src/vm/jit/verify/typecheck-common.c: Made debugging and statistics
symbols global.
* src/vm/jit/verify/typecheck-common.h: Likewise.

17 years ago* src/vm/jit/verify/typecheck-invoke.inc: Added code variants for the
edwin [Thu, 12 Oct 2006 14:52:54 +0000 (14:52 +0000)]
* 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.

17 years ago* src/vm/jit/verify/typecheck-common.c: Include headers.
edwin [Thu, 12 Oct 2006 14:42:37 +0000 (14:42 +0000)]
* src/vm/jit/verify/typecheck-common.c: Include headers.
* src/vm/jit/verify/typecheck-common.h: Cleanup.

17 years ago* src/vm/jit/verify/typecheck.c (ISBUILTIN): Removed.
edwin [Thu, 12 Oct 2006 14:39:43 +0000 (14:39 +0000)]
* src/vm/jit/verify/typecheck.c (ISBUILTIN): Removed.
* src/vm/jit/verify/typecheck-builtins.inc (ISBUILTIN): Added.

17 years ago* src/vm/jit/powerpc64/codegen.c (codegen): Adopt locals
tbfg [Thu, 12 Oct 2006 14:38:46 +0000 (14:38 +0000)]
* src/vm/jit/powerpc64/codegen.c (codegen): Adopt locals
and regoff changes.

17 years ago* src/vm/jit/verify/typecheck.c (verify_invocation): Prepared for
edwin [Thu, 12 Oct 2006 14:18:25 +0000 (14:18 +0000)]
* src/vm/jit/verify/typecheck.c (verify_invocation): Prepared for
addeding the stackbased verifier. No functional change, yet.
(verify_builtin): Likewise.

17 years ago* src/vm/jit/verify/typecheck-common.c,
edwin [Thu, 12 Oct 2006 14:12:41 +0000 (14:12 +0000)]
* 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.

17 years ago* src/vm/jit/verify/typecheck.c (verify_fieldaccess): New function.
edwin [Thu, 12 Oct 2006 14:02:10 +0000 (14:02 +0000)]
* src/vm/jit/verify/typecheck.c (verify_fieldaccess): New function.
(verify_basic_block): Moved field verification into a separate
function.

* src/vm/jit/verify/typecheck-fields.inc: Removed opcode-dependant
stuff. Some code for the stackbased verifier is checked in, but not
used, yet.

17 years ago* src/vm/jit/mips/linux/md-os.c (thread_restartcriticalsection): Added
twisti [Thu, 12 Oct 2006 13:13:18 +0000 (13:13 +0000)]
* src/vm/jit/mips/linux/md-os.c (thread_restartcriticalsection): Added
uClibc support.

17 years ago* src/vm/jit/mips/linux/md-os.c (md_signal_handler_sigsegv): Added
twisti [Thu, 12 Oct 2006 12:44:50 +0000 (12:44 +0000)]
* src/vm/jit/mips/linux/md-os.c (md_signal_handler_sigsegv): Added
uClibc support.

17 years ago* src/vm/jit/verify/typecheck.c: Moved <assert.h> include to the right
edwin [Thu, 12 Oct 2006 10:10:06 +0000 (10:10 +0000)]
* src/vm/jit/verify/typecheck.c: Moved <assert.h> include to the right
place. Moved some code to typecheck-common.[ch].

* src/vm/jit/verify/typecheck-common.c: New file.
* src/vm/jit/verify/typecheck-common.h: New file.

* src/vm/jit/verify/Makefile.am: Added new source files.

17 years ago* src/vm/jit/verify/typecheck-builtins.inc: Removed redundant
edwin [Wed, 11 Oct 2006 23:52:06 +0000 (23:52 +0000)]
* src/vm/jit/verify/typecheck-builtins.inc: Removed redundant
`return true`. Moved declaration of `av`.

17 years ago* src/vm/jit/verify/typecheck-invoke.inc: Use invokestatic where
edwin [Wed, 11 Oct 2006 23:44:52 +0000 (23:44 +0000)]
* src/vm/jit/verify/typecheck-invoke.inc: Use invokestatic where
possible. Added a comment.

17 years ago* src/vm/jit/verify/typecheck-invoke.inc: Indent log messages to make
edwin [Wed, 11 Oct 2006 23:41:08 +0000 (23:41 +0000)]
* src/vm/jit/verify/typecheck-invoke.inc: Indent log messages to make
them more readable.

17 years ago* src/vm/jit/verify/typecheck.c (verify_invocation): Define jd and dv
edwin [Wed, 11 Oct 2006 23:37:32 +0000 (23:37 +0000)]
* src/vm/jit/verify/typecheck.c (verify_invocation): Define jd and dv
before including the function body.

* src/vm/jit/verify/typecheck-invoke.inc: Removed definitions of jd
and dv. Small cleanup.

17 years ago* src/vm/jit/verify/typecheck.c (verify_builtin): Define jd and dv
edwin [Wed, 11 Oct 2006 23:22:54 +0000 (23:22 +0000)]
* src/vm/jit/verify/typecheck.c (verify_builtin): Define jd and dv
before including the function body.

* src/vm/jit/verify/typecheck-builtins.inc: Removed definitions
of jd and dv.

17 years ago* src/vm/jit/verify/typecheck.c (verify_invocation): Moved body to a
edwin [Wed, 11 Oct 2006 23:00:01 +0000 (23:00 +0000)]
* src/vm/jit/verify/typecheck.c (verify_invocation): Moved body to a
separate file in order to prepare comitting the stackbased verifier.
(verify_builtin): Likewise.
(verify_generic_builtin): Likewise, no integrated in verify_builtin.
(verify_basic_block): Moved field instruction verification to a
separate file.

* src/vm/jit/verify/typecheck-invoke.inc: New file.
* src/vm/jit/verify/typecheck-fields.inc: New file.
* src/vm/jit/verify/typecheck-builtins.inc: New file.

* src/vm/jit/verify/Makefile.am: Added new source files.

17 years ago* src/cacaoh/headers.c (typeinfo_print_short): Stub added.
edwin [Wed, 11 Oct 2006 19:43:12 +0000 (19:43 +0000)]
* src/cacaoh/headers.c (typeinfo_print_short): Stub added.

17 years ago* src/vm/jit/verify/typeinfo.c (typeinfo_init_component): Fixed for
edwin [Wed, 11 Oct 2006 19:42:07 +0000 (19:42 +0000)]
* 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.)

17 years ago* src/vm/resolve.c, src/vm/resolve.h
edwin [Wed, 11 Oct 2006 19:40:22 +0000 (19:40 +0000)]
* src/vm/resolve.c, src/vm/resolve.h
(resolve_method_param_type_checks_stackbased): New function.
(resolve_constrain_unresolved_method_params_stackbased): Likewise.

17 years ago* tests/regression/jasmin/test_verify_fail_athrow_wrong_reftype_unresolved.j:
edwin [Wed, 11 Oct 2006 16:31:53 +0000 (16:31 +0000)]
* tests/regression/jasmin/test_verify_fail_athrow_wrong_reftype_unresolved.j:
New test.

* tests/regression/jasmin/test_verify_fail_athrow_wrong_reftype.j:
New test.

* tests/regression/jasmin/Makefile.am: Added new tests.

17 years ago* tests/regression/jasmin/test_verify_fail_areturn_wrong_reftype.j:
edwin [Wed, 11 Oct 2006 16:21:08 +0000 (16:21 +0000)]
* 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.

17 years ago* tests/regression/jasmin/test_verify_fail_handler_bad_local.j: new
edwin [Wed, 11 Oct 2006 10:17:03 +0000 (10:17 +0000)]
* tests/regression/jasmin/test_verify_fail_handler_bad_local.j: new
test.

* tests/regression/jasmin/Makefile.am: Added new test.

17 years ago* tests/regression/jasmin/test_verify_fail_jsr_recursion_terminates.j:
edwin [Tue, 10 Oct 2006 21:16:17 +0000 (21:16 +0000)]
* 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.

17 years ago* tests/regression/jasmin/test_verify_fail_jsr_recursion_terminates.j:
edwin [Tue, 10 Oct 2006 20:45:20 +0000 (20:45 +0000)]
* tests/regression/jasmin/test_verify_fail_jsr_recursion_terminates.j:
New test.

* tests/regression/jasmin/Makefile.am: Added new test.

17 years ago* tests/regression/jasmin/test_verify_fail_jsr_recursion.j: New test.
edwin [Tue, 10 Oct 2006 20:31:30 +0000 (20:31 +0000)]
* tests/regression/jasmin/test_verify_fail_jsr_recursion.j: New test.

* tests/regression/jasmin/Makefile.am: Added new test.

17 years ago* src/vm/resolve.c, src/vm/resolve.h (constrain_unresolved_method):
edwin [Tue, 10 Oct 2006 00:29:26 +0000 (00:29 +0000)]
* 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.

17 years ago* src/vm/resolve.c (resolve_method_type_checks): Split up into
edwin [Mon, 9 Oct 2006 23:53:42 +0000 (23:53 +0000)]
* 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.

17 years ago* src/vm/resolve.c (resolve_method_verifier_checks): Removed unused
edwin [Mon, 9 Oct 2006 23:21:37 +0000 (23:21 +0000)]
* src/vm/resolve.c (resolve_method_verifier_checks): Removed unused
variable. Removed unclear assertion.

17 years ago* src/vm/resolve.c (resolve_method_verifier_checks): Removed unused
edwin [Mon, 9 Oct 2006 23:17:56 +0000 (23:17 +0000)]
* 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.

17 years ago* src/vm/resolve.c (resolve_method_verifier_checks): Factored out
edwin [Mon, 9 Oct 2006 23:06:39 +0000 (23:06 +0000)]
* 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.

17 years ago* src/vm/resolve.c (resolve_method_verifier_checks): Factored out
edwin [Mon, 9 Oct 2006 22:19:22 +0000 (22:19 +0000)]
* 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.

17 years ago* src/vm/resolve.c (resolve_method_lazy): Removed dependence on
edwin [Mon, 9 Oct 2006 17:08:38 +0000 (17:08 +0000)]
* 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.

17 years ago* src/vm/resolve.c (resolve_field_verifier_checks): Removed dependence
edwin [Mon, 9 Oct 2006 15:42:02 +0000 (15:42 +0000)]
* 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.

17 years ago* test/regression/jasmin/test_verify_ok_jsr_subroutine_loops_to_start.j:
edwin [Sun, 8 Oct 2006 22:49:42 +0000 (22:49 +0000)]
* 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.

17 years ago* src/vm/jit/stack.c: Verify that subroutines are not merged.
edwin [Sun, 8 Oct 2006 11:39:41 +0000 (11:39 +0000)]
* 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.

17 years ago* src/vm/jit/show.c (show_basicblock): Removed extra newline.
edwin [Sun, 8 Oct 2006 10:51:32 +0000 (10:51 +0000)]
* src/vm/jit/show.c (show_basicblock): Removed extra newline.

17 years ago* tests/regression/jasmin/test_verify_fail_jsr_merge_subroutines_via_stack.j:
edwin [Sun, 8 Oct 2006 00:07:48 +0000 (00:07 +0000)]
* tests/regression/jasmin/test_verify_fail_jsr_merge_subroutines_via_stack.j:
New test.

* tests/regression/jasmin/Makefile.am: Added new test.

17 years ago* src/vm/jit/cfg.c (cfg_build): Fixed a bug causing infinite loops.
edwin [Sat, 7 Oct 2006 23:56:43 +0000 (23:56 +0000)]
* 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.

17 years ago* tests/regression/jasmin/test_verify_fail_jsr_polymorphic_pop.j:
edwin [Sat, 7 Oct 2006 23:02:53 +0000 (23:02 +0000)]
* 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.

17 years ago* tests/regression/jasmin/test_verify_fail_jsr_called_with_different_stackdepths.j:
edwin [Sat, 7 Oct 2006 22:34:25 +0000 (22:34 +0000)]
* tests/regression/jasmin/test_verify_fail_jsr_called_with_different_stackdepths.j:
New test.
* tests/regression/jasmin/Makefile.am: Added new test.

17 years ago* src/vm/jit/stack.c (GET_NEW_VAR): Fixed macro argument.
edwin [Sat, 7 Oct 2006 12:54:14 +0000 (12:54 +0000)]
* 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.

17 years ago* src/vm/jit/allocator/simplereg.c: Implemented REG_INDEX for
edwin [Sat, 7 Oct 2006 10:22:00 +0000 (10:22 +0000)]
* src/vm/jit/allocator/simplereg.c: Implemented REG_INDEX for
architectures with address register file.

17 years ago* src/vm/jit/allocator/simplereg.c
edwin [Sat, 7 Oct 2006 09:44:30 +0000 (09:44 +0000)]
* src/vm/jit/allocator/simplereg.c
(simplereg_allocate_locals_leafmethod): Fixed declaration after code.

17 years ago* src/vm/jit/allocator/simplereg.c (simplereg_allocate_interface):
edwin [Sat, 7 Oct 2006 00:06:49 +0000 (00:06 +0000)]
* src/vm/jit/allocator/simplereg.c (simplereg_allocate_interface):
Copy all flags except SAVEDVAR when reusing an interface slot.

17 years ago* src/vm/jit/allocator/simplereg.c: Cleaned up memory slot allocation.
edwin [Fri, 6 Oct 2006 23:58:35 +0000 (23:58 +0000)]
* src/vm/jit/allocator/simplereg.c: Cleaned up memory slot allocation.