edwin [Tue, 5 Sep 2006 17:21:21 +0000 (17:21 +0000)]
Merged changes from trunk.
--HG--
branch : new_instruction_format
edwin [Tue, 5 Sep 2006 16:12:09 +0000 (16:12 +0000)]
* src/vm/jit/jit.h (basicblock): Changed type of iinstr to
new_instruction *.
* src/vm/jit/stack.c (new_stack_analyse): Removed obsolete casts.
* src/vm/jit/show.c (new_show_basicblock): Likewise.
* src/vm/jit/verify/typecheck.c (verify_basic_block): Likewise.
* src/vm/jit/allocator/simplereg.c (new_allocate_scratch_registers):
Likewise.
* src/vm/jit/parse.c (new_parse): Likewise.
* src/vm/jit/x86_64/codegen.c (new_parse): Likewise.
--HG--
branch : new_instruction_format
edwin [Tue, 5 Sep 2006 12:42:12 +0000 (12:42 +0000)]
* src/vm/jit/jit.h (s3_operand_t): Removed arrayvftbl.
* src/vm/jit/x86_64/codegen.c (codegen): ICMD_MULTIANEWARRAY:
Use s3.c.cls instead of s3.arrayvftbl.
--HG--
branch : new_instruction_format
edwin [Tue, 5 Sep 2006 12:29:16 +0000 (12:29 +0000)]
* src/vm/jit/jit.h (jitdata): Removed field new_rd.
* src/vm/jit/jit.c (jit_compile): Use rd instead of new_rd.
(jit_compile_intern): Likewise.
* src/vm/jit/verify/typecheck.c (typecheck): Likewise.
(verify_basic_block): Removed unused variables.
* src/vm/jit/allocator/simplereg.c (new_regalloc):
Use rd instead of new_rd.
* src/vm/jit/x86_64/codegen.c (codegen): Likewise.
--HG--
branch : new_instruction_format
edwin [Tue, 5 Sep 2006 11:53:11 +0000 (11:53 +0000)]
* src/vm/jit/x86_64/codegen.c: Ported to new instruction format.
* src/vm/jit/x86_64/emit.c: Likewise.
* src/vm/jit/x86_64/md-emit.h: Likewise.
--HG--
branch : new_instruction_format
edwin [Tue, 5 Sep 2006 11:50:47 +0000 (11:50 +0000)]
* src/vm/jit/jit.h (s3_operand_t): Added union field arrayvftbl.
--HG--
branch : new_instruction_format
edwin [Tue, 5 Sep 2006 11:47:44 +0000 (11:47 +0000)]
* src/vm/jit/jit.c (jit_compile): Test setup for the new x86_64
codegen.
(jit_compile_intern): Likewise.
--HG--
branch : new_instruction_format
edwin [Tue, 5 Sep 2006 11:42:55 +0000 (11:42 +0000)]
* src/vm/jit/emit.h (emit_load*): Changed for new instruction format.
(emit_store*): Likewise.
(emit_copy*): Likewise.
(emit_store_dst): New function.
--HG--
branch : new_instruction_format
edwin [Tue, 5 Sep 2006 11:40:03 +0000 (11:40 +0000)]
* src/vm/jit/jit.h (basicblock): Added fields invars and outvars.
* src/vm/jit/stack.h (MARKREACHED): Set invars.
* src/vm/jit/stack.c (new_stack_analyse): Set invars and outvars.
* src/vm/jit/show.c (new_show_basicblock): Show invars and outvars.
--HG--
branch : new_instruction_format
edwin [Tue, 5 Sep 2006 11:34:49 +0000 (11:34 +0000)]
* src/vm/jit/jit.h (NEW_INSTRUCTION_*): Renamed to INSTRUCTION_.
The old INSTRUCTION_ and ICMD_ macros are removed.
* src/vm/resolve.c (NEW_INSTRUCTION_*): Replaced with INSTRUCTION_.
* src/vm/jit/show.c (new_show_icmd): Likewise.
* src/vm/jit/allocator/simplereg.c (new_allocate_scratch_registers):
Likewise.
* src/vm/jit/stack.c (new_stack_analyse): Likewise, and add a call
of builtintable_replace_function.
--HG--
branch : new_instruction_format
edwin [Tue, 5 Sep 2006 11:20:04 +0000 (11:20 +0000)]
* src/vm/jit/verify/typecheck.c: Ported to new instruction format.
* src/vm/jit/verify/typeinfo.c (typeinfo_print): Likewise.
(typeinfo_print_short): Likewise.
--HG--
branch : new_instruction_format
edwin [Tue, 5 Sep 2006 11:16:06 +0000 (11:16 +0000)]
* src/vm/builtin.h (builtintable_replace_function): Ported to new
instruction format.
* src/vm/builtin.c (builtintable_replace_function): Likewise.
--HG--
branch : new_instruction_format
edwin [Tue, 5 Sep 2006 11:13:58 +0000 (11:13 +0000)]
* src/vm/jit/show.c (new_show_variable_array): New function.
(new_show_method): Fixed calculation of lastbptr.
Only show code lengths if stage >= SHOW_CODE.
--HG--
branch : new_instruction_format
edwin [Tue, 5 Sep 2006 10:52:12 +0000 (10:52 +0000)]
* src/vm/resolve.h: Removed code for old instruction format.
* src/vm/resolve.c: Likewise.
--HG--
branch : new_instruction_format
edwin [Tue, 5 Sep 2006 10:47:11 +0000 (10:47 +0000)]
* src/vm/jit/allocator/simplereg.h: Removed code for old instruction
format.
* src/vm/jit/allocator/simplereg.c: Likewise.
--HG--
branch : new_instruction_format
edwin [Tue, 5 Sep 2006 10:44:52 +0000 (10:44 +0000)]
* src/vm/jit/show.h: Removed code for old instruction format.
* src/vm/jit/show.c: Likewise.
--HG--
branch : new_instruction_format
edwin [Tue, 5 Sep 2006 10:39:58 +0000 (10:39 +0000)]
* src/vm/jit/stack.h: Removed code for old instruction format.
* src/vm/jit/stack.c: Likewise.
--HG--
branch : new_instruction_format
edwin [Tue, 5 Sep 2006 10:37:26 +0000 (10:37 +0000)]
* src/vm/jit/parse.h: Removed code for old instruction format.
* src/vm/jit/parse.c: Likewise.
--HG--
branch : new_instruction_format
twisti [Tue, 5 Sep 2006 10:15:55 +0000 (10:15 +0000)]
* src/vm/jit/i386/Makefile.am (noinst_HEADERS): Removed
icmd_uses_reg_res.inc.
twisti [Tue, 5 Sep 2006 10:10:10 +0000 (10:10 +0000)]
* src/vm/jit/i386/icmd_uses_reg_res.inc: Removed.
edwin [Tue, 5 Sep 2006 10:09:52 +0000 (10:09 +0000)]
* src/vm/jit/x86_64/codegen.h (ICONST): Fix this macro so it properly
uses its arguments.
(LCONST): Likewise.
twisti [Tue, 5 Sep 2006 10:04:50 +0000 (10:04 +0000)]
* src/tests/Howdy.java: Removed.
twisti [Tue, 5 Sep 2006 10:03:40 +0000 (10:03 +0000)]
* src/vm/jit/x86_64/codegen.c (codegen): Use cd->stackframesize
instead of stackframesize (bugfix).
(createnativestub): Likewise.
edwin [Tue, 5 Sep 2006 09:59:53 +0000 (09:59 +0000)]
* src/vm/jit/codegen-common.h (codegen_reg_of_dst): New function.
* src/vm/jit/codegen-common.c (codegen_reg_of_dst): Likewise.
Right now this duplicates codegen_reg_of_var's body. We should
probably make one of these functions inline the other.
edwin [Tue, 5 Sep 2006 00:12:10 +0000 (00:12 +0000)]
* src/vm/jit/ifconv/ifconv.c (ifconv_static): Deactivated
show_basicblock calls that will become a problem when code for the
old instruction format is removed.
(check): Likewise.
edwin [Tue, 5 Sep 2006 00:02:30 +0000 (00:02 +0000)]
* src/vm/resolve.c (resolve_field): new_resolve_field_verifier_checks
used instead of the old function that will be removed soon.
(resolve_method): Use new_resolve_method_verifier_checks instead of the
old function that will be removed soon.
(new_resolve_method_verifier_checks): Port handling of TYPEINFO_IS_NEWOBJECT.
(new_resolve_method_verifier_checks): Likewise.
(new_constrain_unresolved_field): Likewise.
(new_constrain_unresolved_method): Likewise.
edwin [Mon, 4 Sep 2006 23:24:39 +0000 (23:24 +0000)]
* src/vm/jit/parse.c (new_parse): Changed leftover "OP" macro uses
to "NEW_OP".
twisti [Mon, 4 Sep 2006 17:45:32 +0000 (17:45 +0000)]
* src/vm/jit/mips/emit.c (config.h): Added.
[ENABLE_THREADS] (threads/native/lock.h): Likewise.
(vm/exceptions.h): Likewise.
(vm/stringlocal.h): Likewise.
(vm/jit/asmpart.h): Likewise.
(vm/jit/dseg.h): Likewise.
(vm/jit/replace.h): Likewise.
(emit_exception_stubs): New method.
(emit_patcher_stubs): Likewise.
(emit_replacement_stubs): Likewise.
* src/vm/jit/mips/codegen.c (codegen): Use cd->stackframesize instead
of stackframesize, use emit functions to generate stubs and call trace
code.
(createnativestub): Likewise.
christian [Mon, 4 Sep 2006 17:12:48 +0000 (17:12 +0000)]
* src/vm/jit/alpha/patcher.c (patcher_wrapper): Patch back machine
code.
(patcher_aconst): Renamed to patcher_resolve_classref_to_classinfo.
(patcher_clinit): Renamed to patcher_initialize_class.
(patcher_resolve_native): Renamed to patcher_resolve_native_function.
(patcher_athrow_areturn): Renamed to patcher_resolve_class.
(patcher_checkcast_instanceof_class): Renamed to
patcher_resolve_classref_to_vftbl.
(patcher_checkcast_instanceof_flags): Renamed to
patcher_resolve_classref_to_flags.
(patcher_builtin_multianewarray): Removed.
(patcher_builtin_arraycheckcast): Likewise.
* src/vm/jit/alpha/codegen.c (codegen): Use new patcher functions.
twisti [Mon, 4 Sep 2006 16:33:57 +0000 (16:33 +0000)]
* src/vm/jit/alpha/emit.c (vm/builtin.h): Added.
(vm/jit/abi-asm.h): Likewise.
(vm/jit/replace.h): Likewise.
(emit_verbosecall_enter): New method.
(emit_verbosecall_exit): Likewise.
* src/vm/jit/alpha/codegen.c (codegen): Use emit functions to generate
call trace code.
(createnativestub): Likewise.
twisti [Mon, 4 Sep 2006 15:48:16 +0000 (15:48 +0000)]
* src/vm/jit/powerpc/emit.c (config.h): Added.
[ENABLE_THREADS] (threads/native/lock.h): Likewise.
(vm/builtin.h): Likewise.
(vm/jit/abi-asm.h): Likewise.
(vm/jit/asmpart.h): Likewise.
(vm/jit/replace.h): Likewise.
(emit_exception_stubs): New method.
(emit_patcher_stubs): Likewise.
(emit_replacement_stubs): Likewise.
(emit_verbosecall_enter): Likewise.
(emit_verbosecall_exit): Likewise.
* src/vm/jit/powerpc/codegen.c (codegen): Use emit functions to
generate stubs and call trace code.
(createnativestub): Likewise.
twisti [Mon, 4 Sep 2006 14:21:11 +0000 (14:21 +0000)]
* src/vm/jit/powerpc/asmpart.S (asm_call_jit_compiler): We don't save
an argument on the stack anymore, offsets adjusted.
(asm_handle_exception): Use md_codegen_get_pv_from_pc instead of
assembler code and temporary variables as on other RISC architectures.
tbfg [Mon, 4 Sep 2006 12:38:21 +0000 (12:38 +0000)]
* src/vm/jit/powerpc64/emit.c (emit_verbosecall_enter): Fixed off
by one stackslot overwrite some stuff bug.
* src/vm/jit/powerpc64/codegen.c (codegen): Fix parameter passing
in.
tbfg [Sat, 2 Sep 2006 14:26:04 +0000 (14:26 +0000)]
* src/vm/jit/powerpc64/arch.h: Reenabled platfrom features.
* src/vm/jit/powerpc64/codegen.c (codegen): Fixed native calls.
(createnativestub): Likewise.
tbfg [Thu, 31 Aug 2006 19:58:15 +0000 (19:58 +0000)]
* srv/vm/jit/powerpc64/asmpart.S (asm_vm_call_method): Fixed argument
handling.
tbfg [Thu, 31 Aug 2006 13:32:19 +0000 (13:32 +0000)]
* src/vm/jit/powerpc64/emit.c (emit_verbosecall_enter): Moved from
codegen.c refactored into function, and made it work.
(emit_verbosecall_exit): Likewise.
* src/vm/jit/powerpc64/codegen.c (codegen_trace_args): Moved into
emit.c and renamed it to emit_verbosecall_enter.
(codegen): Using emit_verbosecall_* instead of inline code, and
various fixes to make verbose:call work.
(createnativestub): Likewise.
tbfg [Mon, 28 Aug 2006 19:31:37 +0000 (19:31 +0000)]
* src/vm/jit/powerpc64/linux/md-abi.h: New REG_TOC name needed to
call builtins due to ppc64 function descriptors (ELF ABI).
* src/vm/jit/powerpc64/codegen.c (createnativestub): Big endian
requires M_LLD and M_IST to copy s4 values from dseg to stack.
(codegen): gen_method needs to create function descriptor call.
* src/vm/jit/powerpc64/asmpart.S: When linking statically
non function descriptor calls are generated by compiler.
Some ifdefs added to fix static linking.
twisti [Mon, 28 Aug 2006 15:18:54 +0000 (15:18 +0000)]
* src/vm/jit/patcher.h (patcher_resolve_class): Added.
(patcher_initialize_class): Likewise.
(patcher_resolve_classref_to_classinfo): Likewise.
(patcher_resolve_classref_to_vftbl): Likewise.
(patcher_resolve_classref_to_flags): Likewise.
(patcher_resolve_native_function): Likewise.
* src/vm/jit/powerpc/patcher.c (patcher_wrapper): Patch back machine
code.
(patcher_aconst): Renamed to patcher_resolve_classref_to_classinfo.
(patcher_clinit): Renamed to patcher_initialize_class.
(patcher_resolve_native): Renamed to patcher_resolve_native_function.
(patcher_athrow_areturn): Renamed to patcher_resolve_class.
(patcher_checkcast_class): Renamed to
patcher_resolve_classref_to_vftbl.
(patcher_checkcast_instanceof_flags): Renamed to
patcher_resolve_classref_to_flags.
(patcher_builtin_multianewarray): Removed.
(patcher_builtin_arraycheckcast): Likewise.
(patcher_instanceof_class): Likewise.
* src/vm/jit/powerpc/codegen.c (codegen): Use new patcher functions
(some of them were already commited accidentally in the last commit).
twisti [Mon, 28 Aug 2006 13:05:03 +0000 (13:05 +0000)]
* src/vm/jit/emit.h (emit_verbosecall_enter): Added.
(emit_verbosecall_exit): Likewise.
* src/vm/jit/powerpc/emit.c (vm/builtin.h): Added.
(vm/jit/asmpart.h): Likewise.
(vm/jit/replace.h): Likewise.
(emit_exception_stubs): New method.
(emit_patcher_stubs): Likewise.
(emit_replacement_stubs): Likewise.
(emit_verbosecall_enter): Likewise.
(emit_verbosecall_exit): Likewise.
* src/vm/jit/powerpc/codegen.c (vm/jit/abi-asm.h): Added.
(codegen_trace_args): Removed.
(codegen): Use cd->stackframesize instead of stackframesize, use emit
functions to generate stubs and call trace code.
(createnativestub): Likewise.
tbfg [Fri, 25 Aug 2006 11:55:21 +0000 (11:55 +0000)]
* src/vm/jit/show.c (show_method): Stubs are printed green when
using -debug-color.
* src/vm/jit/powerpc64/linux/md-os.c (md_signal_handler_sigusr2):
Moved into #ifdef ENABLE_THREADS conditional compile, as it depends
on threadobject.
* src/vm/jit/powerpc64/codegen.h: Added M_LADD_IMM and M_AADD_IMM
for better reading of code. Fixed M_CLR.
* src/vm/jit/powerpc64/codegen.c (codegen): Some fixes with ?RETURN,
some fixes for -verbose:call (still defunc),
(createnativestub): Lots of fixes in stackframe calculations.
* src/vm/jit/powerpc64/patcher.c (patch_aconst): Correct asm comment.
* src/vm/jit/powerpc64/disass.c (disassinstr): Display 64 bit
addresses in disassembled code (-sa).
* src/vm/jit/powerpc64/asmpart.S (L_asm_vm_call_method_return):
Fixed path for methods returning a value.
(L_asm_handle_exception): Fixed path for exception handling.
(asm_patcher_wrapper): Fixed path for codepatching.
twisti [Fri, 25 Aug 2006 07:54:27 +0000 (07:54 +0000)]
* src/vm/exceptions.c (new_illegalmonitorstateexception): Renamed to
exceptions_new_illegalmonitorstateexception.
(exceptions_throw_illegalmonitorstateexception): New method.
* src/vm/exceptions.h: Likewise.
* src/threads/native/lock.c (lock_monitor_exit): Use
exceptions_throw_illegalmonitorstateexception instead of
new_illegalmonitorstateexception.
(lock_monitor_wait): Likewise.
(lock_monitor_notify): Likewise.
* src/cacaoh/headers.c (new_illegalmonitorstateexception): Renamed to
exceptions_throw_illegalmonitorstateexception.
twisti [Fri, 25 Aug 2006 07:29:05 +0000 (07:29 +0000)]
* src/vm/jit/alpha/emit.c (emit_exception_stubs): Bugfix when
reallocating the code area.
(emit_patcher_stubs): Reuse the asm_patcher_wrapper call code.
(emit_replacement_stubs): Removed savedmcodeptr.
twisti [Fri, 25 Aug 2006 07:14:31 +0000 (07:14 +0000)]
* src/vm/jit/alpha/emit.c (emit_exception_stubs): Bugfix when
reallocating the code area.
(emit_patcher_stubs): Likewise.
twisti [Thu, 24 Aug 2006 18:42:48 +0000 (18:42 +0000)]
* src/vm/jit/codegen-common.h (codegendata): Added stackframesize. I
think this is more obvious than in jitdata.
* src/vm/jit/jit.h (jitdata): Removed stackframesize.
* src/vm/jit/alpha/emit.c (emit_exception_stubs): Replaced
jd->stackframesize with cd->stackframesize.
* src/vm/jit/alpha/codegen.c (codegen): Likewise.
(createnativestub): Likewise.
* src/vm/jit/i386/emit.c (emit_exception_stubs): Likewise.
* src/vm/jit/i386/codegen.c (codegen): Likewise.
(createnativestub): Likewise.
tbfg [Thu, 24 Aug 2006 09:29:44 +0000 (09:29 +0000)]
srv/vm/jit/powerpc/linux/md-os.c (md_signal_handler_sigusr2): Moved inside
ENABLE_THREADS ifdef as is depends on threads.
twisti [Wed, 23 Aug 2006 16:04:03 +0000 (16:04 +0000)]
* src/vm/jit/alpha/emit.c [ENABLE_THREADS] (threads/native/lock.h):
Added.
(vm/jit/asmpart.h): Likewise.
(vm/jit/dseg.h): Likewise.
(emit_exception_stubs): New function.
(emit_patcher_stubs): Likewise.
(emit_replacement_stubs): Likewise.
* src/vm/jit/i386/codegen.c (codegen): Use jd->stackframesize, removed
stub generation code.
(createnativestub): Likewise.
twisti [Wed, 23 Aug 2006 15:55:38 +0000 (15:55 +0000)]
* src/vm/jit/alpha/asmpart.S (asm_handle_exception): Fixed bug with
maybe-leaf stack and use same registers as on MIPS.
twisti [Wed, 23 Aug 2006 15:45:52 +0000 (15:45 +0000)]
* src/vm/jit/alpha/asmpart.S (asm_handle_exception): Use
md_codegen_get_pv_from_pc.
twisti [Wed, 23 Aug 2006 15:10:16 +0000 (15:10 +0000)]
* src/vm/jit/mips/asmpart.S (asm_handle_exception): Changed some
comments.
twisti [Wed, 23 Aug 2006 14:55:28 +0000 (14:55 +0000)]
* src/vm/jit/alpha/asmpart.S (L_asm_handle_exception_stack_loop):
Don't save xpc.
twisti [Wed, 23 Aug 2006 14:23:26 +0000 (14:23 +0000)]
* src/boehm-gc/configure.in (AC_C_INLINE): Set CFLAGS properly before.
twisti [Wed, 23 Aug 2006 14:07:10 +0000 (14:07 +0000)]
* configure.ac (AC_CONFIG_SUBDIRS): Moved to the end of the file and
export OPT_CFLAGS/ARCH_CFLAGS instead of CFLAGS.
* src/boehm-gc/configure.in: Pass CFLAGS to Makefile's as for CACAO.
* src/boehm-gc/Makefile.am (AM_CXXFLAGS, AM_CFLAGS): Commented.
(AM_CPPFLAGS): Added.
twisti [Wed, 23 Aug 2006 12:57:41 +0000 (12:57 +0000)]
* src/vm/jit/alpha/emit.c (config.h): Added.
[ENABLE_THREADS] (threads/native/lock.h): Likewise.
(vm/jit/asmpart.h): Likewise.
(vm/jit/dseg.h): Likewise.
(emit_exception_stubs): New function.
(emit_patcher_stubs): Likewise.
(emit_replacement_stubs): Likewise.
* src/vm/jit/alpha/codegen.c (codegen): Use jd->stackframesize, use
new desg_add_* functions, removed stub generation code.
(createnativestub): Likewise.
twisti [Wed, 23 Aug 2006 12:29:29 +0000 (12:29 +0000)]
* src/vm/vm.c (OPT_ALL, OPT_METHOD, OPT_SIGNATURE): #ifndef NDEBUG.
(usage): Don't print -all, -m, -sig options.
twisti [Wed, 23 Aug 2006 12:12:30 +0000 (12:12 +0000)]
* src/vm/jit/emit.h (emit_replacement_stubs): Added.
twisti [Tue, 22 Aug 2006 20:48:16 +0000 (20:48 +0000)]
* src/vm/jit/i386/md-emit.h (vm/jit/codegen-common.h): Added.
twisti [Tue, 22 Aug 2006 19:53:56 +0000 (19:53 +0000)]
* src/vm/jit/emit.h (emit_exception_stubs): Added.
(emit_patcher_stubs): Likewise.
* src/vm/jit/jit.h (jitdata): Added member stackframesize.
tbfg [Tue, 22 Aug 2006 15:49:25 +0000 (15:49 +0000)]
* src/vm/jit/powerpc64/linux/md-abi.h: Added PA_SIZE and
PA_SIZE_IN_POINTERS defines.
* src/vm/jit/powerpc64/arch.h: Enabled machine dependend
compare_and_swap implementation for ppc64.
* src/vm/jit/powerpc64/codegen.c (codegen): Remove lot of PACK_REGS
usages, changed stack address calculations from *4 -> *8, added
a M_NOP for debugging.
* src/vm/jit/powerpc64/machine-instr.h (compare_and_swap): Ported
for 64 bit.
(atomic_add): Removed.
* src/vm/jit/powerpc64/patcher.c (patcher_wrapper): Fixed stack
calculations from *4 -> *8
(patcher_aconst): Likewise.
(patcher_athrow_areturn): Likewise.
(patcher_builtin_arraycheckcast): Likewise.
(patcher_builtin_multianewarray): Likewise.
(patcher_checkcast_class): Likewise.
(patcher_checkcast_instanceof_flags): Likewise.
(patcher_checkcast_instanceof_interf): Likewise.
(patcher_clinit): Likewise.
(patcher_get_putfield): Likewise.
(patcher_get_putstatic): Likewise.
(patcher_instanceof_class): Likewise.
(patcher_invokeinterface): Likewise.
(patcher_invokestatic_special): Likewise.
(patcher_invokevirtual): Likewise.
(patcher_resolve_native): Likewise.
* src/vm/jit/powerpc64/asmpart.S (asm_patcher_wrapper): Fixed
calling convetions, as we callback C. Fixed 32 bit issues.
(asm_call_jit_compiler): PPC64 has additional PA_SIZE
on stack - fixed that.
twisti [Tue, 22 Aug 2006 14:39:36 +0000 (14:39 +0000)]
* src/native/vm/java_lang_VMThrowable.c (fillInStackTrace): Removed
architecture #ifdef's.
(getStackTrace): Likewise.
twisti [Tue, 22 Aug 2006 12:43:00 +0000 (12:43 +0000)]
* src/native/native.c (dummynativetable): Made non-static, GCC 4.1
optimized the table away.
(native_init): Removed dummynativetable-hack.
tbfg [Tue, 22 Aug 2006 09:02:25 +0000 (09:02 +0000)]
* src/vm/options.h: Renamed -verbosecolor to -debug-color,
opt_colorverbose to opt_debugcolor and OPT_COLORVERBOSE to
OPT_DEBUGCOLOR
* src/vm/method.c: Same as above.
* src/vm/jit/dseg.c: Same as above.
* src/vm/vm.c: Same as above.
* src/vm/options.c: Same as above.
* src/vm/jit/Makefile.am: Removed options.h dependecy, as deps are
tracked automatically.
twisti [Mon, 21 Aug 2006 17:37:01 +0000 (17:37 +0000)]
* src/lib/vm/reference/gnu/classpath/VMStackWalker.java
(firstNonNullClassLoader): Added and made native.
* src/native/vm/gnu_classpath_VMStackWalker.c (getClassContext):
Removed architecture #ifdef's, as most stacktrace stuff is
architecture independent and the dependent stuff is very simple to
implement.
(getCallingClass): Likewise.
(getCallingClassLoader): Likewise.
(firstNonNullClassLoader): Added.
twisti [Mon, 21 Aug 2006 15:25:59 +0000 (15:25 +0000)]
* src/vm/jit/i386/asmpart.S (L_asm_patcher_wrapper_exception): Removed
duplicate add line.
twisti [Mon, 21 Aug 2006 15:17:48 +0000 (15:17 +0000)]
* configure.ac (AC_CONFIG_FILES): Added
src/vm/jit/i386/darwin/Makefile.
* src/vm/jit/i386/codegen.c (createnativestub): Align stack to
16-bytes.
* src/vm/jit/i386/darwin/md-os.c: Darwin specific functions.
* src/vm/jit/i386/darwin/md-asm.h: Darwin specific assembler defines.
* src/vm/jit/i386/darwin/Makefile.am: New file.
* src/vm/jit/i386/darwin/.cvsignore: Likewise.
* src/vm/jit/i386/linux/md-asm.h: Linux specific assembler defines.
* src/vm/jit/i386/freebsd/md-asm.h: FreeBSD specific assembler defines.
* src/vm/jit/i386/md-asm.h: Removed.
* src/vm/jit/i386/asmpart.S (asm_handle_exception): Align stack to
16-bytes.
(asm_abstractmethoderror): Likewise.
(asm_patcher_wrapper): Likewise.
(asm_builtin_f2i, asm_builtin_d2i, asm_builtin_f2l, asm_builtin_d2l):
Likewise.
* src/vm/jit/i386/Makefile.am (DIST_SUBDIRS): Added darwin.
(AM_CPPFLAGS): Added OS_DIR as include.
(noinst_HEADERS): Removed md-asm.h.
* src/threads/native/threads.c (threads_cast_darwinstop): Use generic
defines and machine dependent structures.
twisti [Mon, 21 Aug 2006 14:52:20 +0000 (14:52 +0000)]
* src/vm/jit/powerpc/darwin/md-asm.h (asm_initialize_thread_stack):
Define removed.
(asm_perform_threadswitch): Likewise.
(asm_switchstackandcall): Likewise.
tbfg [Fri, 18 Aug 2006 18:37:19 +0000 (18:37 +0000)]
src/vm/options.h: Added the commandlineswitch --verbosecolor which enables
colored output of show: -si prints method names in red -sd shows datasegment
dump in blue. (use | less -R)
src/vm/options.c (options_get): There is a nasty bug in there, read comment.
twisti [Fri, 18 Aug 2006 13:07:21 +0000 (13:07 +0000)]
* src/toolbox/util.c (util_current_time_millis): Removed.
* src/toolbox/util.h: Likewise.
* src/vm/vm.c (vm_create): Use builtin_currenttimemillis instead of
util_current_time_millis.
twisti [Fri, 18 Aug 2006 13:01:00 +0000 (13:01 +0000)]
* src/vm/exceptions.c (new_arraystoreexception): Renamed to
exceptions_new_arraystoreexception.
(exceptions_throw_arraystoreexception): New function.
* src/vm/exceptions.h: Likewise.
* src/vm/builtin.c (builtintable_init): Reimplemented and added
builtintable_function.
(builtintable_replace_function): New function.
(builtin_arraycopy): Likewise.
(builtin_currenttimemillis): Likewise.
* src/vm/builtin.h (builtintable_entry): Added some extra members.
(builtin_asm_get_exceptionptrptr): Removed.
(builtintable_replace_function): Added.
(builtin_arraycopy): Likewise.
(builtin_currenttimemillis): Likewise.
* src/vm/builtintable.inc (builtintable_internal): Use new
builtintable_entry structure.
(builtintable_automatic): Likewise.
(builtintable_function): Added.
* src/vm/jit/stack.c (stack_analyse): Call
builtintable_replace_function.
* src/vm/jit/show.c (new_show_icmd): Print correct variable of builtin
calls.
(show_icmd): Likewise.
* src/vm/jit/stacktrace.c (stacktrace_inline_arraystoreexception): Use
exceptions_new_arraystoreexception.
* src/native/vm/java_lang_VMSystem.c (arraycopy): Removed
implementation and use builtin_arraycopy.
* src/cacaoh/headers.c
(exceptions_throw_arrayindexoutofboundsexception): Added.
(exceptions_new_arraystoreexception): Likewise.
(exceptions_throw_arraystoreexception): Likewise.
twisti [Fri, 18 Aug 2006 12:24:10 +0000 (12:24 +0000)]
* src/vm/class.c (class_java_lang_VMSystem): Added.
* src/vm/class.h: Likewise.
* src/vm/loader.c (loader_init): Likewise.
* src/vm/linker.c (linker_init): Likewise.
tbfg [Fri, 18 Aug 2006 10:22:17 +0000 (10:22 +0000)]
src/vm/jit/powerpc64/linux/md-os.c: Ported signal handlers to ppc64 ucontext.
tbfg [Thu, 17 Aug 2006 17:51:40 +0000 (17:51 +0000)]
src/vm/jit/powerpc64/md.c (md_get_method_patch_address): Fixed opcodes in
casetests.
src/vm/jit/powerpc64/arch.h: Temporarily disabled all hardwarefeaturs to
make porting easier.
src/vm/jit/powerpc64/codegen.c: Started to fix 32/64 bit issues.
src/vm/jit/powerpc64/codegen.h: Removing special long handling.
src/vm/jit/powerpc64/patcher.c: Changed comment only.
twisti [Thu, 17 Aug 2006 09:59:26 +0000 (09:59 +0000)]
* src/vm/jit/i386/asmpart.S (asm_patcher_wrapper): Restore REG_ITMP3
from stub stack. I missed this when I did the last changes.
christian [Wed, 16 Aug 2006 15:35:27 +0000 (15:35 +0000)]
* src/vm/jit/optimizing/.cvsignore: New file.
christian [Wed, 16 Aug 2006 12:21:35 +0000 (12:21 +0000)]
* src/vm/jit/stack.c (stack_analyse): Use of real PEI data
(op_data[opcode][PEI]) to prevent copy propagation to LOCALVAR with
ICMD_XSTORE instead of just regarding INVOKES as PEI's.
christian [Wed, 16 Aug 2006 12:11:47 +0000 (12:11 +0000)]
* src/toolbox/worklist.h: Comments added.
christian [Wed, 16 Aug 2006 12:10:53 +0000 (12:10 +0000)]
* src/toolbox/bitvector.c: Comments added.
* src/toolbox/bitvector.h: Comments added.
* src/toolbox/worklist.c: Comments added.
christian [Wed, 16 Aug 2006 11:35:12 +0000 (11:35 +0000)]
* src/toolbox/worklist.c: Corrected Header information.
* src/toolbox/worklist.h: Likewise.
* src/toolbox/bitvector.c: Likewise.
* src/toolbox/bitvector.h: Likewise.
christian [Wed, 16 Aug 2006 11:31:02 +0000 (11:31 +0000)]
* src/vm/jit/allocator/liveness.c: Corrected Header information.
* src/vm/jit/allocator/liveness.h: Likewise.
* src/vm/jit/allocator/lsra.c: Likewise.
* src/vm/jit/allocator/lsra.h: Likewise.
christian [Wed, 16 Aug 2006 11:26:59 +0000 (11:26 +0000)]
* src/vm/jit/optimizing/dominators.c: Corrected Header information.
* src/vm/jit/optimizing/dominators.h: Likewise.
* src/vm/jit/optimizing/graph.c: Likewise.
* src/vm/jit/optimizing/graph.h: Likewise.
* src/vm/jit/optimizing/lifetimes.c: Likewise.
* src/vm/jit/optimizing/lifetimes.h: Likewise.
* src/vm/jit/optimizing/lsra.c: Likewise.
* src/vm/jit/optimizing/lsra.h: Likewise.
* src/vm/jit/optimizing/ssa.c: Likewise.
* src/vm/jit/optimizing/ssa.h: Likewise.
christian [Wed, 16 Aug 2006 11:18:05 +0000 (11:18 +0000)]
* src/vm/jit/optimizing/ssa.c (ssa_print_phi): Printing now phi
functions correctly for debug output.
* src/vm/jit/optimizing/ssa.c (dead_code_elimination): No removal of
potential exception throwing instructions (PEI) anymore.
* src/vm/jit/jit.h: Renamed op_needs_saved[] to op_data[][NEEDS_SAVED]
and introduced the new op_data[][PEI].
* src/vm/jit/jit.c (jit_init): Added init of op_data[NEEDS_SAVED|PEI]
* src/vm/jit/optimizing/lifetimes.c (LifeOutAtStatement): Renamed
op_needs_saved[] to the new op_data[][NEEDS_SAVED]
christian [Tue, 15 Aug 2006 14:54:25 +0000 (14:54 +0000)]
* src/vm/jit/optimizing/lifetimes.c (LifenessAnalysis): Ignore
variables used in phi functions, if they define itself (x =
phi(...,x,...)).
* src/vm/jit/i386/codegen.c (codegen): Bugfix in code created for
ICMD_IINC for SSA.
* src/vm/jit/show.c (new_show_method): Regard ENABLE_SSA like
ENABLE_LSRA to suppress output of interfaces.
* src/vm/jit/show.c (show_method): likewise.
* src/vm/jit/show.c (show_icmd): Regard special operand format for
ICMD_IINC with SSA.
christian [Mon, 14 Aug 2006 18:14:53 +0000 (18:14 +0000)]
* src/vm/jit/optimizing/: New directory for optimizing compiler (SSA
by now - does not work by now, code merging with svn head introduced
some hazardous faults).
* src/vm/jit/optimizing/dominators.c: Computation of dominators and
domination frontier for SSA.
* src/vm/jit/optimizing/dominators.h: Include file for dominators.c.
* src/vm/jit/optimizing/graph.c: CFG functions needed for SSA.
* src/vm/jit/optimizing/graph.h: Include file for graph.c
* src/vm/jit/optimizing/lifetimes.c: Scanning lifetimes for SSA.
* src/vm/jit/optimizing/lifetimes.h: Include file for lifetimes.c
* src/vm/jit/optimizing/lsra.c: LSRA based on SSA.
* src/vm/jit/optimizing/lsra.h: Include file for lsra.c.
* src/vm/jit/optimizing/Makefile.am: New Makefile.am for this
directory.
* src/vm/jit/optimizing/ssa.c: Computation of SSA form.
* src/vm/jit/optimizing/ssa.h: Include File for ssa.c.
christian [Mon, 14 Aug 2006 17:50:12 +0000 (17:50 +0000)]
* src/vm/jit/optimizing/: New directory for optimizing compiler (SSA
by now - does not work by now, code merging with svn head introduced
some hazardous faults).
* src/vm/jit/optimizing/dominators.c: Computation of dominators and
domination frontier for SSA.
* src/vm/jit/optimizing/dominators.h: Include file for dominators.c.
* src/vm/jit/optimizing/graph.c: CFG functions needed for SSA.
* src/vm/jit/optimizing/graph.h: Include file for graph.c
* src/vm/jit/optimizing/lifetimes.c: Scanning lifetimes for SSA.
* src/vm/jit/optimizing/lifetimes.h: Include file for lifetimes.c
* src/vm/jit/optimizing/lsra.c: LSRA based on SSA.
* src/vm/jit/optimizing/lsra.h: Include file for lsra.c.
* src/vm/jit/optimizing/Makefile.am: New Makefile.am for this
directory.
* src/vm/jit/optimizing/ssa.c: Computation of SSA form.
* src/vm/jit/optimizing/ssa.h: Include File for ssa.c.
* src/vm/jit/allocator/lsra.c: Moved from src/vm/jit. Quite complete
code change (including: no more allocation of unused reserved
registers, possibility of exact lifetime analysis, removal of old
lifetime test functions).
* src/vm/jit/allocator/lsra.h: Moved from src/vm/jit.
* src/vm/jit/allocator/liveness.c: New File. Exact lifetime analysis
for LSRA.
* src/vm/jit/allocator/liveness.h: New File. Include File for
liveness.c. The #define LV enables by now the exact liveness analysis.
* src/vm/jit/allocator/Makefile.am: Adopted for new/moved files in
src/vm/jit/allocator.
* sc/vm/jit/Makefile.am: Adopted for above new/moved files.
* configure.ac: Introduced ENABLE_SSA: new option --enable-ssa.
Changes for ENABLE_LSRA (--enable-lsra). New Makefile in
src/vm/jit/optimizing added.
* src/vm/jit/allocator/simplereg.c (reg_make_statistics): Support for
ENABLE_SSA for statistics.
* src/vm/options.h: opt_lsra is used with ENABLE_SSA like with
ENABLE_LSRA.
* src/vm/options.c: opt_lsra is used with ENABLE_SSA like with
ENABLE_LSRA.
* src/vm/global.h: New struct imm for union imm_union to get another
operand for IINC in combination with SSA added.
* src/vm/vm.c: opt_lsra and the option -lsra is used with ENABLE_SSA
like with ENABLE_LSRA.
* src/vm/jit/stack.c (stack_analyse): No stack element lifetimes
counting anymore for lsra/ssa (m->maxlifetimes).
* src/vm/jit/stack.h: No stack lifetime counting anymore for lsra/ssa
(m->maxlifetimes).
* src/vm/jit/i386/codegen.c: Support for ENABLE_SSA added.
* src/vm/jit/i386/codegen.c (codegen_insert_phi_moves): New function
to insert phi moves for SSA at the end of Basic Blocks.
* src/vm/jit/i386/codegen.c (cg_move): New function to create the
instructions for the actual move for codegen_insert_phi_moves).
* src/vm/jit/i386/codegen.c (codegen): Logic and calls to use
codegen_insert_phi_moves for SSA added. With SSA for parameters in
memory this memory positions cannot be reused to avoid copying. Checks
added to prevent moves to or from stackslots removed by the dead code
elimination. Special handling for the new ICMD_IINC operand format
used by SSA added.
* src/vm/jit/i386/codegen.h (M_COPY): Checks added to prevent moves to
or from stackslots removed by the dead code elimination. Original
M_COPY renamed to _M_COPY.
* src/vm/jit/jit.c (jit_init): Populate op_needs_saved. Regard
ENABLE_SSA.
* src/vm/jit/jit.h: Support for ENABLE_SSA added. Added an array which
shows which ICMD's need a SAVEDVAR for SSA and the new LSRA with exact
liveness analysis. src/toolbox/Makefile.am: Changed to include the
following new files:
* src/toolbox/bitvector.c: Bitvector implementation for SSA.
* src/toolbox/bitvector.h: Include file for bitvector.c.
* src/toolbox/worklist.c: Worklist implementation for SSA.
* src/toolbox/worklist.h: Include file for worklist.c.
twisti [Mon, 14 Aug 2006 10:59:39 +0000 (10:59 +0000)]
* src/vm/jit/codegen-common.c (codegen_findmethod): Renamed to
codegen_get_pv_from_pc.
* src/vm/jit/codegen-common.h (codegen_findmethod): Likewise.
(md_codegen_findmethod): Renamed to md_codegen_get_pv_from_pc.
* src/vm/jit/stacktrace.c (stacktrace_create_stackframeinfo):
Likewise.
(stacktrace_create_inline_stackframeinfo): Likewise.
(stacktrace_create_extern_stackframe): Likewise.
(stacktrace_create): Likewise.
* src/vm/jit/alpha/md.c (md_codegen_findmethod): Renamed to
md_codegen_get_pv_from_pc.
* src/vm/jit/i386/md.c: Likewise.
* src/vm/jit/mips/md.c: Likewise.
* src/vm/jit/powerpc/md.c: Likewise.
* src/vm/jit/powerpc64/md.c: Likewise.
* src/vm/jit/sparc64/md.c: Likewise.
* src/vm/jit/x86_64/md.c: Likewise.
* src/vm/jit/i386/asmpart.S: Likewise.
* src/vm/jit/mips/asmpart.S: Likewise.
* src/vm/jit/powerpc/asmpart.S: Likewise.
* src/vm/jit/x86_64/asmpart.S: Likewise.
* src/vm/jit/intrp/asmpart.c: Likewise.
* src/vm/jit/i386/patcher.c (patcher_wrapper): Fixed comment.
* src/vm/jit/x86_64/patcher.c: Likewise.
tbfg [Fri, 11 Aug 2006 13:11:44 +0000 (13:11 +0000)]
* src/vm/jit/powerpc64/linux/md-abi.h: LA_WORD_SIZE renamed to
LA_SIZE_IN_POINTERS, value fixed
* src/vm/jit/powerpc64/linux/md-abi.c: LA_SIZE_IN_POINTERS rename
* src/vm/jit/powerpc64/linux/md.c (md_codegen_findmethod): PPC64 uses r14
instead of r13 (as PPC) for PV so opcodes changed.
* src/vm/jit/powerpc64/asmpart.S: Using LA_SIZE instead of LA_WORD_SIZE,
LA_SIZE_IN_POINTERS for SAVE_*_REGISTERS macros only.
twisti [Fri, 11 Aug 2006 10:13:28 +0000 (10:13 +0000)]
* src/vm/jit/powerpc/linux/md-abi.h (LA_WORD_SIZE): Renamed to
LA_SIZE_IN_POINTERS.
* src/vm/jit/powerpc/darwin/md-abi.h (LA_WORD_SIZE): Likewise.
* src/vm/jit/powerpc/linux/md-abi.c (md_param_alloc): Use
LA_SIZE_IN_POINTERS instead of LA_WORD_SIZE.
* src/vm/jit/powerpc/darwin/md-abi.c (md_param_alloc): Likewise.
* src/vm/jit/powerpc/asmpart.S: Likewise.
* src/vm/jit/stack.c (new_stack_analyse): Likewise.
(stack_analyse): Likewise.
* src/vm/jit/reg.c (reg_setup): Likewise.
tbfg [Thu, 10 Aug 2006 19:45:28 +0000 (19:45 +0000)]
* src/vm/jit/powerpc64/linux/md-abi.h: fixed linkage area defines for 64bit abi.
* src/vm/jit/powerpc64/linux/md-asm.h: fixed register name defines and
SAVE/RESTORE macros.
* src/vm/jit/powerpc64/asmpart.S (asm_vm_call_method): fixed no argument method
call path, coming back to C now.
twisti [Thu, 10 Aug 2006 09:10:58 +0000 (09:10 +0000)]
* src/boehm-gc/darwin_stop_world.c: Updated to version 6.8.
* src/boehm-gc/doc/README.changes: Likewise.
* src/boehm-gc/doc/README: Likewise.
* src/boehm-gc/include/gc.h: Likewise.
* src/boehm-gc/include/gc_config_macros.h: Likewise.
* src/boehm-gc/include/private/gcconfig.h: Likewise.
* src/boehm-gc/configure.in: Likewise.
* src/boehm-gc/version.h: Likewise.
* src/boehm-gc/malloc.c: Likewise.
* src/boehm-gc/pthread_support.c: Likewise.
* src/boehm-gc/os_dep.c: Likewise.
* src/boehm-gc/dyn_load.c: Likewise.
twisti [Wed, 9 Aug 2006 15:11:29 +0000 (15:11 +0000)]
* src/vm/jit/i386/codegen.c (codegen): Fixed ICMD_LMUL bug.
twisti [Wed, 9 Aug 2006 15:10:51 +0000 (15:10 +0000)]
* src/vm/jit/i386/emit.c (emit_load_s1): Coding style changes.
(emit_load_s2): Likewise.
(emit_load_s3): Likewise.
(emit_load_s1_low): Likewise.
(emit_load_s2_low): Likewise.
(emit_load_s1_high): Likewise.
(emit_store): Likewise.
edwin [Tue, 8 Aug 2006 19:57:19 +0000 (19:57 +0000)]
* src/vm/jit/jit.c (stackreq): Initialize this table statically.
(jit_init): Removed dynamic initialization of stackreq table.
edwin [Tue, 8 Aug 2006 19:23:44 +0000 (19:23 +0000)]
* src/native/vm/java_lang_reflect_Method.c
(Java_java_lang_reflect_Method_invokeNative): Removed unused
variables.
* src/native/vm/java_lang_reflect_Constructor.c (vm/access.h):
Include to fix warning.
edwin [Tue, 8 Aug 2006 19:18:49 +0000 (19:18 +0000)]
* src/native/vm/java_lang_reflect_Field.c (cacao_get_field_address):
Use access_check_caller.
edwin [Tue, 8 Aug 2006 16:21:22 +0000 (16:21 +0000)]
* src/vm/access.h, src/vm/access.c (access_check_caller): Added.
* src/native/vm/java_lang_reflect_Method.c
(Java_java_lang_reflect_Method_invokeNative): Use access_check_caller
for the access check.
* src/native/vm/java_lang_reflect_Constructor.c
(Java_java_lang_reflect_Constructor_constructNative): Likewise. This
should fix the mauve test case
java.lang.reflect.AccessibleObject.security.
* src/cacaoh/headers.c (stacktrace_getClassContext): Added dummy
implementation.
twisti [Tue, 8 Aug 2006 14:24:08 +0000 (14:24 +0000)]
* src/vm/jit/parse.h (new_block_insert): Renamed to
NEW_MARK_BASICBLOCK.
(block_insert): Renamed to MARK_BASICBLOCK.
* src/vm/jit/parse.c (new_fillextable): Likewise.
(fillextable): Likewise.
(new_parse): Likewise.
(parse): Likewise.
twisti [Tue, 8 Aug 2006 13:25:33 +0000 (13:25 +0000)]
* src/vm/jit/stack.c (new_stack_analyse): Replaced debug_nr with nr.
* src/vm/jit/verify/typecheck.c (typestate_reach): Likewise.
(verify_basic_block): Likewise.
* src/vm/jit/i386/codegen.c (codegen): Likewise.
* src/vm/jit/powerpc/codegen.c (codegen): Likewise.
* src/vm/jit/x86_64/codegen.c (codegen): Likewise.
twisti [Tue, 8 Aug 2006 13:03:13 +0000 (13:03 +0000)]
* src/vm/jit/cfg.c (cfg_insert_predecessors): New method.
(cfg_build): Use cfg_insert_predecessors for TABLESWITCH and
LOOKUPSWITCH.
edwin [Tue, 8 Aug 2006 13:01:28 +0000 (13:01 +0000)]
* src/vm/resolve.h, src/vm/resolve.c (new_resolve_method_lazy):
Removed curstack parameter.
(new_resolve_field_lazy): Likewise.
(new_constrain_unresolved_field): New function.
(new_constrain_unresolved_method): Likewise.
* src/vm/jit/parse.c (new_parse): Use new_resolve_field_lazy and
new_resolve_method_lazy.
edwin [Tue, 8 Aug 2006 12:56:15 +0000 (12:56 +0000)]
* src/vm/jit/stack.c (new_stack_analyse): For INVOKE* instructions,
store the live-through stack slots as additional arguments after
the live-in slots. These live-through slots are needed by the
verifier and by on-stack replacement in order to create a replacement
point at the call site.
NOTE: Currently the live-through slots are also stored for builtins.
This should change in the final version.
edwin [Tue, 8 Aug 2006 12:46:51 +0000 (12:46 +0000)]
* src/vm/jit/jit.h (NEW_INSTRUCTION_IS_RESOLVED): New macro.
(NEW_INSTRUCTION_IS_UNRESOLVED): Likewise.
(NEW_INSTRUCTION_MUST_CHECK): Likewise.