1. 16 Dec, 2001 14 commits
    • re PR other/3725 (changed to configure.in's for autoconf 2.50) · f28c857f
      2001-12-16  Craig Rodrigues  <rodrigc@gcc.gnu.org>
      
              PR other/3725
              * configure.in: Add AC_SUBST(target_alias).
              * configure: Regenerated.
      
      From-SVN: r48063
      Craig Rodrigues committed
    • decl.c (java_init_decl_processing): Build otable_type correctly. · 9a8de998
      	* decl.c (java_init_decl_processing): Build otable_type correctly.
      	otable_decl is an otable_type.
      
      From-SVN: r48062
      Bryce McKinlay committed
    • alpha.md (sibcall_osf_1_er): New. · 97feffc2
              * config/alpha/alpha.md (sibcall_osf_1_er): New.
              (sibcall_value_osf_1_er): New.
      
      From-SVN: r48061
      Richard Henderson committed
    • * sem_ch7.adb: Wrap comment. · b6434700
      From-SVN: r48060
      Richard Henderson committed
    • sparc.c (mems_ok_for_ldd_peep): Rename from addrs_ok_for_ldd_peep_withmem... · 2aad5d68
              * config/sparc/sparc.c (mems_ok_for_ldd_peep): Rename from
              addrs_ok_for_ldd_peep_withmem; take MEMs as parameters, not
              addrs; eliminate restriction of only using fp and sp as base
              registers.
              * config/sparc/sparc-protos.h: Update.
              * config/sparc/sparc.md (movdi): Use TARGET_V9 not TARGET_ARCH64.
              (*cmp_cc_set, *cmp_ccx_set64, *movdi_zero): New insns derived
              from old define_peepholes.
              Convert all the ldd/std peepholes to peephole2.
      
      From-SVN: r48059
      Dan Nicolaescu committed
    • s390.md (prologue, [...]): New. · 4023fb28
      	* s390.md (prologue, epilogue, *return_si, *return_di): New.
      	s390.c (find_unused_clobbered_reg, s390_frame_info,
      	save_fpr, restore_fpr, s390_emit_prologue, s390_emit_epilogue): New.
      	s390-protos.h (s390_emit_prologue, s390_emit_epilogue): Declare.
      	s390.c (s390_arg_frame_offset): Use s390_frame_info.
      	(leaf_function_flag, cur_is_leaf_function,
      	save_fprs, restore_fprs, force_const_mem_late): Remove.
      	(s390_function_prologue, s390_function_epilogue): Mostly remove.
      	s390.md (lit): New.  Uses ...
      	s390.c (s390_output_constant_pool): ... this, so adapt and make global.
      	s390-protos.h (s390_output_constant_pool): Declare.
      	s390.md (load_multiple, store_multiple): Allow use after reload.
      	s390.c (load_multiple_operation, store_multiple_operation): Likewise.
      	s390.h (INCOMING_FRAME_SP_OFFSET): Define.
      	s390.h (CALL_REALLY_USED_REGISTERS): Define.
      	config/s390/linux64.h (CALL_USED_REGISTERS): Remove, now handled ...
      	s390.h (CONDITIONAL_REGISTER_USAGE): ... here.
      	s390.c (s390_sr_alias_set): New global variable, initialized ...
      	(override_options): ... here.  New.
      	s390-protos.h (override_options): Declare.
      	s390.h (OVERRIDE_OPTIONS): Call it.
      	s390.c (s390_function_profiler): New.
      	s390-protos.h (s390_function_profiler): Declare.
      	s390.h (FUNCTION_PROFILER): Call it.
      	s390.c (s390_profile): Remove.
      
      	* s390.c (reg_used_in_mem_p): PC reload counts as memory access.
      	(addr_generation_dependency_p): Consider literal pool register loads.
      	(s390_adjust_priority): Do not schedule load_multiple.
      	s390.md (attribute "type"): Define some additional types.
      	(function_unit "integer"): Adapt.
      	(many insns): Adapt "type" attribute setting.
      
      	* s390.c (general_s_operand, s_imm_operand): New.
      	(s_operand): Remove old definition, call general_s_operand instead.
      	s390-protos.h (s_imm_operand): Declare.
      	s390.c (base_n_index_p, r_or_s_operand, r_or_s_or_im8_operand,
      	r_or_x_or_im16_operand, r_or_im8_operand): Remove.
      	s390-protos.h (r_or_s_operand, r_or_s_or_im8_operand,
      	r_or_x_or_im16_operand, r_or_im8_operand): Likewise.
      	s390.h (PREDICATE_CODES): Add s_imm_operand, remove r_or_s*_operand.
      	s390.md (many insns): Rework insn predicates.
      
      	* s390.c (legitimate_pic_operand_p, legitimate_constant_p): Accept all
      	non-symbolic constants.  Reload will force them because of ...
      	(s390_preferred_reload_class): ... this.  New.
      	s390-protos.h (s390_preferred_reload_class): Declare.
      	s390.h (PREFERRED_RELOAD_CLASS): Call it.
      	s390.md (movdi, movsi, movdf, movsf, *reload_la_64 splitters,
      	*reload_la_31 splitters): Handle constants after reload.
      	(many insns): no longer force all constants immediately.
      	s390.c (legitimate_reload_constant_p): New helper routine.
      	s390-protos.h (legitimate_reload_constant_p): Declare.
      	s390.c (print_operand): Clean up CONST_INT case, add CONST_DOUBLE case.
      
      	* s390.h (FIRST_PSEUDO_REGISTER, FRAME_POINTER_REGNUM,
      	HARD_FRAME_POINTER_REGNUM, REGISTER_NAMES): Add virtual frame pointer.
      	(CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS): Update.
      	(ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET): Likewise.
      	(REGNO_OK_FOR_INDEX_P, REG_OK_FOR_INDEX_NONSTRICT_P): Likewise.
      	(DWARF_FRAME_REGISTERS): Define.
      	s390.c (regclass_map): Add virtual frame pointer.
      	(legitimate_la_operand_p): Allow use of virtual frame pointer.
      	s390.md (*la_ccclobber, *addaddr_ccclobber): New.
      	(addaddr, addsi_64): Delete.
      
      	* s390.h (HARD_REGNO_MODE_OK): Allow SImode and DImode values in
      	floating point registers.
      	(CLASS_CANNOT_CHANGE_MODE, CLASS_CANNOT_CHANGE_MODE_P): Define.
      	(ADDR_FP_REGS, GENERAL_FP_REGS): New register classes.
      	(REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update.
      
      	* s390.md (movti): Replace multi-insn output with splitters.
      	(movdi_31, movdf_31): Likewise.
      	(movti_ss, movdi_ss, movsi_ss, movdf_ss, movsf_ss): New.
      	(movdi_lhi, movdi_lli, movdi_larl, movsi_lhi, movsi_lli): New.
      	(movdi_64, movdi_31, movsi, movdf_64, movdf_31): Adapt.
      	(movdf_soft_64, movdf_soft_31, movsf_soft): Remove.
      	(movsf_64, movsf_31): Remove, replace by ...
      	(movsf): ... this.
      	(movqi_64): Use lhi instead of llill.
      	(*movstrictqi, *movstricthi): Don't use (strict_low_part (mem)).
      
      	* s390.md (extendsidi2, *extendsidi2, extendhidi2, *extendhidi2,
      	extendqidi2, extendhisi2, *extendhisi2, extendqisi2,
      	extendqihi2 and associated splitters): Reworked.
      	(zero_extendsidi2, zero_extendsidi2, *zero_extendsidi2,
      	zero_extendhidi2, *zero_extendhidi2, zero_extendqidi2,
      	zero_extendqidi2, *zero_extendqidi2, zero_extendhisi2,
      	*zero_extendhisi2_64, zero_extendhisi2_31, zero_extendqisi2,
      	*zero_extendqisi2_64, *zero_extendqisi2_mem_31,
      	zero_extendqisi2_reg_31, zero_extendqihi2, *zero_extendqisi2_64,
      	zero_extendqihi2, zero_extendqihi2_64, zero_extendqihi2_31,
      	and associated splitters): Likewise.
      	(*sethighqisi, *sethighhisi, *sethighqidi_64, *sethighqidi_31
      	and associated splitters): New.
      	(truncdisi2, truncdihi2, truncdiqi2, truncsihi2, do_truncsihi2,
      	*truncsihi2_64, truncsiqi2, trunchiqi2): Remove.
      	(ashlhi3, ashrhi3, lshrhi3, abshi3): Remove.
      	s390.h (PROMOTE_PROTOTYPES): Remove.
      	config/s390/linux64.h (PROMOTE_PROTOTYPES): Likewise.
      
      	* s390.md (muldi3): Delete, use instead ...
      	(mulsidi3): ... this.
      	(*muldi3_64): Rename to muldi3.
      	(mulsi_6432): Fix template.
      	(divdi3, moddi3): Delete, replace by ...
      	(divmoddi4): ... this.
      	(divmodtidi3): Fix template.
      	(divmodtisi3): New.
      	(udivdi3, umoddi3): Delete, replace by ...
      	(udivmoddi4): ... this.
      	(udivmodtidi3): Fix template.
      	(divsi3, modsi3): Delete, replace by ...
      	(divmodsi4): ... this.
      	(divmoddisi3): Fix template.
      	(udivsi3, umodsi3): Adapt.
      
      	* s390.md (anddi3): Remove SS alternative, use instead ...
      	(anddi3_ss, anddi3_ss_inv): ... these.
      	(anddi3_ni): New.
      	(andsi3*, andhi3*, andqi3*): Likewise.
      	(iordi3): Remove SS alternative, use instead ...
      	(iordi3_ss, iordi3_ss_inv): ... these.
      	(iordi3_oi): New.
      	(iorsi3*, iorhi3*, iorqi3*): Likewise.
      	(iordi3_cc, iordi3_cconly, iorsi3_cc, iorsi3_cconly): New.
      	(xordi3): Remove SS alternative, use instead ...
      	(xordi3_ss, xordi3_ss_inv): ... these.
      	(xordi3_oi): New.
      	(xorsi3*, xorhi3*, xorqi3*): Likewise.
      	(xordi3_cc, xordi3_cconly, xorsi3_cc, xorsi3_cconly): New.
      	(one_cmpldi2, one_cmplsi2, one_cmplhi2, one_cmplqi2):
      	Expand to XOR with -1.
      	(*one_cmpldi2, *one_cmplsi2, *one_cmplhi2): Remove.
      	(cmpdi_tm): Delete, replace by ...
      	(cmpdi_tm_reg, cmpdi_tm_mem): ... these.
      	(cmpsi_cct): Delete, replace by ...
      	(cmpsi_tm_reg, cmpsi_tm_mem): ... these.
      	(cmpdi_tm2, cmpsi_tm2): Improve.
      	(cmphi_tm_sub, cmpqi_tm_sub, cmpqi_tm2, cmpqi_tm): New.
      	s390.c (s390_single_hi, s390_extract_hi,
      	s390_single_qi, s390_extract_qi): New helper routines.
      	s390-protos.h (s390_single_hi, s390_extract_hi,
      	s390_single_qi, s390_extract_qi): Declare.
      	s390.c (tmxx_operand, const1_operand): Remove.
      	s390-protos.h (tmxx_operand, const1_operand): Likewise.
      	s390.h (PREDICATE_CODES): Likewise.
      
      	* s390.md (sqrtdf2, sqrtsf2): New.
      
      	* s390.h (CRT_CALL_STATIC_FUNCTION): Define.
      	(check_and_change_labels): Remove section-change special case.
      
      	* s390.h (RETURN_ADDR_RTX): Fix use of __builtin_return_address
      	in leaf functions.  Needs ...
      	(DYNAMIC_CHAIN_RTX):  ... this.  New.
      
      	* s390.c (emit_pic_move): Don't generate pseudos if no_new_pseudos.
      
      	* s390.md (movstrdix_64, movstrsix_31, movstrdi_64, movstrsi_31,
      	clrstrsi_64, clrstrsi_31, cmpstr_64, cmpstr_31): Do not clobber
      	input operands using a match_dup clause.
      	(movstrdi, movstrsi, clrstrdi, clrstrsi, cmpstrdi, cmpstrsi): Adapt.
      
      	* s390.md (floatdidf2, floatdisf2, floatsidf2, floatsidf2_ieee,
      	floatsisf2, floatsisf2_ieee): Add missing CC clobber.
      
      	* s390.md (floatsidf2_ibm): Use correct operand.
      
      	* s390.md (fixuns_truncdfdi2, fixuns_truncdfsi2, fix_truncdfsi2,
      	fixuns_truncsfdi2, fixuns_truncsfsi2, floatsidf2): Remove use of
      	non-portable constants.
      	s390.c (s390_gen_rtx_const_DI): New helper routine.
      	s390-protos.h (s390_gen_rtx_const_DI): Declare.
      
      	* s390.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Fix alignment.
      
      	* config/s390/linux.h (ASM_OUTPUT_SHORT, ASM_OUTPUT_CHAR,
      	ASM_OUTPUT_BYTE): Clean up assembly output.
      	(ASM_OUTPUT_SKIP, ASM_OUTPUT_ALIGN): Remove duplicate definitions.
      	(ASM_OUTPUT_ASCII): Remove.
      
      	* config/s390/t-linux (CRTSTUFF_T_CFLAGS_S): Define.
      
      From-SVN: r48058
      Ulrich Weigand committed
    • Add newline in copyright block. · 8aab0f2b
      From-SVN: r48057
      Richard Kenner committed
    • unwind-dw2-fde-glibc.c: #define _Unwind_Find_FDE to itself before including unwind-dw2-fde.c... · 5f77a9c5
              * unwind-dw2-fde-glibc.c: #define _Unwind_Find_FDE to itself
              before including unwind-dw2-fde.c, if we are not using the
              special code in this file.
      
      From-SVN: r48056
      Zack Weinberg committed
    • 5ataprop.adb, [...]: Fix spelling errors. · 44d6a706
      	* 5ataprop.adb, 5atpopsp.adb, 5ftaprop.adb, 5gmastop.adb,
      	5gtaprop.adb, 5htaprop.adb, 5itaprop.adb, 5lintman.adb,
      	5omastop.adb, 5oosinte.adb, 5otaprop.adb, 5staprop.adb,
      	5vinterr.adb, 5vtaprop.adb, 5vtpopde.adb, 5wintman.adb,
      	5wtaprop.adb, 5zinterr.adb, 5ztaprop.adb, 6vcstrea.adb,
      	7sintman.adb, 7staprop.adb, 9drpc.adb, ChangeLog, Makefile.in,
      	a-except.adb, a-tags.ads, a-tasatt.adb, a-teioed.adb,
      	a-textio.ads, a-witeio.ads, a-wtedit.adb, ali.ads, comperr.adb,
      	cstand.adb, einfo.ads, errout.adb, exp_ch11.adb, exp_ch2.adb,
      	exp_ch3.adb, exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch9.adb,
      	exp_util.adb, exp_util.ads, fname-uf.adb, g-cgi.ads, g-exctra.ads,
      	g-expect.ads, g-regist.adb, g-spipat.adb, gnatchop.adb,
      	gnatlink.adb, gnatls.adb, gnatmain.adb, gnatmem.adb, init.c,
      	make.adb, make.ads, mdlltool.adb, nlists.ads, osint.ads,
      	par-ch3.adb, par-ch4.adb, par-ch5.adb, par-ch6.adb, par.adb,
      	repinfo.adb, s-fatflt.ads, s-fatlfl.ads, s-fatllf.ads,
      	s-fatsfl.ads, s-finimp.adb, s-finimp.ads, s-interr.adb,
      	s-secsta.ads, s-shasto.ads, s-stalib.adb, s-stalib.ads,
      	s-tarest.ads, s-tasdeb.adb, s-tassta.adb, s-tassta.ads,
      	s-vaflop.ads, scans.ads, scn.adb, sem.ads, sem_aggr.adb,
      	sem_attr.adb, sem_case.ads, sem_ch10.adb, sem_ch12.adb,
      	sem_ch13.adb, sem_ch3.adb, sem_ch3.ads, sem_ch5.adb, sem_ch7.adb,
      	sem_ch8.adb, sem_ch8.ads, sem_type.adb, sem_util.ads, sinfo.ads,
      	sprint.adb, tbuild.ads, types.ads, utils.c, xeinfo.adb: Fix
      	spelling errors.
      
      From-SVN: r48055
      Joseph Myers committed
    • alpha.h (TARGET_SWITCHES): Turn on MASK_EXPLICIT_RELOCS if the assembler supports it. · 3a37b08e
              * config/alpha/alpha.h (TARGET_SWITCHES): Turn on
              MASK_EXPLICIT_RELOCS if the assembler supports it.
              * configure.in (HAVE_AS_EXPLICIT_RELOCS): New.
              * configure, config.in: Rebuild.
      
      From-SVN: r48054
      Richard Henderson committed
    • 2001-12-15 Paolo Carlini <pcarlini@unitus.it> · bd1f4738
                  Nathan Myers  <ncm@cantrip.org>
      
              * include/bits/basic_string.h
      	(assign(__str, __pos, __n), assign(__s, __n)):  Optimize
      	by avoiding unnecessary temporaries.
      	(assign(__s)): Call assign(__s, __n).
      	* include/bits/basic_string.tcc (_M_replace_safe): Adjust comment.
      	* include/bits/std_string.h: include stl_function.h.
              * testsuite/21_strings/assign.cc (test02, test03): New tests.
      
      Co-Authored-By: Nathan Myers <ncm@cantrip.org>
      
      From-SVN: r48053
      Paolo Carlini committed
    • osint.adb (Create_Debug_File): When an object file is specified... · 226ada7a
      	* osint.adb(Create_Debug_File): When an object file is specified,
      	put the .dg file in the same directory as the object file.
      
      	* osint.adb: Minor reformatting
      
      	* lib-xref.adb (Output_Instantiation): New procedure to generate
      	instantiation references.
      
      	* lib-xref.ads: Add documentation of handling of generic references.
      
      	* ali.adb (Read_Instantiation_Ref): New procedure to read
      	instantiation references
      
      	* ali.ads: Add spec for storing instantiation references
      
      	* bindusg.adb: Minor reformatting
      
      	* switch.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
      
      	* usage.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
      
      	* gnatcmd.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
      
      	* csets.adb: Add entry for Latin-5 (Cyrillic ISO-8859-5)
      
      	* csets.ads:
      	Fix header format
      	Add 2001 to copyright date
      	Add entry for Latin-5 (Cyrillic ISO-8859-5)
      
      	* adaint.c: mktemp is a macro on Lynx and can not be used as an
      	expression.
      
      	* misc.c (gnat_expand_constant): Do not strip UNCHECKED_CONVERT_EXPR
      	if operand is CONSTRUCTOR.
      
      	* trans.c (tree_transform, case N_Assignment_Statement): Set lineno
      	before emiting check on right-hand side, so that exception information
      	is correct.
      
      	* utils.c (create_var_decl): Throw away initializing expression
      	if just annotating types and non-constant.
      
      	* prj-nmsc.adb: (Ada_Check): Migrate drom Ada_Default_... to
      	Default_Ada_...
      
      	* prj.adb: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
      	Remove functions.
      	(Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Move to spec.
      
      	* prj.ads: (Ada_Default_Spec_Suffix, Ada_Default_Impl_Suffix):
      	Remove functions.
      	(Default_Ada_Spec_Suffix, Default_Ada_Impl_Suffix): Move from body.
      
      From-SVN: r48052
      Geert Bosch committed
    • * ChangeLog: Remove piece of diff output. · 9b94bf9e
      From-SVN: r48051
      Joseph Myers committed
    • DataOutputStream (write (byte[], int, int)): Update "written" correctly. · 1e2bba35
      	* java/io/DataOutputStream (write (byte[], int, int)): Update
      	"written" correctly. Fix from the ORP team.
      
      From-SVN: r48050
      Bryce McKinlay committed
  2. 15 Dec, 2001 26 commits
    • calls.c (emit_call_1): If ECF_SP_DEPRESSED, pretend have adjusted for rounded_stack_size. · f79a65c0
      	* calls.c (emit_call_1): If ECF_SP_DEPRESSED, pretend have adjusted
      	for rounded_stack_size.
      
      From-SVN: r48049
      Richard Kenner committed
    • c-typeck.c, [...]: Use "built-in" and "bit-field" spellings in messages. · b0287a90
      	* c-typeck.c, config/i386/i386.h, config/mcore/mcore.h,
      	config/ns32k/ns32k.h, config/rs6000/sysv4.h, fold-const.c,
      	toplev.c, cppinit.c, cppmacro.c, gcc.c: Use "built-in" and
      	"bit-field" spellings in messages.
      	* po/gcc.pot: Regenerate.
      
      ch:
      	* expr.c: Use "built-in" spelling in messages.
      
      From-SVN: r48048
      Joseph Myers committed
    • gcc.c, [...]: Use American spelling in messages. · 1737c953
      	* gcc.c, config/fr30/fr30.c, config/v850/v850-c.c, toplev.c: Use
      	American spelling in messages.
      	* po/gcc.pot: Regenerate.
      
      ch:
      	* decl.c, parse.c, typeck.c: Use American spelling in messages.
      
      cp:
      	* lang-options.h: Use American spelling in messages.
      
      From-SVN: r48047
      Joseph Myers committed
    • acinclude.m4 (GLIBCPP_ENABLE_CLOCALE): Enable gnu locale model on linux by default. · 56deb74c
      
      2001-12-15  Benjamin Kosnik  <bkoz@redhat.com>
      
      	* acinclude.m4 (GLIBCPP_ENABLE_CLOCALE): Enable gnu locale model
      	on linux by default.
      	* aclocal.m4: Regenerate.
      	* configure: Regenerate.
      
      From-SVN: r48046
      Benjamin Kosnik committed
    • h8300.md: Adjust whitespacing. · 7fcd4787
      	* config/h8300/h8300.md: Adjust whitespacing.  Remove
      	constraints from expanders.  Replace \@ with @.
      
      From-SVN: r48045
      Kazu Hirata committed
    • regrename.c (copyprop_hardreg_forward): Do not keep register value data live… · 22c56562
      regrename.c (copyprop_hardreg_forward): Do not keep register value data live across abnormal call or eh egdes.
      
      * regrename.c (copyprop_hardreg_forward): Do not keep register
      value data live across abnormal call or eh egdes.
      
      From-SVN: r48043
      Ulrich Weigand committed
    • expr.c (highest_pow2_factor, [...]): Return BIGGEST_ALIGNMENT for 0. · 3a531a8b
      	* expr.c (highest_pow2_factor, case INTEGER_CST): Return
      	BIGGEST_ALIGNMENT for 0.
      
      From-SVN: r48042
      Richard Kenner committed
    • predict.def (PRED_NORETURN, [...]): Make probabilities match reality. · dcfcd436
      	* predict.def (PRED_NORETURN, PRED_OPCODE_POSITIVE, PRED_OPCODE_NONEQUAL,
      	PRED_ERROR_RETURN): Make probabilities match reality.
      
      From-SVN: r48041
      Jan Hubicka committed
    • configure.in: Check for ld. · 275b60d6
      	* configure.in: Check for ld.
      	(HAVE_LD_EH_FRAME_HDR): Define if ld supports --eh-frame-hdr option.
      	* configure, config.in: Rebuilt.
      	* config.gcc: Add crtbeginT.o to extra_parts where needed.
      	* config/t-linux (LIB2ADDEH, LIB2ADDEHDEP): Use unwind-dw2-fde-glibc
      	frame unwinding on Linux.
      	* config/t-linux-gnulibc1 (LIB2ADDEH, LIB2ADDEHDEP): Use unwind-dw2-fde
      	frame unwinding.
      	* config/linux.h (STARTFILE_SPEC): Use crtbeginT.o for -static.
      	(LINK_EH_SPEC): Define.
      	* config/i386/gnu.h (STARTFILE_SPEC): Use crtbeginT.o for -static.
      	* config/ia64/linux.h (STARTFILE_SPEC, LINK_EH_SPEC): Define.
      	* config/ia64/fde-glibc.c (_Unwind_IteratePhdrCallback): Don't
      	iterate further if pc falls into current library, but fde was not
      	found.
      	* config/sparc/linux.h (STARTFILE_SPEC): Use crtbeginT.o for -static
      	if using glibc.
      	(LINK_EH_SPEC): Define.
      	* config/sparc/linux64.h (STARTFILE_SPEC32, STARTFILE_SPEC64):
      	Use crtbeginT.o for -static.
      	(LINK_EH_SPEC): Define.
      	* config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Add crtbeginT.o.
      	* Makefile.in (crtbeginT.o): Add rule.
      	* gcc.c (init_gcc_specs): For -static-libgcc, use -lgcc -lgcc_eh.
      	If neither -static-libgcc nor -shared-libgcc is passed and -shared,
      	use -lgcc if LINK_EH_SPEC is defined and -lgcc_s -lgcc if not.
      	If none of the above switches are passed, use -lgcc -lgcc_eh.
      	(init_spec): If LINK_EH_SPEC is defined, prepend it to link_spec.
      	* mklibgcc.in: Don't include LIB2ADDEH objects into libgcc.a if
      	creating libgcc_s.so, put them into separate libgcc_eh.a instead.
      	* unwind-dw2-fde.c: Don't include any headers if this file
      	is included from other .c file.
      	* unwind-dw2-fde-glibc.c: New file.
      	* crtstuff.c (USE_PT_GNU_EH_FRAME, USE_EH_FRAME_REGISTRY): Define.
      	Use it instead of EH_FRAME_SECTION_NAME where appropriate.
      
      From-SVN: r48039
      Jakub Jelinek committed
    • java-tree.h (otable_methods, [...]): New field/global tree definitions. · 861ef928
      gcc/java:
      
      	* java-tree.h (otable_methods, otable_decl, otable_syms_decl,
      	otable_type, otable_ptr_type, method_symbol_type,
      	method_symbols_array_type, method_symbols_array_ptr_type): New
      	field/global tree definitions.
      	(flag_indirect_dispatch): New flag.
      	* decl.c (java_init_decl_processing): Initialize new otable and
      	otable_syms type nodes and decls. Add new field "index" to
      	method_type_node.
      	* class.c (build_method_symbols_entry): New function.
      	(make_method_value): Set "index" to to method's vtable index for
      	virtual methods when indirect-dispatch is not used.
      	(make_class_data): For indirect-dispatch, dont emit the dtable_decl,
      	and set vtable_method_count to -1. Set otable and otable_syms field
      	if indirect-dispatch is used and there was something to put in them.
      	(build_method_symbols_entry): New function.
      	(emit_offset_symbol_table): New function.
      	* expr.c (get_offset_table_index): New function.
      	(build_invokevirtual): Build array reference to otable at the index
      	returned by get_offset_table_index, and use the result as the vtable
      	offset.
      	(build_invokeinterface): Similar.
      	* jcf-parse.c (yyparse): If indirect-dispatch, call
      	emit_offset_symbol_table at the end of compilation, after all classes
      	have been generated.
      	* jvspec.c: Don't pass findirect-dispatch to jvgenmain.
      	* lang.c (flag_indirect_dispatch): Define.
      	(lang_f_options): Add indirect-dispatch flag.
      
      libjava:
      
      	* include/jvm.h (_Jv_VTable::idx_to_offset): New method.
      	* java/lang/natClassLoader.cc (_Jv_PrepareCompiledClass): Call
      	_Jv_MakeVTable and _Jv_LinkOffsetTable if needed.
      	* java/lang/Class.h (_Jv_Method): Add "index" field.
      	(_Jv_MethodSymbol): New struct type.
      	(_Jv_LinkOffsetTable, _Jv_LayoutVTableMethods, _Jv_SetVTableEntries,
      	_Jv_MakeVTable): Friends.
      	(otable, otable_syms): New Class fields.
      	* java/lang/natClass.cc (_Jv_LinkOffsetTable): New function.
      	(isVirtualMethod): New static function.
      	(_Jv_LayoutVTableMethods): New function.
      	(_Jv_SetVTableEntries): New function.
      	(_Jv_MakeVTable): New function.
      
      From-SVN: r48038
      Bryce McKinlay committed
    • Daily bump. · ed86a83d
      From-SVN: r48036
      GCC Administrator committed
    • Collections drop from Classpath: · d9fd7154
      2001-12-15  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
      
      	* java/util/BitSet.java (and): Fix off-by-one bug, don't skip part of
      	the bitset.
      	(andNot): Likewise.
      	(xor): Likewise.
      
      2001-12-15  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
      
      	* java/util/LinkedList.java (LinkedListItr.add): Don't skip the next
      	entry.
      
      2001-12-15  Eric Blake  <ebb9@email.byu.edu>
      
      	* java/util/TreeMap.java (removeNode): Fix bug in node removal.
      
      2001-12-15  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
      
      	* java/util/AbstractCollection.java (containsAll): Use size of the
      	correct collection for loop bound.
      	* java/util/AbstractList.java (iterator.next): Increment pos after
      	calling get on backing list.
      	(listIterator.next): Likewise.
      	* java/util/LinkedList.java (addLastEntry): Don't increment size before
      	checking for size == 0.
      	(addFirstEntry): Rearrange to match addLastEntry.
      	(add): Do not increment size before inserting the new entry.
      
      	* java/util/AbstractCollection.java (addAll): Use size of the
      	correct collection for loop bound.
      
      2001-12-15  Bryce McKinlay  <bryce@waitaki.otago.ac.nz>
      
      	* java/util/AbstractSet.java (removeAll): Fix scoping thinko.
      	* java/util/HashMap.java (putAllInternal): Set size here.
      	* java/util/Hashtable.java (putAllInternal): New method. Copy contents
      	of a map efficiently without calling put() or putAll().
      	(Hashtable (map)): Use putAllInternal.
      	(clone): Likewise.
      
      2001-12-15  Eric Blake  <ebb9@email.byu.edu>
      
      	* java/util/Collections.java:
      	* java/util/Vector.java:
      	* java/util/WeakHashMap.java: Fix spelling errors.
      
      2001-12-15  Eric Blake  <ebb9@email.byu.edu>
      
      	* java/util/AbstractCollection.java (removeAllInternal),
      	(retainAllInternal): Add hooks for use by ArrayList.
      	* java/util/AbstractList.java: Minor code updates. Fix some
      	scoping.
      	* java/util/AbstractMap.java: ditto
      	* java/util/ArrayList.java (readObject, writeObject): ditto
      	(removeAllInternal, retainAllInternal): Optimize.
      	* java/util/Arrays.java: ditto
      	* java/util/Collections.java: ditto. Change order of parameters
      	to equals(Object, Object) to match specs.
      	* java/util/Dictionary.java: Improve javadoc.
      	(Dictionary): Add explicit constructor.
      	* java/util/HashMap.java: Improve javadoc. Rearrange methods to
      	follow order in JDK. Cleanups related to recent code migration to
      	AbstractMap. Fix some scoping.
      	(entrySet): Cache the result.
      	(modCount): Ensure that this is updated correctly.
      	* java/util/HashSet.java: Improve javadoc. Fix some scoping.
      	(init): Add hooks for LinkedHashSet.
      	(map): Use "" instead of Boolean.TRUE in backing map. Use
      	package-private API where possible for less overhead.
      	(readObject, writeObject): Fix serialization.
      	* java/util/Hashtable.java: Improve javadoc. Fix some scoping.
      	(entrySet, keySet, values): Cache the result.
      	(modCount): Ensure that this is updated correctly.
      	(contains, remove): Fix NullPointer checking to match specs.
      	(class Enumeration): Make more like HashIterator.
      	* java/util/IdentityHashMap.java: Minor code updates.
      	(modCount): Ensure that this is updated correctly.
      	(readObject, writeObject): Fix serialization.
      	* java/util/LinkedHashMap.java: Minor code updates. Cleanups
      	related to recent code migration to AbstractMap.
      	* java/util/LinkedHashSet.java: New file.
      	* java/util/LinkedList.java:
      	(readObject, writeObject): Fix serialization.
      	* java/util/Makefile.am: List recently added files.
      	* java/util/Stack.java: Minor code updates.
      	* java/util/TreeMap.java: Improve javadoc. Overhaul the class to
      	be more efficient. Fix some scoping. Rearrange the methods.
      	(nil): Ensure that this can be thread-safe, and make it a static
      	final. Initialize it to be more useful as a sentinal node.
      	(Node): Specify color in constructor.
      	(deleteFixup, insertFixup): Improve comments and algorithm.
      	(fabricateTree): Redesign with less overhead.
      	(lowestGreaterThan): Add parameter first to make SubMap easier.
      	(removeNode): Patch hole where nil was being modified. Choose
      	predecessor instead of successor so in-place swap works.
      	(class VerifyResult, verifyTree, verifySub, verifyError): Remove
      	this dead code after verifying the class works.
      	(class SubMap): Rewrite several algorithms to avoid problems with
      	comparing nil.
      	* java/util/TreeSet.java: Improve javadoc. Fix some scoping.
      	(clone): Fix ClassCastException when cloning subSet().
      	(readObject, writeObject): Fix serialization.
      	* java/util/WeakHashMap.java: Improve javadoc. Fix some scoping.
      	(NULL_KEY): Make it compare as null, for ease elsewhere.
      	(Class WeakEntry): Rename from Entry, to avoid shadowing
      	Map.Entry. Add missing toString.
      	(modCount): Ensure that this is updated correctly.
      	(clear, containsValue, keySet, putAll, values, WeakHashMap(Map)):
      	Add missing methods and constructor.
      
      2001-12-15  Eric Blake  <ebb9@email.byu.edu>
      
      	* java/util/ArrayList.java (checkBoundExclusive),
      	(checkBoundInclusive): Rename from range??clusive, to match
      	AbstractList.
      	* java/util/LinkedList.java (checkBoundsExclusive),
      	(checkBoundsInclusive): ditto
      	* java/util/Vector.java (checkBoundExclusive),
      	(checkBoundInclusive): Move bounds checking into common methods.
      
      2001-12-15  Eric Blake  <ebb9@email.byu.edu>
      
      	* java/util/AbstractList.java:
      	(modCount): Make sure it is updated in all needed places.
      	* java/util/ArrayList.java: Improve javadoc. Implements
      	RandomAccess. Add serialVersionUID. Reorder methods.
      	(modCount): Make sure it is updated in all needed places.
      	(rangeExclusive, rangeInclusive): Add common methods for bounds
      	check.
      	(isEmpty): Add missing method.
      	* java/util/Collections.java: (class SynchronizedList): Make
      	package visible.
      	* java/util/ConcurrentModificationException.java: Improve
      	javadoc.
      	* java/util/EmptyStackException.java: Improve javadoc.
      	* java/util/LinkedList.java: Improve javadoc.
      	(modCount): Make sure it is updated in all needed places.
      	(rangeExclusive, rangeInclusive): Add common methods for bounds
      	check.
      	* java/util/NoSuchElementException.java: Improve javadoc.
      	* java/util/Stack.java: Improve javadoc. Fix synchronization
      	issues.
      	(modCount): Make sure it is updated in all needed places.
      	* java/util/Vector.java: Improve javadoc. Fix synchronization
      	issues. Implements RandomAccess. Reorder methods.
      	(modCount): Make sure it is updated in all needed places.
      	(setSize): Fix according to specifications: this does not dictate
      	the backing array size.
      	(removeAll, retainAll): Faster implementations.
      
      2001-12-15  Eric Blake  <ebb9@email.byu.edu>
      
      	* java/util/BitSet.java: Improve javadoc.
      	(cardinality(), clear(), clear(int, int), flip(int)),
      	(flip(int, int), get(int, int), intersects(BitSet), isEmpty()),
      	(nextClearBit(int), nextSetBit(int), set(int, boolean)),
      	(set(int, int), set(int, int, boolean)): Add new JDK 1.4 methods.
      	(clone): Fix so subclasses clone correctly.
      
      2001-12-15  Eric Blake  <ebb9@email.byu.edu>
      
      	* java/util/AbstractCollection.java: Improve javadoc.
      	(AbstractCollection()): Make constructor protected.
      	(equals(Object, Object), hashCode(Object)): Add utility methods.
      	* java/util/AbstractList.java: Improve javadoc.
      	(AbstractList()): Make constructor protected.
      	(indexOf(Object)): Call listIterator(), not listIterator(int).
      	(iterator()): Follow Sun's requirement to not use listIterator(0).
      	(listIterator(int)): Make AbstractListItr anonymous.
      	(subList(int, int)): Add support for RandomAccess.
      	(SubList.add(int, Object), SubList.remove(Object)): Fix bug with
      	modCount tracking.
      	(SubList.addAll(Collection)): Add missing method.
      	(SubList.listIterator(int)): Fix bugs in indexing, modCount
      	tracking.
      	(class RandomAccessSubList): Add new class.
      	* java/util/AbstractMap.java: Improve javadoc.
      	(keys, values, KEYS, VALUES, ENTRIES): Consolidate common map
      	fields.
      	(AbstractMap()): Make constructor protected.
      	(equals(Object, Object), hashCode(Object)): Add utility methods.
      	(equals(Object)): Change algorithm to
      	entrySet().equals(m.entrySet()), as documented by Sun.
      	(keySet(), values()): Cache the collections.
      	* java/util/AbstractSequentialList.java: Improve javadoc.
      	(AbstractSequentialList()): Make constructor protected.
      	* java/util/AbstractSet.java: Improve javadoc.
      	(AbstractSet()): Make constructor protected.
      	(removeAll(Collection)): Add missing method.
      	* java/util/Arrays.java: Improve javadoc, rearrange method orders.
      	(defaultComparator): Remove, in favor of
      	Collections.compare(Object, Object, Comparator).
      	(binarySearch, equals, sort): Fix natural order comparison of
      	floats and doubles. Also improve Object comparison - when
      	comparator is null, use natural order.
      	(fill, sort): Add missing checks for IllegalArgumentException.
      	(sort, qsort): Fix sorting bugs, rework the code for more
      	legibility.
      	(mergeSort): Inline into sort(Object[], int, int, Comparator).
      	(class ArrayList): Rename from ListImpl, and make compatible with
      	JDK serialization. Add methods which more efficiently override
      	those of AbstractList.
      	* java/util/Collections: Improve javadoc.
      	(isSequential(List)): Add and use a method for deciding between
      	RandomAccess and sequential algorithms on lists.
      	(class Empty*, class Synchronized*, class Unmodifiable*): Make
      	compliant with JDK serializability.
      	(class Singleton*, class CopiesList, class RevereseComparator),
      	(class UnmodifiableMap.UnmodifiableEntrySet),
      	(class *RandomAccessList): New classes for serial compatibility.
      	(class Empty*, class Singleton*, class CopiesList): Add methods
      	which more efficiently override those of Abstract*.
      	(search): Inline into binarySearch(List, Object, Comparator).
      	(binarySearch): Make sequential search only do log(n) comparisons,
      	instead of n.
      	(copy(List, List)): Do bounds checking before starting.
      	(indexOfSubList, lastIndexOfSubList, list, replaceAll, rotate),
      	(swap):	Add new JDK 1.4 methods.
      	(binarySearch, max, min, sort): Allow null comparator to represent
      	natural ordering.
      	(reverse(List)): Avoid unnecessary swap.
      	(shuffle(List, Random)): Do shuffle in-place for RandomAccess
      	lists.
      	(SingletonList.get): Fix logic bug.
      	(SingletonMap.entrySet): Make the entry immutable, and cache the
      	returned set.
      	(SynchronizedCollection, SynchronizedMap, UnmodifiableCollection),
      	(UnmodifiableMap): Detect null pointer in construction.
      	(SynchronizedMap, UnmodifiableMap): Cache collection views.
      	* java/util/BasicMapEntry: Improve javadoc.
      
      From-SVN: r48035
      Bryce McKinlay committed
    • Clean up initialization and simplfy caching of underlying "C" locale objects. · def9790d
      
      2001-12-14  Benjamin Kosnik  <bkoz@redhat.com>
      
      	Clean up initialization and simplfy caching of underlying "C"
      	locale objects.
      	* src/localename.cc (locale::_Impl::_Impl(string, size_t):
      	Unconditionally create __clocale object for all named locales,
      	including "C" and "POSIX".
      	* config/locale/c_locale_generic.cc
      	(locale::facet::_S_create_c_locale): Always set __cloc to zero.
      	* config/locale/c_locale_gnu.cc: Always delete.
      	* include/bits/localefwd.h (locale::facet::_S_c_locale): New.
      	* src/locale.cc (locale::classic()): Initialize
      	locale::facet::_S_c_locale.
      	(locale::facet::_S_c_locale): Define.
      
      	* include/bits/locale_facets.h: Add ctype_byname<wchar_t> ctor
      	specialization.
      	* src/locale.cc: Add definition here.
      	* config/os/gnu-linux/bits/ctype_inline.h: Tweak.
      	* config/os/gnu-linux/bits/ctype_noninline.h: Adjust initializations.
      	* include/bits/locale_facets.h (ctype<char>::_M_c_locale_ctype): Add.
      	Adjust ctors, dtors.
      	(ctype<char>::_M_toupper): Remove const&.
      	(ctype<char>::_M_tolower): Remove const&.
      	(ctype<char>::_M_ctable): Remove const&.
      
      	* include/bits/locale_facets.h (collate): Clean up initialization
      	of _M_c_locale_collate in ctors and dtors.
      	* config/locale/collate_members_gnu.cc: Always use extended
      	functions.
      
      	* include/bits/locale_facets.h (messages): Clean up inits in ctor/dtor.
      	(messages_byname): Same.
      	* config/locale/messages_members_generic.h (messages::~messages):
      	Remove.
      	* config/locale/messages_members_gnu.h: Same.
      
      	* include/bits/localefwd.h: Clean. Move dtor definitions to
      	* src/locale.cc: Here.
      	* testsuite/22_locale/facet.cc: Fix spelling.
      
      	Named locale support for ctype<wchar_t>.
              * acinclude.m4 (GLIBCPP_ENABLE_CLOCALE): Add variable
              ctype_members_* bits.
              * aclocal.m4: Regenerate.
              * configure: Regenerate.
              * src/Makefile.am (sources): Add ctype.cc.
              * src/Makefile.in: Regenerate.
              * config/locale/ctype_members_generic.cc: New file.
              * config/locale/ctype_members_gnu.cc: New file.
              * src/locale.cc: Remove ctype<wchart_t> definitions.
      
      From-SVN: r48034
      Benjamin Kosnik committed
    • builtins.c (expand_builtin_memcmp): Mark parameter with ATTRIBUTE_UNUSED. · 88f92c0f
      	* builtins.c (expand_builtin_memcmp): Mark parameter with
      	ATTRIBUTE_UNUSED.
      	* cfgcleanup.c (insns_match_p): Likewise.
      	* regrename.c (mode_change_ok): Likewise.
      	* gcc.c (execute): Const-ify.
      
      From-SVN: r48033
      Kaveh R. Ghazi committed
    • c-parse.in (typename): Do not split attributes. · d3b4cd6f
      	* c-parse.in (typename): Do not split attributes.
              Remove unsupported attributes warning.
      
              * c-decl.c (groktypename): Apply attributes.
      
      From-SVN: r48032
      Aldy Hernandez committed
    • * testsuite/gcc.dg/20011214-1.c: New. · cdf89524
      From-SVN: r48031
      Aldy Hernandez committed
    • ia64.c (spill_restore_mem): Mark iterator initialization as possibly dead. · 892a4e60
              * config/ia64/ia64.c (spill_restore_mem): Mark iterator
              initialization as possibly dead.
      
      From-SVN: r48030
      Richard Henderson committed
    • regrename.c (mode_change_ok): New. · 8610ba70
              * regrename.c (mode_change_ok): New.
              (find_oldest_value_reg): Use it.
      
      From-SVN: r48029
      Richard Henderson committed
    • regrename.c (struct value_data): Add max_value_regs. · 752ae914
              * regrename.c (struct value_data): Add max_value_regs.
              (init_value_data): Initialize it.
              (kill_value): Kill values that overlap the dying register.
              (set_value_regno): New.
              (kill_set_value, kill_autoinc_value, copy_value): Use it.
              (copyprop_hardreg_forward_1): Kill earlyclobber operands
              before looking at inputs.
      
      From-SVN: r48028
      Richard Henderson committed
    • rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): Handle DECL_WEAK for function descriptors. · ebd97b96
              * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): Handle
              DECL_WEAK for function descriptors.
              * config/rs6000/xcoff.h (HANDLE_PRAGMA_WEAK): Define if assembler
              weak support present.
              (ASM_WEAKEN_LABEL): Same.
      
      From-SVN: r48027
      David Edelsohn committed
    • h8300.md (anonymous pattern): Add a missing mode. · 103c41c1
      	* config/h8300/h8300.md (anonymous pattern): Add a missing
      	mode.
      
      From-SVN: r48026
      Kazu Hirata committed
    • h8300.c (h8300_adjust_insn_length): Fix a comment typo. · e32815aa
      	* config/h8300/h8300.c (h8300_adjust_insn_length): Fix a
      	comment typo.
      
      From-SVN: r48025
      Kazu Hirata committed
    • h8300.c (h8300_handle_eightbit_data_attribute): Remove the initialization requierment. · 64378c91
      	* config/h8300/h8300.c (h8300_handle_eightbit_data_attribute):
      	Remove the initialization requierment.
      	(h8300_handle_tiny_data_attribute): Likewise.
      
      From-SVN: r48024
      Kazu Hirata committed
    • h8300.md (udivqi3): Remove. · 05fb1639
      	* config/h8300/h8300.md (udivqi3): Remove.
      	(divqi3): Likewise.
      	(udivhi3): Likewise.
      	(divhi3): Likewise.
      	(umodqi3): Likewise.
      	(modqi3): Likewise.
      	(umodhi3): Likewise.
      	(modhi3): Likewise.
      	(udivmodqi3): New.
      	(divmodqi3): Likewise.
      	(udivmodhi3): Likewise.
      	(divmodhi3): Likewise.
      
      From-SVN: r48023
      Kazu Hirata committed
    • cfgcleanup.c (flow_find_cross_jump): Replace tests for note by active_insn_p;… · 08f7f057
      cfgcleanup.c (flow_find_cross_jump): Replace tests for note by active_insn_p; count conditional jump as instruction.
      
      	* cfgcleanup.c (flow_find_cross_jump): Replace tests for note
      	by active_insn_p; count conditional jump as instruction.
      
      From-SVN: r48022
      Jan Hubicka committed