twisti [Wed, 15 Nov 2006 18:09:28 +0000 (18:09 +0000)]
* src/vm/properties.c (properties_init) [ENABLE_JAVASE]: Don't free
memory, we need it later.
twisti [Wed, 15 Nov 2006 18:01:17 +0000 (18:01 +0000)]
* src/cacaoh/headers.c (cacao_prefix, classpath_libdir, _Jv_classpath)
(_Jv_java_library_path): Added.
twisti [Wed, 15 Nov 2006 17:58:25 +0000 (17:58 +0000)]
* src/vm/properties.c (properties_init): Also fill the internal
property table.
(properties_postinit): Re-set some properties that may have changed.
(properties_system_add): Removed.
[ENABLE_JAVASE] (properties_system_add_all): Rewritten.
* src/vm/properties.h (properties_postinit): Changed signature.
(properties_system_add): Removed.
[ENABLE_JAVASE] (properties_system_add_all): Added.
* src/native/vm/gnu_classpath_VMSystemProperties.c (preInit): Moved
implementation to properties.
* src/vm/vm.c (vm_create): Call properties_postinit.
twisti [Wed, 15 Nov 2006 17:46:01 +0000 (17:46 +0000)]
* src/vm/vm.c (vm_create): Don't initialize java/lang/System
explicitely.
twisti [Wed, 15 Nov 2006 16:25:22 +0000 (16:25 +0000)]
* configure.ac (--enable-java): Added.
twisti [Wed, 15 Nov 2006 15:52:29 +0000 (15:52 +0000)]
* src/vm/jit/parse.c (parse): Added missing semi-colon.
edwin [Wed, 15 Nov 2006 15:47:32 +0000 (15:47 +0000)]
* src/vm/jit/icmdtable.inc (CHECKNULL_POP): Removed.
* src/vm/jit/verify/typecheck-stackbased-gen.inc: Regenerated.
* src/vm/jit/verify/typecheck-variablesbased-gen.inc: Likewise.
twisti [Wed, 15 Nov 2006 15:42:04 +0000 (15:42 +0000)]
* src/vm/jit/jit.h (ICMD_CHECKNULL_POP): Removed.
* src/vm/jit/parse.c: Likewise.
* src/vm/jit/show.c: Likewise.
twisti [Wed, 15 Nov 2006 15:30:36 +0000 (15:30 +0000)]
Reverted patch 5890.
* src/vm/jit/jit.h: Reverted.
* src/vm/jit/alpha/codegen.c: Likewise.
* src/vm/jit/i386/codegen.c: Likewise.
* src/vm/jit/mips/codegen.c: Likewise.
* src/vm/jit/powerpc/codegen.c: Likewise.
* src/vm/jit/powerpc64/codegen.c: Likewise.
* src/vm/jit/sparc64/codegen.c: Likewise.
* src/vm/jit/x86_64/codegen.c: Likewise.
* src/vm/jit/intrp/codegen.c: Likewise.
* src/vm/jit/show.c: Likewise.
* src/vm/jit/stack.c: Likewise.
* src/vm/jit/allocator/simplereg.c: Likewise.
* src/vm/jit/verify/typecheck-stackbased-gen.inc: Likewise.
* src/vm/jit/verify/typecheck-variablesbased-gen.inc: Likewise.
tbfg [Wed, 15 Nov 2006 13:44:48 +0000 (13:44 +0000)]
* src/vm/jit/powerpc64/linux/md-abi.c (md_param_alloc): Fixed
preallocation.
* src/vm/jit/powerpc64/asmpart.S (asm_vm_call_method): Fixed
argument handling.
twisti [Wed, 15 Nov 2006 12:25:13 +0000 (12:25 +0000)]
* src/vm/jit/jit.h (ICMD_CHECKNULL): Renamed to ICMD_CHECKNULL_POP.
* src/vm/jit/alpha/codegen.c: Likewise.
* src/vm/jit/i386/codegen.c: Likewise.
* src/vm/jit/mips/codegen.c: Likewise.
* src/vm/jit/powerpc/codegen.c: Likewise.
* src/vm/jit/powerpc64/codegen.c: Likewise.
* src/vm/jit/sparc64/codegen.c: Likewise.
* src/vm/jit/x86_64/codegen.c: Likewise.
* src/vm/jit/intrp/codegen.c: Likewise.
* src/vm/jit/stack.c: Likewise.
* src/vm/jit/show.c: Likewise.
* src/vm/jit/allocator/simplereg.c: Likewise.
* src/vm/jit/verify/typecheck-stackbased-gen.inc (ICMD_CHECKNULL):
Removed.
* src/vm/jit/verify/typecheck-variablesbased-gen.inc: Likewise.
twisti [Tue, 14 Nov 2006 21:56:17 +0000 (21:56 +0000)]
* src/jit/verify/typecheck-stackbased.c (mm/memory.h): Added.
* src/jit/powerpc/emit.c (mm/memory.h): Likewise.
* src/signal.c (mm/memory.h): Likewise.
tbfg [Mon, 13 Nov 2006 21:43:41 +0000 (21:43 +0000)]
* src/vm/jit/powerpc64/linux/md-abi.c (md_param_alloc): Began
fixing ABI issues. It is not correct now, but fptest runs now.
Remaining issues in java<->native mainly stack offsets.
* src/vm/jit/powerpc64/emit.c (emit_load): Removed M_ILD case.
(emit_store): Removed M_FST case. There is no M_FST expect for
accessing c structs, internally everything is done using M_DLD
and M_DST, M_FST would convert the values.
* src/vm/jit/powerpc64/codegen.c (codegen): Removed all M_FST and
M_FLD.
* src/vm/jit/powerpc64/asmpart.S (asm_vm_call_method): Fixed
argument passing on stack.
edwin [Sun, 12 Nov 2006 15:42:07 +0000 (15:42 +0000)]
* src/vm/jit/verify/typecheck-variablesbased-gen.inc: Regenerated.
edwin [Sun, 12 Nov 2006 15:41:32 +0000 (15:41 +0000)]
* src/vm/jit/icmdtable.inc: Activate INLINE_START and INLINE_END.
edwin [Sun, 12 Nov 2006 15:33:16 +0000 (15:33 +0000)]
* src/vm/linker.c (inline_debug_log): Added variable reference.
(linker_overwrite_method): Factored out overwriting into this function,
update method flags and check assumptions when overwriting.
(link_class_intern): Use linker_overwrite_method. Invalidate code of
methods that makes broken assumptions.
* src/vm/method.c (inline_debug_log): Only use for ENABLE_INLINING.
(method_add_to_worklist): Allocate items with NEW.
edwin [Sun, 12 Nov 2006 15:14:19 +0000 (15:14 +0000)]
* src/vm/method.h (method_assumption): New struct.
(method_worklist): New struct.
(methodinfo): Added fields `overwrites` and `assumptions`.
(method_add_assumption_monomorphic): Added prototype.
(method_break_assumption_monomorphic): Likewise.
* src/vm/method.c (inline_debug_log): Added variable reference.
(method_add_to_worklist): New function.
(method_add_assumption_monomorphic): Likewise.
(method_break_assumption_monomorphic): Likewise.
edwin [Sun, 12 Nov 2006 15:01:14 +0000 (15:01 +0000)]
* src/cacaoh/headers.c (inline_debug_log): Added dummy variable.
edwin [Sun, 12 Nov 2006 15:00:41 +0000 (15:00 +0000)]
* src/vm/loader.c (load_method): Set ACC_METHOD_MONOMORPHIC and
ACC_METHOD_IMPLEMENTED flags.
edwin [Sun, 12 Nov 2006 13:55:50 +0000 (13:55 +0000)]
* src/vm/jit/replace.c (replace_me): Recompile replacement methods.
edwin [Sun, 12 Nov 2006 13:54:02 +0000 (13:54 +0000)]
* src/vm/jit/replace.c (replace_create_replacement_point): Use the
ICMD id as id for replacement points.
(replace_replacement_point_println): Print the rplpoint id.
edwin [Sun, 12 Nov 2006 13:52:50 +0000 (13:52 +0000)]
* src/vm/jit/replace.c (replace_source_frame_println): Print position
id.
edwin [Sun, 12 Nov 2006 13:52:04 +0000 (13:52 +0000)]
* src/vm/jit/replace.c (replace_pop_activation_record): Subtract one
from the return address so we don't hit the following replacement
point.
edwin [Sun, 12 Nov 2006 13:51:21 +0000 (13:51 +0000)]
* src/vm/jit/replace.c (replace_write_executionstate): Added some
asserts.
edwin [Sun, 12 Nov 2006 13:50:36 +0000 (13:50 +0000)]
* src/vm/jit/replace.c: Cleaned up debugging prints.
edwin [Sun, 12 Nov 2006 13:47:45 +0000 (13:47 +0000)]
* src/vm/jit/replace.c (replace_create_replacement_points): Handle
javaindex == UNUSED.
edwin [Sun, 12 Nov 2006 13:46:44 +0000 (13:46 +0000)]
* src/vm/jit/jit.h, src/vm/jit/jit.c (jit_invalidate_code):
New function.
edwin [Sun, 12 Nov 2006 13:40:39 +0000 (13:40 +0000)]
* src/vm/jit/jit.c (jit_recompile): Some cleanups.
edwin [Sun, 12 Nov 2006 13:39:50 +0000 (13:39 +0000)]
* src/vm/jit/i386/md.c (md_patch_replacement_point): Deactivated
debugging print.
edwin [Sun, 12 Nov 2006 13:39:12 +0000 (13:39 +0000)]
* src/cacaoh/headers.c (jit_invalidate_code): Added stub.
edwin [Sun, 12 Nov 2006 13:38:34 +0000 (13:38 +0000)]
* src/vm/jit/inline/inline.c (emit_inlining_prolog): Set javaindex
UNUSED for generated STOREs. Include local variables in stackvars
for insinfo_inline. Copy instruction id to INLINE_START.
(inline_clone_instruction): Check for javaindex == UNUSED.
(rewrite_method): Set javaindex UNUSED for generated STOREs.
(inline_inline_intern): Removed some testing code.
edwin [Sun, 12 Nov 2006 13:31:14 +0000 (13:31 +0000)]
* src/vm/jit/parse.c, src/vm/jit/parse.h (Changes): Merged with
Authors.
edwin [Sun, 12 Nov 2006 13:21:07 +0000 (13:21 +0000)]
* src/vm/jit/jit.h (INS_FLAG_ID_SHIFT, INS_FLAG_ID_MASK): Added. We add
an instruction id to the flags field. This is a first attempt to obtain
an id for ICMDs that is not dependent on any optimizations or
transformations in the compiler. The id is not the same as the bytecode
PC, but it has a fixed relation to the bytecode PC, so it should be
sufficient at least for replacement. This is an intermediate solution
with serious shortcommings, and should be replaced by a true ICMD-to-
bytecode-PC mapping in the future. (For example, the id uses up all
the free bits in the flags field, and it is not protected against
overflow.)
* src/vm/jit/parse.h, src/vm/jit/parse.c: Set the instruction id, and
do not overwrite it when setting other flags.
* src/vm/jit/stack.c: Do not clear the instruction id.
* src/vm/jit/show.c (show_basicblock): Display the instruction id.
twisti [Sun, 12 Nov 2006 12:57:59 +0000 (12:57 +0000)]
* src/vm/jit/powerpc64/codegen.c (codegen): Fixed ICMD_BALOAD, use
correct java_bytearray type.
twisti [Sun, 12 Nov 2006 12:55:34 +0000 (12:55 +0000)]
* src/vm/jit/powerpc/codegen.c (codegen): Fixed ICMD_BALOAD, use
correct java_bytearray type.
edwin [Sun, 12 Nov 2006 12:54:57 +0000 (12:54 +0000)]
* src/vm/jit/parse.h: Fixed typos.
ajordan [Sat, 11 Nov 2006 19:26:55 +0000 (19:26 +0000)]
* src/vm/jit/sparc64/*: implemented patching (partly), adherent fixes.
twisti [Sat, 11 Nov 2006 18:45:27 +0000 (18:45 +0000)]
* src/vm/jit/alpha/codegen.c (codegen): Use emit_array_checks.
twisti [Sat, 11 Nov 2006 18:34:15 +0000 (18:34 +0000)]
* src/vm/jit/alpha/codegen.c (codegen): Replaced gen_bound_check by
emit_arrayindexoutofbounds_check.
twisti [Sat, 11 Nov 2006 18:31:10 +0000 (18:31 +0000)]
* src/vm/jit/alpha/emit.c (vm/options.h): Added.
(emit_arrayindexoutofbounds_check): New function.
(emit_arraystore_check): Likewise.
(emit_classcast_check): Likewise.
(emit_classcast_check): Likewise.
(emit_nullpointer_check): Likewise.
* src/vm/jit/alpha/codegen.c (codegen): Removed patch-NOPs generation,
replaced gen_nullptr_check with emit_nullpointer_check.
(createnativestub): Removed patch-NOPs generation.
* src/vm/jit/alpha/codegen.h (gen_nullptr_check): Removed.
(PATCHER_NOPS): Added.
* src/vm/jit/alpha/patcher.c (patcher_get_putfield): Use opt_shownops
instead of opt_showdisassemble.
(patcher_invokevirtual): Likewise.
(patcher_invokeinterface): Likewise.
(patcher_checkcast_instanceof_interface): Likewise.
* src/vm/jit/emit-common.c (emit_array_checks): Added [__ALPHA__].
* src/vm/jit/codegen-common.c (codegen_add_patch_ref): Likewise.
edwin [Sat, 11 Nov 2006 17:08:14 +0000 (17:08 +0000)]
* src/vm/jit/tools/genoffsets.c (executionstate): Renamed to
executionstate_t.
* src/vm/jit/asmpart.h: Likewise.
* src/vm/jit/show.c (show_variable_intern): New function. Does not
append ' '. Regard variables above vartop as invalid.
(show_method): Only show variables up to vartop.
(show_inline_info): New function.
(show_basicblock): Show right number of javalocals, show inlining
info at the start of blocks.
(show_variable): Moved body to show_variable_intern.
(show_icmd): Use show_inline_info.
* src/vm/jit/inline/inline.c: Handle javalocals.
* src/vm/jit/i386/codegen.c (codegen): Handle replacement points
for INLINE_START, RETURN and INVOKEs.
* src/vm/jit/replace.c: Many changes for making replacement work
over multiple stack frames.
* src/vm/jit/replace.h: Likewise.
* src/vm/jit/jit.h (insinfo_inline): Added fields.
(basicblock): Added field `inlineinfo`.
twisti [Sat, 11 Nov 2006 17:05:19 +0000 (17:05 +0000)]
* src/vm/jit/alpha/codegen.c (codegen): Renamed codegen_addpatchref to
codegen_add_patch_ref and codegen_addreference to
codegen_add_branch_ref.
(createnativestub): Likewise.
twisti [Sat, 11 Nov 2006 16:56:48 +0000 (16:56 +0000)]
* src/vm/jit/alpha/md.c (md_codegen_patch_branch): New function.
* src/vm/jit/alpha/emit.c (emit_exception_stubs): Use
md_codegen_patch_branch.
* src/vm/jit/alpha/codegen.c (codegen): Use
codegen_resolve_branchrefs.
* src/vm/jit/alpha/codegen.h (gen_resolvebranch): Removed.
twisti [Sat, 11 Nov 2006 16:44:54 +0000 (16:44 +0000)]
* configure.ac: Support mipsel architectures.
twisti [Sat, 11 Nov 2006 14:28:56 +0000 (14:28 +0000)]
* src/vm/jit/codegen-common.c (codegen_add_patch_ref): Added
[__X86_64__] for NOP-generation.
twisti [Fri, 10 Nov 2006 16:41:12 +0000 (16:41 +0000)]
* src/vm/jit/x86_64/codegen.c (codegen): Use
codegen_resolve_branchrefs, removed patcher NOP generation, renamed
codegen_addpatchref to codegen_add_patch_ref.
(createnativestub): Likewise.
* src/vm/jit/x86_64/codegen.h (PATCHER_NOPS): Defined.
* src/vm/jit/x86_64/patcher.c (patcher_get_putstatic): Use
opt_shownops instead of opt_showdisassemble.
(patcher_get_putfield): Likewise.
(patcher_putfieldconst): Likewise.
(patcher_aconst): Likewise.
(patcher_builtin_multianewarray): Likewise.
(patcher_builtin_arraycheckcast): Likewise.
(patcher_invokestatic_special): Likewise.
(patcher_invokeinterface): Likewise.
(patcher_checkcast_instanceof_flags): Likewise.
(patcher_checkcast_instanceof_interface): Likewise.
(patcher_checkcast_class): Likewise.
(patcher_instanceof_class): Likewise.
(patcher_resolve_native): Likewise.
twisti [Fri, 10 Nov 2006 12:32:01 +0000 (12:32 +0000)]
* src/vm/jit/x86_64/md.c (md_codegen_patch_branch): New function.
* src/vm/jit/x86_64/emit.c (emit_exception_stubs): Use
md_codegen_patch_branch.
twisti [Thu, 9 Nov 2006 15:27:03 +0000 (15:27 +0000)]
* src/vm/jit/powerpc/codegen.c (codegen): Use codegen_add_branch_ref,
removed opt_shownops code.
(createnativestub): Likewise.
* src/vm/jit/powerpc/codegen.h (PATCHER_NOPS): Added.
* src/vm/jit/mips/codegen.h (PATCHER_NOPS): Removed opt_shownops
check.
* src/vm/jit/codegen-common.c (codegen_add_patch_ref): Check for
opt_shownops, added [__POWERPC__].
twisti [Thu, 9 Nov 2006 10:52:34 +0000 (10:52 +0000)]
* src/vm/jit/powerpc/emit.c (vm/options.h): Added.
(emit_nullpointer_check): New function.
(emit_arrayindexoutofbounds_check): Likewise.
(emit_exception_stubs): Use md_codegen_patch_branch.
* src/vm/jit/powerpc/md.c (vm/jit/powerpc/codegen.h): Added.
(md_codegen_patch_branch): New function.
* src/vm/jit/powerpc/codegen.c (codegen): Use
codegen_resolve_branchrefs, use opt_shownops, removed buggy ICMD_LCMP
implementation (i'll add a new one if i find some time), use exception
emit_* functions.
(createnativestub): Use opt_shownops.
* src/vm/jit/powerpc/patcher.c (patcher_get_putfield): Use
opt_shownops.
(patcher_invokevirtual): Likewise.
(patcher_invokeinterface): Likewise.
(patcher_checkcast_instanceof_interface): Likewise.
* src/vm/jit/powerpc/codegen.h (gen_nullptr_check): Removed.
(gen_bound_check): Likewise.
(M_BRAMASK): Renamed to M_BMASK.
(M_BRMASK): Renamed to M_BCMASK.
(M_BRA): Renamed to M_B and hardcoded the opcode.
(M_BRAC): Renamed to M_BC and hardcoded the opcode.
(gen_resolvebranch): Removed.
* src/vm/jit/emit-common.c (emit_array_checks): New function.
* src/vm/jit/emit-common.h (emit_array_checks): Added.
twisti [Thu, 9 Nov 2006 10:23:04 +0000 (10:23 +0000)]
* src/vm/jit/stacktrace.c (stacktrace_add_method): Get codeinfo from
data segment.
tbfg [Thu, 9 Nov 2006 09:59:28 +0000 (09:59 +0000)]
* src/vm/jit/powerpc64/linux/md-abi.h: Changed ABI for float
arguments.
* src/vm/jit/powerpc64/linux/md-asm.h: Likewise.
* src/vm/jit/powerpc64/linux/md-abi.c: Likewise.
* src/vm/jit/powerpc64/asmpart.S (asm_vm_call_method): Various
argument handling fixes.
* src/vm/jit/powerpc64/codegen.h (M_BRAC): Renamed to M_BC
(M_BRA): Renamed to M_B
(M_BRACMASK): Renamed to M_BCMASK.
(M_BRAMASK): Renamed to M_BMASK.
* src/vm/jit/powerpc64/md.c (md_codegen_patch_branch): Use M_BCMASK
and M_BMASK instead of hardcoded masks.
twisti [Thu, 9 Nov 2006 09:54:00 +0000 (09:54 +0000)]
* src/vm/jit/powerpc/linux/md-os.c (vm/jit/profile/profile.h): Changed
to vm/jit/optimizing/profile.h.
(md_signal_handler_sigsegv): If faulting address is not equal 0, try
to dump a tsacktrace and exit.
twisti [Wed, 8 Nov 2006 22:02:17 +0000 (22:02 +0000)]
* NEWS: Added release 0.98.
twisti [Wed, 8 Nov 2006 22:00:57 +0000 (22:00 +0000)]
* src/vm/method.h (methodinfo): Added signature.
* src/vm/field.h (fieldinfo): Added signature.
* src/vm/loader.c (load_method): Load signature attribute.
(load_field): Likewise.
* src/native/vm/java_lang_reflect_Method.c (getSignature):
Implemented.
* src/native/vm/java_lang_reflect_Field.c (getSignature): Likewise.
edwin [Wed, 8 Nov 2006 20:34:10 +0000 (20:34 +0000)]
* src/vm/jit/code.h (codeinfo): Added field stackframesize.
* src/vm/jit/code.c (code_get_stack_frame_size): Return
code->stackframesize.
* src/vm/jit/replace.c (replace_create_replacement_points): Set
code->stackframesize.
(replace_read_executionstate): Read stack types from rplallocs.
(replace_write_executionstate): Check stack types.
(replace_pop_activation_record): New function.
(replace_me): Added some temporary code for testing.
(replace_executionstate_println): Use executionstate.code.
(java_value_print): New function.
(replace_sourcestate_println): Print values prettily.
* src/vm/jit/replace.h (executionstate): Added field `code`.
(sourcestate): Added field `javastacktype`.
(replace_pop_activation_record): New function.
(replace_executionstate_println): Changed arguments.
twisti [Wed, 8 Nov 2006 20:27:37 +0000 (20:27 +0000)]
* src/vm/exceptions.c (new_nullpointerexception): Renamed to
exceptions_new_nullpointerexception.
* src/vm/exceptions.h: Likewise.
* src/vm/jit/stacktrace.c: Likewise.
* src/cacaoh/headers.c: Likewise.
tbfg [Wed, 8 Nov 2006 13:33:08 +0000 (13:33 +0000)]
* src/vm/jit/powerpc64/codegen.h (gen_resolvebranch): Removed.
* src/vm/jit/powerpc64/codegen.c (codegen): Replaced
gen_resolvebranch with md_codegen_patch_branch.
* src/vm/jit/powerpc64/md.c (md_codegen_patch_branch): Prevent AA
and LK overwrites for b.
tbfg [Wed, 8 Nov 2006 13:03:42 +0000 (13:03 +0000)]
* src/vm/jit/powerpc64/md.c (md_codegen_patch_branch): Added.
twisti [Tue, 7 Nov 2006 09:06:18 +0000 (09:06 +0000)]
* src/vm/jit/i386/md.c (md_codegen_patch_branch): New function.
* src/vm/jit/i386/emit.c (emit_exception_stubs): Use
md_codegen_patch_branch.
* src/vm/jit/i386/codegen.c (codegen): Use codegen_resolve_branchrefs.
* src/vm/jit/i386/codegen.h (gen_resolvebranch): Removed.
twisti [Tue, 7 Nov 2006 08:51:05 +0000 (08:51 +0000)]
* src/vm/jit/codegen-common.h (codegen_resolve_branchrefs): Added.
twisti [Mon, 6 Nov 2006 21:12:52 +0000 (21:12 +0000)]
* jit/mips/emit.c (emit_patcher_stubs): Handle displacement overflows.
* jit/mips/codegen.c (codegen): Removed patcher NOPs generation.
(createnativestub): Likewise.
* jit/mips/codegen.h (PATCHER_CALL_INSTRUCTIONS): Defined.
(PATCHER_CALL_SIZE): Changed to 5 * 4;
(PATCHER_NOPS): Defined.
* jit/mips/patcher.c (patcher_wrapper): Restore original instructions.
(patcher_get_putstatic): Don't restore original code.
(patcher_get_putfield): Likewise.
(patcher_aconst): Likewise.
(patcher_builtin_multianewarray): Likewise.
(patcher_builtin_arraycheckcast): Likewise.
(patcher_invokestatic_special): Likewise.
(patcher_invokevirtual): Likewise.
(patcher_invokeinterface): Likewise.
(patcher_checkcast_instanceof_flags): Likewise.
(patcher_checkcast_interface): Likewise.
(patcher_instanceof_interface): Likewise.
(patcher_checkcast_instanceof_class): Likewise.
(patcher_clinit): Likewise.
(patcher_athrow_areturn): Likewise.
(patcher_resolve_native): Likewise.
* jit/mips/asmpart.S (asm_patcher_wrapper): Handle bigger patcher stub
stack.
* jit/codegen-common.c (codegen_add_patch_ref): Generate NOPs, if
requested.
twisti [Mon, 6 Nov 2006 17:13:40 +0000 (17:13 +0000)]
* src/vm/jit/codegen-common.c (toolbox/list.h): Added.
(codegen_addreference): Renamed to codegen_add_branch_ref, use
md_codegen_patch_branch instead of gen_resolvebranch.
(codegen_resolve_branchrefs): New function.
(codegen_addpatchref): Renamed to codegen_add_patch_ref.
* src/vm/jit/codegen-common.h (codegen_addreference): Renamed to
codegen_add_branch_ref.
(codegen_resolve_branchrefs): New function.
(codegen_addpatchref): Renamed to codegen_add_patch_ref.
* src/vm/jit/dseg.h (toolbox/list.h): Added.
* src/vm/jit/mips/emit.c (vm/options.h): Added.
(emit_arithmetic_check): New function.
(emit_arrayindexoutofbounds_check): Likewise.
(emit_arraystore_check): Likewise.
(emit_classcast_check): Likewise.
(emit_nullpointer_check): Likewise.
(emit_exception_check): Likewise.
(emit_exception_stubs): Use md_codegen_patch_branch instead of
gen_resolvebranch.
* src/vm/jit/mips/md.c (vm/vm.h): Added.
(md_codegen_patch_branch): New function.
* src/vm/jit/mips/codegen.c (codegen): Use new emit_* functions, use
opt_shownops instead of opt_showdissasemble.
(createnativestub): Likewise.
* src/vm/jit/mips/codegen.h (gen_nullptr_check): Removed.
(gen_bound_check): Likewise.
(gen_div_check): Likewise.
(gen_resolvebranch): Likewise.
* src/vm/jit/mips/patcher.c: Use opt_shownops instead of
opt_showdissasemble.
(patcher_checkcast_instanceof_interface): Split into two functions:
patcher_checkcast_interface and patcher_instanceof_interface.
* src/vm/jit/patcher.h (patcher_checkcast_interface): Added.
(patcher_instanceof_interface): Added.
* src/vm/jit/emit-common.h (emit_arithmetic_check): Added.
(emit_arrayindexoutofbounds_check): Likewise.
(emit_arraystore_check): Likewise.
(emit_classcast_check): Likewise.
(emit_nullpointer_check): Likewise.
(emit_exception_check): Likewise.
tbfg [Mon, 6 Nov 2006 16:38:31 +0000 (16:38 +0000)]
* src/vm/jit/powerpc64/codegen.c (codegen): Various more fixes all
over the place. jctest is now successfull for ppc64.
* src/vm/jit/powerpc64/codegen.h (M_DIV): Changed used opcode.
(M_SLL_IMM): Fixed.
edwin [Mon, 6 Nov 2006 16:17:16 +0000 (16:17 +0000)]
* src/vm/jit/replace.c (replace_create_replacement_point): New
function.
(replace_create_replacement_points): Create replacement points for
INVOKE* and *RETURN instructions.
(replace_read_executionstate): Fixed loop.
(replace_write_executionstate): Fixed loop.
(replace_sourcestate_println): Adapted to new source state layout.
edwin [Sun, 5 Nov 2006 23:17:23 +0000 (23:17 +0000)]
* src/vm/jit/i386/codegen.c (codegen): Create replacement points after
the final allocations.
* src/vm/jit/jit.c (jit_compile_intern): Do not create replacement
points before the codegen is called.
edwin [Sun, 5 Nov 2006 23:11:27 +0000 (23:11 +0000)]
* src/vm/jit/codegen-common.h (codegendata): Removed maxlocals. This is
now in jitdata.
* src/vm/jit/codegen-common.c (codegen_setup): Removed cd->maxlocals.
* src/vm/jit/replace.c: Move towards exact replacement/GC points.
* src/vm/jit/replace.h: Likewise.
* src/vm/jit/optimizing/lsra.h: Use jd->maxlocals.
* src/vm/jit/optimizing/lifetimes.c: Likewise.
* src/vm/jit/optimizing/ssa.c: Likewise.
* src/vm/jit/show.c: Likewise.
* src/vm/jit/verify/typecheck.c: Likewise.
* src/vm/jit/loop/analyze.c: Likewise.
* src/vm/jit/inline/inline.c: Likewise.
* src/vm/jit/allocator/lsra.c: Likewise.
* src/vm/jit/allocator/simplereg.c: Likewise.
* src/vm/jit/allocator/liveness.c: Likewise.
* src/vm/jit/jit.c: Likewise.
* src/vm/jit/show.h (show_allocation): Made global.
* src/vm/jit/show.c: Likewise.
edwin [Sun, 5 Nov 2006 22:47:23 +0000 (22:47 +0000)]
* src/vm/jit/jit.c (jit_jitdata_new): Initialize jd->maxlocals.
edwin [Sun, 5 Nov 2006 22:46:11 +0000 (22:46 +0000)]
* src/vm/jit/jit.h (jitdata): Added maxlocals field.
twisti [Sun, 5 Nov 2006 21:43:09 +0000 (21:43 +0000)]
* src/vm/options.c (opt_shownops): Added.
* src/vm/options.h (opt_shownops): Likewise.
* src/vm/vm.c (usage): Added -so help.
(vm_create): Added opt_shownops handling.
edwin [Sun, 5 Nov 2006 21:27:37 +0000 (21:27 +0000)]
* src/vm/jit/jit.h (INS_FLAG_RETADDR): Added flag for marking ASTOREs
of returnAddresses.
* src/vm/jit/stack.c (stack_reanalyse_block): Invalidate target of
ASTORE with returnAddress.
(stack_analyse): Likewise.
twisti [Sun, 5 Nov 2006 21:23:09 +0000 (21:23 +0000)]
* src/vm/utf8.c (utf_Signature): Added.
(utf8_init): Initialize utf_Signature.
* src/vm/utf8.h (utf_Signature): Added.
twisti [Sun, 5 Nov 2006 21:18:05 +0000 (21:18 +0000)]
* src/vm/loader.c (load_attributes): Load Signature attribute.
* src/vm/class.h (classinfo): Added signature.
* src/native/vm/java_lang_VMClass.c (getClassSignature): Implemented.
edwin [Sun, 5 Nov 2006 21:14:55 +0000 (21:14 +0000)]
* src/vm/jit/show.c (show_basicblock): Show javalocals.
(show_variable_array): Made it NULL-safe, show UNUSED entries.
edwin [Sun, 5 Nov 2006 20:17:56 +0000 (20:17 +0000)]
* src/vm/jit/show.c (show_icmd): Show javaindex for *STORE.
edwin [Sun, 5 Nov 2006 20:07:21 +0000 (20:07 +0000)]
* src/vm/jit/jit.h (s3_operand_t): Added field javaindex.
(INS_FLAG_KILL_PREV): New flag.
(INS_FLAG_KILL_NEXT): New flag.
(basicblock): Added field javalocals. This points to the mapping from
Java bytecode locals to cacao variables at the beginning of the block.
* src/vm/jit/stack.c (Changes): Merged with Authors.
(stackdata_t): Added fields maxlocals and javalocals.
(stack_clone_block): Initialize javalocals.
(stack_create_locals): New function.
(stack_merge_locals): New function.
(stack_create_invars): Use stack_create_invars.
(stack_create_invars_from_outvars): Likewise.
(stack_check_invars): Use stack_merge_locals.
(stack_check_invars_from_outvars): Likewise.
(stack_reanalyse_block): Maintain javalocals mapping.
(stack_init_javalocals): New function.
(stack_analyse): Maintain javalocals mapping.
(stack_verbose_show_block): Show javalocals.
(stack_verbose_block_enter): Distinguish block cloning and
re-analysing.
(stack_verbose_show_state): New function.
edwin [Sun, 5 Nov 2006 19:49:29 +0000 (19:49 +0000)]
* src/vm/jit/stack.c (COPY_VAL_AND_TYPE): Fix: Only copy vv for TYPE_RET
(and later for other constants). Otherwise the allocation of PREALLOC
variables can be overwritten when re-analysing a block.
edwin [Sun, 5 Nov 2006 19:45:51 +0000 (19:45 +0000)]
* src/vm/jit/show.c (show_method): Show maxinterfaces only for stage
>= SHOW_STACK.
(show_variable): Show allocation for PREALLOC variables.
michi [Sun, 5 Nov 2006 16:58:27 +0000 (16:58 +0000)]
* src/vm/jit/stacktrace.h: Added stacktracecontainer.
* src/vm/jit/stacktrace.c (stacktrace_fillInStackTrace): Now returns
stacktracecontainer as wrapper for stacktracebuffer and entries.
* src/native/vm/java_lang_VMThrowable.c: Undoes the wrapping mentioned above.
edwin [Sun, 5 Nov 2006 15:47:33 +0000 (15:47 +0000)]
* src/vm/jit/replace.c (replace_create_replacement_points): Partially
ported to new IR.
* src/vm/jit/i386/codegen.c (codegen): Reactivate code for
replacement points.
* src/vm/jit/jit.c (jit_compile_intern): Likewise.
edwin [Sun, 5 Nov 2006 10:40:15 +0000 (10:40 +0000)]
* src/vm/jit/inline/inline.c: Ported to the new IR. There are some
checkins missing to make it linkable, though.
* src/vm/jit/inline/inline_debug.inc: Likewise.
edwin [Sun, 5 Nov 2006 10:31:32 +0000 (10:31 +0000)]
* src/vm/global.h (ACC_METHOD_IMPLEMENTED): Added.
(ACC_METHOD_MONOMORPHIC): Added.
edwin [Sun, 5 Nov 2006 10:22:37 +0000 (10:22 +0000)]
* src/vm/jit/jit.h (jitdata): New fields maxinterfaces, returnblock,
returncount, branchtoentry, branchtoend.
* src/vm/jit/jit.c (jit_jitdata_new): Initialize new fields.
* src/vm/jit/parse.c (parse_mark_exception_boundaries): Set
branchtoend.
(parse): Set branchtoentry.
* src/vm/jit/stack.c (stack_analyse): Set jd->maxinterfaces,
returncount, and returnblock.
* src/vm/jit/allocator/simplereg.c (simplereg_allocate_interfaces):
Use jd->maxinterfaces.
(simplereg_allocate_temporaries): Likewise.
* src/vm/jit/show.c (show_method): Show the new fields. Use
jd->maxinterfaces. Show invalid variable indices. Show inline info.
edwin [Sun, 5 Nov 2006 09:52:43 +0000 (09:52 +0000)]
* src/vm/jit/i386/codegen.c (codegen): Reactivated code for inlining.
edwin [Sat, 4 Nov 2006 23:42:40 +0000 (23:42 +0000)]
* src/vm/jit/jit.h (jitdata): Clarified comment of isleafmethod.
edwin [Sat, 4 Nov 2006 23:37:10 +0000 (23:37 +0000)]
* src/vm/jit/jit.c (jit_jitdata_new): Initialize jd->isleafmethod
depending on whether the method needs synchronization.
* src/vm/jit/parse.c (parse): Initialization of jd->isleafmethod has
been moved to jit_jitdata_new.
edwin [Sat, 4 Nov 2006 23:29:36 +0000 (23:29 +0000)]
* src/vm/jit/jit.h, src/vm/jit/jit.c (jit_jitdata_new): Made global.
edwin [Sat, 4 Nov 2006 23:24:48 +0000 (23:24 +0000)]
* src/vm/loader.c (load_newly_created_array): Explicitly zero the
allocated methodinfo array.
edwin [Sat, 4 Nov 2006 23:13:37 +0000 (23:13 +0000)]
* src/vm/jit/stack.c (stack_change_to_tempvar): Fix: Only replace
pass-through variables at the right stack depth. Otherwise the IR
can become inconsistent, for example a temporary variable could be
used more than once.
edwin [Sat, 4 Nov 2006 22:40:13 +0000 (22:40 +0000)]
* src/vm/jit/stack.c (stack_reanalyse_block): Relocate dst.varindex
for ICMD_JSR (even if it is not used, it keeps the IR consistent).
edwin [Sat, 4 Nov 2006 22:01:51 +0000 (22:01 +0000)]
* src/mm/memory.c: Added ENABLE_MEMCHECK code:
(mem_alloc): Prepared for poisoning memory.
(mem_realloc): Invalidate freed memory.
(mem_free): Invalidate freed memory.
(dump_check_canaries): New function.
(dump_alloc): Added canaries, record allocation.
(dump_realloc): Invalidate freed memory.
(dump_release): Check canaries, invalidate freed memory.
* src/mm/memory.h (dump_allocation_t): New struct.
(dumpinfo_t): Added allocation list for ENABLE_MEMCHECK.
* configure.ac (--enable-memcheck): Added configure flag.
michi [Sat, 4 Nov 2006 17:30:44 +0000 (17:30 +0000)]
* src/mm/boehm.h: Renamed to gc-common.h
* src/mm/gc-common.h: Added.
* src/vm/builtin.c, src/vm/jit/mips/linux/md-os.c,
src/vm/jit/mips/irix/md-os.c, src/vm/jit/stacktrace.c, src/vm/vm.c,
src/native/tool/gennativetable.c, src/native/jni.c,
src/native/vm/gnu_java_lang_management_VMThreadMXBeanImpl.c,
src/native/vm/gnu_java_lang_management_VMMemoryMXBeanImpl.c,
src/native/vm/java_lang_VMObject.c, src/native/vm/java_lang_VMRuntime.c,
src/native/vm/gnu_java_lang_management_VMClassLoadingMXBeanImpl.c,
src/native/jvmti/jvmti.c, src/mm/nogc.c, src/mm/boehm.c, src/mm/memory.h,
src/threads/native/threads.c, src/cacaoh/headers.c, src/cacaoh/cacaoh.c:
Changed include from "mm/boehm.h" to "mm/gc-common.h"
* src/mm/Makefile.am: Added subdir and lib for cacao-gc
* src/mm/cacao-gc: Added.
* src/mm/cacao-gc/gc.c: Added.
* src/mm/cacao-gc/Makefile.am: Added.
* src/mm/cacao-gc/.cvsignore: Added.
* src/threads/native/threads.c: Fixed include of boehms gc.h
* src/vm/jit/mips/linux/md-os.c (md_init) [ENABLE_GC_BOEHM]: Added ifdef
for boehm specific call.
* src/vm/jit/mips/irix/md-os.c: Likewise.
* src/vm/signal.c: Likewise.
* configure.ac: Adapted buildsystem for new GC. Added cacao-gc.
--HG--
rename : src/mm/boehm.h => src/mm/gc-common.h
tbfg [Sat, 4 Nov 2006 15:46:18 +0000 (15:46 +0000)]
* src/vm/jit/powerpc64/emit.c (emit_verbosecall_enter):
Removed unsued var.
* src/vm/jit/powerpc64/codegen.c (codegen):
Lots of arithmetic changes.
* src/vm/jit/powerpc64/codegen.h (M_SLL): Converted to 64bit.
(M_LSTX): Added.
(gen_bound_check): Fixed.
michi [Fri, 3 Nov 2006 22:11:49 +0000 (22:11 +0000)]
* src/vm/loader.c (load_class_from_classbuffer): Removed commented code which
placed methodinfos onto the heap.
tbfg [Fri, 3 Nov 2006 15:40:32 +0000 (15:40 +0000)]
checkcast testcase
twisti [Fri, 3 Nov 2006 15:13:33 +0000 (15:13 +0000)]
* parisc/.cvsignore: New file.
* parisc/linux/.cvsignore: Likewise.
twisti [Fri, 3 Nov 2006 14:03:40 +0000 (14:03 +0000)]
* src/vm/jit/parisc/md-abi.h: New file.
* src/vm/jit/parisc/md.c: Likewise.
* src/vm/jit/parisc/arch.h: Likewise.
* src/vm/jit/parisc/Makefile.am: Likewise.
* src/vm/jit/Makefile.am (SUBDIRS): Added parisc.
* configure.ac: Added parisc support.
twisti [Thu, 2 Nov 2006 12:54:15 +0000 (12:54 +0000)]
* src/toolbox/list.c, src/toolbox/list.h (list_create_dump): New
function.
(list_first_unsynced): Likewise.
(list_last_unsynced): Likewise.
(list_next_unsynced): Likewise.
(list_prev_unsynced): Likewise.
twisti [Thu, 2 Nov 2006 12:50:25 +0000 (12:50 +0000)]
* src/Makefile.am (DIST_SUBDIRS): Compile mm first.
(SUBDIRS): Likewise.
twisti [Thu, 2 Nov 2006 10:21:37 +0000 (10:21 +0000)]
* src/vm/jit/dseg.h (patchref): Added comments.
twisti [Wed, 1 Nov 2006 20:19:44 +0000 (20:19 +0000)]
* src/vm/jit/mips/codegen.c (codegen): Use new dseg function names.
(createnativestub): Likewise.
* src/vm/jit/mips/emit.c (emit_iconst): Likewise.
(emit_lconst): Likewise.
(emit_exception_stubs): Likewise.
(emit_patcher_stubs): Likewise.
(emit_verbosecall_enter): Likewise.
(emit_verbosecall_exit): Likewise.
* src/vm/jit/mips/codegen.h (M_INTMOVE): Wrap into do-while.