OSDN Git Service

* config/s390/s390.c (s390_emit_epilogue): Always restore registers
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 1293bf0..01b2e44 100644 (file)
@@ -1,3 +1,429 @@
+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>