Warren Levy [Fri, 24 Mar 2000 09:18:12 +0000 (09:18 +0000)]
BigInteger.java (divide): Handle the special case when dividing by 1 and the high bit of the dividend is set.
* java/math/BigInteger.java(divide): Handle the special case when
dividing by 1 and the high bit of the dividend is set.
(setShiftRight): Handle case when count == 0.
Geoff Keating [Fri, 24 Mar 2000 01:03:24 +0000 (01:03 +0000)]
rs6000.h (ARG_POINTER_CFA_OFFSET): New definition...
* config/rs6000/rs6000.h (ARG_POINTER_CFA_OFFSET): New definition,
try to protect against middle-end changes that break binary
compatibility.
(DWARF_FRAME_REGISTERS): New definition, likewise for backend.
Jim Wilson [Thu, 23 Mar 2000 19:38:24 +0000 (19:38 +0000)]
Fix misscheduling of epilogue predicate register restore.
* config/ia64/ia64.c (rtx_needs_barrier, case UNSPEC): Move case 6...
(rtx_needs_barrier, case UNSPEC_VOLATILE): to here.
* config/ia64/ia64.md (pr_restore): Change UNSPEC to UNSPEC_VOLATILE.
Bryce McKinlay [Thu, 23 Mar 2000 12:35:44 +0000 (12:35 +0000)]
Thread_Wait.java: New file.
2000-03-23 Bryce McKinlay <bryce@albatross.co.nz>
* libjava.lang/Thread_Wait.java: New file.
* libjava.lang/Thread_Sleep.java: New file.
* libjava.lang/Thread_Monitor.java: New file.
* libjava.lang/Thread_Wait.out: New file.
* libjava.lang/Thread_Sleep.out: New file.
* libjava.lang/Thread_Monitor.out: New file.
* libjava.lang/Thread_Interrupt.java: New file.
* libjava.lang/Thread_Wait_2.java: New file.
* libjava.lang/Thread_Wait_2.out: New file.
* libjava.lang/Thread_Wait_Interrupt.java: New file.
* libjava.lang/Thread_Wait_Interrupt.out: New file.
* libjava.lang/Thread_Interrupt.out: New file.
* libjava.lang/Thread_Join.java: New file.
* libjava.lang/Thread_Join.out: New file.
* libjava.lang/Thread_Alive.java: New file.
* libjava.lang/Thread_Alive.out: New file.
* frame.h (frame_state): Revert last change.
* frame.c (execute_cfa_insn): Just don't record the save of a CFA reg.
* libgcc2.c (throw_helper): Revert last change.
* parse.y (check_abstract_method_definitions): New local
`end_type_reached'. Make sure we also consider `end_type'.
(java_check_abstract_method_definitions): Make sure we also
eventually consider `java.lang.Object'.
(maybe_use_access_method): Don't use access method if not a pure
inner class or if the method's context is right.
(find_applicable_accessible_methods_list): New static
`object_done'. Don't search abstract classes as interfaces. Fixed
indentation. Fixed the `java.lang.Object' only search. Search class'
interface(s) first, fully search enclosing contexts.
(find_most_specific_methods_list): Pick closest candidates when
they're all abstract.
* parse.y (check_method_types_complete): New function.
(create_class): Reset anonymous class counter only when seeing an
non inner classe.
(java_complete_class): JDEP_METHOD: Don't recompute signature
if incomplete.
* parse.y (register_incomplete_type): JDEP_ENCLOSING set
depending on the type of dependency which dictates what the
current class is.
(unresolved_type_p): Resolved types limited to the current class.
Tom Tromey [Wed, 22 Mar 2000 21:25:21 +0000 (21:25 +0000)]
iface.java: New file.
* libjava.compile/iface.java: New file.
* libjava.compile/static_3.java: New file.
* libjava.compile/static_2.java: New file.
* libjava.compile/static_1.xfail: New file.
* libjava.compile/static_1.java: New file.
* libjava.compile/redef6.xfail: New file.
* libjava.compile/redef6.java: New file.
* libjava.compile/redef5.xfail: New file.
* libjava.compile/redef5.java: New file.
* libjava.compile/redef4.xfail: New file.
* libjava.compile/redef4.java: New file.
* libjava.compile/redef3.xfail: New file.
* libjava.compile/redef3.java: New file.
* libjava.compile/redef2.xfail: New file.
* libjava.compile/redef2.java: New file.
* libjava.compile/redef1.xfail: New file.
* libjava.compile/redef1.java: New file.
* libjava.compile/not_a_redef.java: New file.
* libjava.compile/inner_1.java: New file.
* libjava.compile/static_init.xfail: New file.
* libjava.compile/static_init.java: New file.
Mark Mitchell [Wed, 22 Mar 2000 01:32:09 +0000 (01:32 +0000)]
class.c (record_base_offsets): New function.
* class.c (record_base_offsets): New function.
(layout_conflict_p): Likewise.
(layout_nonempty_base_or_field): Use it.
(layout_empty_base): New function.
(build_base_field): Use it.
(build_base_fields): Update comment.
(layout_virtual_bases): Fold in a little code form
layout_basetypes. Use layout_empty_base.
(layout_basetypes): Remove.
(end_of_class): New function.
(layout_class_type): Use it. Adjust.
Nathan Sidwell [Tue, 21 Mar 2000 16:12:25 +0000 (16:12 +0000)]
cxxabi.h: New header file.
* inc/cxxabi.h: New header file. Define new-abi entry points.
(__pointer_type_info::target): Rename member to ...
(__pointer_type_info::type): ... here.
(__base_class_info::type): Rename member to ...
(__base_class_info::base): ... here.
* Make-lang.in (CXX_EXTRA_HEADERS): Add cxxabi.h
* cp-tree.h (CPTI_ABI): New global tree enumeration.
(abi_node): New global tree node.
* decl.c (abi_node): Document.
(init_decl_processing): Initialize abi_node.
* rtti.c (build_dynamic_cast_1): Use abi_node for new-abi.
(get_vmi_pseudo_type_info): Likewise.
(create_tinfo_types): Likewise.
(emit_support_tinfos): Likewise.
* tinfo.h (cxxabi.h): Include for new-abi.
Move rtti class definitions to new header file.
* tinfo.cc (abi): Use the namespace.
(std): Move new abi rtti classes from here ...
(__cxxabiv1): ... to here.
* tinfo2.cc (cxxabi.h): Include for new-abi.
Move rtti class definitions to new header file.
(std): Move new abi rtti classes from here ...
(__cxxabiv1): ... to here.
* inc/typeinfo (__class_type_info): Move into __cxxabiv1
namespace.
Bryce McKinlay [Tue, 21 Mar 2000 05:12:20 +0000 (05:12 +0000)]
natClass.cc (isInstance): Initialize `this'.
2000-03-21 Bryce McKinlay <bryce@albatross.co.nz>
* java/lang/natClass.cc (isInstance): Initialize `this'.
(isAssignableFrom): Initialize `this' and `klass'.
(_Jv_IsAssignableFrom): If an interface has no idt, it is not
implemented by any loaded class, so return false.
Jim Wilson [Tue, 21 Mar 2000 04:05:49 +0000 (04:05 +0000)]
Minor performance improvements. Minor EH/unwind bug fix.
* config/ia64/ia64.c (ia64_expand_prologue): Don't abort if leaf
function uses output registers. Don't save RP for leaf functions.
Do save RP even if no epilogue.
* config/ia64/ia64.h (FIXED_REGISTERS): Unmark in/out registers.
(CALL_USED_REGISTERS): Unmark in registers.
(REG_ALLOC_ORDER): Move out regs up, to near the top. Move in regs up,
to near the middle.
Geoffrey Keating [Mon, 20 Mar 2000 23:47:39 +0000 (23:47 +0000)]
rs6000.md (bunordered): New expander.
* config/rs6000/rs6000.md (bunordered): New expander.
(bordered): New expander.
(buneq): New expander.
(bunge): New expander.
(bungt): New expander.
(bunle): New expander.
(bunlt): New expander.
(bltgt): New expander.
* config/rs6000/rs6000.c (ccr_bit): Handle unordered comparisons.
(ccr_bit_negated_p): New function.
(print_operand): For %C, generate appropriate cror for UNEQ,
UNLT, UNGT, and LTGT. For %T and %t, use ccr_bit_negated_p.
regmove.c (stack_memref_p): Fix typo, reorg for readability.
* regmove.c (stack_memref_p): Fix typo, reorg for readability.
(combine_stack_adjustments_for_block): Don't allow sp references
in the side of a set we're not fixing up.
* toplev.c (rest_of_compilation): Run combine_stack_adjustments
after life_analysis.
calls.c (expand_call): Don't bother generating tail call sequences if there are pending cleanups.
* calls.c (expand_call): Don't bother generating tail call
sequences if there are pending cleanups. Use
expand_start_target_temps/expand_end_target_temps to elide
cleanups created during sibcall expansion.
Martin v. Löwis [Sun, 19 Mar 2000 17:53:38 +0000 (17:53 +0000)]
Makefile.in (tree.o): Depend on HASHTAB_H.
* Makefile.in (tree.o): Depend on HASHTAB_H.
* tree.c: Include hashtab.h.
(struct type_hash): Remove next field.
(TYPE_HASH_SIZE): Remove.
(TYPE_HASH_INITIAL_SIZE): New define.
(type_hash_table): Change type to htab_t.
(type_hash_eq, type_hash_hash, print_type_hash_statistics,
mark_hash_entry): New functions.
(init_obstacks): Allocate type hash.
(type_hash_lookup): Use htab functions.
(type_hash_add, mark_type_hash): Likewise.
(dump_tree_statistics): Call print_type_hash_statistics.
flow.c (delete_block): Delete the addr_vec along with the block.
* flow.c (delete_block): Delete the addr_vec along with the block.
(flow_delete_insn): Decrement LABEL_NUSES when deleting insns that
reference labels.
Mark Mitchell [Sun, 19 Mar 2000 05:22:04 +0000 (05:22 +0000)]
cp-tree.h (CLEAR_DECL_C_BIT_FIELD): New macro.
* cp-tree.h (CLEAR_DECL_C_BIT_FIELD): New macro.
* class.c (check_bitfield_decl): Turn illegal bitfields into
non-bitfields.
(dfs_propagate_binfo_offsets): Adjust for new size_binop
semantics.
(dfs_offset_for_unshared_vbases): Likewise.
* cvt.c (cp_convert_to_pointer): Convert NULL to a
pointer-to-member correctly under the new ABI.
* expr.c (cplus_expand_constant): Don't use cp_convert when
turning an offset into a pointer-to-member.
* init.c (resolve_offset_ref): Don't adjust pointers-to-members
when dereferencing them under the new ABI.
* typeck.c (get_member_function_from_ptrfunc): Tweak calculation
of pointers-to-members under the new ABI.
Mark Mitchell [Sun, 19 Mar 2000 00:59:51 +0000 (00:59 +0000)]
class.c (check_bitfield_decl): Remove restriction on really long bitfields.
* class.c (check_bitfield_decl): Remove restriction on really long
bitfields.
(layout_class_type): Implement new ABI handling of bitfields
longer than their types.