Ulrich Weigand
5549179ffb
interpret.cc (run): Correctly access libffi return values of integral smaller-than-int type...
...
* interpret.cc (run): Correctly access libffi return values of
integral smaller-than-int type; these are implicitly promoted.
From-SVN: r84645
2004-07-13 21:06:33 +00:00
Bryce McKinlay
6187fd28ad
re PR libgcj/7587 (direct threaded interpreter not thread-safe)
...
2004-07-13 Bryce McKinlay <mckinlay@redhat.com>
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.
From-SVN: r84644
2004-07-13 22:03:03 +01:00
Bryce McKinlay
7a1c3d48ab
re PR libgcj/15713 (compile interpret.cc with -fno-strict-aliasing)
...
2004-07-12 Bryce McKinlay <mckinlay@redhat.com>
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.
From-SVN: r84596
2004-07-13 02:04:47 +01:00
Tom Tromey
618df7453e
* interpret.cc (run): Handle wide fload.
...
From-SVN: r82889
2004-06-10 06:18:18 +00:00
Bryce McKinlay
bf7ad40253
interpret.cc (_Jv_InterpMethod::run): Update _Jv_AllocObject arguments to match new signature.
...
2004-04-16 Bryce McKinlay <mckinlay@redhat.com>
* interpret.cc (_Jv_InterpMethod::run): Update _Jv_AllocObject
arguments to match new signature. Remove FIXME comments.
From-SVN: r80766
2004-04-16 20:38:27 +01:00
Paolo Bonzini
415c96ca6a
interpret.cc (_Jv_InterpMethod::run): Don't use libffi types, they were meant to be internal.
...
2003-10-14 Paolo Bonzini <bonzini@gnu.org>
* interpret.cc (_Jv_InterpMethod::run): Don't
use libffi types, they were meant to be internal.
* gcj/javaprims.h (_Jv_ulong): New typedef.
From-SVN: r72482
2003-10-14 17:53:42 +00:00
Tom Tromey
4c98b1b078
defineclass.cc (handleMethodsEnd): Precompute code for static method.
...
* defineclass.cc (handleMethodsEnd): Precompute code for static
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.
From-SVN: r61727
2003-01-24 19:58:21 +00:00
Mark Mitchell
dfe5a36e95
boehm.cc: Remove stray semicolon.
...
* boehm.cc: Remove stray semicolon.
* 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.
From-SVN: r60556
2002-12-28 06:38:52 +00:00
Tom Tromey
b4d0051bd9
java-interp.h (class _Jv_InterpMethod): Added JV_MARKOBJ_DECL.
...
* include/java-interp.h (class _Jv_InterpMethod): Added
JV_MARKOBJ_DECL.
* boehm.cc (_Jv_MarkObj): Consolidated interpreter code. Also
mark `prepared' field of interpreted method.
* interpret.cc (compile): Use _Jv_AllocBytes.
From-SVN: r59900
2002-12-06 23:41:38 +00:00
Tom Tromey
b0fbe966b1
verify.cc (type::compatible): Check initialization status first.
...
* verify.cc (type::compatible): Check initialization status
first.
* interpret.cc (run) [insn_invokespecial, invokespecial_resolved]:
Don't use NULLCHECK.
From-SVN: r59494
2002-11-26 06:51:14 +00:00
Ulrich Weigand
b7932de6a1
interpret.cc (_Jv_InterpMethod::run): Use UINT32 instead of unsigned long temporary to implement insn_iushr shifts.
...
* interpret.cc (_Jv_InterpMethod::run): Use UINT32 instead of
unsigned long temporary to implement insn_iushr shifts.
From-SVN: r57936
2002-10-08 18:12:42 +00:00
Tom Tromey
3308c46e47
jvm.h (struct _Jv_frame_info): New structure.
...
* include/jvm.h (struct _Jv_frame_info): New structure.
* 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.
From-SVN: r56657
2002-08-29 17:53:28 +00:00
Tom Tromey
fdae83abe7
verify.cc (branch_prepass): Updated for change to exception handler type.
...
* verify.cc (branch_prepass): Updated for change to exception
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.
From-SVN: r54968
2002-06-24 20:38:47 +00:00
Tom Tromey
b446a5f169
verify.cc (construct_primitive_array_type): New case.
...
* verify.cc (construct_primitive_array_type) [void_type]: New
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.
From-SVN: r52814
2002-04-26 22:39:29 +00:00
Andreas Tobler
1347adff0d
interpret.cc (continue1): Use PUSHL, not PUSHI.
...
2002-02-10 Andreas Tobler <toa@pop.agri.ch>
* interpret.cc (continue1) [insn_f2l]: Use PUSHL, not PUSHI.
From-SVN: r49655
2002-02-10 18:32:48 +00:00
Tom Tromey
30d287947e
interpret.cc (convert): New function.
...
* interpret.cc (convert): New function.
(continue1) [insn_d2i, insn_d2l, insn_f2i, insn_f2l]: Use
convert.
Include Long.h.
From-SVN: r49621
2002-02-08 20:00:40 +00:00
Chris Sears
cec718682b
interpret.cc (NULLARRAYCHECK): New macro.
...
2002-01-11 Chris Sears <cbsears_sf@yahoo.com>
* 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.
From-SVN: r48787
2002-01-12 00:19:05 +00:00
Chris Sears
00cc944db9
interpret.cc (ARRAYBOUNDSCHECK): New macro.
...
2002-01-08 Chris Sears <cbsears_sf@yahoo.com>
* 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.
From-SVN: r48652
2002-01-08 19:07:46 +00:00
Bryce McKinlay
107abb2f61
Eliminate use of C++ static constructors.
...
* 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.
From-SVN: r46282
2001-10-16 09:35:17 +01:00
Richard Henderson
f5ddf15465
jvm.h (_Jv_VTable): Handle function descriptors for ia64...
...
* include/jvm.h (_Jv_VTable): Handle function descriptors for ia64;
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.
From-SVN: r45734
2001-09-21 09:59:12 -07:00
Richard Henderson
b3208f56cb
exception.cc (java_eh_info): Make value type jthrowable.
...
* exception.cc (java_eh_info): Make value type jthrowable.
(_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.
From-SVN: r40838
2001-03-25 23:05:32 -08:00
Anthony Green
c220009946
defineclass.cc: Don't include alloca.h.
...
2001-02-15 Anthony Green <green@redhat.com>
* 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.
From-SVN: r39719
2001-02-15 14:03:14 +00:00
Jeff Sturm
c6b33a47ea
interpret.cc (continue1): [insn_invokevirtual] Do an explicit null pointer check.
...
2001-02-12 Jeff Sturm <jeff.sturm@commerceone.com>
Tom Tromey <tromey@redhat.com>
* interpret.cc (continue1): [insn_invokevirtual] Do an explicit
null pointer check.
Co-Authored-By: Tom Tromey <tromey@redhat.com>
From-SVN: r39607
2001-02-12 17:30:00 +00:00
Tom Tromey
a9770f9a91
From Arno J. Klaassen:
...
* interpret.cc: Include <stdlib.h> for alloca.
* defineclass.cc: Include <stdlib.h> for alloca.
From-SVN: r36986
2000-10-20 23:25:57 +00:00
Tom Tromey
1d336a099d
natField.cc (BooleanClass): Don't define.
...
* java/lang/reflect/natField.cc (BooleanClass): Don't define.
* 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.
From-SVN: r36740
2000-10-06 01:49:32 +00:00
Alexandre Oliva
e7e18a21d2
defineclass.cc: Include alloca.h only if HAVE_ALLOCA_H.
...
* defineclass.cc: Include alloca.h only if HAVE_ALLOCA_H.
* java/lang/natDouble.cc: Likewise.
* java/lang/reflect/natMethod.cc: Likewise.
* interpret.cc: Likewise. Fix NULLCHECKs that tested a _Jv_word.
From-SVN: r36404
2000-09-14 07:51:56 +00:00
Bryce McKinlay
79c2c6da2c
[multiple changes]
...
2000-08-02 Bryce McKinlay <bryce@albatross.co.nz>
* interpret.cc (_Jv_InterpMethod::continue1): Type of `fun' changed
to match C declaration in ffi.h.
* Makefile.am: Add java/awt/Button.java.
* Makefile.in: Rebuilt.
2000-07-29 Alexandre Petit-Bianco <apbianco@cygnus.com>
* java/lang/reflect/natMethod.cc (_Jv_CallAnyMethodA): Type of the
cast of the second argument to `ffi_raw_call' changed to match
prototype.
2000-07-26 Alexandre Petit-Bianco <apbianco@cygnus.com>
* jni.cc (_Jv_JNIMethod::call): Type of the cast of the second
argument to `ffi_raw_call' changed to match prototype.
From-SVN: r35418
2000-08-02 04:25:13 +01:00
Andrew Haley
99f7658d7c
interpret.cc (continue1): Insert missing break into switch.
...
2000-07-26 Andrew Haley <aph@cygnus.com>
* interpret.cc (continue1): Insert missing break into switch.
From-SVN: r35316
2000-07-28 13:11:45 +00:00
Bryce McKinlay
f1aa7a521a
cni.h: Include <string.h>.
...
2000-05-31 Bryce McKinlay <bryce@albatross.co.nz>
* gcj/cni.h: Include <string.h>.
* defineclass.cc: Include <alloca.h>.
* interpret.cc: Ditto.
* gij.cc: Include <stdlib.h>.
From-SVN: r34311
2000-05-31 23:49:19 +01:00
Tom Tromey
6c80c45e30
Jumbo patch:
...
* Imported beans and serialization
* Updated IA-64 port
* Miscellaneous bug fixes
From-SVN: r34028
2000-05-19 17:55:34 +00:00
Tom Tromey
99444711eb
[multiple changes]
...
2000-03-26 Tom Tromey <tromey@cygnus.com>
* java/lang/mprec.h: Use SIZEOF_VOID_P.
* interpret.cc: Use SIZEOF_VOID_P.
* include/java-cpool.h (_Jv_storeLong): Use SIZEOF_VOID_P.
(_Jv_loadLong): Likewise.
(_Jv_storeDouble): Likewise.
* configure: Rebuilt.
* configure.in: Check size of void*.
* resolve.cc (ncode): Use FFI_PREP_RAW_CLOSURE and FFI_RAW_SIZE.
2000-03-26 Hans Boehm <boehm@acm.org>
* include/java-cpool.h (_Jv_storeLong, _Jv_loadLong,
_Jv_storeDouble, _Jv_loadDouble): Define differently on 64 bit
machine.
* java/lang/ieeefp.h: Define __IEEE_BIG_ENDIAN or
__IEEE_LITTLE_ENDIAN appropriately on IA64.
* java/lang/mprec.h: Don't define Pack_32 on 64 bit machine.
* javaprims.h (_Jv_word): Added `l' and `d' entries in 64 bit
case.
* resolve.cc (FFI_PREP_RAW_CLOSURE): New define.
(FFI_RAW_SIZE): Likewise.
(_Jv_InterpMethod::ncode): Use them.
* interpret.cc (PUSHL, PUSHD, POPL, POPD, LOADL, LOADD, STOREL,
STORED): Define differently on a 64 bit machine.
(continue1): Use ffi_java_raw_call when appropriate.
From-SVN: r32754
2000-03-26 20:33:04 +00:00
Tom Tromey
2ba5f77454
All files: Updated copyright information.
...
* All files: Updated copyright information.
* COPYING: New file.
* COPYING.LIB: Removed.
* LIBGCJ_LICENSE: We now use GPL + special exception.
From-SVN: r32387
2000-03-07 19:55:28 +00:00
Tom Tromey
b099f07de9
java-interp.h: Don't include MethodInvocation.h.
...
* include/java-interp.h: Don't include MethodInvocation.h.
(class _Jv_InterpMethod): Don't make MethodInvocation a friend.
* Makefile.in: Rebuilt.
* Makefile.am (gnu/gcj/runtime/MethodInvocation.h): Removed.
(ordinary_java_source_files): Don't mention
MethodInvocation.java.
* gnu/gcj/runtime/MethodInvocation.java: Removed.
* interpret.cc (MethodInvocation::continue1): Removed.
(run): Handle exceptions here.
* java/lang/ClassLoader.java (defineClass1, defineClass2):
Removed.
* java/lang/natClassLoader.cc (defineClass0): Catch exceptions
here.
(defineClass2): Removed.
* java/lang/reflect/Method.java (hack_trampoline, hack_call):
Removed.
* java/lang/reflect/natMethod.cc (_Jv_CallAnyMethodA): Catch
exceptions here.
(hack_call): Removed.
* java/lang/Class.h (Class): Removed hackRunInitializers,
hackTrampoline.
* java/lang/natClass.cc (hackRunInitializers): Removed.
(initializeClass): Catch exceptions here.
Include ExceptionInInitializerError.h.
* java/lang/Class.java (hackTrampoline, hackRunInitializers):
Removed.
* java/lang/Object.h (Object): Don't mention hack12_6.
* java/lang/natObject.cc (_Jv_FinalizeObject): Catch exceptions
here.
* java/lang/Object.java (hack12_6): Removed.
* java/lang/natThread.cc (run_): Renamed. Catch exceptions here.
(start): Use run_, not run__.
* java/lang/Thread.java (run_): Renamed from run__; old run_
removed.
* jni.cc (_Jv_JNI_FindClass): Handle exceptions.
(_Jv_JNI_EnsureLocalCapacity): Likewise.
(_Jv_JNI_DefineClass): Likewise.
(_Jv_JNI_ThrowNew): Likewise.
(_Jv_JNI_AllocObject): Likewise.
(_Jv_JNI_GetAnyMethodID): Likewise.
(_Jv_JNI_CallAnyMethodV): Likewise.
(_Jv_JNI_CallAnyMethodA): Likewise.
(_Jv_JNI_CallAnyVoidMethodV): Likewise.
(_Jv_JNI_CallAnyVoidMethodA): Likewise.
(_Jv_JNI_GetAnyFieldID): Likewise.
(_Jv_JNI_NewString): Likewise.
(_Jv_JNI_NewStringUTF): Likewise.
(_Jv_JNI_GetStringUTFChars): Likewise.
(_Jv_JNI_NewObjectArray): Likewise.
(_Jv_JNI_NewPrimitiveArray): Likewise.
(_Jv_JNI_GetPrimitiveArrayRegion): Likewise.
(_Jv_JNI_GetStringRegion): Likewise.
(_Jv_JNI_GetStringUTFRegion): Likewise.
(_Jv_JNI_SetPrimitiveArrayRegion): Likewise.
(_Jv_JNI_MonitorEnter): Likewise.
(_Jv_JNI_MonitorExit): Likewise.
(_Jv_JNI_ToReflectedField): Likewise.
(_Jv_JNI_ToReflectedMethod): Likewise.
(_Jv_JNI_RegisterNatives): Likewise.
(_Jv_JNI_AttachCurrentThread): Likewise.
(_Jv_JNI_DestroyJavaVM): Likewise.
From-SVN: r32294
2000-03-02 20:25:20 +00:00
Tom Tromey
28ec5077d7
interpret.cc (continue1): Use STOREA, not STOREI, to implement astore instruction.
...
* interpret.cc (continue1): Use STOREA, not STOREI, to implement
astore instruction. From Hans Boehm.
From-SVN: r31939
2000-02-11 23:24:28 +00:00
Andrew Haley
715bdd8117
interpret.cc: Don't include fdlibm.h.
...
2000-02-10 Andrew Haley <aph@cygnus.com>
* interpret.cc: Don't include fdlibm.h.
Replace #if with #ifdef throughout.
Declare extern __ieee754_fmod.
(continue1): Remove op_getfield, op_getstatic, op_putfield,
op_putstatic insns.
* resolve.cc (_Jv_PrepareClass): Use imeth as method pointer.
Search class hierarchy for superclass vtable.
* java/lang/natClassLoader.cc (_Jv_UnregisterClass): Don't fall
off the end of a pointer list.
* java/lang/natThread.cc (stop): Don't abort, throw an exception
instead.
(suspend): Ditto.
From-SVN: r31897
2000-02-10 17:16:30 +00:00
Tom Tromey
7c51d9fb95
interpret.cc (PUSHL): Don't use expression statement.
...
* interpret.cc (PUSHL): Don't use expression statement.
(PUSHD): Likewise.
(LOADL): Likewise.
(STOREL): Likewise.
From-SVN: r31844
2000-02-08 00:17:28 +00:00
Tom Tromey
8de7c9a0eb
interpret.cc (run): Don't call println.
...
* interpret.cc (run): Don't call println.
Don't include PrintStream.h.
From-SVN: r31622
2000-01-26 00:56:36 +00:00
Tom Tromey
74436afa42
* interpret.cc (PC_REGISTER_ASM): Removed.
...
From-SVN: r31510
2000-01-19 21:08:03 +00:00
Tom Tromey
7c734b1758
* All files: Updated copyright to reflect Cygnus purchase.
...
From-SVN: r31504
2000-01-19 18:39:27 +00:00
Tom Tromey
27e934d8ba
configure: Rebuilt.
...
* configure: Rebuilt.
* configure.in: Build include/Makefile.
* Makefile.in: Rebuilt.
* Makefile.am (SUBDIRS): Added gcj and include.
(install-data-local): New target.
(extra_headers): New macro.
* include/Makefile.in: New file.
* include/Makefile.am: New file.
* interpret.cc: Don't include gcj/field.h or gcj/cni.h.
* java/lang/reflect/natField.cc: Don't include gcj/field.h or
gcj/cni.h.
* boehm.cc: Don't include java-threads.h or gcj/field.h.
* resolve.cc: Include config.h.
* defineclass.cc: Include config.h.
* include/java-interp.h: Don't include config.h.
* include/jvm.h: Include java-threads.h, Object.h, java-gc.h,
cni.h.
* gcj/javaprims.h: Regenerated namespace decls.
* classes.pl (scan): Don't put `;' after closing brace.
* Makefile.in: Rebuilt.
* Makefile.am (INCLUDES): Added -I for top_srcdir.
* configure.in: Create gcj/Makefile.
* gcj/Makefile.in: New file.
* gcj/Makefile.am: New file.
* java/lang/Object.h: Don't include any other headers.
* gcj/array.h: Renamed from include/java-array.h.
* gcj/field.h: Renamed from include/java-field.h.
* gcj/method.h: Renamed from include/java-method.h.
* gcj/cni.h, gcj/javaprims.h: Moved from include/.
Updated all files to reflect new include structure.
From-SVN: r29278
1999-09-10 22:03:10 +00:00
Tom Tromey
e409a2c8f4
Modifier.java (ALL_FLAGS): New constant.
...
* java/lang/reflect/Modifier.java (ALL_FLAGS): New constant.
* resolve.cc: Removed constants defined by
java.lang.reflect.Modifier.
Include <java/lang/reflect/Modifier.h>.
(_Jv_ResolvePoolEntry): Use values from Modifier.
(_Jv_DetermineVTableIndex): Likewise.
(_Jv_PrepareClass): Likewise.
(ncode): Likewise.
* defineclass.cc (_Jv_ClassReader): Removed constants defined by
java.lang.reflect.Modifier.
Include <java/lang/reflect/Modifier.h>.
(checkExtends): Use values from Modifier.
(checkImplements): Likewise.
(handleField): Likewise.
(handleConstantValueAttribute): Likewise.
(handleFieldsEnd): Likewise.
(handleMethod ): Likewise.
(handleMethodsEnd): Likewise.
(handleClassBegin): Likewise.
* interpret.cc: Removed constants defined by
java.lang.reflect.Modifier.
(continue1): Use values from Modifier.
* java/lang/natClassLoader.cc: Removed constants defined by
java.lang.reflect.Modifier.
From-SVN: r29037
1999-09-01 22:02:20 +00:00
Kresten Krab Thorup
f7b4fb110a
interpret.cc (continue1): Implement explicit dispatch table.
...
* interpret.cc (continue1): Implement explicit dispatch table.
insn_target: Explicit interpreter switch table.
SAVE_PC: New macro, moves pc saving code into instructions that
require so.
NEXT_INSN: New macro, replaces `goto next_insn' in all insns.
PC_REGISTER_ASM: New macro.
INLINE_SWITCH: New macro. Constrols dispatching strategy.
opcode: Remove local variable.
{i,l,f,d}{load,store}_{0,1,2,3}: Expand definitions.
(POKEI): Use _Jv_word.
(iinc): Use _Jv_word.
(dupx): Change reference argument (sp) to pointer.
(jvdump): Remove
* interpret.cc: Remove instruction timing instrumentation.
* java/lang/natClassLoader.cc (_Jv_PrepareCompiledClass): Changed
comment. Don't use _Jv_ClassNameSamePackage.
* gnu/gcj/util/path/{SearchPath,ZipFileEntry,DirectoryPathEntry,
URLPathEntry, CacheEntry}: Removed.
* Makefile.am (ordinary_java_source_files): Remove gnu/gcj/util/path
package.
(.java.lo): Rule removed.
* Makefile.in: Rebuilt.
From-SVN: r28777
1999-08-20 11:40:35 +00:00
Kresten Krab Thorup
eb4534a636
natClassLoader.cc (_Jv_PrepareCompiledClass): Renamed from _Jv_InternClassStrings.
...
* java/lang/natClassLoader.cc (_Jv_PrepareCompiledClass): Renamed
from _Jv_InternClassStrings.
* prims.cc (_Jv_RunMain): New function.
(JvRunMain): Remove gij-support.
* gij.cc (main): Use _Jv_RunMain.
* java/util/zip/ZipFile.java: Call readDirectory in constructor.
* interpret.cc (PUSHA, PUSHI, PUSHF, PUSHL, PUSHD): Don't store
argument in temp variable.
(continue1): For all op_x2y insns, use temp variable for
intermediate value. Also remove some comments.
* java/lang/natClass.cc (newInstance): Call _Jv_InitClass.
(forName): Don't call _Jv_InitClass.
* java/lang/Class.java (getResource,getResourceAsStream): Implement.
* java/util/zip/ZipEntry.java (ZipEntry(ZipEntry)): New construcor.
* java/util/jar/JarInputStream.java: New file.
* java/util/jar/JarEntry.java: New file.
* java/util/jar/JarFile.java: New file.
* java/net/URLClassLoader.java: New file.
* java/net/JarURLConnection.java: New file.
* gnu/gcj/protocol/jar/Handler.java: New file.
* gnu/gcj/protocol/jar/Connection.java: New file.
* java/security/SecureClassLoader.java: New file.
* java/lang/ClassLoader.java (parent): New variable.
(ClassLoader (ClassLoader)): new constructor.
(findClass): New method.
(loadClass): Add default 1.2 implementation.
(getSystemResourceAsBytes, getResourceAsBytes): Removed.
(readfully): Removed.
* gnu/gcj/runtime/VMClassLoader.java: Moved from java/lang.
(findSystemClass): New method.
(VMClassLoader): Constructor rewritten.
(init): New method.
All other methods removed.
* java/lang/natClassLoader.cc: Change use of java::lang::VMClassLoader
to gnu::gcj::runtime::VMClassLoader.
(_Jv_InternClassStrings): Use _Jv_ResolvePoolEntry. Also handle
class entries.
(VMClassLoader::findSystemClass): renamed from findBootClass.
* Makefile.am: Add new files.
(FirstThread.h, ThreadGroup.h): Add _Jv_Main friend.
* Makefile.in: Rebuilt.
From-SVN: r28748
1999-08-18 14:16:42 +00:00
Anthony Green
7941ceabf0
[multiple changes]
...
Mon Aug 9 18:33:38 1999 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
* Makefile: Rebuilt.
* Makefile.am (toolexeclibdir): Add $(MULTISUBDIR) even for native
builds.
* java/net/natPlainSocketImpl.cc: Include <sys/select.h> only if
present.
* configure: Rebuilt.
* configure.in: Properly align --help output, fix capitalization
and punctuation.
* acinclude.m4: Likewise.
1999-08-09 Kresten Krab Thorup <krab@gnu.org>
* include/javaprims.h (_Jv_word, _Jv_word2): New types.
* include/java-interp.h (_Jv_InterpMethodInvocation): Use _Jv_word.
(_Jv_callInterpretedMethod): Unused. Remove.
(_Jv_InterpMethod::run,run_normal,run_synch_object,run_synch_class):
Use ffi_raw.
* include/java-cpool.h (_Jv_get, _Jv_put): Remove.
(_Jv_{store,load}{Indexes,Int,Float,Long,Double}): Use _Jv_word.
* boehm.cc (_Jv_MarkObj): Use _Jv_word.
* interpret.cc: use _Jv_word.
* defineclass.cc: use_Jv_word.
* resolve.cc: Use _Jv_word.
(_Jv_ResolvePoolEntry): Return _Jv_word.
* java/lang/Class.h (_Jv_Constants): Use _Jv_word for cpool.
* java/lang/natClassLoader.cc (_Jv_InternClassStrings): Use _Jv_word.
* interpret.cc (gnu::gcj::runtime::MethodInvocation::continue1):
Change comment.
From-SVN: r28641
1999-08-10 05:32:23 +00:00
Anthony Green
58eb6e7cef
[multiple changes]
...
1999-08-09 Anthony Green <green@cygnus.com>
* gij.cc: New file.
* include/config.h.in: Rebuilt.
* acconfig.h: Add INTERPRETER.
* configure: Rebuilt.
* Makefile.in: Rebuilt.
* Makefile.am (libffi_files): Identify the libffi object files for
inclusion in libgcj.
(LIBFFIINCS): Define.
* interpret.cc (gnu::gcj::runtime::MethodInvocation::continue1):
Dummy definition for configurations without an interpreter.
* java/net/natPlainSocketImpl.cc (getOption): Disamiguate call to
java::lang::Boolean constructor.
* include/java-interp.h: Always include java-cpool.h.
* java/lang/natClassLoader.cc (getVMClassLoader0): Always return 0
when INTERPRETER not defined.
* java/lang/Class.h (finalize): Define.
* gnu/gcj/util/path/DirectoryPathEntry.java (getURL): Catch
IOException from File.getCanonicalPath.
(getStream): Likewise.
* NEWS: More news.
* THANKS: More thanks.
1999-08-09 Kresten Krab Thorup <krab@gnu.org>
* resolve.cc (get_ffi_type_from_signature): Generate uint16 for
jchar type.
(_Jv_PrepareClass): Allow non-abstract classes to
have abstract subclasses.
(_Jv_ResolvePoolEntry): Revert subclass check for protected
fields and methods.
* interpret.cc (continue1/perform_invoke): Don't sign extend
uint16 return val.
(continue1/lshl,lshr): Push long, not int.
(continue1/ulshr): Use UINT64, not long long.
* defineclass.cc (handleFieldsEnd): Handle case when all fields
are static.
* java/lang/natClass.cc (forName): Add call to _Jv_InitClass.
* java/lang/FirstThread.java (run): Add top-level exception
handler.
(run0): Renamed from run.
1999-08-08 Kresten Krab Thorup <krab@gnu.org>
* configure.in (--with-interpreter): Added.
* include/config.h.in (INTERPRETER): Added.
* java/lang/ClassLoader.java: File replaced.
* java/lang/VMClassLoader.java: New file.
* java/lang/natClassLoader.cc: New file.
* gnu/gcj/runtime/MethodInvocation.java: New file.
* gnu/gcj/util/path/SearchPath.java: New file.
* gnu/gcj/util/path/PathEntry.java: New file.
* gnu/gcj/util/path/DirectoryPathEntry.java: New file.
* gnu/gcj/util/path/ZipPathEntry.java: New file.
* gnu/gcj/util/path/URLPathEntry.java: New file.
* gnu/gcj/util/path/CacheEntry.java: New file.
* include/java-interp.h: New file.
* include/java-cpool.h: New file.
* include/java-insns.h: New file.
* defineclass.cc: New file.
* interpret.cc: New file.
* resolve.cc: New file.
* java/lang/natClass.cc (loaded_classes, _Jv_RegisterClass,
_Jv_RegisterClasses, _Jv_FindClassInCache, _Jv_FindClass,
_Jv_NewClass, _Jv_FindArrayClass): Moved to natClassLoader.cc.
(finalize): New.
(STATE_NOTHING, STATE_RESOLVED, STATE_IN_PROGRESS, STATE_DONE,
STATE_ERROR): Moved to java/lang/Class.h and renamed with JV_
prefix.
(initializeClass): Use new JV_ prefixed names. Also, call
ClassLoader::resolveClass instead of _Jv_ResolveClass.
* java/lang/Class.h (JV_STATE_PRELOADING, JV_STATE_LOADING,
JV_STATE_LOADED, JV_STATE_COMPILED, JV_STATE_PREPARED,
JV_STATE_LINKED): New.
(_Jv_WaitForState, _Jv_RegisterInitiatingLoader,
_Jv_UnregisterClass, _Jv_InternClassStrings): New friends.
(_Jv_IsInterpretedClass, _Jv_InitField, _Jv_LookupDeclaredMethod,
_Jv_DetermineVTableIndex, _Jv_ResolvePoolEntry, _Jv_PrepareClass,
_Jv_ClassReader, _Jv_InterpClass, _Jv_InterpMethod,
_Jv_InterpMethodInvocation): New friends for interpreter.
(finalize): New.
(CONSTANT_Class, CONSTANT_String, etc.): Moved to
include/java-cpool.h and renamed with JV_ prefix.
* include/jvm.h (_Jv_makeUtf8Const, _Jv_makeUtf8TypeConst): New
decls.
(_Jv_UnregisterClass): New decl.
* java/lang/natClassLoader.cc (_Jv_FindArrayClass): Added
class loader argument.
(_Jv_FindClass): Use class loader.
* prims.cc (_Jv_makeUtf8Const): New function.
(_Jv_NewObjectArray): Change use of _Jv_FindArrayClass.
(_Jv_NewPrimArray): Ditto.
(_Jv_FindClassFromSignature): Ditto.
* java/lang/reflect/natArray.cc (newInstance): Ditto.
* java/lang/reflect/natMethod.cc (getType): Ditto.
* include/java-field.h (_Jv_Field::isRef): Make robust for
non-resolved contexts.
* boehm.cc (_Jv_MarkObj): Mark interpreter-related fields.
Also, don't mark class->next field.
* java/lang/VirtualMachineError.java: Added FIXME note.
* configure.in (INTERPSPEC): New spec.
* libgcj.spec.in: Added INTERPSPEC.
* Makefile.am: Added gcjh friends for java/lang/VMClassLoader and
gnu/gcj/runtime/MethodInvocation.
(libgcj_la_SOURCES): Added resolve.cc defineclass.cc interpret.cc.
(ordinary_java_source_files): Added above mentioned java classes.
* configure: Rebuilt.
* Makefile.in: Rebuilt.
From-SVN: r28597
1999-08-08 14:06:23 +00:00