OSDN Git Service

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