Commit Graph

28522 Commits

Author SHA1 Message Date
Richard Henderson
d2c6a1b628 alpha.c (hard_fp_register_operand): Mind the mode.
* config/alpha/alpha.c (hard_fp_register_operand): Mind the mode.
        (hard_int_register_operand): New.
        * config/alpha/alpha-protos.h: Declare it.
        * config/alpha/alpha.h (PREDICATE_CODES): Update.
        * config/alpha/alpha.md (peep2 patterns): Use hard_int_register_operand
        as needed; use peep2_reg_dead_p instead of dead_or_set_p.

From-SVN: r34209
2000-05-27 13:34:12 -07:00
Richard Henderson
2328013936 Makefile.in (recog.o): Don't depend on resource.h.
* Makefile.in (recog.o): Don't depend on resource.h.
	* recog.c: Don't include resource.h.
	(recog_last_allowed_insn): Remove.
	(recog_next_insn): Remove.
	(struct peep2_insn_data): New.
	(peep2_insn_data, peep2_current): New.
	(peep2_next_insn): New.
	(peep2_regno_dead_p, peep2_reg_dead_p): New.
	(peep2_find_free_register): New.
	(peephole2_optimize): Track life information by insn as we go.
	* recog.h: Update declarations.
	* resource.c (find_free_register, reg_dead_p): Remove.
	* resource.h: Remove their declarations.
	* toplev.c: Include hard-reg-set.h before recog.h.

	* genconfig.c (max_insns_per_peep2): New.
	(gen_peephole2): New.
	(main): Call it.
	* genemit.c (output_peephole2_scratches): Generate calls to
	peep2_find_free_register; adjust surrounding code.
	(main): Have insn-emit.c include hard-reg-set.h before recog.h.
	* genrecog.c (change_state): Don't track last_insn.
	(write_action): Write into *_pmatch_len before accepting.
	(write_tree): Adjust peephole2_insns and subroutines to match.

	* config/i386/i386.md (all peepholes): Use peep2_regno_dead_p.

From-SVN: r34208
2000-05-27 13:23:15 -07:00
Richard Henderson
30196c1ff4 function.c (thread_prologue_epilogue_insns): Don't move the line note at the head of the chain.
* function.c (thread_prologue_epilogue_insns): Don't move the
        line note at the head of the chain.  Only force a lineno note
        before the end of block 0.

From-SVN: r34207
2000-05-27 13:10:38 -07:00
Richard Henderson
892ecf921f gensupport.c (collect_insn_data): Record the maximum number of alternatives, not the last seen.
* gensupport.c (collect_insn_data): Record the maximum number
        of alternatives, not the last seen.

From-SVN: r34206
2000-05-27 13:03:31 -07:00
Richard Henderson
d96a2fcdf0 genoutput.c: Don't include errors.h.
* genoutput.c: Don't include errors.h.
        (struct data): Add lineno member.
        (have_error): New.
        (scan_operands): Use message_with_line instead of error.
        (validate_insn_alternatives): Likewise.
        (gen_insn): Accept and store the pattern's line number.
        (gen_peephole, gen_expand, gen_split): Likewise.
        (main): Don't set progname.  Pass line_no to gen_foo.

From-SVN: r34205
2000-05-27 13:01:10 -07:00
Richard Henderson
5401747e62 d30v.c (d30v_print_operand): Handle ':'.
* config/d30v/d30v.c (d30v_print_operand): Handle ':'.
        * config/d30v/d30v.h (PRINT_OPERAND_PUNCT_VALID_P): Accept ':'.
        * config/d30v/d30v.md (attr predicable): New.
        (all insn patterns): Mark non-predicable patterns; use %: on the rest.
        (andsi3*): Unify into one pattern.
        (iorsi3*, xorsi3*): Likewise.
        (peephole2 patterns): Use peep2_reg_dead_p; verify not a
        conditional return.
        (old cond_exec patterns): Remove.
        (define_cond_exec): New.

From-SVN: r34204
2000-05-27 12:53:21 -07:00
Richard Kenner
8d5e6e2527 tree.h (TREE_CODE_LENGTH): New macro.
* tree.h (TREE_CODE_LENGTH): New macro.
	* c-common.c (c_find_base_decl): Use it.
	* expr.c (safe_from_p): Likewise.
	* print-tree.c (print_node): Likewise.
	* tree.c (make_node, copy_node, get_identifier): Likewie.
	(first_rtl_op, contains_placeholder_p, substitute_in_expr): Likewise.
	(build, build_nt, build_parse_node, simple_cst_equal): Likewise.
	* fold-const.c (make_range): Likewise.
	(fold): Likewise; also use first_rtl_op.
	* c-iterate.c (collect_iterators): Use first_rtl_op.
	* calls.c (calls_function_1): Likewise; also rename TYPE to CLASS.
	Use IS_EXPR_CODE_CLASS.
	(preexpand_calls): Likewise.
	* ggc-common.c (ggc_mark_trees): Rework to use first_rtl_op
	and TREE_CODE_LENGTH.
	* stmt.c (warn_if_unused_value): If no operands, no unused value.
	* ch/lang.c (deep_const_expr): Use first_rtl_op.
	* ch/satisfy.c (satisfy): Use TREE_CODE_LENGTH.
	* cp/method.c (mangle_expression): Use TREE_CODE_LENGTH.
	* cp/tree.c (break_out_calls, build_min_nt): Use TREE_CODE_LENGTH.
	(built_min, cp_tree_equal): Likewise.

From-SVN: r34203
2000-05-27 11:21:17 -04:00
Jeff Law
0777f60c79 Daily bump.
From-SVN: r34202
2000-05-27 01:45:07 -06:00
Geoff Keating
aee86b3881 rs6000.md (movsi_internal1): Use '%a1' rather than '%1(%*)'.
* config/rs6000/rs6000.md (movsi_internal1): Use '%a1' rather
than '%1(%*)'.
(movdi_internal64): Likewise.

From-SVN: r34201
2000-05-27 07:44:25 +00:00
Geoff Keating
1d328b19d4 rs6000.md: Correct order of operands for DImode boolean patterns.
* config/rs6000/rs6000.md: Correct order of operands for DImode
boolean patterns.

* config/rs6000/rs6000.c (boolean_or_operator): New function.
* config/rs6000/rs6000-protos.h (boolean_or_operator): Prototype it.
* config/rs6000/rs6000.h (PREDICATE_CODES): Add boolean_or_operator.
* config/rs6000/rs6000.md: Use boolean_or_operator instead of
boolean_operator for the boolean patterns without NOTs.

* config/rs6000/rs6000.c (reg_or_logical_cint_operand): Rename
from reg_or_u_cint_operand.  Change comment and behaviour.
(logical_operand): Clean up, add assertion.
(non_logical_cint_operand): Also check for
reg_or_logical_cint_operand.
* config/rs6000/rs6000.h (PREDICATE_CODES): Update.
* config/rs6000/rs6000.md (iorsi3): Use reg_or_logical_cint_operand
in the expander.
(xorsi3): Likewise.
(iordi3): Likewise.
(xordi3): Likewise.

From-SVN: r34200
2000-05-27 02:24:32 +00:00
Mark Mitchell
defd0dea52 tree.h (struct record_layout_info): Rename to (struct record_layout_info_s).
* tree.h (struct record_layout_info): Rename to (struct
	record_layout_info_s).
	* stor-layout.c (start_record_layout): Replace
	`record_layout_info' with `record_layout_info_s'.

	* class.c (layout_nonempty_base_or_field): Replace
	`record_layout_info' with `record_layout_info_s'.

From-SVN: r34199
2000-05-26 21:40:01 +00:00
Jason Merrill
6625cdb595 Fix goto checking.
* cp-tree.h (struct language_function): x_named_labels is now
        a struct named_label_list*.
        * decl.c (struct named_label_use_list): Renamed from...
        (struct named_label_list): ...this.  New struct.
        (push_binding_level): Don't set eh_region.
        (note_level_for_eh): New fn.
        (pop_label): Take label and old value directly.
        (pop_labels): Adjust for new named_labels format.
        (lookup_label): Likewise.
        (poplevel): Note characteristics of a binding level containing a
        named label.  Mess with named label lists earlier.
        (mark_named_label_lists): New fn.
        (mark_lang_function): Call it.
        (use_label): New fn, split out from...
        (make_label_decl): ...here.  Don't call it.
        (decl_jump_unsafe, check_previous_goto, check_previous_goto_1,
        check_previous_gotos): New fns, split out from...
        (define_label): ...here.
        (check_switch_goto): New fn.
        (define_case_label): Call it.
        (check_goto): New fn.
        * semantics.c (finish_goto_stmt): Call it and use_label.
        (begin_compound_stmt): If we're a try block, call note_level_for_eh.
        (expand_stmt): Never pass 1 as DONT_JUMP_IN to expand_end_bindings.

From-SVN: r34198
2000-05-26 17:05:05 -04:00
Phil Edwards
0137be2dca acinclude.m4 (GLIBCPP_ENABLE_LONG_LONG): If strtoll isn't available, force --disable.
2000-05-26  Phil Edwards  <pme@sourceware.cygnus.com>

	* acinclude.m4 (GLIBCPP_ENABLE_LONG_LONG):  If strtoll isn't
	  available, force --disable.  Need to flesh this out; make smarter.
	* aclocal.m4:  Regenerate.
	* configure:  Regenerate.

	* mkcheck.in:  Minor tweaks.
	* docs/download.html:  Fix typo.

From-SVN: r34197
2000-05-26 19:59:46 +00:00
Zack Weinberg
30a3caefde parse.y (find_applicable_accessible_methods_list): Don't add an uninitialized value to the list.
2000-05-26  Zack Weinberg  <zack@wolery.cumb.org>

	* java/parse.y (find_applicable_accessible_methods_list):
	Don't add an uninitialized value to the list.

From-SVN: r34196
2000-05-26 18:57:28 +00:00
Mark Mitchell
344e498c7c class.c (build_vtable_entry_ref): Correct usage of get_vtbl_decl_for_binfo.
* class.c (build_vtable_entry_ref): Correct usage of
	get_vtbl_decl_for_binfo.

From-SVN: r34195
2000-05-26 17:47:25 +00:00
Mark Mitchell
cab8bde98e decl2.c (grokclassfn): Set DECL_LANGUAGE here.
* decl2.c (grokclassfn): Set DECL_LANGUAGE here.
	* method.c (implicitly_declare_fn): Not here.

From-SVN: r34194
2000-05-26 16:54:18 +00:00
Richard Earnshaw
1bc48f824a flow.c (find_label_refs): New function.
* flow.c (find_label_refs): New function.
(find_basic_blocks_1): Call it for each alternative of a call
placeholder.

From-SVN: r34193
2000-05-26 10:30:47 +00:00
Richard Earnshaw
5f361012f7 ifcvt.c (cond_exec_get_condition): Set test_if to the SET_SRC of get_pc.
* ifcvt.c (cond_exec_get_condition): Set test_if to the SET_SRC
of get_pc.

From-SVN: r34192
2000-05-26 09:51:00 +00:00
Nathan Sidwell
387769edff cp-tree.h (CPTI_PTMD_DESC_TYPE): Rename to ...
* cp-tree.h (CPTI_PTMD_DESC_TYPE): Rename to ...
	(CPTI_PTMD_DESC_TYPE): ... here.
	(ptmd_desc_type_node): Rename to ...
	(ptm_desc_type_node): ... here.
	* decl.c: Likewise.
	* rtti.c (ptmd_initializer): Rename to ...
	(ptm_initializer): ... here.
	(sythesize_tinfo_var): Adjust. Deal with pointer to member
	function.
	(create_tinfo_types): Adjust.

From-SVN: r34190
2000-05-26 08:50:47 +00:00
Jeff Law
4d3ff8d823 Daily bump.
From-SVN: r34189
2000-05-26 01:45:07 -06:00
Richard Henderson
a0e5a544ae alpha.c (alpha_comparison_operator): Don't be so strict about DImode.
* config/alpha/alpha.c (alpha_comparison_operator): Don't be
        so strict about DImode.
        (alpha_swapped_comparison_operator): Likewise.
        * config/alpha/alpha.md (*setne_internal): Name it.  Allow
        any integer output mode.
        (*setcc_internal): Likewise.
        (*setcc_swapped_internal): Likewise.
        (*movdicc_internal, *movdicc_lbc, *movdicc_lbs): Name them.
        (*mov[qhs]icc_internal): New.
        (*mov[qhs]icc_lbc, *mov[qhs]icc_lbs): New.

From-SVN: r34188
2000-05-26 00:04:21 -07:00
J. David Anglin
b49425e47c vax.h (CPP_SPEC): Define __GFLOAT and GFLOAT when -mg is specified.
2000-05-25  J. David Anglin  <dave@hiauly1.hia.nrc.ca>

	* vax.h (CPP_SPEC): Define __GFLOAT and GFLOAT when -mg is specified.

From-SVN: r34187
2000-05-26 03:36:25 +00:00
Richard Henderson
f008a564f9 bb-reorder.c (reorder_block_def): Reorder elements for size.
* bb-reorder.c (reorder_block_def): Reorder elements for size.
        Remove add_jump; add next; replace flags with visited.
        (rbd_init): Remove.
        (REORDER_BLOCK_HEAD, REORDER_BLOCK_VISITED): Remove.
        (REORDER_BLOCK_FLAGS, REORDER_BLOCK_INDEX): Remove.
        (REORDER_BLOCK_ADD_JUMP, REORDER_BLOCK_EFF_HEAD): Remove.
        (REORDER_BLOCK_EFF_END, REORDER_BLOCK_SCOPE): Remove.
        (RBI): New.
        (reorder_index, reorder_last_visited): Remove.
        (skip_insns_after_block): Rewrite to use a switch.
        (get_common_dest): Remove.
        (chain_reorder_blocks): Remove.
        (record_effective_endpoints): Split out from reorder_basic_blocks.
        (make_reorder_chain): Likewise.  Loop until all blocks are placed.
        (make_reorder_chain_1): Renamed from old make_reorder_chain.
        Only construct the reorder chain, do not move insns.  Try harder
        to tail recurse.
        (label_for_bb, emit_jump_to_block_after): New.
        (fixup_reorder_chain): Use them.  Do bulk block movement.  Examine
        and adjust the jump insns appropriately.  Fixup basic_block_info.
        (verify_insn_chain): Always define.
        (relate_bbs_with_scopes): Call xmalloc, not xcalloc.  Fix thinko
        in allocation size.
        (make_new_scope): Don't write zeros to calloc'd space.
        (build_scope_forest): Rely on xrealloc to DTRT.
        (reorder_basic_blocks): Don't build loop nest.  Don't fail if
        profile_arc_flag.  Streamline EH test.

	* flow.c (redirect_edge_succ, redirect_edge_pred): New.
	* basic-block.h: Declare them.

From-SVN: r34186
2000-05-25 20:34:33 -07:00
Alexandre Oliva
49080ead6d * gcc.c-torture/compile/20000523-1.c: New test.
From-SVN: r34185
2000-05-26 02:15:55 +00:00
Alexandre Oliva
2d4aecb33a emit-rtl.c (reset_used_decls): New function.
* emit-rtl.c (reset_used_decls): New function.
(unshare_all_rtl_again): Call it.

From-SVN: r34184
2000-05-26 01:49:38 +00:00
Zack Weinberg
476f28692a cpplex.c (maybe_macroexpand): Warn about function-like macros used in non-function context, if -Wtraditional.
* cpplex.c (maybe_macroexpand): Warn about function-like
	macros used in non-function context, if -Wtraditional.

From-SVN: r34183
2000-05-26 01:29:35 +00:00
Tom Tromey
40aaba2b81 re GNATS gcj/162 (gcj does not initialize interfaces according to spec)
* parse.y (resolve_field_access): Don't check DECL_LANG_SPECIFIC
	when trying to see if field's class should be initialized.  Always
	initialize field's declaring class, not qualified class.
	For PR gcj/162.

From-SVN: r34182
2000-05-26 01:16:20 +00:00
Tom Tromey
b8c5b1c6d5 re GNATS gcj/235 (source parser dies when Primitive.TYPE is used in an array declaration)
* parse.y (array_constructor_check_entry): Pass `wfl_value', not
	`wfl_operator', to maybe_build_primttype_type_ref.
	Fixes PR gcj/235.

From-SVN: r34181
2000-05-26 01:12:37 +00:00
Mark Mitchell
887418182a * recog.c (peephole2_optimize): Use INSN_P.
From-SVN: r34180
2000-05-25 23:59:45 +00:00
Richard Henderson
4e4017cbe5 ifcvt.c (seq_contains_jump): New.
* ifcvt.c (seq_contains_jump): New.
        (noce_try_store_flag_constants): Use it to fail conversion.
        (noce_try_store_flag_inc, noce_try_store_flag_mask): Likewise.

From-SVN: r34179
2000-05-25 16:53:23 -07:00
Mark Mitchell
0519ce3019 except.h (can_throw): Declare it.
* except.h (can_throw): Declare it.
	* except.c (can_throw): Give it external linkage.
	* resource.c (find_dead_or_set_registers): Use can_throw.

From-SVN: r34178
2000-05-25 23:43:43 +00:00
Mark Mitchell
3ec6bad360 Finish implementation of VTTs.
* cp-tree.h (cp_tree_index): Add CPTI_VTT_PARM_TYPE and
	CPTI_VTT_PARM_IDENTIFIER.
	(vtt_parm_identifier): New macro.
	(vtt_parm_type): Likewise.
	(BINFO_SUBVTT_INDEX): Likewise.
	(BINFO_VPTR_INDEX): Likewise.
	(struct lang_decl): Add vtt_parm.
	(DECL_VTT_PARM): New macro.
	(DECL_USE_VTT_PARM): Likewise.
	(DECL_NEEDS_VTT_PARM_P): Likewise.
	(get_vtt_name): Declare.
	(build_artifical_parm): Likewise.
	(fixup_all_virtual_upcast_offsets): Likewise.
	(expand_indirect_vtbls_init): Remove.
	* call.c (build_new_method_call): Pass the vtt to subobject
	constructors and destructors.
	* class.c (get_vtt_name): Give it external linkage.
	(build_clone): Handle the magic VTT parameters for clones.
	(clone_function_decl): Fix typo in comment.
	(build_vtt): Keep track of the indices in the VTTs where various
	entities are stored.
	(build_vtt_inits): Likewise.
	(dfs_build_vtt_inits): Likewise.
	(build_ctor_vtbl_group): Tweak type of construction vtables.
	(dfs_accumulate_vtbl_inits): Build vtables for all bases, even
	primary bases, when building construction vtables.
	* decl.c (duplicate_decls): Handle DECL_VTT_PARM.
	(initialize_predefined_identifiers): Add vtt_parm_identifier.
	(init_decl_processing): Initialize vtt_parm_type.
	(grokfndecl): Use DECL_OVERLOADED_OPERATOR_P.
	(lang_mark_tree): Make vtt_parm.
	* decl2.c (build_artificial_parm): New function.
	(maybe_retrofit_in_chrg): Use it.  Add VTT parameters.
	(grokclassfn): Use build_artificial_parm.
	* init.c (initialize_vtbl_ptrs): Call
	fixup_all_virtual_upcast_offsets directly.
	(perform_member_init): Use the complete subobject destructor for
	member cleanups.
	(build_vtbl_address): New function.
	(expand_virtual_init): Handle VTTs.
	* optimize (maybe_clone_body): Likewise.
	* search.c (fixup_all_virtual_upcast_offsets): Give it external
	linkage.
	(expand_indirect_vtbls_init): Remove.
	* semantics.c (setup_vtbl_ptr): Fix typos in comment.
	* tree.c (make_binfo): Make them bigger.

From-SVN: r34177
2000-05-25 23:27:18 +00:00
Richard Henderson
a0ee3b8335 * flow.c (mark_set_1): Don't record conditionally dead memory.
From-SVN: r34176
2000-05-25 16:19:35 -07:00
Jan Hubicka
7f1c097d36 combine.c (try_combine): Use any_condjump_p...
* combine.c (try_combine): Use any_condjump_p, any_uncondjump_p
        and pc_set at the place of simplejump_p and condjump_p.
        * cse.c (record_jump_equiv): Likewise.
        * emit-rtl.c (emit): Likewise.
        * explow.c (find_next_ref): Likewise.
        * flow.c (tidy_fallthru_edge): Likewise.
        (init_propagate_block_info): Likewise.
        * gcse.c (delete_null_pointer_checks): Likewise.
        * ifcvt.c (cond_exec_get_condition, noce_get_condition,
        dead_or_predicable): Likewise.
        * integrate.c (copy_insn_list): Likewise.
        * loop.c (scan_loop, verify_dominator, find_and_verify_loops,
        for_each_insn_in_loop, check_dbra_loop, get_condition,
        insert_bct, load_mems): Likewise.
        * resource.c (find_dead_or_set_registers): Likewise.
        * sibcalls.c (simplejump_p): Likewise.
        * unroll.c (copy_loop_body, reg_dead_after_loop): Likewise.

From-SVN: r34175
2000-05-25 14:38:49 -07:00
David Edelsohn
acad7ed35f rs6000.c (expand_block_move): Add 64-bit PowerPC doubleword move to STRING case.
* rs6000.c (expand_block_move): Add 64-bit PowerPC doubleword move
        to STRING case.  Use doubleword STRING move for TARGET_POWERPC64
        when unaligned.
        * rs6000.h (CONST_OK_FOR_LETTER_P, 'J'): unsigned HOST_WIDE_INT.
        (RETURN_ADDR_RTX): Use COUNT and FRAME, not count and frame.
        (LEGITIMIZE_RELOAD_ADDRESS): unsigned HOST_WIDE_INT high.
        * rs6000.md: Name various internal patterns.

From-SVN: r34174
2000-05-25 14:17:46 -04:00
Phil Edwards
1098da33fe Early checkin of footer.html to trigger web checkout.
From-SVN: r34173
2000-05-25 16:59:08 +00:00
Nathan Sidwell
bfc2210762 * g++.old-deja/g++.abi/ptrflags.C: Use __pbase_type_info.
From-SVN: r34172
2000-05-25 16:58:47 +00:00
Jan Hubicka
742dff1596 Jan Hubicka <jh@suse.cz>
* jump.c (invert_exp_1): Remove first argument, use pc_set
        to get the expression.
        (redirect_exp): Make static; redirect only the pc_set expression,
        remove first argument.
        (invert_exp): Remove first argument, make static.
        (jump_optimize): Use any_condjump_p, any_uncondjump_p and
        any_onlyjump at most places where we originaly did condjump_p
        and simplejump_p.
        (jump_back_p, follow_jumps, thread_jumps): Likewise.
        (delete_barrier_succesors): Use pc_set.
        (invert_jump_1, invert_jump, redirect_jump_1, redirect_jump): Update
        calls of invert_exp and redirect_exp.
        * rtl.h (redirect_exp, invert_exp): Remove.
        * unroll.c (copy_loop_body): Use invert_jump and redirect_jump.

From-SVN: r34171
2000-05-25 09:41:30 -07:00
Richard Henderson
d1ee23e5c3 * stmt.c (expand_end_bindings): Fix thinko last change.
From-SVN: r34170
2000-05-25 09:33:32 -07:00
Andrew MacLeod
ce152ef836 except.c (func_eh_entry): Add emitted field.
2000-05-25  Andrew MacLeod  <amacleod@cygnus.com>
            Andrew Haley  <aph@cygnus.com>

	* except.c  (func_eh_entry): Add emitted field.
	(new_eh_region_entry): Set emitted field to 0;
	(output_exception_table_entry): Only emit previously un-emitted data,
	and send it to the eh_data section.
	(output_exception_table): Break out common parts. Output
	exception table for entire compilation unit to eh_data section.
	(output_exception_table_data): Common parts of output_exception_table.
	Send output to eh_data section.
	(output_function_exception_table): Output exception table data for
	a single function to eh_data section.
	(free_exception_table): New external to free the table.
	* except.h (free_exception_table): Add prototype.
	(output_function_exception_table): Add prototype.
	* final.c (final_end_function): Output function exception table
	for IA64_UNWIND_INFO.
	(final_scan_insn): Emit any unwind directives for an insn.

	* frame-dwarf2.c: New file containing all DWARF 2 specific code
	from frame.c.
	* frame.c: Remove all DWARF 2 specific code.
	* config/ia64/frame-ia64.c: New file.
	(gthread_stuff): Make all gthread available with
	IA64_UNWIND_INFO.
	(dwarf_fde): Define an IA64 struct for dwarf_fde.
	(__register_frame_info, __register_frame): Move to common area of file.
	(__register_frame_info_table, __register_frame_table): Move to common i
	area.
	(__deregister_frame_info, __deregister_frame): Move to common area.
	(__frame_init, find_fde): New versions for IA64_UNWIND_INFO.
	(read_uleb128): New version for ia64.
	(get_unwind_record): Read the next IA-64 unwind record.
	(read_R_record): Read a region header record.
	(process_a_b_reg_code): X record helper.
	(read_X_record): Read an X format record.
	(read_B_record): Read a B format record.
	(P3_record_types): List of record types matching the P3 format.
	(P7_record_types): List of record types matching the P7 format.
	(P8_record_types): List of record types matching the P8 format.
	(read_P_record): Read a P format record.
	(init_ia64_reg_loc): Set default fields for a register.
	(init_ia64_unwind_frame): Set defaults for all register records.
	(execute_one_ia64_descriptor): Execute one descriptor record.
	(rse_address_add): Calculate the position of a local reg in memory.
	(normalize_reg_loc): Turn a location descriptor into a memory address.
	(maybe_normalize_reg_loc): Only normalize a descriptor if it falls
	within a specified PC offset range.
	(get_real_reg_value): Given a register location, retrieve its value.
	(set_real_reg_value): Change the value of a register location.
	(copy_reg_value): Copy reg values, if needed.
	(copy_saved_reg_state): Copy all registers that need to be copied.
	(process_state_between): Normalize all frame register records that
	fall within the specified PC range.
	(frame_translate): Take a processed frame description, and turn
	everything into addresses.
	(build_ia64_frame_state ): Find and create frame state record for a PC.
	(get_personality): Get the personality routine for a given frame.
	(get_except_table): Get the exception table for a given frame.
	(record_name): Unwind record names for debugging.
	(print_record): Print and unwind record.
	(print_all_records): Print an entire unwind image.
	(__ia64_backtrace): Print a backtrace.
	(ia64_backtrace_helper): New function.
	(__register_frame_info_aux): New function.
	* config/ia64/crtend.asm (__do_frame_setup_aux): New function.

	* frame.h (enum unw_record_type): New unwind record types.
	(struct unw_p_record, unw_b_record, unw_x_record) : New unwind records.
	(struct unw_r_record, unwind_record): New unwind record structs.
	(struct unwind_info_ptr): Unwind information layout.
	(IA64_UNW_LOC_TYPE_*): Macros for different types for location
	descriptors.
	(struct ia64_reg_loc): Register location description.
	(struct ia64_frame_state): Location of all registers in a frame.
	(struct object): Add pc_base and fde_end for IA64_UNWIND_INFO.
	* libgcc2.c (__ia64_personality_v1): Personality routine.
	(__calc_caller_bsp): Calculate the bsp register for the caller's
	frame.
	(ia64_throw_helper): Figure out who to return to and set up the
	registers.
	(__throw): Throw routine.

	* output.h (assemble_eh_align, assemble_eh_label): New functions
	to generate EH info where we want it.
	(assemble_eh_integer): New function.
	* toplev.c (compile_file): Output module level exception table for
	non-ia64 targets.
	(main): Set exceptions_via_longjump and flag_new_exceptions based
	on IA64_UNWIND_INFO too.

	* varasm.c (assemble_eh_label): Generate a label via
	ASM_OUTPUT_EH_LABEL if it has been specified.
	(assemble_eh_align): Generate an alignment directive via
	ASM_OUTPUT_EH_ALIGN if it has been specified.
	(assemble_eh_label): Generate an integer value via
	ASM_OUTPUT_EH_type if they have been specified.
	* config/ia64/ia64.c (rtx_needs_barrier): Add flushrs.
	(ia64_init_builtins): Add __builtin_ia64_bsp
	and __builtin_ia64_flushrs.
	(ia64_expand_builtin): Add IA64_BUILTIN_BSP and
	IA64_BUILTIN_FLUSHRS.
	* config/ia64/ia64.h (ia64_builtins): Add IA64_BUILTIN_BSP and
	IA64_BUILTIN_FLUSHRS.

	* config/ia64/ia64.md (flushrs): New insn to flush the register
	stack.  Add to unspec list.

	* config/ia64/crtbegin.asm (frame_object): Change size.
	(__do_frame_setup_aux): New function.
	* config/ia64/crtend.asm: call __do_frame_setup_aux.
	* config/ia64/t-ia64 (LIB2ADDEH): Add.
	* Makefile.in (LIB2ADDEH): Add.
	(LIB2ADD): Use LIB2ADDEH.

Co-Authored-By: Andrew Haley <aph@cygnus.com>

From-SVN: r34169
2000-05-25 15:21:51 +00:00
Benjamin Kosnik
c66265e483 inclosure: Change to...
2000-05-25  Benjamin Kosnik  <bkoz@milou.soma.redhat.com>

	* inclosure: Change to...
	* mkinclosure: This.
	Fix paths to bash.
	* mkcshadow: Fix paths to bash.

	* src/Makefile.am: Tweaks. Do cshadow header trickery at build time.
	* src/Makefile.in: Regnerate.
	* acinclude.m4 (GLIBCPP_COMPILER_VERSION): Fix typo.
	(GLIBCPP_ENABLE_SHADOW): Do a less gross hack.
	* aclocal.m4: Regenerate.
	* mkcheck.in (INC_PATH): Tweak.

	* configure.in: Enable long long by default.
	* configure: Regenerate.

	* mkcheck.in (LIB_PATH): Revert.

From-SVN: r34168
2000-05-25 13:25:46 +00:00
Benjamin Kosnik
39e09fba96 inclosure: Change to...
2000-05-25  Benjamin Kosnik  <bkoz@milou.soma.redhat.com>

	* inclosure: Change to...
	* mkinclosure: This.
	Fix paths to bash.
	* mkcshadow: Fix paths to bash.

	* src/Makefile.am: Tweaks. Do cshadow header trickery at build time.
	* src/Makefile.in: Regnerate.
	* acinclude.m4 (GLIBCPP_COMPILER_VERSION): Fix typo.
	(GLIBCPP_ENABLE_SHADOW): Do a less gross hack.
	* aclocal.m4: Regenerate.
	* mkcheck.in (INC_PATH): Tweak.

	* configure.in: Enable long long by default.
	* configure: Regenerate.

	* mkcheck.in (LIB_PATH): Revert.

From-SVN: r34167
2000-05-25 13:19:15 +00:00
Benjamin Kosnik
5b80666b99 inclosure: Change to...
2000-05-25  Benjamin Kosnik  <bkoz@milou.soma.redhat.com>

	* inclosure: Change to...
	* mkinclosure: This.
	Fix paths to bash.
	* mkcshadow: Fix paths to bash.

	* src/Makefile.am: Tweaks. Do cshadow header trickery at build time.
	* src/Makefile.in: Regnerate.
	* acinclude.m4 (GLIBCPP_COMPILER_VERSION): Fix typo.
	(GLIBCPP_ENABLE_SHADOW): Do a less gross hack.
	* aclocal.m4: Regenerate.

	* configure.in: Enable long long by default.
	* configure: Regenerate.

	* mkcheck.in (LIB_PATH): Revert.

From-SVN: r34166
2000-05-25 13:09:01 +00:00
Nathan Sidwell
e65d7eac57 cxxabi.h (__pbase_type_info): Define, based on __pointer_type_info.
* inc/cxxabi.h (__pbase_type_info): Define, based on
	__pointer_type_info.
	(__pointer_type_info): Derive from __pbase_type_info. Adjust.
	(__pointer_to_member_type_info): Likewise.
	* tinfo2.cc (__pbase_type_info::~__pbase_type_info): Implement.
	(__pointer_to_member_type_info::__is_pointer_p): Remove.
	(__pointer_type_info::__do_catch): Rename to ...
	(__pbase_type_info::__do_catch): ... here. Adjust.
	(__pbase_type_info::__pointer_catch): Implement.
	(__pointer_type_info::__pointer_catch): Adjust.
	(__pointer_to_member_type_info::__pointer_catch): Adjust.

From-SVN: r34165
2000-05-25 11:49:34 +00:00
Nathan Sidwell
bebc2c610a catch11.C: New test.
* g++.old-deja/g++.eh/catch11.C: New test.
	* g++.old-deja/g++.eh/catch12.C: New test.

From-SVN: r34164
2000-05-25 11:16:11 +00:00
Nathan Sidwell
e2e11048ae tinfo.h (__user_type_info::contained_virtual_p): New predicate.
* tinfo.h (__user_type_info::contained_virtual_p): New
	predicate.
	* tinfo.cc (__user_type_info::do_upcast): Fix bug with diamond
	shaped heirarchy.
	(__vmi_class_type_info::__do_upcast): Fix bug with NULL pointer to
	diamond shaped heirarchy. Add early out for mixed diamond and
	duplicate shaped heirarchy.

From-SVN: r34163
2000-05-25 11:13:17 +00:00
Benjamin Kosnik
bf93f43bb4 [multiple changes]
2000-05-24   Nathan "I don't write ChangeLog Entries" Myers  <ncm@cantrip.org>

	* config/cpu/i486: New directory.
	* config/cpu/i486/bits: New directory.
	* config/cpu/i486/bits/atomicity.h: New file.
	* config/cpu/i386/bits/atomicity.h (__compare_and_swap): Delete
	'cmpxchgl' asm.
	* acinclude.m4 (GLIBCPP_CHECK_CPU): Enable i386.

2000-05-24  Loren J. Rittle  <ljrittle@acm.org>

        * backward/alloc.h (__default_alloc_template): Only expose
          implementation-specific symbol, if it exists in the
          configuration.
        * backward/iostream.h (ends): Expose symbol.
        * backward/strstream.h: New file.
        * backward/stream.h: New file.
        * backward/ostream.h: New file.
        * backward/istream.h: New file.
        * backward/fstream.h: New file.
        * backward/complex.h: New file.
        * backward/iomanip.h: New file.

	* mkcheck.in (LIB_PATH): Add -R bits.

	* math/carg.c (carg): Replace __atan2 with atan2.

From-SVN: r34162
2000-05-25 10:14:26 +00:00
Loren J. Rittle
1601a6a08b alloc.h (__default_alloc_template): Only expose implementation-specific symbol, if it exists in the configuration.
2000-05-24  Loren J. Rittle  <ljrittle@acm.org>

        * backward/alloc.h (__default_alloc_template): Only expose
          implementation-specific symbol, if it exists in the
          configuration.
        * backward/iostream.h (ends): Expose symbol.
        * backward/strstream.h: New file.
        * backward/stream.h: New file.
        * backward/ostream.h: New file.
        * backward/istream.h: New file.
        * backward/fstream.h: New file.
        * backward/complex.h: New file.
        * backward/iomanip.h: New file.

	* mkcheck.in (LIB_PATH): Add -R bits.

	* math/carg.c (carg): Replace __atan2 with atan2.

From-SVN: r34161
2000-05-25 10:06:30 +00:00
Nathan C. Myers
53601625c5 i486: New directory.
2000-05-19   Nathan "I don't write ChangeLog Entries" Myers  <ncm@cantrip.org>

	* config/cpu/i486: New directory.
	* config/cpu/i486/bits: New directory.
	* config/cpu/i486/bits/atomicity.h: New file.
	* config/cpu/i386/bits/atomicity.h (__compare_and_swap): Delete
	'cmpxchgl' asm.
	* acinclude.m4 (GLIBCPP_CHECK_CPU): Enable i386.

From-SVN: r34160
2000-05-25 10:04:12 +00:00
Jeff Law
3edd645e62 Daily bump.
From-SVN: r34159
2000-05-25 01:45:06 -06:00