OSDN Git Service

2009-09-22 Neil Vachharajani <nvachhar@google.com>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 02d30dd..254de0b 100644 (file)
@@ -1,3 +1,25 @@
+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
 
        * 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