OSDN Git Service

2009-11-30 Chao-ying Fu <fu@mips.com>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index d5fb075..23a091f 100644 (file)
@@ -1,3 +1,99 @@
+2009-11-30  Chao-ying Fu  <fu@mips.com>
+
+       * config/mips/mips-dsp.md (mips_lhx_<mode>): Use sign_extend.
+
+2009-11-30  Dave Korn  <dave.korn.cygwin@gmail.com>
+
+       * configure.ac (USE_CYGWIN_LIBSTDCXX_WRAPPERS): Define to reflect
+       status of AC_CHECK_FUNC for Cygwin DLL libstdc++ support wrappers.
+       * configure: Regenerate.
+       * config.in: Regenerate.
+
+       * config/i386/cygwin.h (CXX_WRAP_SPEC_LIST): Define list of --wrap
+       options for Cygwin DLL libstdc++ support wrappers.
+       (CXX_WRAP_SPEC_OPT): Define spec to use wrappers or not by default
+       according to defined value of USE_CYGWIN_LIBSTDCXX_WRAPPERS.
+       (CXX_WRAP_SPEC): Define entire wrapper spec in or out according to
+       whether USE_CYGWIN_LIBSTDCXX_WRAPPERS is even defined or not.
+       (LINK_SPEC): Include CXX_WRAP_SPEC.
+       * gcc/config/i386/winnt.c (wrapper_strcmp): New qsort helper function.
+       (i386_find_on_wrapper_list): Check if a function is found on the list
+       of libstdc++ wrapper options.
+       (i386_pe_file_end): If we are importing a wrapped function, also emit
+       an external declaration for the real version.
+       * config/i386/cygming.opt (muse-libstdc-wrappers): New option for
+       Cygwin targets. Update copyright year.
+
+2009-11-30  Steve Ellcey  <sje@cup.hp.com>
+           Jakub Jelinek <jakub@redhat.com>
+
+       * function.c (instantiate_virtual_regs_in_insn): Copy to new reg
+       before forcing mode.
+
+2009-11-30  Anatoly Sokolov  <aesok@post.ru>
+
+       * config/sh/sh.c (sh_promote_prototypes): Make static.
+       (sh_function_value, sh_libcall_value, sh_function_value_regno_p): New
+       functions.
+       (TARGET_FUNCTION_VALUE, TARGET_LIBCALL_VALUE): Declare.
+       * config/sh/sh.h: (FUNCTION_VALUE_REGNO_P): Redefine, use
+       sh_function_value_regno_p.
+       (FUNCTION_VALUE, LIBCALL_VALUE): Remove.
+       * config/sh/sh-protos.h (sh_function_value_regno_p): Declare.
+       (sh_promote_prototypes) : Remove.
+
+2009-11-30  Julian Brown  <julian@codesourcery.com>
+
+       * config/arm/arm.h (PREFERRED_RELOAD_CLASS): Don't restrict Thumb-2
+       reloads to LO_REGS.
+
+2009-11-30  Richard Henderson  <rth@redhat.com>
+
+       * config/i386/i386.c (ix86_vec_interleave_v2df_operator_ok): New.
+       (bdesc_special_args): Update insn codes.
+       (avx_vpermilp_parallel): Correct range check.
+       (ix86_rtx_costs): Handle vector permutation rtx codes.
+       (struct expand_vec_perm_d): Move earlier.
+       (get_mode_wider_vector): New.
+       (expand_vec_perm_broadcast_1): New.
+       (ix86_expand_vector_init_duplicate): Use it.  Tidy AVX modes.
+       (expand_vec_perm_broadcast): New.
+       (ix86_expand_vec_perm_builtin_1): Use it.
+       * config/i386/i386-protos.h: Update.
+       * config/i386/predicates.md (avx_vbroadcast_operand): New.
+       * config/i386/sse.md (AVX256MODE24P): New.
+       (ssescalarmodesuffix2s): New.
+       (avxhalfvecmode, avxscalarmode): Fill out to all modes.
+       (avxmodesuffixf2c): Add V8SI, V4DI.
+       (vec_dupv4sf): New expander.
+       (*vec_dupv4sf_avx): Add vbroadcastss alternative.
+       (*vec_set<mode>_0_avx, **vec_set<mode>_0_sse4_1): Macro-ize for
+       V4SF and V4SI.  Move C alternatives to front.  Add insertps and
+       pinsrd alternatives.
+       (*vec_set<mode>_0_sse2): Split out from ...
+       (vec_set<mode>_0): Macro-ize for V4SF and V4SI.
+       (vec_interleave_highv2df, vec_interleave_lowv2df): Require register
+       destination; use ix86_vec_interleave_v2df_operator_ok, instead of
+       ix86_fixup_binary_operands.
+       (*avx_interleave_highv2df, avx_interleave_lowv2df): Add movddup.
+       (*sse3_interleave_highv2df, sse3_interleave_lowv2df): New.
+       (*avx_movddup, *sse3_movddup): Remove.  New splitter from
+       vec_select form to vec_duplicate form.
+       (*sse2_interleave_highv2df, sse2_interleave_lowv2df): Use
+       ix86_vec_interleave_v2df_operator_ok.
+       (avx_movddup256, avx_unpcklpd256): Change to expanders, merge into ... 
+       (*avx_unpcklpd256): ... here.
+       (*vec_dupv4si_avx): New.
+       (*vec_dupv2di_avx): Add movddup alternative.
+       (*vec_dupv2di_sse3): New.
+       (vec_dup<AVX256MODE24P>): Replace avx_vbroadcasts<AVXMODEF4P> and
+       avx_vbroadcastss256; represent with vec_duplicate instead of 
+       nested vec_concat operations.
+       (avx_vbroadcastf128_<mode>): Rename from
+       avx_vbroadcastf128_p<avxmodesuffixf2c>256.
+       (*avx_vperm_broadcast_v4sf): New.
+       (*avx_vperm_broadcast_<AVX256MODEF2P>): New.
+
 2009-11-30  Martin Jambor  <mjambor@suse.cz>
 
        PR middle-end/42196