+2005-06-28 Andrew Pinski <pinskia@physics.uc.edu>
+
+ * config/rs6000/rs6000.md (setmemsi): s/operand/operands/.
+
+2005-06-28 Richard Henderson <rth@redhat.com>
+
+ * config/ia64/ia64.c (ia64_expand_vecint_compare): Use unsigned
+ saturating subtraction for QI and HImode unsigned compares. Use
+ bit arithmetic tricks for SImode unsigned compares.
+ (ia64_expand_vcondu_v2si): Remove.
+ (ia64_expand_vecint_cmov): Don't call it.
+
+2005-06-28 Richard Henderson <rth@redhat.com>
+
+ * rtlanal.c (nonzero_bits1): Use the mode of the value for
+ determining integral-ness for comparisons.
+
+2005-06-28 Andrew Pinski <pinskia@physics.uc.edu>
+
+ * config/rs6000/rs6000.md (setmemsi): Fix operand 2.
+
+2005-06-28 Joseph S. Myers <joseph@codesourcery.com>
+
+ * target.h (invalid_conversion, invalid_unary_op,
+ invalid_binary_op): New hooks.
+ * target-def.h (TARGET_INVALID_CONVERSION,
+ TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP,
+ TARGET_INITIALIZER): Likewise.
+ * hooks.h (hook_constcharptr_tree_tree_null,
+ hook_constcharptr_int_tree_null,
+ hook_constcharptr_int_tree_tree_null): New.
+ * hooks.c (hook_constcharptr_tree_tree_null,
+ hook_constcharptr_int_tree_null,
+ hook_constcharptr_int_tree_tree_null): Likewise.
+ * gcc/doc/tm.texi (TARGET_INVALID_CONVERSION,
+ TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Document.
+ * c-convert.c (convert): Use invalid_conversion hook.
+ * c-typeck.c (build_unary_op): Use invalid_unary_op hook.
+ (build_binary_op): Use invalid_binary_op hook.
+ * config/ia64/ia64-modes.def: Define RFmode.
+ * config/ia64/ia64-protos.h (spill_xfmode_operand): Remove.
+ (ia64_expand_movxf_movrf): New.
+ * config/ia64/ia64.md (movxf): Move code to
+ ia64_expand_movxf_movrf.
+ (movrf, movrf_internal): New.
+ * ia64.c (ia64_invalid_conversion, ia64_invalid_unary_op,
+ ia64_invalid_binary_op, TARGET_INVALID_CONVERSION,
+ TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): New.
+ (spill_xfmode_operand): Rename to spill_xfmode_rfmode_operand.
+ Add mode parameter. Make static.
+ (ia64_expand_movxf_movrf): New, moved from ia64.md. Handle RFmode
+ as well as XFmode.
+ (ia64_function_arg, ia64_function_value, ia64_register_move_cost,
+ ia64_scalar_mode_supported_p): Handle RFmode as well as XFmode.
+ (ia64_init_builtins): Set up __fpreg as RFmode.
+ (ia64_mangle_fundamental_type): Mangle __fpreg as u7__fpreg.
+
+2006-06-28 Adrian Straetling <straetling@de.ibm.com>
+
+ * builtins.c: (expand_builtin_memset): Rewrite to support
+ 'set_storage_via_setmem'.
+ * expr.c: (enum insn_code setmem_optab): Define.
+ (enum insn_code clrmem_optab): Remove.
+ (set_storage_via_setmem): New function.
+ (clear_storage_via_setmem): Remove.
+ (clear_storage): Replace call to "clear_storage_via_clrmem" with
+ "set_storage_via_setmem".
+ * expr.h: (set_storage_via_setmem): Declare.
+ (CLEAR_RATIO): Redefine using HAVE_setmemM.
+ * optabs.h: (enum insn_code setmem_optab): Declare.
+ (enum insn_code clrmem_optab): Remove.
+ * optabs.c: (init_optabs): Initialize setmem_optab.
+ (enum insn_code clrmem_optab): Remove.
+ * genopinit.c: (otabs): Likewise.
+ * doc/md.texi: Document new standard pattern 'setmem'. Remove
+ 'clrmem'.
+ * config/alpha/alpha.c: (alpha_expand_block_clear): Adjust
+ 'operands' ordering.
+ * config/frv/frv.c: (frv_expand_block_clear): Likewise.
+ * config/rs6000/rs6000.c: (expand_block_clear): Likewise.
+ * config/alpha/alpha.md: ("clrmemqi", "clrmemdi"): Rename to "setmemM".
+ FAIL on operands[2]!=const0_rtx. Adjust 'operands' ordering.
+ * config/avr/avr.md: ("clrmemhi"): Likewise.
+ * config/frv/frv.md: ("clrmemsi"): Likewise.
+ * config/i386/i386.md: ("clrmemsi", "clrmemdi"): Likewise.
+ * config/pa/pa.md: ("clrmemsi", "clrmemdi"): Likewise.
+ * config/rs6000/rs6000.md: ("clrmemsi"): Likewise.
+ * config/s390/s390.md: ("clrmem<mode>"): Likewise.
+
+2005-06-28 Paul Brook <paul@codesourcery.com>
+
+ * Makefile.in: Set and use UNWIND_H. Install as unwind.h.
+ * c-decl.c (finish_decl): Call default_init_unwind_resume_libfunc.
+ * except.c (add_ehspec_entry): Generate arm eabi filter lists.
+ (assign_filter_values): Ditto.
+ (output_ttype): New function.
+ (output_function_exception_table): Use output_ttype. Generate arm
+ eabi filter lists.
+ (default_init_unwind_resume_libfunc): New function.
+ * except.h (default_init_unwind_resume_libfunc): Add prototype.
+ * optabs.c (init_optabs): Don't set unwind_resume_libfunc.
+ * opts.c (decode_options): Use targetm.unwind_tables_default.
+ * target-def.h (TARGET_ASM_TTYPE): Provide and use definition.
+ (TARGET_ARM_EABI_UNWINDER, TARGET_UNWIND_TABLES_DEFAULT): Ditto.
+ * target.h (struct gcc_target): Add asm.ttype, unwind_tables_default
+ and arm_eabi_unwinder.
+ * unwind-c.c: Support Arm EABI unwinder.
+ * unwind.h: Rename ...
+ * unwind-generic.h: ... To this.
+ * doc/tm.texi (TARGET_ASM_TTYPE, TARGET_ARM_EABI_UNWINDER): Document.
+ (TARGET_UNWID_TABLES_DEFAULT): Document.
+
+ * config/arm/arm-protos.h (arm_output_fn_unwind): Add prototype.
+ * config/arm/arm.c (arm_unwind_emit, arm_output_ttype): New functions.
+ (TARGET_UNWIND_EMIT, TARGET_ASM_TTYPE, TARGET_ARM_EABI_UNWINDER):
+ Define.
+ (thumb_pushpop, thumb_output_function_prologue): Output unwinding
+ directives.
+ (arm_unwind_emit_stm, arm_unwind_emit_set): New functions.
+ * config/arm/arm.h (MUST_USE_SJLJ_EXCEPTIONS): Only define when
+ !TARGET_UNWIND_INFO.
+ (ARM_OUTPUT_FN_UNWIND, ARM_EABI_UNWIND_TABLES): Define.
+ * config/arm/bpabi.h (TARGET_UNWIND_INFO): Define.
+ * config/arm/elf.h (ASM_DECLARE_FUNCTION_NAME,
+ ASM_DECLARE_FUNCTION_SIZE): Use ARM_OUTPUT_FN_UNWIND.
+ * config/arm/lib1funcs.asm: Include libunwind.S.
+ * config/arm/libgcc-bpabi.ver: Add unwinding routines.
+ * config/arm/libunwind.S: New file.
+ * config/arm/pr-support.c: New file.
+ * config/arm/t-bpabi (LIB1ASMFUNCS): Add _unwind.
+ (UNWIND_H, LIB2ADDEH, LIB2ADDEHDEP): Set.
+ * config/arm/t-symbian (UNWIND_H, LIB2ADDEH, LIB2ADDEHDEP): Set.
+ * config/arm/unwind-arm.c: New file.
+ * config/arm/unwind-arm.h: New file.
+ * config/i386/t-netware (USER_H): Remove unwind.h.
+ * config/ia64/ia64.h (TARGET_UNWIND_TABLES_DEFAULT): Define.
+
+2005-06-28 DJ Delorie <dj@redhat.com>
+
+ * c-decl.c (pop_scope): Move warning control into warning call.
+ (diagnose_mismatched_decls): Likewise.
+ (pushdecl): Likewise.
+ (start_decl): Likewise.
+ (grokparms): Likewise.
+ (start_function): Likewise.
+ (store_parm_decls_newstyle): Likewise.
+ (store_parm_decls_oldstyle): Likewise.
+ (finish_function): Likewise.
+ (declspecs_add_scspec): Likewise.
+ * c-format.c (decode_format_attr): Likewise.
+ (maybe_read_dollar_number): Likewise.
+ (avoid_dollar_number): Likewise.
+ (finish_dollar_format_checking): Likewise.
+ (check_format_info): Likewise.
+ (check_format_info_main): Likewise.
+ (check_format_types): Likewise.
+ (format_type_warning): Likewise.
+ * c-typeck.c (function_types_compatible_p): Likewise.
+ (build_array_ref): Likewise.
+ (convert_arguments): Likewise.
+ (build_c_cast): Likewise.
+ (store_init_value): Likewise.
+ (process_init_element): Likewise.
+ (c_start_case): Likewise.
+ * stor-layout.c (finalize_record_size): Likewise.
+ * tree-cfg.c (execute_warn_function_noreturn): Likewise.
+ * tree-inline.c (expand_call_inline): Likewise.
+
+2005-06-28 Uros Bizjak <uros@kss-loka.si>
+
+ PR target/22134
+ * config/i386/i386.md (fist<mode>2_with_temp splitter):
+ Clobber memory operand, not scratch register.
+
+2005-06-28 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ * config/s390/s390.c (machine_function): New field has_landing_pad_p.
+ (s390_set_has_landing_pad_p, s390_reg_clobbered_rtx,
+ s390_regs_ever_clobbered): New functions.
+ (s390_return_addr_rtx): Use get_hard_reg_initial_value.
+ (s390_register_info, s390_init_frame_layout, s390_update_frame_layout):
+ Use s390_regs_ever_clobbered.
+ (s390_emit_prologue): Don't use r14 as temp reg if its content is used
+ for builtin_return_address.
+ * config/s390/s390.md ("exception_receiver"): New expander.
+ * config/s390/s390-protos.h (s390_set_has_landing_pad_p): Prototype
+ added.
+
+2005-06-28 Andreas Krebbel <krebbel1@de.ibm.com>
+
+ * except.c (current_function_has_exception_handlers): Function
+ description added and if statements merged.
+
+2005-06-28 Richard Henderson <rth@redhat.com>
+
+ * config/i386/sse.md (smaxv16qi3): Fix buffer overflow.
+ (sminv16qi3, umaxv8hi3, uminv8hi3): Likewise.
+
+2005-06-27 Richard Henderson <rth@redhat.com>
+
+ * config/ia64/ia64.c (ia64_expand_vcondu_v2si): Generate proper
+ comparison operations.
+ (ia64_expand_vecint_minmax): Fix size of xops.
+ * config/ia64/vect.md (umax<VECINT>3): Fix fallback pattern typo.
+ (vec_shl_<VECINT>, vec_shr_<VECINT>): New.
+
+2005-06-27 Richard Henderson <rth@redhat.com>
+
+ * tree-vect-transform.c (get_initial_def_for_reduction): Use correct
+ type for DEF and INIT_VAL. Pretend MIN/MAX need epilogue adjustment.
+
+2005-06-27 Richard Henderson <rth@redhat.com>
+
+ * config/i386/sse.md (vec_shl_<SSEMODEI>, vec_shr_<SSEMODEI>): New.
+ (smaxv16qi3, umaxv8hi3, sminv16qi3, uminv8hi3): New.
+
+2005-06-27 Richard Henderson <rth@redhat.com>
+
+ * tree-vect-transform.c (vect_create_epilog_for_reduction): Remove
+ duplicate little-endian adjustment.
+
2005-06-28 Kelley Cook <kcook@gcc.gnu.org>
* doc/include/texinfo.tex: Import from upstream CVS.