summaryrefslogtreecommitdiffstats
path: root/libjava/interpret.cc
Commit message (Collapse)AuthorAgeFilesLines
* Merged gcj-eclipse branch to trunk.tromey2007-01-091-25/+25
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@120621 138bc75d-0d04-0410-961f-82ee72b054a4
* * include/java-insns.h (enum java_code): Add op_breakpoint.kseitz2006-10-141-0/+25
| | | | | | | | | | | | | | | | | | | | * 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 (_Jv_InterpMethod::get_insn): Declare.kseitz2006-10-101-0/+40
| | | | | | | | | (_Jv_InterpMethod::set_insn): Declare. * interpret.cc (_Jv_InterpMethod::get_insn): New method. (_Jv_InterpMethod::get_insn): New method. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@117614 138bc75d-0d04-0410-961f-82ee72b054a4
* * include/java-interp.h (prepared): Change type to pc_t.kseitz2006-09-301-6/+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-2506/+138
| | | | | | | | | | | | | | | | | | | * 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
* 2006-07-13 Bryce McKinlay <mckinlay@redhat.com>bryce2006-07-141-1/+0
| | | | | | | * interpret.cc (_Jv_InterpMethod::run): Don't SAVE_PC for fdiv. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@115431 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-07-13 Bryce McKinlay <mckinlay@redhat.com>bryce2006-07-131-5/+22
| | | | | | | | | | * interpret.cc (_Jv_InterpMethod::compile): Add FIXME comment. (_Jv_InterpMethod::run): SAVE_PC before executing any instruction using resolve_pool_entry, as it can throw. Likewise for div/rem ops that can throw ArithmeticException. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@115422 138bc75d-0d04-0410-961f-82ee72b054a4
* PR libgcj/26861:tromey2006-05-041-8/+11
| | | | | | | | | * interpret.cc (run) <insn_getfield>: Removed 0xffff check. <insn_putfield>: Likewise. (NULLCHECK): Define unconditionally. * link.cc (ensure_class_linked): Removed dead code. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@113531 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-04-28 Bryce McKinlay <mckinlay@redhat.com>bryce2006-04-291-37/+20
| | | | | | | | | | | | | | | | | | | * link.cc (_Jv_Linker::resolve_pool_entry): Don't pass vtable_index to resolve_method. * interpret.cc (insn_invokevirtual): Use method->index, not vtable_index. Check accflag FINAL to determine finals. Only do explicit null check if calling a final method. Use throw_null_pointer_exception. (invokevirtual_resolved): Likewise. (null_pointer_exc): Remove static field. (throw_null_pointer_exception): Always define. Throw a new NullPointerException every time. * include/java-interp.h (_Jv_ResolvedMethod): Remove vtable_index field. * include/execution.h (resolve_method): Remove vtable_index argument. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@113370 138bc75d-0d04-0410-961f-82ee72b054a4
* * interpret.cc (do_allocate_static_fields): Added comment.tromey2006-03-031-1/+11
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@111683 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-02-08 Bryce McKinlay <mckinlay@redhat.com>bryce2006-02-091-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PR libgcj/25187: * gnu/gcj/io/natSimpleSHSStream.cc (gnu::gcj::io::SimpleSHSStream::shsFinal): Remove bogus cast. * interpret.cc (_Jv_InterpMethod::run): Simplify arguments to _Jv_InterpFrame(). * boehm.cc: #undef some autoconf macros before including gc-config.h. (_Jv_MarkObject): Don't mark the class, it is reachable via the vtable. (_Jv_MarkArray): Likewise. * java/lang/ref/natReference.cc (java::lang::ref::Reference::create): Simplify _Jv_GCRegisterDisappearingLink() call. * java/lang/Class.h (getComponentType): Use element_type. (element_type): New field declaration, as a union with "methods". * java/lang/natClassLoader.cc (_Jv_NewArrayClass): Use "element_type". * java/net/natVMNetworkInterfacePosix.cc (java::net::VMNetworkInterface::getInterfaces): Add "int" cast to avoid sign comparison warning. * include/java-interp.h (_Jv_InterpFrame): Take thread as second argument, not parent call frame. * include/x86_64-signal.h (MAKE_THROW_FRAME): Use "gregs" directly, without a cast. (restore_rt): Declare with hidden visibility, not "static". * posix.cc (_Jv_platform_initProperties): Make "tmpdir" a string constant. * jni.cc (_Jv_JNI_DestroyJavaVM): Use a union to avoid strict alias warning git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@110783 138bc75d-0d04-0410-961f-82ee72b054a4
* 2006-02-08 Bryce McKinlay <mckinlay@redhat.com>bryce2006-02-081-4/+4
| | | | | | | | | | | | | | | | | | | | * link.cc (_Jv_Linker::print_class_loaded): Declare string constants as "const char *". * verify.cc (verify_fail): Likewise. * gnu/classpath/natSystemProperties.cc (file_encoding): Likewise. * interpret.cc (throw_internal_error, throw_class_format_error): Likewise. * gcj/javaprims.h (_Jv_hashUtf8String, _Jv_Utf8Const::space_needed, _Jv_Utf8Const::init, _Jv_makeUtf8Const): Likewise. * java/lang/Class.h (_Jv_InitPrimClass): Likewise. * include/jvm.h (_Jv_strLengthUtf8, _Jv_makeUtf8Const): Likewise. * defineclass.cc (throw_internal_error, throw_no_class_def_found_error, is_attribute_name): Likewise. * prims.cc (_Jv_strLengthUtf8, _Jv_hashUtf8String, _Jv_Utf8Const::init, _Jv_makeUtf8Const, _Jv_InitPrimClass): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@110767 138bc75d-0d04-0410-961f-82ee72b054a4
* PR libgcj/26063, PR libgcj/17978, PR libgcj/10598:tromey2006-02-081-10/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * defineclass.cc (parse): Use _Jv_AllocRawObj. (read_constpool): Likewise. (read_one_code_attribute): Use internal function name. (handleConstantPool): Use _Jv_AllocRawObj. (handleInterfacesBegin): Likewise. (handleFieldsBegin): Likewise. (handleMethodsBegin): Likewise. (handleCodeAttribute): Likewise. (handleMethodsEnd): Likewise. * include/jvm.h (new_vtable): Use _Jv_AllocRawObj. * interpret.cc (do_allocate_static_fields): Use _Jv_AllocRawObj. Allocate reference fields separately. * link.cc (prepare_constant_time_tables): Use _Jv_AllocRawObj. (add_miranda_methods): Likewise. (generate_itable): Use _Jv_AllocBytes. (find_iindex): Likewise. (struct method_closure): New structure. (create_error_method): Use struct method_closure; allocate with _Jv_AllocBytes. (ensure_fields_laid_out): Separate reference fields from non-reference fields. * boehm.cc (_Jv_MarkObj): Mark vtable. Only mark direct fields of Class. (_Jv_MarkArray): Mark vtable. (_Jv_AllocRawObj): Don't allocate objects of size 0. * include/execution.h (_Jv_ExecutionEngine::allocate_static_fields): Added 'int' parameter. (struct _Jv_CompiledEngine): Updated. (class _Jv_InterpreterEngine): Updated. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@110763 138bc75d-0d04-0410-961f-82ee72b054a4
* * include/java-interp.h (insn_index): New declaration.kseitz2006-01-301-0/+75
| | | | | | | | | | (num_insn_slots): New private variable. (get_line_table): New declaration. * interpret.cc (insn_index): New function. (get_line_table): New function. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@110411 138bc75d-0d04-0410-961f-82ee72b054a4
* * include/java-interp.h (_Jv_CompileMethod): Add declaration.kseitz2006-01-181-14/+30
| | | | | | | | | | | (class _Jv_InterpMethod): Add _Jv_CompileMethod as a friend. * interpret.cc (_Jv_CompileMethod): New function. (run): Massage code to allow for NULL args. Update comments to explain NULL args. Return if compiling the method and args is NULL. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@109918 138bc75d-0d04-0410-961f-82ee72b054a4
* PR libgcj/16032:tromey2005-09-151-4/+47
| | | | | | | | | | | | | | | | | | | * interpret.cc (AVAL1U): Resolve pool entry when not direct threaded. (AVAL2U): Likewise. (compile): Handle 'ldc class' specially. (_Jv_InterpMethod::run): Added special 'ldc class' instruction. * verify.cc (check_constant): Handle 'ldc class' for 1.5 classes. * defineclass.cc (handleCodeAttribute): Set new field. (MAJOR_1_1, MINOR_1_1, MAJOR_1_2, MINOR_1_2, MAJOR_1_3, MINOR_1_3, MAJOR_1_4, MINOR_1_4, MAJOR_1_5, MINOR_1_5): New defines. (parse): Check version numbers. (_Jv_ClassReader::is_15): New field. (_Jv_ClassReader): Initialize it. * include/java-interp.h (_Jv_InterpMethod::is_15): New field. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@104325 138bc75d-0d04-0410-961f-82ee72b054a4
* 2005-07-06 Colin Walters <walters@verbum.org>tromey2005-07-081-0/+5
| | | | | | | | | | | * verify.cc (class _Jv_BytecodeVerifier) <op_new>: Don't check for abstract classes or interfaces here; JVM spec says it should throw an exception, so we'll do so later. * interpret.cc (run): Throw an InstantiationException for abstract classes and interfaces. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@101788 138bc75d-0d04-0410-961f-82ee72b054a4
* * interpret.cc (run) <insn_checkcast, checkcast_resolved>: Usetromey2005-06-291-5/+2
| | | | | | | _Jv_CheckCast. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@101427 138bc75d-0d04-0410-961f-82ee72b054a4
* * interpret.cc (compile): Handle case where table entry istromey2005-06-241-1/+5
| | | | | | | outside of PC range. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@101298 138bc75d-0d04-0410-961f-82ee72b054a4
* 2005-04-22 Anthony Green <green@redhat.com>green2005-04-221-1/+0
| | | | | | | | | * jni.cc (natrehash): Don't bother clearing memory again. * interpret.cc (do_allocate_static_fields): Ditto. * java/lang/natString.cc (rehash): Ditto. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@98583 138bc75d-0d04-0410-961f-82ee72b054a4
* 2005-03-10 Bryce McKinlay <mckinlay@redhat.com>bryce2005-03-101-78/+81
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | New Stack Trace infrastructure. * Makefile.am (libgcj0_convenience_la_SOURCES): Add stacktrace.cc. (gnu/gcj/runtime/StackTrace.lo): Removed. (ordinary_java_source_files): Remove obsolete files. (nat_source_files): Remove obsolete files. Add natVMThrowable.cc. * configure.host (fallback_backtrace_h): Set backtrace header for mingw and cygwin targets. * configure.ac: Make symlink for fallback backtrace headers. * Makefile.in, configure: Rebuilt. * defineclass.cc (_Jv_ClassReader::read_one_code_attribute): Read 'LineNumberTable' attribute. (_Jv_ClassReader::read_one_class_attribute): Read 'SourceFile' attribute. (_Jv_ClassReader::handleCodeAttribute): Initialize method line table fields. * exception.cc: Remove unused include. * interpret.cc (DIRECT_THREADED, insn_slot): Moved to java-interp.h. (SAVE_PC): New macro. Save current PC in the interpreter frame. (NULLCHECK, NULLARRAYCHECK): Use SAVE_PC. (_Jv_InterpMethod::compile): Translate bytecode PC values in the line table to direct threaded instruction values. (_Jv_StartOfInterpreter, _Jv_EndOfInterpreter): Removed. (_Jv_InterpMethod::run): No longer member function. All callers updated. Remove _Unwind calls. Call SAVE_PC whenever a call is made or where an instruction could throw. (_Jv_InterpMethod::get_source_line): New. Look up source line numbers in line_table. * prims.cc (catch_segv): Construct exception after MAKE_THROW_FRAME. (catch_fpe): Likewise. * stacktrace.cc: New file. Stack trace code now here. * gnu/gcj/runtime/MethodRef.java: * gnu/gcj/runtime/NameFinder.java: Mostly reimplemented. Now simply calls addr2line to look up PC addresses in a given binary or shared library. * gnu/gcj/runtime/StackTrace.java, gnu/gcj/runtime/natNameFinder.cc, gnu/gcj/runtime/natStackTrace.cc: Removed. * gnu/java/lang/MainThread.java (call_main): Add comment warning that this function name is specially recognised by the stack trace code and shouldn't be changed. * include/java-interp.h (DIRECT_THREADED, insn_slot): Moved here. (struct _Jv_LineTableEntry, line_table, line_table_len): New. (_Jv_InterpMethod::run): Update declaration. (_Jv_StackTrace_): New friend. NameFinder and StackTrace no longer friends. (_Jv_InterpFrame): Renamed from _Jv_MethodChain. Add PC field. * include/java-stack.h: New file. Declarations for stack tracing. * include/jvm.h (_Jv_Frame_info): Removed. * java/lang/Class.h: Update friend declarations. * java/lang/VMClassLoader.java (getSystemClassLoader): Simplify exception message. * java/lang/VMThrowable.java (fillInStackTrace): Now native. (getStackTrace): Now native. (data): New RawDataManaged field. * java/lang/natClass.cc: Update includes. (forName): Use _Jv_StackTrace::GetCallingClass for calling-classloader check. (getClassLoader): Likewise. * java/lang/natRuntime.cc: Update includes. (_load): Use _Jv_StackTrace::GetFirstNonSystemClassLoader. * java/lang/natVMSecurityManager.cc: Update includes. (getClassContext): Use _Jv_StackTrace::GetClassContext. * java/lang/natVMThrowable.cc: New file. Native methods for VMThrowable. * java/lang/reflect/natArray.cc: Update includes. (newInstance): Use _Jv_StackTrace::GetCallingClass to implement accessibility check. * java/lang/reflect/natConstructor.cc: Update includes. (newInstance): Use _Jv_StackTrace::GetCallingClass to implement accessibility check. * java/lang/reflect/natField.cc: Update includes. (getAddr): Use _Jv_StackTrace::GetCallingClass to implement accessibility check. * java/lang/reflect/natMethod.cc: Update includes. (invoke): Use _Jv_StackTrace::GetCallingClass to implement accessibility check. * java/util/natResourceBundle.cc: Update includes. (getCallingClassLoader): Use _Jv_StackTrace::GetCallingClass. * java/util/logging/natLogger.cc: Update includes. Use _Jv_StackTrace::GetCallerInfo to get call-site info. * sysdep/generic/backtrace.h: Fallback backtrace code. Stub implementation. * sysdep/i386/backtrace.h: New. Fallback backtrace code. i386 implementation. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@96253 138bc75d-0d04-0410-961f-82ee72b054a4
* PR libgcj/15719:tromey2005-01-051-2/+2
| | | | | | | | * interpret.cc (run) <insn_dcmpl, insn_dcmpg>: Set tmpval correctly. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@92966 138bc75d-0d04-0410-961f-82ee72b054a4
* * Merged gcj-abi-2-dev-branch to trunk.tromey2004-11-251-22/+587
| | | | | | | | (Actual changes too large to list in the commit message; see ChangeLog.) git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@91270 138bc75d-0d04-0410-961f-82ee72b054a4
* 2004-10-13 Andrew Haley <aph@redhat.com>aph2004-10-141-13/+13
| | | | | | | | | | | | | * interpret.cc (_Jv_InterpMethod::run): Initialize _Jv_StartOfInterpreter. (_Jv_StartOfInterpreter, _Jv_EndOfInterpreter): Functions removed. (_Jv_StartOfInterpreter, _Jv_EndOfInterpreter): New variables. * gnu/gcj/runtime/natStackTrace.cc (fillInStackTrace): Use _Unwind_FindEnclosingFunction to discover whether PC is within the interpreter. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@89037 138bc75d-0d04-0410-961f-82ee72b054a4
* * interpret.cc (run): Correctly access libffi return values ofuweigand2004-07-131-3/+3
| | | | | | | integral smaller-than-int type; these are implicitly promoted. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@84645 138bc75d-0d04-0410-961f-82ee72b054a4
* 2004-07-13 Bryce McKinlay <mckinlay@redhat.com>bryce2004-07-131-2/+22
| | | | | | | | | | | | | PR libgcj/7587 * interpret.cc (compile_mutex): New. (_Jv_InitInterpreter): New. Initialize compile_mutex. (run): Lock compile_mutex before calling compile() if compilation is required. * prims.cc (_Jv_CreateJavaVM): Call _Jv_InitInterpreter(). * include/java-interp.h (_Jv_InitInterpreter): Declare. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@84644 138bc75d-0d04-0410-961f-82ee72b054a4
* 2004-07-12 Bryce McKinlay <mckinlay@redhat.com>bryce2004-07-131-35/+27
| | | | | | | | | | | PR libgcj/15713 * include/jvm.h (_Jv_value): New union type. * gcj/field.h (_Jv_Field): Add new _addr union field variants * interperet.cc (run): Use _Jv_value union type and *_addr _Jv_Field union members. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@84596 138bc75d-0d04-0410-961f-82ee72b054a4
* * interpret.cc (run): Handle wide fload.tromey2004-06-101-1/+5
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@82889 138bc75d-0d04-0410-961f-82ee72b054a4
* 2004-04-16 Bryce McKinlay <mckinlay@redhat.com>bryce2004-04-161-6/+2
| | | | | | | | * interpret.cc (_Jv_InterpMethod::run): Update _Jv_AllocObject arguments to match new signature. Remove FIXME comments. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@80766 138bc75d-0d04-0410-961f-82ee72b054a4
* 2003-10-14 Paolo Bonzini <bonzini@gnu.org>tromey2003-10-141-3/+3
| | | | | | | | | * interpret.cc (_Jv_InterpMethod::run): Don't use libffi types, they were meant to be internal. * gcj/javaprims.h (_Jv_ulong): New typedef. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@72482 138bc75d-0d04-0410-961f-82ee72b054a4
* * defineclass.cc (handleMethodsEnd): Precompute code for statictromey2003-01-241-16/+31
| | | | | | | | | | | | | | | | | method. (handleCodeAttribute): Likewise. * resolve.cc (ncode): Use run_class for unsynchronized static methods. * include/java-interp.h (class _Jv_InterpMethod): Declare run_class. * interpret.cc (run_synch_class): Initialize class. (run) [insn_invokestatic]: Don't initialize class. [insn_anewarray]: Likewise. [insn_multianewarray]: Likewise. (run_class): New function. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@61727 138bc75d-0d04-0410-961f-82ee72b054a4
* * boehm.cc: Remove stray semicolon.mmitchel2002-12-281-1/+1
| | | | | | | | | | | | | | | | | * interpret.cc: Likewise. * prims.cc: Likewise. * verify.cc (_Jv_BytecodeVerifier::verify_fail): Move definition earlier to ensure default arguments are processed. * gcj/array.h (JArray): Add forward declaration. (elements): Likewise. * gcj/javaprim.h: Remove stray semicolons. * include/bohm-gc.h: Likewise. * include/jni.h: Likewise. * include/jvm.h: Likewise. * java/lang/Class.h (_Jv_GetArrayClass): Declare _Jv_NewArrayClass. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@60556 138bc75d-0d04-0410-961f-82ee72b054a4
* * include/java-interp.h (class _Jv_InterpMethod): Addedtromey2002-12-061-1/+1
| | | | | | | | | | JV_MARKOBJ_DECL. * boehm.cc (_Jv_MarkObj): Consolidated interpreter code. Also mark `prepared' field of interpreted method. * interpret.cc (compile): Use _Jv_AllocBytes. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@59900 138bc75d-0d04-0410-961f-82ee72b054a4
* * verify.cc (type::compatible): Check initialization statustromey2002-11-261-2/+8
| | | | | | | | | first. * interpret.cc (run) [insn_invokespecial, invokespecial_resolved]: Don't use NULLCHECK. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@59494 138bc75d-0d04-0410-961f-82ee72b054a4
* * interpret.cc (_Jv_InterpMethod::run): Use UINT32 instead ofuweigand2002-10-081-1/+1
| | | | | | | unsigned long temporary to implement insn_iushr shifts. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@57936 138bc75d-0d04-0410-961f-82ee72b054a4
* * include/jvm.h (struct _Jv_frame_info): New structure.tromey2002-08-291-1/+25
| | | | | | | | | | | | | | | | | | | | | | | * gnu/gcj/runtime/natNameFinder.cc: Include StringBuffer.h, java-interp.h. (lookupInterp): New method. (getAddrAsString): Use _Jv_frame_info. (dladdrLookup): Likewise. * gnu/gcj/runtime/NameFinder.java (lookup): Try to look up interpreted frame. (lookupInterp): Declare. * java/lang/natVMThrowable.cc: Include Thread.h, java-interp.h. (fillInStackTrace): Collect information on interpreted frames. Use _Jv_frame_info. * interpret.cc: Include Thread.h. (run): Create and push _Jv_MethodChain object. (_Jv_EndOfInterpreter): New global. * java/lang/Thread.java (interp_frame): New field. * include/java-interp.h (struct _Jv_MethodChain): New structure. Include NameFinder.h. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@56657 138bc75d-0d04-0410-961f-82ee72b054a4
* * verify.cc (branch_prepass): Updated for change to exceptiontromey2002-06-241-634/+1418
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | handler type. (verify_instructions_0): Likewise. * defineclass.cc (handleCodeAttribute): Initialize `prepared'. (handleExceptionTableEntry): Updated for change to exception handler type. * java/lang/Class.h (Class): Removed _Jv_InterpMethodInvocation. * include/java-interp.h (_Jv_InterpMethodInvocation): Removed. (union _Jv_InterpPC): New. (class _Jv_InterpException): Changed types to _Jv_InterpPC. (class _Jv_InterpMethod): Added new `prepared' field. (class _Jv_InterpMethod): Added `compile' method. Removed `continue1' and `find_exception'. Changed arguments to `run'. * interpret.cc (union insn_slot): New. (find_exception): Removed. (run_normal): Removed most logic. (run_synch_object): Likewise; also, use JvSynchronize. (run_synch_class): Likewise. (run): Removed. (continue1): Renamed as `run'. Compile bytecode if required. Add new code to allow refinement of direct-threaded code at runtime. Handle exceptions. (SAVE_PC): Removed. (compile): New method. (SET_ONE, SET_INSN, SET_INT, SET_DATUM): New defines. (NULLARRAYCHECK): Don't use SAVE_PC. (pc_t): New typedef. (TAKE_GOTO, GET1S, GET1U, GET2U, AVAL1U, AVAL2U, AVAL2UP, SKIP_GOTO, GOTO_VAL, PCVAL, AMPAMP): New macros. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@54968 138bc75d-0d04-0410-961f-82ee72b054a4
* * verify.cc (construct_primitive_array_type) [void_type]: Newtromey2002-04-261-1/+1
| | | | | | | | | | | | | | case. (branch_prepass): Added dummy entries for unused instruction values. (verify_instructions_0): Likewise. * interpret.cc (continue1): Comment fix. * include/java-insns.h (op_xxxunusedxxx1): Removed. * Makefile.in: Rebuilt. * Makefile.am: Added -Wswitch-enum. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@52814 138bc75d-0d04-0410-961f-82ee72b054a4
* 2002-02-10 Andreas Tobler <toa@pop.agri.ch>tromey2002-02-101-1/+1
| | | | | | | * interpret.cc (continue1) [insn_f2l]: Use PUSHL, not PUSHI. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@49655 138bc75d-0d04-0410-961f-82ee72b054a4
* * interpret.cc (convert): New function.tromey2002-02-081-4/+37
| | | | | | | | | (continue1) [insn_d2i, insn_d2l, insn_f2i, insn_f2l]: Use convert. Include Long.h. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@49621 138bc75d-0d04-0410-961f-82ee72b054a4
* 2002-01-11 Chris Sears <cbsears_sf@yahoo.com>tromey2002-01-121-41/+25
| | | | | | | | | | | | | | | | * interpret.cc (NULLARRAYCHECK): New macro. (SAVE_PC): Just store `pc'. (find_exception): Subtract one from `pc' here. (continue1) [insn_iaload, insn_laload, insn_faload, insn_daload, insn_aaload, insn_baload, insn_caload, insn_saload, insn_iastore, insn_lastore, insn_fastore, insn_dastore, insn_aastore, insn_bastore, insn_castore, insn_sastore]: Use NULLARRAYCHECK, and don't call SAVE_PC. (continue1) [insn_fdiv, insn_ddiv, insn_frem, insn_drem]: Don't call SAVE_PC. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@48787 138bc75d-0d04-0410-961f-82ee72b054a4
* 2002-01-08 Chris Sears <cbsears_sf@yahoo.com>tromey2002-01-081-65/+25
| | | | | | | | | | | | * interpret.cc (ARRAYBOUNDSCHECK): New macro. (continue1) [insn_iaload, insn_laload, insn_faload, insn_daload, insn_aaload, insn_baload, insn_caload, insn_saload, insn_iastore, insn_lastore, insn_fastore, insn_dastore, insn_aastore, insn_bastore, insn_castore, insn_sastore]: Use it. (continue1) [insn_arraylength]: Check for null array. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@48652 138bc75d-0d04-0410-961f-82ee72b054a4
* Eliminate use of C++ static constructors.bryce2001-10-161-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * interpret.cc: Remove static Utf8Consts. Use namespace gcj. * jni.cc: Likewise. * resolve.cc: Likewise. * defineclass.cc: Likewise. (_Jv_ClassReader::handleClassBegin): Synchronize call to _Jv_RegisterClass. * include/jvm.h (void_signature, clinit_name, init_name, finit_name): Declare in namespace gcj. * java/lang/Class.h (Class): Remove initialization for primitive types. (friend void _Jv_InitPrimClass): This is in prims.cc. * prims.cc (_Jv_InitPrimClass): Do primitive type initialization here instead. (void_signature, clinit_name, init_name, finit_name): Define in namespace gcj. (_Jv_CreateJavaVM): Call _Jv_InitThreads, _Jv_InitGC, and _Jv_InitializeSyncMutex from here. Initialize Utf8 constants. Initialize primitive types. * java/lang/natClassLoader.cc (_Jv_RegisterClasses): Don't call initialization routines. Don't synchronize. * java/lang/natRuntime.cc (_load): Synchronize on java.lang.Class across dlopen call. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@46282 138bc75d-0d04-0410-961f-82ee72b054a4
* * include/jvm.h (_Jv_VTable): Handle function descriptors for ia64;rth2001-09-211-1/+1
| | | | | | | | | | | add get_method, set_method, vtable_elt_size, new_vtable. (_Jv_ArrayVTable): Derive from _Jv_VTable. * resolve.cc (_Jv_PrepareClass): Use new _Jv_VTable methods. * interpret.cc (_Jv_InterpMethod::continue1): Likewise. * java/lang/natClassLoader.cc (_Jv_NewArrayClass): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@45734 138bc75d-0d04-0410-961f-82ee72b054a4
* * exception.cc (java_eh_info): Make value type jthrowable.rth2001-03-261-12/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | (_Jv_type_matcher): Remove now unneeded cast. (_Jv_Throw): Make argument type jthrowable. Munge name for SJLJ_EXCEPTIONS here ... * gcj/cni.h: ... not here. (JvThrow): Remove. * gcj/javaprims.h (_Jv_Throw, _Jv_Sjlj_Throw): Update declarations. * defineclass.cc, interpret.cc, jni.cc, posix-threads.cc, prims.cc, resolve.cc, gnu/gcj/runtime/natFirstThread.cc, gnu/gcj/xlib/natDrawable.cc, gnu/gcj/xlib/natFont.cc, gnu/gcj/xlib/natWMSizeHints.cc, gnu/gcj/xlib/natWindowAttributes.cc, gnu/gcj/xlib/natXImage.cc, java/io/natFile.cc, java/io/natFileDescriptorEcos.cc, java/io/natFileDescriptorPosix.cc, java/io/natFileDescriptorWin32.cc, java/io/natFileWin32.cc, java/lang/natClass.cc, java/lang/natClassLoader.cc, java/lang/natDouble.cc, java/lang/natObject.cc, java/lang/natPosixProcess.cc, java/lang/natRuntime.cc, java/lang/natString.cc, java/lang/natSystem.cc, java/lang/natThread.cc, java/lang/reflect/natArray.cc, java/lang/reflect/natConstructor.cc, java/lang/reflect/natField.cc, java/lang/reflect/natMethod.cc, java/util/zip/natDeflater.cc, java/util/zip/natInflater.cc: Use throw, not JvThrow or _Jv_Throw. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@40838 138bc75d-0d04-0410-961f-82ee72b054a4
* 2001-02-15 Anthony Green <green@redhat.com>green2001-02-151-10/+7
| | | | | | | | | | | * defineclass.cc: Don't include alloca.h. (prepare_pool_entry): Convert alloca to __builtin_alloca. * interpret.cc (run_normal): Ditto. (continue1): Ditto. * java/lang/natDouble.cc (parseDouble): Ditto. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@39719 138bc75d-0d04-0410-961f-82ee72b054a4
* 2001-02-12 Jeff Sturm <jeff.sturm@commerceone.com>tromey2001-02-121-2/+6
| | | | | | | | | | Tom Tromey <tromey@redhat.com> * interpret.cc (continue1): [insn_invokevirtual] Do an explicit null pointer check. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@39607 138bc75d-0d04-0410-961f-82ee72b054a4
* From Arno J. Klaassen:tromey2000-10-201-0/+1
| | | | | | | | * interpret.cc: Include <stdlib.h> for alloca. * defineclass.cc: Include <stdlib.h> for alloca. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36986 138bc75d-0d04-0410-961f-82ee72b054a4
* * java/lang/reflect/natField.cc (BooleanClass): Don't define.tromey2000-10-061-3/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * java/lang/reflect/natArray.cc (BooleanClass): Don't define. * java/lang/Class.h (Object): Added `class$' field. * java/lang/Object.h (Object): Added `class$' field. * defineclass.cc (ClassClass): Use `class$' form. (ClassObject): Likewise. * resolve.cc (ClassObject): Use `class$' form. (ObjectClass): Likewise. * interpret.cc (ClassError): Removed. * java/net/natPlainDatagramSocketImpl.cc (BooleanClass): Use `class$' form. (IntegerClass): Likewise. * java/net/natPlainSocketImpl.cc (BooleanClass): Use `class$' form. * java/lang/natClassLoader.cc (CloneableClass): Use `class$' form. (ObjectClass, ClassClass, VMClassLoaderClass, ClassLoaderClass, SerializableClass): Likewise. Include Serializable.h, Cloneable.h. * java/lang/natSystem.cc (SystemClass): Removed. (init_properties): Use `class$' form. * java/lang/natObject.cc (CloneableClass): Removed. (clone): Use `class$' form. * java/lang/natClass.cc (CloneableClass): Use `class$' form. (ObjectClass, ErrorClass, ClassClass, MethodClass, FieldClass, ConstructorClass): Likewise. * java/lang/reflect/natMethod.cc (ObjectClass): Use `class$' form. (ClassClass, VoidClass, ByteClass, ShortClass, CharacterClass, IntegerClass, LongClass, FloatClass, DoubleClass): Likewise. * java/io/natObjectInputStream.cc (ObjectClass): Use `class$' form. (ClassClass): Likewise. * include/jvm.h (StringClass): Use `class$' form. * prims.cc (ObjectClass): Removed. (_Jv_RunMain): Use `class$' form. (_Jv_AllocObject): Likewise. * jni.cc (ClassClass): Use `class$' form. (ThrowableClass): Likewise. (ObjectClass): Likewise. (MethodClass): Likewise. (ThreadGroupClass): Likewise. (NativeThreadClass): Likewise. * boehm.cc (ObjectClass): Removed. (ClassClass): Removed. (_Jv_MarkObj): Use `class$' form. * gcj/field.h (JvFieldIsRef): Use `class$' form. Include RawData.h. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36740 138bc75d-0d04-0410-961f-82ee72b054a4
* * defineclass.cc: Include alloca.h only if HAVE_ALLOCA_H.aoliva2000-09-141-4/+7
| | | | | | | | | * java/lang/natDouble.cc: Likewise. * java/lang/reflect/natMethod.cc: Likewise. * interpret.cc: Likewise. Fix NULLCHECKs that tested a _Jv_word. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@36404 138bc75d-0d04-0410-961f-82ee72b054a4
OpenPOWER on IntegriCloud