+2002-04-25 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * config/s390/s390.c (s390_emit_epilogue): Always restore registers
+ needed by the compiler, even if they are used as global regs.
+
+2002-04-25 Matt Hiller <hiller@redhat.com>
+
+ * mips.c (mips_class_max_nregs, mips_register_move_cost): New
+ functions.
+ * mips.h (CLASS_MAX_NREGS, REGISTER_MOVE_COST): Redefine as calls
+ of the corresponding functions.
+ * mips-protos.h (mips_class_max_nregs, mips_register_move_cost):
+ New prototypes.
+
+2002-04-25 Matt Hiller <hiller@redhat.com>
+
+ * config/mips/mips.h (mips_sw_reg_names): Declare as extern.
+
+ (ALL_COP_ADDITIONAL_REGISTER_NAMES): New macro.
+ (FIRST_PSEUDO_REGISTER): Redefine considering coprocessor
+ registers, adjust comment accordingly.
+ (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS,
+ reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGISTER_NAMES,
+ DEBUG_REGISTER_NAMES, REG_ALLOC_ORDER): Adjust to include entries
+ for coprocessor registers.
+ (ADDITIONAL_REGISTER_NAMES): Include
+ ALL_COP_ADDITIONAL_REGISTER_NAMES.
+
+ (COP0_REG_FIRST, COP0_REG_LAST, COP0_REG_NUM,
+ COP2_REG_FIRST, COP2_REG_LAST, COP2_REG_NUM,
+ COP3_REG_FIRST, COP3_REG_LAST, COP3_REG_NUM,
+ COP0_REG_P, COP2_REG_P, COP3_REG_P, ALL_COP_REG_P,
+ COPNUM_AS_CHAR_FROM_REGNUM, COP_REG_CLASS_P): New macros.
+
+ (mips_char_to_class): Adjust comment to include coprocessor
+ constraint letters.
+
+ * config/mips/mips.c (coprocessor_operand, coprocessor2_operand):
+ New functions.
+ (mips_reg_names, mips_regno_to_class): Include coprocessor
+ information.
+ (mips_sw_reg_names): Ditto, make non-static.
+ (mips_move_1word): Handle moves to and from coprocessor registers.
+ (mips_move_2words): Handle moves to and from coprocessor
+ registers.
+ (mips_class_max_nregs, mips_register_move_cost): Handle
+ coprocessor register classes.
+ (override_options): Initialize mips_char_to_class and
+ mips_hard_regno_mode_ok properly for coprocessor registers.
+
+ * config/mips/mips.md (movdi_internal, movdi_internal2,
+ movsi_internal1, movsi_internal2): Add constraint-sets for
+ coprocessor registers.
+ * testsuite/gcc.c-torture/mipscop-1.c: New testcase.
+ * testsuite/gcc.c-torture/mipscop-1.x: Disable above if target
+ isn't mips.
+ * testsuite/gcc.c-torture/mipscop-2.c: New testcase.
+ * testsuite/gcc.c-torture/mipscop-2.x: Disable above if target
+ isn't mips.
+ * testsuite/gcc.c-torture/mipscop-3.c: New testcase.
+ * testsuite/gcc.c-torture/mipscop-3.x: Disable above if target
+ isn't mips.
+ * testsuite/gcc.c-torture/mipscop-4.c: New testcase.
+ * testsuite/gcc.c-torture/mipscop-4.x: Disable above if target
+ isn't mips.
+
+ * doc/tm.texi: Document feature.
+
+2002-04-25 Neil Booth <neil@daikokuya.demon.co.uk>
+
+ * integrate.c (function_attribute_inlinable_p): Simplify.
+ Check the table pointer is not NULL.
+
+2002-04-25 Steven Bosscher <S.Bosscher@student.tudelft.nl>
+
+ * doc/c-tree.texi: Fix typo in introduction.
+
+2002-04-25 Neil Booth <neil@daikokuya.demon.co.uk>
+
+ * c-common.h (c_common_parse_file): Update.
+ * c-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
+ * c-lex.c (YYDEBUG): Get from c-lex.h.
+ (c_common_parse_file): Update.
+ * c-lex.h (YYDEBUG, yydebug): New.
+ * c-parse.in (YYDEBUG): Get from c-lex.h.
+ (c_set_yydebug): Remove.
+ * c-tree.h (c_set_yydebug): Remove.
+ * langhooks-def.h (lhd_do_nothing_i): New.
+ (lhd_set_yydebug, LANG_HOOKS_SET_YYDEBUG): Remove.
+ (LANG_HOOKS_PARSE_FILE, LANG_HOOKS_INITIALIZER): Update.
+ * langhooks.c (lhd_do_nothing_i): New.
+ (lhd_set_yydebug): Remove.
+ * langhooks.h (struct lang_hooks): Update.
+ * toplev.c (set_yydebug): New.
+ (compile_file): Update call to parse_file hook.
+ (decode_d_option): Update.
+objc:
+ * objc-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove.
+
+Wed Apr 24 23:45:37 2002 J"orn Rennecke <joern.rennecke@superh.com>
+
+ * loop.c (load_mems): Don't change the interface of called functions.
+
+ * calls.c (expand_call): Take current_function_pretend_args_size
+ into account when setting argblock for sibcalls.
+
+2002-04-24 Matt Hiller <hiller@redhat.com>
+
+ * cpplex.c: Remove conditional #undef of MULTIBYTE_CHARS.
+ * c-lex.c: Ditto.
+
+ * cpplex.c (skip_line_comment): Process comment one multibyte
+ character at a time rather than one char at a time, if
+ appropriate.
+ (parse_string): Process string one multibyte character at a time
+ rather than one char at a time, if appropriate.
+ * c-lex.c (lex_string): Lex and copy multibyte strings
+ appropriately.
+ * cpplib.h (cppchar_t): Change to unsigned.
+
+2002-04-24 Richard Henderson <rth@redhat.com>
+
+ PR c/3467
+ * c-decl.c (grokdeclarator): Don't pedwarn variable sized arrays
+ for c99.
+
+Wed Apr 24 21:51:54 2002 J"orn Rennecke <joern.rennecke@superh.com>
+
+ * sh.c (sh_va_arg): If argument was passed by reference,
+ dereference the pointer.
+
+ * sh.h (PIC_OFFSET_TABLE_REGNUM): Conditionalize on flag_pic.
+
+ * sh.md (divsi3_i4_media): Use match_operand for input values
+ rather than hard registers.
+ (divsi3 - TARGET_SHMEDIA_FPU case): Don't ferry values
+ unnecessarily through hard registers. Keep copies of pseudo
+ registers outside of the libcall sequence.
+
+ * sh.md (casesi_shift_media): Add modes.
+
+ * sh.h (RETURN_IN_MEMORY): Return variable size BLKmode
+ values in memory.
+
+2002-04-24 Neil Booth <neil@daikokuya.demon.co.uk>
+
+ * attribs.c (c_common_attribute_table): Move table and handlers
+ to c-common.c.
+ (format_attribute_table, lang_attribute_table,
+ lang_attribute_common): Remove.
+ (init_attributes): Replace NULL pointers with pointers to the
+ empty table.
+ (handle_packed_attribute, handle_nocommon_attribute,
+ handle_common_attribute, handle_noreturn_attribute,
+ handle_noinline_attribute, handle_always_inline_attribute,
+ handle_used_attribute, handle_unused_attribute,
+ handle_const_attribute, handle_transparent_union_attribute,
+ handle_constructor_attribute, handle_destructor_attribute,
+ handle_mode_attribute, handle_section_attribute,
+ handle_aligned_attribute, handle_weak_attribute,
+ handle_alias_attribute, handle_visibility_attribute,
+ handle_no_instrument_function_attribute, handle_malloc_attribute,
+ handle_no_limit_stack_attribute, handle_pure_attribute,
+ handle_deprecated_attribute, handle_vector_size_attribute,
+ vector_size_helper): Move to c-common.c.
+ * c-common.c (c_common_attribute_table,
+ handle_packed_attribute, handle_nocommon_attribute,
+ handle_common_attribute, handle_noreturn_attribute,
+ handle_noinline_attribute, handle_always_inline_attribute,
+ handle_used_attribute, handle_unused_attribute,
+ handle_const_attribute, handle_transparent_union_attribute,
+ handle_constructor_attribute, handle_destructor_attribute,
+ handle_mode_attribute, handle_section_attribute,
+ handle_aligned_attribute, handle_weak_attribute,
+ handle_alias_attribute, handle_visibility_attribute,
+ handle_no_instrument_function_attribute, handle_malloc_attribute,
+ handle_no_limit_stack_attribute, handle_pure_attribute,
+ handle_deprecated_attribute, handle_vector_size_attribute,
+ vector_size_helper): Move from attribs.c.
+ * c-common.h (c_common_attribute_table,
+ c_common_format_attribute_table): New.
+ * c-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE,
+ LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Redefine.
+ * langhooks-def.h (LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE,
+ LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_ATTRIBUTE_TABLE): New.
+ (LANG_HOOKS_INITIALIZER): Update.
+ * langhooks.h (struct lang_hooks): 3 new attribute hooks.
+ * target-def.h (TARGET_ATTRIBUTE_TABLE): Default to NULL.
+ * target.h: Update comment.
+ * tree.c (default_target_attribute_table): Remove.
+ * tree.h (default_target_attribute_table, format_attribute_table,
+ lang_attribute_table, lang_attribute_common): Remove.
+objc:
+ * objc-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE,
+ LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Redefine.
+
+2002-04-24 Jason Merrill <jason@redhat.com>
+
+ * dwarf2.h (enum dwarf_attribute): Add DW_AT_GNU_vector.
+ * dwarf2out.c (dwarf_attr_name): Support it.
+ (gen_array_type_die): Emit it.
+ (lookup_type_die): No special handling for VECTOR_TYPE.
+ (gen_type_die): Hand VECTOR_TYPE off to gen_array_type_die.
+
+2002-04-24 Richard Henderson <rth@redhat.com>
+
+ * config/mips/mips.md (movdi_usd): Renumber.
+
+2002-04-24 David S. Miller <davem@redhat.com>
+
+ PR target/6420
+ * config/sparc/sparc.h (FUNCTION_OK_FOR_SIBCALL): Return false if
+ 32-bit Sparc and current_function_returns_struct is true.
+
+Wed Apr 24 13:48:25 CEST 2002 Jan Hubicka <jh@suse.cz>
+
+ * loop.c (canonicalize_condition): Use gen_int_mode.
+
+2002-04-24 Aldy Hernandez <aldyh@redhat.com>
+
+ * config/rs6000/altivec.h: Cleanup file. Add non individual
+ variants.
+ (vec_vaddubm): New.
+ (vec_vadduhm): New.
+ (vec_vadduwm): New.
+ (vec_vaddfp): New.
+ (vec_vaddcuw): New.
+ (vec_vaddubs): New.
+ (vec_vaddsbs): New.
+ (vec_vadduhs): New.
+ (vec_vadduws): New.
+ (vec_vaddsws): New.
+ (vec_vand): New.
+ (vec_vandc): New.
+ (vec_vavgub): New.
+ (vec_vavgsb): New.
+ (vec_vavguh): New.
+ (vec_vavgsh): New.
+ (vec_vavguw): New.
+ (vec_vavgsw): New.
+ (vec_vrfip): New.
+ (vec_vcmpbfp): New.
+ (vec_vcmpequb): New.
+ (vec_vcmpequh): New.
+ (vec_vcmpequw): New.
+ (vec_vcmpeqfp): New.
+ (vec_vcmpgefp): New.
+ (vec_vcmpgtub): New.
+ (vec_vcmpgtsb): New.
+ (vec_vcmpgtuh): New.
+ (vec_vcmpgtsh): New.
+ (vec_vcmpgtuw): New.
+ (vec_vcmpgtsw): New.
+ (vec_vcmpgtfp): New.
+ (vec_vcmpgefp): New.
+ (vec_vcfux): New.
+ (vec_vcfsx): New.
+ (vec_vctsxs): New.
+ (vec_vctuxs): New.
+ (vec_vexptefp): New.
+ (vec_vrfim): New.
+ (vec_lvx): New.
+ (vec_lvebx): New.
+ (vec_lvehx): New.
+ (vec_lde): Add vector float variant.
+ (vec_lvewx): New.
+ (vec_lvxl): New.
+ (vec_vlogefp): New.
+ (vec_vmaddfp): New.
+ (vec_vmhaddshs): New.
+ (vec_vmaxub): New.
+ (vec_vmaxsb): New.
+ (vec_vmaxuh): New.
+ (vec_vmaxsh): New.
+ (vec_vmaxuw): New.
+ (vec_vmaxsw): New.
+ (vec_vmaxsw): New.
+ (vec_vmaxfp): New.
+ (vec_vmrghb): New.
+ (vec_vmrghh): New.
+ (vec_vmrghw): New.
+ (vec_vmrglb): New.
+ (vec_vmrglh): New.
+ (vec_vmrglw): New.
+ (vec_vminub): New.
+ (vec_vminsb): New.
+ (vec_vminuh): New.
+ (vec_vminsh): New.
+ (vec_vminuw): New.
+ (vec_vminsw): New.
+ (vec_vminfp): New.
+ (vec_vmladduhm): New.
+ (vec_vmhraddshs): New.
+ (vec_msumubm): New.
+ (vec_vmsummbm): New.
+ (vec_vmsumuhm): New.
+ (vec_vmsumshm): New.
+ (vec_vmsumuhs): New.
+ (vec_vmsumshs): New.
+ (vec_vmuleub): New.
+ (vec_vmulesb): New.
+ (vec_vmuleuh): New.
+ (vec_vmulesh): New.
+ (vec_vmuloub): New.
+ (vec_mulosb): New.
+ (vec_vmulouh): New.
+ (vec_vmulosh): New.
+ (vec_vnmsubfp): New.
+ (vec_vnor): New.
+ (vec_vor): New.
+ (vec_vpkuhum): New.
+ (vec_vpkuwum): New.
+ (vec_vpkpx): New.
+ (vec_vpkuhus): New.
+ (vec_vpkshss): New.
+ (vec_vpkuwus): New.
+ (vec_vpkswss): New.
+ (vec_vpkshus): New.
+ (vec_vpkswus): New.
+ (vec_vperm): New.
+ (vec_vrefp): New.
+ (vec_vrlb): New.
+ (vec_vrlh): New.
+ (vec_vrlw): New.
+ (vec_vrfin): New.
+ (vec_vrsqrtefp): New.
+ (vec_vsel): New.
+ (vec_vslb): New.
+ (vec_vslh): New.
+ (vec_vslw): New.
+ (vec_vsldoi): New.
+ (vec_vsl): New.
+ (vec_vslo): New.
+ (vec_vspltb): New.
+ (vec_vsplth): New.
+ (vec_vspltw): New.
+ (vec_vspltisb): New.
+ (vec_vspltish): New.
+ (vec_vspltisw): New.
+ (vec_vsrb): New.
+ (vec_vsrh): New.
+ (vec_vsrw): New.
+ (vec_vsrab): New.
+ (vec_vsrah): New.
+ (vec_vsraw): New.
+ (vec_vsr): New.
+ (vec_vsro): New.
+ (vec_stvx): New.
+ (vec_stvebx): New.
+ (vec_stvehx): New.
+ (vec_stvewx): New.
+ (vec_stvxl): New.
+ (vec_vsububm): New.
+ (vec_vsubuhm): New.
+ (vec_vsubuwm): New.
+ (vec_vsubfp): New.
+ (vec_vsubcuw): New.
+ (vec_vsububs): New.
+ (vec_vsubsbs): New.
+ (vec_vsubuhs): New.
+ (vec_vsubshs): New.
+ (vec_vsubuws): New.
+ (vec_vsubsws): New.
+ (vec_vsum4ubs): New.
+ (vec_vsum4sbs): New.
+ (vec_vsum4shs): New.
+ (vec_vsum2sws): New.
+ (vec_vsumsws): New.
+ (vec_vrfiz): New.
+ (vec_vupkhsb): New.
+ (vec_vupkhpx): New.
+ (vec_vupkhsh): New.
+ (vec_vupklsb): New.
+ (vec_vupklpx): New.
+ (vec_vupklsh): New.
+ (vec_vxor): New.
+
+2002-04-23 Eric Botcazou <ebotcazou@multimania.com>
+
+ PR c/5430
+ * fold-const.c (split_tree): Add MINUS_LITP parameter; separate
+ added literals from substracted literals.
+ (associate_trees): Don't convert MINUS_EXPR into PLUS_EXPR.
+ (fold) [associate]: Preserve MINUS_EXPR if needed.
+
+2002-04-23 Zack Weinberg <zack@codesourcery.com>
+
+ * doc/install.texi: Clarify which versions of alpha*-dec-osf*
+ are obsoleted.
+
+2002-04-23 Tom Tromey <tromey@redhat.com>
+
+ * gcc.c: Added --resource. For PR java/6314.
+
+2002-04-23 David O'Brien <obrien@FreeBSD.org>
+
+ * cp/g++spec.c: Use profiled libstdc++ and libm with -p/-pg.
+ * config/freebsd.h (MATH_LIBRARY_PROFILE): Use the _p verions of
+ these libraries.
+
+2002-04-23 David O'Brien <obrien@FreeBSD.org>
+
+ * config/freebsd.h(OBJECT_FORMAT_ELF): Define.
+
+Tue Apr 23 14:24:25 CEST 2002 Jan Hubicka <jh@suse.cz>
+
+ * i386.c (ix86_output_addr_diff_elt): Avoid x86_64 binutils bug
+ workaround.
+ (ix86_expand_int_movcc): Avoid x86_64 compilation chrash.
+ (ix86_expand_clrstr): Fix typo.
+ * loop.c (gen_load_of_final_value): New.
+ (loop_givs_rescan, strength_reduce, check_dbra_loop):
+ Use it.
+
+2002-04-23 Roger Sayle <roger@eyesopen.com>
+
+ * builtins.c (builtin_memset_gen_str): New function.
+ (expand_builtin_memset): Optimize the case of constant length, but
+ unknown value.
+
+2002-04-23 Aldy Hernandez <aldyh@redhat.com>
+
+ * config/rs6000/altivec.h (vec_step): Remove extraneous
+ parentheses.
+ (vec_ctu): Cast return.
+
2002-04-23 Alan Modra <amodra@bigpond.net.au>
PR target/6413
2002-04-22 Aldy Hernandez <aldyh@redhat.com>
- * config/rs6000/rs6000.md ("*movv4si_internal"): Change 'm'
- constraint to 'o' for m=r and r=m alternatives.
- ("*movv8hi_internal1"): Same.
- ("*movv16qi_internal1"): Same.
- ("*movv4sf_internal1"): Same.
+ * config/rs6000/rs6000.md ("*movv4si_internal"): Change 'm'
+ constraint to 'o' for m=r and r=m alternatives.
+ ("*movv8hi_internal1"): Same.
+ ("*movv16qi_internal1"): Same.
+ ("*movv4sf_internal1"): Same.
2002-04-22 Janis Johnson <janis187@us.ibm.com>