summaryrefslogtreecommitdiff
path: root/libjava/interpret-run.cc
Commit message (Collapse)AuthorAgeFilesLines
* * interpret.cc (DEBUG): Rename this ...davek2009-04-281-8/+8
| | | | | | | | | | | | | | | | | (__GCJ_DEBUG): ... to this throughout. * configure.ac: Likewise. * interpret-run.cc: Likewise. * prims.cc: Likewise. * gnu/classpath/natConfiguration.cc: Likewise. * include/java-assert.h: Likewise. * java/io/natVMObjectInputStream.cc: Likewise. * configure: Regenerate. * include/config.h.in: Regenerate. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@146869 138bc75d-0d04-0410-961f-82ee72b054a4
* 2008-09-17 Andrew Haley <aph@redhat.com>aph2008-09-231-27/+40
| | | | | | | | | | | | | | | | | | | | | | | | | PR libgcj/8995: * defineclass.cc (_Jv_ClassReader::handleCodeAttribute): Initialize thread_count. * include/java-interp.h (_Jv_InterpMethod::thread_count): New field. (_Jv_InterpMethod::rewrite_insn_mutex): New mutex. (_Jv_InterpFrame:: _Jv_InterpFrame): Pass frame_type. * interpret.cc (ThreadCountAdjuster): New class. (_Jv_InterpMethod::thread_count): New field. (_Jv_InitInterpreter): Initialize rewrite_insn_mutex. Increment and decrement thread_count field in methods. * interpret-run.cc (REWRITE_INSN): Check thread_count <= 1. (REWRITE_INSN): Likewise. Declare a ThreadCountAdjuster. * java/lang/reflect/natVMProxy.cc (run_proxy): Initialize frame type as frame_proxy. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@140593 138bc75d-0d04-0410-961f-82ee72b054a4
* 2008-08-22 Andrew Haley <aph@redhat.com>aph2008-08-221-6/+18
| | | | | | | | | | | | | | | | | PR libgcj/8895: * interpret-run.cc (REWRITE_INSN): Null this macro. * include/jvm.h (class _Jv_Linker): Declare resolve_mutex, init. (read_cpool_entry, write_cpool_entry): New functions. * link.cc (_Jv_Linker::resolve_mutex): new. (_Jv_Linker::init): New function. (_Jv_Linker::resolve_pool_entry): Use {read,write}_cpool_entry to ensure atomic access to constant pool entries. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@139492 138bc75d-0d04-0410-961f-82ee72b054a4
* 2007-12-06 David Daney <ddaney@avtrex.com>daney2007-12-061-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * include/ffi.h.in (FFI_SIZEOF_JAVA_RAW): Define if not already defined. (ffi_java_raw): New typedef. (ffi_java_raw_call, ffi_java_ptrarray_to_raw, ffi_java_raw_to_ptrarray): Change parameter types from ffi_raw to ffi_java_raw. (ffi_java_raw_closure) : Same. (ffi_prep_java_raw_closure, ffi_prep_java_raw_closure_loc): Change parameter types. * src/java_raw_api.c (ffi_java_raw_size): Replace FFI_SIZEOF_ARG with FFI_SIZEOF_JAVA_RAW. (ffi_java_raw_to_ptrarray): Change type of raw to ffi_java_raw. Replace FFI_SIZEOF_ARG with FFI_SIZEOF_JAVA_RAW. Use sizeof(ffi_java_raw) for alignment calculations. (ffi_java_ptrarray_to_raw): Same. (ffi_java_rvalue_to_raw): Add special handling for FFI_TYPE_POINTER if FFI_SIZEOF_JAVA_RAW == 4. (ffi_java_raw_to_rvalue): Same. (ffi_java_raw_call): Change type of raw to ffi_java_raw. (ffi_java_translate_args): Same. (ffi_prep_java_raw_closure_loc, ffi_prep_java_raw_closure): Change parameter types. * src/mips/ffitarget.h (FFI_SIZEOF_JAVA_RAW): Define for N32 ABI. 2007-12-06 David Daney <ddaney@avtrex.com> * interpret.cc: Replace ffi_raw with INTERP_FFI_RAW_TYPE throughout. (ncode_closure, ffi_closure_fun): Define versions for non-FFI_NATIVE_RAW_API case. * include/java-interp.h (INTERP_FFI_RAW_TYPE): Define and use to replace ffi_raw throughout. * jni.cc, interpret-run.cc: Replace ffi_raw with INTERP_FFI_RAW_TYPE throughout. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@130660 138bc75d-0d04-0410-961f-82ee72b054a4
* * interpret-run.cc (invokevirtual_resolved): Nullcheck object onaph2007-09-091-0/+1
| | | | | | | | TOS. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@128298 138bc75d-0d04-0410-961f-82ee72b054a4
* * gnu/gcj/jvmti/Breakpoint.java: Make abstract.kseitz2007-06-191-9/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (method): Change from private to protected. (location): Likewise. (Breakpoint): Change argument list to take only integer type. Add default constructor. (initialize_native): Renamed to ... (_save_insn): ... this to make function more explicit. (execute): New method. * gnu/gcj/jvmti/Breakpoint.h: Regenerate. * gnu/gcj/jvmti/natBreakpoint.cc (initialize_native): Rename to... (_save_insn): ... this. (install): Save the original instruction. * gnu/gcj/jvmti/NormalBreakpoint.java: New file. * gnu/gcj/jvmti/NormalBreakpoint.h: New file. * gnu/gcj/jvmti/natNormalBreakpoint.cc: New file. * gnu/gcj/jvmti/BreakpointManager.java (newBreakpoint): Instantiate a NormalBreakpoint instead of Breakpoint. * interpret-run.cc (insn_breakpoint): Remove breakpoint actions and call Breakpoint.execute to do them. * classpath/lib/gnu/gcj/jvmti/Breakpoint.class: Regenerate. * classpath/lib/gnu/gcj/jvmti/BreakpointManager.class: Likewise. * classpath/lib/gnu/gcj/jvmti/NormalBreakpoint.class: New file. * sources.am: Regenerate. * Makefile.am (nat_source_files): Add natNormalBreakpoint.cc. * Makefile.in: Regenerated. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@125834 138bc75d-0d04-0410-961f-82ee72b054a4
* * include/jvmti-int.h (_Jv_ReportJVMTIExceptionThrow):kseitz2007-05-041-22/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Declare. * interpret.cc (_Jv_ReportJVMTIExceptionThrow): New function. (find_catch_location): New function. (REPORT_EXCEPTION): New macro. (throw_internal_error): Use REPORT_EXCEPTION. (throw_incompatible_class_change_error): Likewise. (throw_null_pointer_exception): Likewise. (throw_class_format_error): Likewise. * interpret-run.cc (INTERP_REPORT_EXCEPTION)[DEBUG]: Set to REPORT_EXCEPTION. (INTERP_REPORT_EXCEPTION)[!DEBUG]: Make nop. (insn_new): Use INTERP_REPORT_EXCEPTION. (insn_athrow): Likewise. Remove previous JVMTI exception notifications. Add JVMTI ExceptionCatch notificatin. * jni.cc (_Jv_PopSystemFrame): Notify JVMTI clients of exception throw. * gnu/gcj/jvmti/ExceptionEvent.java: Removed. * gnu/gcj/jvmti/ExceptionEvent.h: Removed. * classpath/lib/gnu/gcj/jvmti/ExceptionEvent.class: Removed. * gnu/classpath/jdwp/natVMVirtualMachine.cc (jdwpExceptionCB): New function. (jdwpVMInitCB): Set Exception event handler and enable. * sources.am: Regenerated. * Makefile.in: Regenerated. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@124406 138bc75d-0d04-0410-961f-82ee72b054a4
* * interpret-run.cc (NEXT_INSN)[DEBUG]: Advance PC beforekseitz2007-05-011-2/+3
| | | | | | | | | | executing the instruction. * include/java-interp.h (_Jv_InterpFrame::get_pc): Subtract one insn from the frame's PC. _Jv_InterpMethod::run et al will advance the PC before executing the instruction. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@124313 138bc75d-0d04-0410-961f-82ee72b054a4
* * headers.txt (gnu/gcj/jvmti/Breakpoint.h)[DIRECT_THREADED]:kseitz2007-04-241-24/+35
| | | | | | | | | | | | Add _Jv_RewriteBreakpointInsn friend declaration. * gnu/gcj/jvmti/natBreakpoint.cc (_Jv_RewriteBreakpointInsn) [DIRECT_THREADED]: New function. * gnu/gcj/jvmti/Breakpoint.h: Regenerate. * interpret-run.cc: Define new REWRITE_INSN macro. Changed all occurrences of insn rewriting to call REWRITE_INSN. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@124111 138bc75d-0d04-0410-961f-82ee72b054a4
* 2007-04-23 Kyle Galloway <kgallowa@redhat.com>kgallowa2007-04-231-2/+7
| | | | | | | | | | | | | | | | * include/java-interp.h (_Jv_InterpFrame): Add pointer to the interpreter PC. (<init>): Add a pointer to the interpreter PC as a parameter with default value NULL. (get_pc): New method. * interpret-run.cc: If debugging, pass a pointer to the PC when creating the stack frame. * jvmti.cc (_Jv_JVMTI_GetStackTrace): Call _Jv_InterpFrame::get_pc to get the PC. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@124076 138bc75d-0d04-0410-961f-82ee72b054a4
* * interpret-run.cc [insn_breakpoint]: Save the originalkseitz2007-04-201-5/+6
| | | | | | | insn for the breakpoint before posting the JVMTI notification. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@123985 138bc75d-0d04-0410-961f-82ee72b054a4
* 2007-04-09 Kyle Galloway <kgallowa@redhat.com>kgallowa2007-04-091-3/+7
| | | | | | | | | * interpret-run.cc: If debugging, check if args is NULL before getting the "this" pointer. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@123681 138bc75d-0d04-0410-961f-82ee72b054a4
* 2007-04-02 Kyle Galloway <kgallowa@redhat.com>kgallowa2007-04-021-12/+82
| | | | | | | | | | | | | | | | | | | | | | | * interpret-run.cc: Add code to properly set up variable slots when debugging. * gnu/classpath/jdwp/natVMFrame.cc (checkJVMTIError): New function. (getObjectJVMTI): New function. (setObjectJVMTI): New function. (getIntJVMTI): New function. (setIntJVMTI): New function. (getLongJVMTI): New function. (setLongJVMTI): New function. (getFloatJVMTI): New function. (setFloatJVMTI): New function. (getDoubleJVMTI): New function. (setDoubleJVMTI): New function. (getFrameDepth): New function. (getValue): Implement. (setValue): Implement. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@123427 138bc75d-0d04-0410-961f-82ee72b054a4
* 2007-02-16 Kyle Galloway <kgallowa@redhat.com>kgallowa2007-02-161-0/+7
| | | | | | | | | | | | | | | | | | | | | * interpret.cc: Add extra DEBUG_LOCALS_INSN calls for multi-slot variables to maintain type info. * interpret-run.cc: Add local variable info to frame in the debug interpreter. * jvmti.cc (getLocalFrame): New method. (_Jv_JVMTI_GetLocalObject): New method. (_Jv_JVMTI_GetLocallInt): New method. (_Jv_JVMTI_GetLocalFloat): New method. (_Jv_JVMTI_GetLocalLong): New method. (_Jv_JVMTI_GetLocalDouble): New method. (_Jv_JVMTI_SetLocalObject): New method. (_Jv_JVMTI_SetLocalInt): New method. (_Jv_JVMTI_SetLocalFloat): New method. (_Jv_JVMTI_SetLocalLong): New method. (_Jv_JVMTI_SetLocalDouble): New method. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@122048 138bc75d-0d04-0410-961f-82ee72b054a4
* 2007-02-15 Kyle Galloway <kgallowa@redhat.com>kgallowa2007-02-161-36/+31
| | | | | | | | | | | | | | | | | | | * interpret.cc (_Jv_InterpMethod::check_handler): New method. * interpret-run.cc: Change the catch section to report exception events and to use the new check_handler method. * include/java-interp.h (_Jv_InterpMethod): Add check_handler. * gnu/gcj/jvmti/ExceptionEvent.java: New file. * gnu/gcj/jvmti/ExceptionEvent.h: New file. * gnu/gcj/jvmti/natExceptionEvent.cc: New file. * libjava/classpath/lib/gnu/gcj/jvmti/ExceptionEvent.class: New file. * sources.am: Added ExceptionEvent.java. * Makefile.am: Added natExceptionEvent.cc * Makefile.in: Regenerated. * include/Makefile.in: Regenerated. * gcj/Makefile.in: Regenerated. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@122019 138bc75d-0d04-0410-961f-82ee72b054a4
* 2007-02-06 Kyle Galloway <kgallowa@redhat.com>kgallowa2007-02-081-0/+9
| | | | | | | | | * include/java-interp.h (_Jv_InterpFrame): obj_ptr field added to hold "this" pointer for frame. (_Jv_InterpFrame::get_this_ptr): New method. * interpret-run.cc: Copy the "this" pointer into obj_ptr. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@121717 138bc75d-0d04-0410-961f-82ee72b054a4
* * include/jvmti-int.h (JVMTI): Declare member "enabled".kseitz2007-01-311-0/+35
| | | | | | | | | | | | | | | * jvmti.cc (JVMTI): Add member "enabled". (_Jv_GetJVMTIEnv): Mark JVMTI enabled. * interpret.cc (_Jv_InterpMethod::ncode): Use JVMTI::enabled instead of gnu::classpath::jdwp::Jdwp::isDebugging. (_Jv_CompileMethod): If JVMTI is enabled, use run_debug instead of run to compile the method. * interpret-run.cc [DEBUG] (NEXT_INSN): Add JVMTI single step notification. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@121442 138bc75d-0d04-0410-961f-82ee72b054a4
* * interpret.cc (run_debug): Remove comment.tromey2007-01-291-1/+1
| | | | | | | | | | | | | | | | | | | | | | (STOREA): Reformat. (STOREI): Likewise. (STOREF): Likewise. (STOREL): Likewise. (STORED): Likewise. (POKEI): Likewise. (run_normal_debug): Likewise. (run_synch_object_debug): Likewise. (run_class_debug): Likewise. (run_synch_class_debug): Likewise. (get1s): Likewise. (get1u): Likewise. (get2u): Likewise. (get4): Likewise. (NULLARRAYCHECK): Likewise. (ARRAYBOUNDSCHECK): Likewise. * interpret-run.cc (insn_target) <breakpoint>: Tidy. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@121313 138bc75d-0d04-0410-961f-82ee72b054a4
* * interpret.cc: Include gnu/gcj/jvmti/Breakpoint.h,kseitz2007-01-251-2/+27
| | | | | | | | gnu/gcj/jvmti/BreakpointManager.h, jvmti.h, and jvmti-int.h * interpret-run.cc: Implement insn_breakpoint. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@121155 138bc75d-0d04-0410-961f-82ee72b054a4
* * include/java-insns.h (enum java_code): Add op_breakpoint.kseitz2006-10-141-1/+6
| | | | | | | | | | | | | | | | | | | | * include/java-interp.h (_Jv_InterpMethod): Declare breakpoint_insn. [INTERPRETER]: Declare _Jv_InterpMethod::bp_insn_slot. [!INTERPRETER]: Declare _Jv_InterpMethod::bp_insn_opcode. (install_break): Declare. * interpret.cc (breakpoint_insn): Define breakpoint insn. (compile): Add op_breakpoint to "can't happen" cases. [INTERPRETER] Initialize breakpoint insn if necessary. (install_break): New method. * interpret-run.cc: Add op_breakpoint to insn_targets. Add insn_breakpoint label. * verify.cc (branch_prepass): Add op_breakpoint to unrecognized opcodes section of switch statement. (verify_instructions_0): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@117734 138bc75d-0d04-0410-961f-82ee72b054a4
* * include/java-interp.h (prepared): Change type to pc_t.kseitz2006-09-301-9/+9
| | | | | | | | | | | | | | | (insn_index): Define for both DIRECT_THREADED and bytecode interpreters. * interpret.cc [!DIRECT_THREADED] (POKEI): Fix typo. (insn_index): Implement for bytecode interpreter. * interpret-run.cc [!DIRECT_THREADED] (AVAL1U): Add _Jv_Linker class qualifier to resolve_pool_entry. [!DIRECT_THREADED] (AVAL2U): Likewise. [!DIRECT_THREADED] bytecode() cannot be called without an object. Changed all typos. [!DIRECT_THREADED] Likewise for defining_class. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@117333 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-08-15 Kyle Galloway <kgallowa@redhat.com>kgallowa2006-08-151-0/+2508
* include/java-interp.h (_Jv_InterpMethod::run_debug): New method. * interpret.cc: Added placeholder for debug variable type info to STORE* macros. (_Jv_InterpMethod::run_debug): New method. (_Jv_InterpMethod::run_sync_object_debug): New method. (_Jv_InterpMethod::run_sync_class_debug): New method. (_Jv_InterpMethod::run_normal_debug): New method. (_Jv_InterpMethod::run_class_debug): New method. (_Jv_InterpMethod::ncode ()): Changed to select either debug or normal versions of these functions. * interpret-run.cc: New file, holds contents of old _Jv_InterpMethod::run method. * stacktrace.cc (_Jv_StackTrace::UnwindTraceFn): Changed to select appropriate function for debug or normal mode. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@116167 138bc75d-0d04-0410-961f-82ee72b054a4