* prims.cc (_Jv_MallocUnchecked): New function.
(main_init): Call _Jv_JNI_Init.
* include/jvm.h (_Jv_MallocUnchecked): Declare.
(_Jv_JNI_Init): Declare.
* jni.cc: Include Hashtable.h, OutOfMemoryError.h, Integer.h,
<string.h>.
(_Jv_JNI_NewGlobalRef): New function.
(_Jv_JNI_DeleteGlobalRef): New function.
(_Jv_JNI_DeleteLocalRef): New function.
(_Jv_JNI_conversion_call): Initialize and clear local reference
frame.
(_Jv_JNI_NewLocalRef): New function.
(struct _Jv_JNI_LocalFrame): New structure.
(_Jv_JNI_PushLocalFrame): New function.
(_Jv_JNI_EnsureLocalCapacity): New function.
(FRAME_SIZE): New define.
(_Jv_JNI_GetStringChars): Mark string, not characters.
(_Jv_JNI_ReleaseStringChars): Unmark string, not characters.
(_Jv_JNI_GetPrimitiveArrayElements): Mark array, not elements.
(_Jv_JNI_ReleasePrimitiveArrayElements): Unmark array, not
elements.
(_Jv_JNI_DefineClass): Make return value a local ref.
(_Jv_JNI_FindClass): Likewise.
(_Jv_JNI_GetSuperclass): Likewise.
(_Jv_JNI_ExceptionOccurred): Likewise.
(_Jv_JNI_AllocObject): Likewise.
(_Jv_JNI_GetObjectClass): Likewise.
(_Jv_JNI_CallAnyMethodV): Likewise.
(_Jv_JNI_NewString): Likewise.
(_Jv_JNI_NewStringUTF): Likewise.
(_Jv_JNI_NewObjectArray): Likewise.
(_Jv_JNI_GetObjectArrayElement): Likewise.
(_Jv_JNI_ToReflectedField): Likewise.
(_Jv_JNI_ToReflectedMethod): Likewise.
(_Jv_JNIFunctions): Updated table for new functions.
(_Jv_JNI_Init): New function.
(mark_for_gc): Wrote.
(unmark_for_gc): Wrote.
* include/jni.h (struct JNINativeInterface): Removed name from
PopLocalFrame parameter.
(class _Jv_JNIEnv): Added `locals' field.
From-SVN: r31730
* class.c (build_vtbl_or_vbase_field): New parameter fcontext.
Store it in DECL_FCONTEXT.
(build_vbase_pointer_fields, create_vtable_ptr): Fix callers.
From-SVN: r31729
* combine.c (try_combine) [HAVE_cc0]: Trying to check the missed
case 3->2 combining (combining with splitting) in which 2 is CC0
setter/user and 3 is user. The rest of cases 2->1 and 3->2 are
checked at the begining of the function with the aid of calling
function 'can_combine_p'.
From-SVN: r31727
* cp-tree.h (BINFO_VIRTUALS): Tweak documentation.
(CLASSTYPE_PRIMARY_BINFO): Use BINFO_PRIMARY_BINFO.
(BINFO_PRIMARY_BINFO): New macro.
(BF_DELTA): Rename to ...
(BV_DELTA): ... this.
(BF_VCALL_INDEX): Rename to ...
(BV_VCALL_INDEX): ... this.
(BF_FN): Rename to ...
(BV_FN): ... this.
* class.c (build_vbase_path): Adjust for changes to reverse_path.
(set_rtti_entry): Rename BF_ macros to BV_ variants.
(modify_vtable_entry): Simplify.
(add_virtual_function): Rename BF_ macros to BV_ variants.
(build_vtable_initializer): Likewise.
(get_class_offset_1): Remove.
(dfs_get_class_offset): Likewise.
(get_class_offset): Likewise.
(dfs_find_final_overrider): New function.
(find_final_overrider): Likewise.
(modify_one_vtable): Remove.
(dfs_find_base): New function.
(dfs_modify_vtables): Fold modify_one_vtable in here. Use
find_final_overrider.
(modify_all_vtables): Adjust. Set BV_VCALL_INDEX on new
virtuals.
(dfs_fixup_vtable_deltas): Remove.
(override_one_vtable): Remove.
(merge_overrides): Likewise.
(layout_virtual_bases): Make sure BINFO_OFFSET is set right for
unreal chilren of virtual bases.
(finish_struct_1): Don't use merge_overrides. Don't use
dfs_fixup_vtable_deltas.
* tree.c (reverse_path): Return a TREE_LIST, not a chain of
BINFOs.
From-SVN: r31724
* cp/class.c (build_vtable): Rename to build_primary_vtable.
(prepare_fresh_vtable): Rename to build_secondary_vtable.
(make_new_vtable): New function.
(modify_vtable_entry): Handle generation of new vtables correctly.
(modify_one_vtable): Remove unused parameter.
(dfs_fixup_vtable_deltas): Likewise.
(override_one_vtable): Use build_secondary_vtable.
(finish_struct_1): Use build_primary_vtable and
build_secondary_vtable.
From-SVN: r31707
* cppfiles.c (find_position): Drop 'colp' argument, return the
new line base.
(read_and_prescan): Adjust to match. Don't ever manipulate
line or line_base except via find_position.
From-SVN: r31700
* cpperror.c (cpp_file_line_for_message): If 'line' is zero,
just print "<command line>". If 'filename' is null or an
empty string, print "<stdin>" for the filename.
* cpplib.c (do_define): Don't print the 'location of the
previous definition' message if we're still parsing the
command line.
(cpp_pedwarn_with_file_and_line): Always call
cpp_file_line_for_message.
From-SVN: r31697
2000-01-29 Alexandre Petit-Bianco <apbianco@cygnus.com>
* parse.y (formal_parameter:): Set `$$' to NULL_TREE for better
error handling/recovery.
* java-tree.h (SYNCHRONIZED_EXPR): Fixed typo in comment.
Wed Jan 12 20:20:11 2000 Alexandre Petit-Bianco <apbianco@cygnus.com>
* jcf-write.c (generate_bytecode_insns): binop: Change the type of
the shift value to int. Fixed typo in comment.
From-SVN: r31695
2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
* c4x.h (INIT_TARGET_OPTABS): Add all missing local optab entries.
* c4x.c: Define the optab rtx values.
(c4x_add_gc_roots): Add the ggc roots for these optab rtx values.
(c4x_emit_libcall): Use new optab rtx values.
(c4x_emit_libcall3): Likewise.
(c4x_emit_libcall_mulhi): Likewise.
* c4x-protos.h: Add prototypes for optab rtx values and change
prototypes for above c4x_emit_libcall functions.
From-SVN: r31683
2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
* c4x.c (c4x_output_ascii): Restrict line length of output when TI
syntax is used.
(c4x_function_prologue): Use regnames intead of float_reg_names when
TI syntax is used.
(c4x_function_epilogue): Likewise.
(c4x_print_operand): Likewise.
* c4x.h (HOST_WIDE_INT_PRINT_HEX): Redefine.
* c4x.md (set_high): Disable for TARGET_TI.
From-SVN: r31682
2000-01-27 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
* c4x.h (PREFERRED_RELOAD_CLASS): Change to restrict the reloading
of framepointer + constant to ADDR_REGS class.
* c4x.md (addqi3, addqi3_noclobber_reload): Update.
* c4x.c (std_or_reg_operand): New function.
* c4x-protos.h (std_or_reg_operand): Prototype it.
From-SVN: r31681
2000-01-29 Herman A.J. ten Brugge <Haj.Ten.Brugge@net.HCC.nl>
* t-c4x: Change qi,qf,di,df into si,sf,hi,hf to generate same
object names as libgcc2.c.
* libgcc.S: Use newly defined names.
From-SVN: r31680
Fri Jan 7 19:48:04 CET 2000 Jan Hubicka <jh@suse.cz>
* sbitmap.c (sbitmap_first_set_bit, sbitmap_last_set_bit): New
function.
* sbitmap.h (sbitmap_first_set_bit, sbitmap_last_set_bit): Declare.
* basic_block.h (FLOW_LOOP_FIRST_BLOCK): New macro.
(FLOW_LOOP_LAST_BLOCK): Likewise.
2000-01-21 Michael Hayes <m.hayes@elec.canterbury.ac.nz>
* basic-block.h (struct loop): New fields 'first' and 'last'.
* flow.c (flow_loops_find): Compute loop->first and loop->last.
(flow_loops_dump): Use loop->first to check for NOTE_INSN_LOOP_BEG
and loop->last to check for NOTE_INSN_LOOP_END.
Fri Jan 28 10:57:58 2000 Jason Eckhardt <jle@cygnus.com>
* predict.c (estimate_probability): Use the new FIRST and LAST fields
of the loop descriptor rather than HEADER and LATCH. Also added
missing break statements as well making some coding style modifications
as suggested by Michael Hayes.
From-SVN: r31679