+2009-09-23 Jakub Jelinek <jakub@redhat.com>
+ Jan Hubicka <jh@suse.cz>
+
+ * dwarf2out.c (loc_list_plus_const): Only define if
+ DWARF2_DEBUGGING_INFO.
+ (address_of_int_loc_descriptor): Likewise.
+
+ PR debug/41411
+ * dwarf2out.c (mem_loc_descriptor): Handle HIGH.
+
+2009-09-23 Uros Bizjak <ubizjak@gmail.com>
+
+ PR c/39779
+ * c-typeck.c (build_binary_op) <short_shift>: Check that integer
+ constant is more than zero.
+
+2009-09-23 Alan Modra <amodra@bigpond.net.au>
+
+ PR target/40473
+ * config/rs6000/rs6000.c (rs6000_output_function_prologue): Don't
+ call final to emit non-scheduled prologue, instead insert at entry.
+
+2009-09-22 Loren J. Rittle <ljrittle@acm.org>
+ Joseph S. Myers <joseph@codesourcery.com>
+
+ * doc/install.texi (*-*-freebsd*): Add proper format codes.
+
+2009-09-22 Basile Starynkevitch <basile@starynkevitch.net>
+ Rafael Avila de Espindola <espindola@google.com>
+
+ * gengtype.c (is_file_equal): New function.
+ (close_output_files): Use is_file_equal. Free of->buf.
+
+2009-09-22 Basile Starynkevitch <basile@starynkevitch.net>
+ Rafael Avila de Espindola <espindola@google.com>
+
+ * gengtype.c (write_types, write_local): Add the output_header
+ argument. Update all callers.
+
+2009-09-22 Dodji Seketeli <dodji@redhat.com>
+
+ * dwarf2out.c (template_parameter_pack_die,
+ gen_formal_parameter_pack_die ): New functions.
+ (make_ith_pack_parameter_name): Remove this function.
+ (dwarf_tag_name): Support printing DW_TAG_template_parameter_pack and
+ DW_TAG_formal_parameter_pack.
+ (gen_generic_params_dies): Represent each template parameter pack
+ by a DW_TAG_template_parameter_pack DIE. Argument pack elements are
+ represented by usual DW_TAG_template_*_parameter DIEs that are
+ children of the DW_TAG_template_parameter_pack element DIE.
+ (generic_parameter_die): This doesn't deal with parameter pack
+ names anymore. Don't generate DW_AT_name for some DIEs, e.g. children
+ of parameter pack DIEs.
+ (gen_formal_parameter_die): Add a flag to not emit DW_AT_name
+ in certain cases, e.g. for pack elements.
+ (gen_formal_types_die, gen_decl_die): Adjust usage of
+ gen_formal_parameter_die.
+ (gen_subprogram_die): Represent each function parameter pack by a
+ DW_TAG_formal_parameter_pack DIE. Arguments of of the pack are
+ represented by usual DW_TAG_formal_parameter DIEs that are children
+ of the DW_TAG_formal_parameter_pack DIE. Remove references to
+ ____builtin_va_alist decls as no part of the compiler uses those
+ anymore.
+ * langhooks.h (struct lang_hooks_for_decls): Add
+ function_parm_expanded_from_pack_p, get_generic_function_decl
+ and function_parameter_pack_p hooks. Fix comment for
+ get_innermost_generic_parms hook.
+ * langhooks-def.h (LANG_HOOKS_FUNCTION_PARAMETER_PACK_P,
+ LANG_HOOKS_FUNCTION_PARM_EXPANDED_FROM_PACK_P ): Declare new hook
+ macros and use them to initialize lang_hook.
+
+2009-09-22 Richard Henderson <rth@redhat.com>
+
+ * system.h (TRAMPOLINE_TEMPLATE, INITIALIZE_TRAMPOLINE): Poison.
+ (TRAMPOLINE_ADJUST_ADDRESS): Poison.
+ * target-def.h (TARGET_ASM_TRAMPOLINE_TEMPLATE): Don't conditionalize
+ on TRAMPOLINE_TEMPLATE.
+ (TARGET_TRAMPOLINE_ADJUST_ADDRESS): Don't conditionalize on
+ TRAMPOLINE_ADJUST_ADDRESS.
+ * targhooks.c (default_asm_trampoline_template): Remove.
+ (default_trampoline_adjust_address): Remove.
+ (default_trampoline_init): Don't handle INITIALIZE_TRAMPOLINE.
+ * targhooks.h: Update decls.
+
+2009-09-22 Dave Korn <dave.korn.cygwin@gmail.com>
+
+ * config/i386/cygming.h (TARGET_USE_JCR_SECTION): Enable.
+ * config/i386/cygwin.h (LIBGCJ_SONAME): Define.
+ * config/i386/mingw32.h (LIBGCJ_SONAME): Likewise.
+
+2009-09-22 Alexandre Oliva <aoliva@redhat.com>
+
+ PR debug/41295
+ * reload1.c (reload): Reset debug insns with pseudos without
+ equivalences.
+
+2009-09-22 Neil Vachharajani <nvachhar@google.com>
+
+ * testsuite/gcc.dg/pr40209.c: Add test case.
+
+2009-09-22 Janis Johnson <janis187@us.ibm.com>
+
+ * config/i386/i386.c (ix86_scalar_mode_supported_p): Don't return
+ unconditional true for decimal float modes.
+ * config/rs6000/rs6000.c (rs6000_scalar_mode_supported_p): Ditto.
+ * config/s390/s390.c (s390_scalar_mode_supported_p): Ditto.
+
+2009-09-22 Loren J. Rittle <ljrittle@acm.org>
+
+ * unwind-dw2-fde-glibc.c: Define and use USE_PT_GNU_EH_FRAME.
+ Enable a new case for __FreeBSD__ >= 7.
+ * crtstuff.c: Define USE_PT_GNU_EH_FRAME for __FreeBSD__ >= 7.
+ * config/t-freebsd: Define LIB2ADDEH and LIB2ADDEHDEP.
+ * config/freebsd-spec.h: Conditionally define LINK_EH_SPEC
+ and USE_LD_AS_NEEDED.
+
+ * doc/install.texi (*-*-freebsd*): Update target information.
+
+2009-09-22 Richard Guenther <rguenther@suse.de>
+
+ PR middle-end/41395
+ * tree-dfa.c (get_ref_base_and_extent): Handle trailing
+ arrays really properly.
+
+2009-09-22 Richard Henderson <rth@redhat.com>
+
+ PR target/41246
+ * target.h (struct gcc_target): Add asm_out.trampoline_template,
+ calls.static_chain, calls.trampoline_init,
+ calls.trampoline_adjust_address.
+ * target-def.h (TARGET_ASM_TRAMPOLINE_TEMPLATE): New.
+ (TARGET_STATIC_CHAIN, TARGET_TRAMPOLINE_INIT): New.
+ (TARGET_TRAMPOLINE_ADJUST_ADDRESS): New.
+ * builtins.c (expand_builtin_setjmp_receiver): Use
+ targetm.calls.static_chain; only clobber registers.
+ (expand_builtin_init_trampoline): Use targetm.calls.trampoline_init;
+ set up memory attributes properly for the trampoline block.
+ (expand_builtin_adjust_trampoline): Use
+ targetm.calls.trampoline_adjust_address.
+ * calls.c (prepare_call_address): Add fndecl argument. Use
+ targetm.calls.static_chain.
+ * df-scan.c (df_need_static_chain_reg): Remove.
+ (df_get_entry_block_def_set): Use targetm.calls.static_chain;
+ consolodate static chain handling.
+ * doc/tm.texi: Document new hooks.
+ * emit-rtl.c (static_chain_rtx, static_chain_incoming_rtx): Remove.
+ (init_emit_regs): Don't initialize them.
+ * expr.h (prepare_call_address): Update decl.
+ * final.c (profile_function): Use targetm.calls.static_chain.
+ * function.c (expand_function_start): Likewise.
+ * rtl.h (static_chain_rtx, static_chain_incoming_rtx): Remove.
+ * stmt.c (expand_nl_goto_receiver): Use targetm.calls.static_chain;
+ only clobber registers.
+ * targhooks.c (default_static_chain): New.
+ (default_asm_trampoline_template, default_trampoline_init): New.
+ (default_trampoline_adjust_address): New.
+ * targhooks.h: Declare them.
+ * varasm.c (assemble_trampoline_template): Use
+ targetm.asm_out.trampoline_template. Make the memory block const
+ and set its size.
+
+ * config/alpha/alpha.c (alpha_trampoline_init): Rename from
+ alpha_initialize_trampoline. Make static. Merge VMS parameter
+ differences into the TARGET_ABI_OPEN_VMS code block.
+ (TARGET_TRAMPOLINE_INIT): New.
+ * config/alpha/alpha.h (TRAMPOLINE_TEMPLATE): Remove.
+ (TRAMPOLINE_SECTION, INITIALIZE_TRAMPOLINE): Remove.
+ * config/alpha/vms.h (TRAMPOLINE_SIZE, TRAMPOLINE_ALIGNMENT): Remove.
+ (INITIALIZE_TRAMPOLINE): Remove.
+
+ * config/arc/arc.h (TRAMPOLINE_ALIGNMENT): New.
+ (TRAMPOLINE_TEMPLATE): Merge with ...
+ (INITIALIZE_TRAMPOLINE): ... this and move ...
+ * config/arc/arc.c (arc_trampoline_init): ... here.
+ (TARGET_TRAMPOLINE_INIT): New.
+
+ * config/arm/arm.c (TARGET_ASM_TRAMPOLINE_TEMPLATE): New.
+ (TARGET_TRAMPOLINE_INIT, TARGET_TRAMPOLINE_ADJUST_ADDRESS): New.
+ (arm_asm_trampoline_template): New.
+ (arm_trampoline_init, arm_trampoline_adjust_address): New.
+ * config/arm/arm.h (TRAMPOLINE_TEMPLATE, ARM_TRAMPOLINE_TEMPLATE,
+ THUMB2_TRAMPOLINE_TEMPLATE, THUMB1_TRAMPOLINE_TEMPLATE): Move all
+ code to arm_asm_trampoline_template.
+ (TRAMPOLINE_ADJUST_ADDRESS): Move code to
+ arm_trampoline_adjust_address.
+ (INITIALIZE_TRAMPOLINE): Move code to arm_trampoline_init;
+ adjust for target hook parameters.
+
+ * config/avr/avr.h (TRAMPOLINE_TEMPLATE, INITIALIZE_TRAMPOLINE):
+ Remove.
+
+ * config/bfin/bfin-protos.h (initialize_trampoline): Remove.
+ * config/bfin/bfin.c (bfin_asm_trampoline_template): New.
+ (bfin_trampoline_init): Rename from initialize_trampoline;
+ make static; update for target hook parameters.
+ (TARGET_ASM_TRAMPOLINE_TEMPLATE, TARGET_TRAMPOLINE_INIT): New.
+ * config/bfin/bfin.h (TRAMPOLINE_TEMPLATE): Move code to
+ bfin_asm_trampoline_template.
+ (INITIALIZE_TRAMPOLINE): Remove.
+
+ * config/cris/cris.c (TARGET_ASM_TRAMPOLINE_TEMPLATE,
+ TARGET_TRAMPOLINE_INIT, cris_asm_trampoline_template,
+ cris_trampoline_init): New.
+ * config/cris/cris.h (TRAMPOLINE_TEMPLATE): Move code to
+ cris_asm_trampoline_template.
+ (INITIALIZE_TRAMPOLINE): Move code to cris_trampoline_init;
+ adjust for target hook parameters.
+
+ * config/crx/crx.h (INITIALIZE_TRAMPOLINE): Remove.
+
+ * config/fr30/fr30.c (TARGET_ASM_TRAMPOLINE_TEMPLATE,
+ TARGET_TRAMPOLINE_INIT, fr30_asm_trampoline_template,
+ fr30_trampoline_init): New.
+ * config/fr30/fr30.h (TRAMPOLINE_TEMPLATE): Move code to
+ fr30_asm_trampoline_template.
+ (INITIALIZE_TRAMPOLINE): Move code to fr30_trampoline_init;
+ adjust for target hook parameters.
+
+ * config/frv/frv.c (TARGET_TRAMPOLINE_INIT): New.
+ (frv_trampoline_init): Rename from frv_initialize_trampoline;
+ make static, adjust arguments for TARGET_TRAMPOLINE_INIT hook.
+ * config/frv/frv.h (INITIALIZE_TRAMPOLINE): Remove.
+ * config/frv/frv-protos.h (frv_initialize_trampoline): Remove.
+
+ * config/h8300/h8300.c (h8300_trampoline_init): New.
+ (TARGET_TRAMPOLINE_INIT): New.
+ * config/h8300/h8300.h (INITIALIZE_TRAMPOLINE): Move code
+ to h8300_trampoline_init and adjust for hook parameters.
+
+ * config/ia64/ia64-protos.h (ia64_initialize_trampoline): Remove.
+ * config/ia64/ia64.c (TARGET_TRAMPOLINE_INIT): New.
+ (ia64_trampoline_init): Rename from ia64_initialize_trampoline;
+ make static; adjust for hook parameters.
+ * config/ia64/ia64.h (INITIALIZE_TRAMPOLINE): Remove.
+
+ * config/iq2000/iq2000.c (TARGET_ASM_TRAMPOLINE_TEMPLATE): New.
+ (TARGET_TRAMPOLINE_INIT): New.
+ (iq2000_asm_trampoline_template, iq2000_trampoline_init): New.
+ * config/iq2000/iq2000.h (TRAMPOLINE_TEMPLATE): Move code to
+ iq2000_asm_trampoline_template.
+ (INITIALIZE_TRAMPOLINE): Move code to iq2000_trampoline_init.
+ (TRAMPOLINE_CODE_SIZE): New.
+ (TRAMPOLINE_SIZE): Use it.
+ (TRAMPOLINE_ALIGNMENT): Follow Pmode.
+
+ * config/m32c/m32c-protos.h (m32c_initialize_trampoline): Remove.
+ * config/m32c/m32c.c (TARGET_TRAMPOLINE_INIT): New.
+ (m32c_trampoline_init): Rename from m32c_initialize_trampoline;
+ adjust for hook parameters.
+ * config/m32c/m32c.h (INITIALIZE_TRAMPOLINE): Remove.
+
+ * config/m32r/m32r.c (TARGET_TRAMPOLINE_INIT): New.
+ (m32r_trampoline_init): New.
+ * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Move code to
+ m32r_trampoline_init.
+
+ * config/m68hc11/m68hc11.c (TARGET_TRAMPOLINE_INIT): New.
+ (m68hc11_trampoline_init): Rename from m68hc11_initialize_trampoline;
+ make static; update for hook parameters.
+ * config/m68hc11/m68hc11-protos.h: Update.
+ * config/m68hc11/m68hc11.h (INITIALIZE_TRAMPOLINE): Remove.
+
+ * config/mcore/mcore.c (TARGET_ASM_TRAMPOLINE_TEMPLATE): New.
+ (TARGET_TRAMPOLINE_INIT): New.
+ (mcore_function_value): Fix typo.
+ (mcore_asm_trampoline_template, mcore_trampoline_init): New.
+ * config/mcore/mcore.h (TRAMPOLINE_TEMPLATE): Move code
+ to mcore_asm_trampoline_template.
+ (INITIALIZE_TRAMPOLINE): Move code to mcore_trampoline_init.
+
+ * config/mep/mep.h (INITIALIZE_TRAMPOLINE): Remove.
+ * config/mep/mep.c (TARGET_TRAMPOLINE_INIT): New.
+ (mep_trampoline_init): Rename from mep_init_trampoline; make static;
+ update for hook parameters.
+ * config/mep/mep-protos.h (mep_init_trampoline): Remove.
+
+ * config/mips/mips.c (TARGET_ASM_TRAMPOLINE_TEMPLATE,
+ mips_asm_trampoline_template, TARGET_TRAMPOLINE_INIT,
+ mips_trampoline_init): New.
+ * config/mips/mips.h (TRAMPOLINE_TEMPLATE): Move code to
+ mips_asm_trampoline_template.
+ (INITIALIZE_TRAMPOLINE): Move code to mips_trampoline_init;
+ update for hook parameters.
+
+ * gcc/config/mmix/mmix.c (TARGET_ASM_TRAMPOLINE_TEMPLATE): New.
+ (TARGET_TRAMPOLINE_INIT): New.
+ (mmix_trampoline_size): Remove.
+ (mmix_asm_trampoline_template): Rename from mmix_trampoline_template;
+ make static. Remove out-of-date tetra vs octa comment.
+ (mmix_trampoline_init): Rename from mmix_initialize_trampoline;
+ make static; update for hook parameters.
+ * config/mmix/mmix.h (TRAMPOLINE_TEMPLATE): Remove.
+ (INITIALIZE_TRAMPOLINE): Remove.
+ (TRAMPOLINE_SIZE): Use a constant instead of mmix_trampoline_size.
+ (TRAMPOLINE_ALIGNMENT): New.
+ * gcc/config/mmix/mmix-protos.h: Update.
+
+ * config/mn10300/mn10300.c (TARGET_ASM_TRAMPOLINE_TEMPLATE,
+ mn10300_asm_trampoline_template, TARGET_TRAMPOLINE_INIT,
+ mn10300_trampoline_init): New.
+ * config/mn10300/mn10300.h (TRAMPOLINE_TEMPLATE): Move code to
+ mn10300_asm_trampoline_template.
+ (INITIALIZE_TRAMPOLINE): Move code to mn10300_trampoline_init.
+
+ * config/moxie/moxie.c (moxie_static_chain,
+ moxie_asm_trampoline_template, moxie_trampoline_init,
+ TARGET_STATIC_CHAIN, TARGET_ASM_TRAMPOLINE_TEMPLATE,
+ TARGET_TRAMPOLINE_INIT): New.
+ * config/moxie/moxie.h (INITIALIZE_TRAMPOLINE): Move code to
+ moxie_trampoline_init.
+ (TRAMPOLINE_TEMPLATE): Move code to moxie_asm_trampoline_template.
+ (STATIC_CHAIN, STATIC_CHAIN_INCOMING): Remove.
+
+ * gcc/config/pa/pa.c (TARGET_ASM_TRAMPOLINE_TEMPLATE,
+ pa_asm_trampoline_template, TARGET_TRAMPOLINE_INIT,
+ pa_trampoline_init, TARGET_TRAMPOLINE_ADJUST_ADDRESS,
+ pa_trampoline_adjust_address): New.
+ * config/pa/pa.h (TRAMPOLINE_TEMPLATE): Move code to
+ pa_asm_trampoline_template.
+ (TRAMPOLINE_ALIGNMENT): New.
+ (TRAMPOLINE_CODE_SIZE): Move to pa.c.
+ (INITIALIZE_TRAMPOLINE): Move code to pa_trampoline_init;
+ adjust for hook parameters.
+ (TRAMPOLINE_ADJUST_ADDRESS): Move code to pa_trampoline_adjust_address.
+
+ * config/pdp11/pdp11.c (pdp11_trampoline_init): New.
+ (TARGET_TRAMPOLINE_INIT): New.
+ * config/pdp11/pdp11.h (TRAMPOLINE_TEMPLATE): Remove.
+ (INITIALIZE_TRAMPOLINE): Move code to pdp11_trampoline_init.
+
+ * config/picochip/picochip.h (INITIALIZE_TRAMPOLINE): Remove.
+
+ * config/rs6000/rs6000-protos.h (rs6000_initialize_trampoline): Remove.
+ * config/rs6000/rs6000.c (TARGET_TRAMPOLINE_INIT): New.
+ (rs6000_trampoline_init): Rename from rs6000_initialize_trampoline;
+ make static; adjust parameters for the hook.
+ * config/rs6000/rs6000.h (INITIALIZE_TRAMPOLINE): Remove.
+
+ * config/s390/s390.c (s390_asm_trampoline_template): Rename from
+ s390_trampoline_template; make static.
+ (s390_trampoline_init): Rename from s390_initialize_trampoline;
+ make static; adjust for target hook.
+ (TARGET_ASM_TRAMPOLINE_TEMPLATE, TARGET_TRAMPOLINE_INIT): New.
+ * config/s390/s390-protos.h: Remove trampoline decls.
+ * config/s390/s390.h (INITIALIZE_TRAMPOLINE): Remove.
+ (TRAMPOLINE_TEMPLATE): Remove.
+ (TRAMPOLINE_ALIGNMENT): New.
+
+ * config/score/score-protos.h (score_initialize_trampoline): Remove.
+ * config/score/score.c (TARGET_ASM_TRAMPOLINE_TEMPLATE): New.
+ (TARGET_TRAMPOLINE_INIT): New.
+ (score_asm_trampoline_template): New.
+ (score_trampoline_init): Rename from score_initialize_trampoline;
+ make static; adjust for hook parameters.
+ * config/score/score.h (TRAMPOLINE_TEMPLATE): Move code to
+ score[37]_asm_trampoline_template.
+ (INITIALIZE_TRAMPOLINE): Remove.
+ * config/score/score3.c (score3_asm_trampoline_template): New.
+ (score3_trampoline_init): Rename from score3_initialize_trampoline;
+ adjust for target hook.
+ * config/score/score7.c (score7_asm_trampoline_template): New.
+ (score7_trampoline_init): Rename from score7_initialize_trampoline;
+ adjust for target hook.
+ * config/score/score3.h, config/score/score7.h: Update.
+
+ * config/sh/sh-protos.h (sh_initialize_trampoline): Remove.
+ * config/sh/sh.c (TARGET_TRAMPOLINE_INIT): New.
+ (TARGET_TRAMPOLINE_ADJUST_ADDRESS): New.
+ (sh_trampoline_init): Rename from sh_initialize_trampoline;
+ make static; adjust for target hook parameters.
+ (sh_trampoline_adjust_address): New.
+ * config/sh/sh.h (INITIALIZE_TRAMPOLINE): New.
+ (TRAMPOLINE_ADJUST_ADDRESS): Move code to sh_trampoline_adjust_address.
+
+ * config/sparc/sparc.c (TARGET_TRAMPOLINE_INIT): New.
+ (sparc32_initialize_trampoline): Rename from
+ sparc_initialize_trampoline; make static; replace tramp parameter
+ with m_tramp and update memory accesses.
+ (sparc64_initialize_trampoline): Similarly.
+ (sparc_trampoline_init): New.
+ * config/sparc/sparc-protos.h: Remove trampoline decls.
+ * config/sparc/sparc.h (INITIALIZE_TRAMPOLINE): Remove.
+ * config/sparc/sparc.md (nonlocal_goto): Don't use static_chain_rtx.
+
+ * config/spu/spu.c (TARGET_TRAMPOLINE_INIT): New.
+ (array_to_constant): Make ARR parameter const.
+ (spu_trampoline_init): Rename from spu_initialize_trampoline;
+ make static; update for hook parameters.
+ * config/spu/spu-protos.h: Update decls.
+ * config/spu/spu.h (INITIALIZE_TRAMPOLINE): Remove.
+
+ * config/stormy16/stormy16.c (xstormy16_trampoline_init): Rename
+ from xstormy16_initialize_trampoline; make static; update for
+ hook parameters.
+ (TARGET_TRAMPOLINE_INIT): New.
+ * config/stormy16/stormy16.h (INITIALIZE_TRAMPOLINE): Remove.
+
+ * config/v850/v850.c (TARGET_ASM_TRAMPOLINE_TEMPLATE): New.
+ (TARGET_TRAMPOLINE_INIT): New.
+ (v850_can_eliminate): Make static.
+ (v850_asm_trampoline_template, v850_trampoline_init): New.
+ * config/v850/v850.h (TRAMPOLINE_TEMPLATE): Move code to
+ v850_asm_trampoline_template.
+ (INITIALIZE_TRAMPOLINE): Move code to v850_trampoline_init
+ and adjust for target hook parameters.
+
+ * config/vax/vax.c (TARGET_ASM_TRAMPOLINE_TEMPLATE): New.
+ (TARGET_TRAMPOLINE_INIT): New.
+ (vax_asm_trampoline_template, vax_trampoline_init): New.
+ * config/vax/vax.h (TRAMPOLINE_TEMPLATE): Move code to
+ vax_asm_trampoline_template.
+ (INITIALIZE_TRAMPOLINE): Move code to vax_trampoline_init.
+
+ * config/xtensa/xtensa.c (TARGET_ASM_TRAMPOLINE_TEMPLATE): New.
+ (TARGET_TRAMPOLINE_INIT): New.
+ (xtensa_asm_trampoline_template): Rename from
+ xtensa_trampoline_template; make static.
+ (xtensa_trampoline_init): Rename from xtensa_initialize_trampoline;
+ make static; update for hook parameters.
+ * config/xtensa/xtensa-protos.h: Remove trampoline decls.
+ * config/xtensa/xtensa.h (TRAMPOLINE_TEMPLATE): Remove.
+ (INITIALIZE_TRAMPOLINE): Remove.
+
+ * config/i386/i386.c (ix86_function_regparm): Do not issue an
+ error for nested functions with regparm=3.
+ (ix86_compute_frame_layout): Adjust frame pointer offset for
+ ix86_static_chain_on_stack.
+ (ix86_expand_prologue): Handle ix86_static_chain_on_stack.
+ (ix86_emit_restore_reg_using_pop): Increment ix86_cfa_state->offset,
+ don't reset to UNITS_PER_WORD.
+ (ix86_emit_leave): Adjust ix86_cfa_state.
+ (ix86_expand_epilogue): Handle ix86_static_chain_on_stack.
+ (ix86_static_chain): New.
+ (ix86_trampoline_init): Rename from x86_initialize_trampoline;
+ make static; update for target hook parameters; use ix86_static_chain.
+ (TARGET_STATIC_CHAIN, TARGET_TRAMPOLINE_INIT): New.
+ * config/i386/i386.h (STATIC_CHAIN_REGNUM): Remove.
+ (INITIALIZE_TRAMPOLINE): Remove.
+ (TRAMPOLINE_SIZE): Use 24 for 64-bit.
+ (struct machine_function): Use BOOL_BITFIELD; rearrange bitfields
+ to the end. Add static_chain_on_stack.
+ (ix86_static_chain_on_stack): New.
+
+ * config/m68k/m68k.c (TARGET_TRAMPOLINE_INIT): New.
+ (m68k_output_mi_thunk): Don't use static_chain_rtx.
+ (m68k_trampoline_init): New.
+ * config/m68k/m68k.h (INITIALIZE_TRAMPOLINE): Move code to
+ m68k_trampoline_init and adjust for hook parameters.
+ * config/m68k/netbsd-elf.h (TRAMPOLINE_TEMPLATE): Remove.
+ (TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE): Remove.
+
+2009-09-22 Jakub Jelinek <jakub@redhat.com>
+
+ * config/rs6000/rs6000.c (bdesc_2arg): Fix CODE_FOR_vector_gt* codes
+ for __builtin_altivec_vcmpgt{sb,uh,sh,uw}.
+
+ * reload1.c (reload): Call wrap_constant when substituting
+ reg for equiv inside of DEBUG_INSNs.
+
+ PR bootstrap/41405
+ * dwarf2out.c (base_type_die, record_type_tag, gen_subprogram_die,
+ add_call_src_coords_attributes, add_high_low_attributes,
+ gen_compile_unit_die, gen_type_die_with_usage force_decl_die,
+ gen_decl_die, dwarf2out_imported_module_or_decl_1, dwarf2out_finish,
+ dwarf2out_imported_module_or_decl): Avoid using DWARF3 additions
+ when -gdwarf-2 -gstrict-dwarf.
+ (loc_list_from_tree): Likewise. Avoid using DWARF4 additions when
+ -gdwarf-[23] -gstrict-dwarf.
+ (address_of_int_loc_descriptor, loc_descriptor,
+ loc_list_for_address_of_addr_expr_of_indirect_ref): Avoid using
+ DWARF4 additions when -gdwarf-[23] -gstrict-dwarf.
+ * common.opt (gno-strict-dwarf, gstrict-dwarf): New options.
+
2009-09-22 Richard Guenther <rguenther@suse.de>
PR tree-optimization/41428
2009-09-21 Giuseppe Scrivano <gscrivano@gnu.org>
- * tree-tailcall.c (process_assignment): Don't check if a multiplication
- or an addition are already present.
+ * tree-tailcall.c (process_assignment): Don't check if a
+ multiplication or an addition are already present.
(find_tail_calls): Combine multiple additions and multiplications.
(adjust_accumulator_values): Emit accumulators.
2009-09-20 Jan Hubicka <jh@suse.cz>
* dwarf2out.c (add_const_value_attribute): Return true if successful.
- (add_location_or_const_value_attribute): Rewrite using loc_list_from_tree.
+ (add_location_or_const_value_attribute): Rewrite using
+ loc_list_from_tree.
(tree_add_const_value_attribute): Return true if successful.
(tree_add_const_value_attribute_for_decl): Likewise.
* configure: Regenerate.
* doc/invoke.texi (Option Summary): Add -mrelax-pic-calls
and -mno-relax-pic-calls.
- (MIPS Options): Document -mrelax-pic-calls
- and -mno-relax-pic-calls.
+ (MIPS Options): Document -mrelax-pic-calls and -mno-relax-pic-calls.
2009-09-19 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>