1. 25 Apr, 2012 8 commits
    • rs6000.c (rs6000_savres_strategy): Allow out-of-line save/restore for large frames. · 1bf7c2a7
      	* config/rs6000/rs6000.c (rs6000_savres_strategy): Allow
      	out-of-line save/restore for large frames.  Don't disable
      	out-of-line saves on ABI_AIX when using static chain reg.
      	(rs6000_emit_prologue): Adjust cr_save_regno on ABI_AIX to not
      	clobber static chain reg, and tweak for out-of-line gpr saves
      	that use r1.
      
      From-SVN: r186799
      Alan Modra committed
    • rs6000.c (START_USE, [...]): Define. · c344e265
      	* config/rs6000/rs6000.c (START_USE, END_USE, NOT_INUSE): Define.
      	(rs6000_emit_prologue): Use the above to catch register overlap.
      
      From-SVN: r186798
      Alan Modra committed
    • rs6000.c (rs6000_emit_stack_reset): Delete forward decl. · 544055ae
      	* config/rs6000/rs6000.c (rs6000_emit_stack_reset): Delete forward
      	decl.  Move logic selecting update reg to callers.  Update all callers.
      	(rs6000_emit_allocate_stack): Add copy_off param.
      	(emit_frame_save): Don't handle reg+reg addressing.
      	(ptr_regno_for_savres): New function, extracted from..
      	(rs6000_emit_savres_rtx): ..here.  Add lr_offset param.
      	(rs6000_emit_prologue): Generate frame_ptr_rtx as we need it.
      	Set frame_reg_rtx to r11 whenever r11 is needed, and merge
      	frame offset adjustment for out-of-line save with copy from sp.
      	Simplify condition controlling whether cr is saved early or
      	late.  Use ptr_regno_for_savres to verify correct reg is set
      	up for out-of-line saves.  Pass the actual pointer reg used to
      	rs6000_emit_savres_rtx so rtl matches insns in out-of-line
      	function.  Rearrange spe vars so code is similar to that
      	elsewhere in this function.  Don't update frame_off when spe
      	save code will restore r11.  Use emit_frame_save for spe and
      	gpr saves.  Consolidate darwin out-of-line gpr setup with that
      	for other abis.  Don't assume frame_offset is zero and frame
      	reg is sp when setting up altivec reg saves, and calculate
      	exact offset requirement.
      	(rs6000_emit_epilogue): Use HOST_WIDE_INT for frame_off.  Tidy
      	spe restore code.  Consolidate darwin out-of-line gpr setup
      	with that for other abis.
      
      From-SVN: r186797
      Alan Modra committed
    • rs6000.c (rs6000_frame_related): Don't emit a REG_FRAME_RELATED_EXPR note when... · 471df90f
      	* config/rs6000/rs6000.c (rs6000_frame_related): Don't emit a
      	REG_FRAME_RELATED_EXPR note when the instruction exactly matches
      	the replacement.
      	(emit_frame_save): Delete frame_ptr param.  Rename total_size to
      	frame_reg_to_sp.
      	(rs6000_emit_prologue): Add sp_off.  Update rs6000_frame_related
      	and emit_frame_save calls.  Cope with possibly missing note.
      
      From-SVN: r186796
      Alan Modra committed
    • i386-cpuinfo.c: Set __cpu_vendor always. · ad491329
      2012-04-24  Sriraman Tallam  <tmsriram@google.com>
      
      	* libgcc/config/i386/i386-cpuinfo.c: Set __cpu_vendor always.
      
      From-SVN: r186795
      Sriraman Tallam committed
    • re PR libstdc++/52689 (static linking with libstdc++ fails) · 3b34ddb8
      2012-04-24  Benjamin Kosnik  <bkoz@redhat.com>
      
      	PR libstdc++/52689
      	* testsuite/17_intro/static.cc: New.
      
      From-SVN: r186794
      Benjamin Kosnik committed
    • Daily bump. · 6e58c9ab
      From-SVN: r186793
      GCC Administrator committed
    • This patch adds new builtins to check for cpu type and features. · 792317cc
      2012-04-24  Sriraman Tallam  <tmsriram@google.com>
      
      This patch adds new builtins to check for cpu type and features. 
      
      * __builtin_cpu_is ("<CPUNAME>")
      * __builtin_cpu_supports ("<FEATURE>")
      
      apart from the cpu init builtin, __builtin_cpu_init.
      
      List of CPU names :
      
      * "amd"
      * "intel"
      * "atom"
      * "core2"
      * "corei7"
      * "nehalem"
      * "westmere"
      * "sandybridge"
      * "amdfam10h"
      * "barcelona"
      * "shanghai"
      * "istanbul"
      * "bdver1"
      * "bdver2"
      
      List of CPU features :
      
      * "cmov"
      * "mmx"
      * "popcnt"
      * "sse"
      * "sse2"
      * "sse3"
      * "ssse3"
      * "sse4.1"
      * "sse4.2"
      * "avx"
      
              * config/i386/i386.c (build_processor_model_struct): New function.
              (make_var_decl): New function.
              (fold_builtin_cpu): New function.
              (ix86_fold_builtin): New function.
              (make_cpu_type_builtin): New function.
              (ix86_init_platform_type_builtins): New function.
              (ix86_expand_builtin): Expand new builtins by folding them.
              (ix86_init_builtins): Make new builtins to detect CPU type.
              (TARGET_FOLD_BUILTIN): New macro.
              (IX86_BUILTIN_CPU_INIT): New enum value.
              (IX86_BUILTIN_CPU_IS): New enum value.
              (IX86_BUILTIN_CPU_SUPPORTS): New enum value.
              * config/i386/i386-builtin-types.def: New function type.
              * testsuite/gcc.target/builtin_target.c: New testcase.
              * doc/extend.texi: Document builtins.
      
              * libgcc/config/i386/i386-cpuinfo.c: New file.
              * libgcc/config/i386/t-cpuinfo: New file.
              * libgcc/config.host: Include t-cpuinfo.
              * libgcc/config/i386/libgcc-glibc.ver: Version symbol __cpu_model.
      
      From-SVN: r186789
      Sriraman Tallam committed
  2. 24 Apr, 2012 32 commits