]> git.pld-linux.org Git - packages/gcc.git/commitdiff
- rel 7; drop patch101 (we don't know where it comes from and it seem to be unmaintai... auto/th/gcc-4_4_0-7
authorArkadiusz Miśkiewicz <arekm@maven.pl>
Sun, 12 Jul 2009 16:40:11 +0000 (16:40 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
Changed files:
    gcc-branch.diff -> 1.15
    gcc-ix86-branch.diff -> 1.3
    gcc.spec -> 1.582

gcc-branch.diff
gcc-ix86-branch.diff [deleted file]
gcc.spec

index 65fbe68f734ef6103f86fdede5b82dd85a8bb776..5115edf8355524d4aaf1f6dc2c5d54705d86f320 100644 (file)
@@ -1,7 +1,7 @@
 Index: configure
 ===================================================================
---- configure  (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ configure  (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- configure  (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ configure  (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -272,7 +272,7 @@
  PACKAGE_BUGREPORT=
  
@@ -37,8 +37,8 @@ Index: configure
  s,@clooglibs@,$clooglibs,;t t
 Index: Makefile.in
 ===================================================================
---- Makefile.in        (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ Makefile.in        (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- Makefile.in        (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ Makefile.in        (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -17068,7 +17068,7 @@
        libsrcdir="$$s/mpfr"; \
        $(SHELL) $${libsrcdir}/configure \
@@ -122,8 +122,8 @@ Index: Makefile.in
  
 Index: libgomp/team.c
 ===================================================================
---- libgomp/team.c     (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ libgomp/team.c     (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- libgomp/team.c     (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ libgomp/team.c     (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -125,6 +125,7 @@
        while (local_fn);
      }
@@ -142,8 +142,8 @@ Index: libgomp/team.c
  
 Index: libgomp/ChangeLog
 ===================================================================
---- libgomp/ChangeLog  (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ libgomp/ChangeLog  (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- libgomp/ChangeLog  (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ libgomp/ChangeLog  (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1,3 +1,9 @@
 +2009-05-20  Jakub Jelinek  <jakub@redhat.com>
 +
@@ -156,8 +156,8 @@ Index: libgomp/ChangeLog
        * GCC 4.4.0 released.
 Index: gcc/tree-vrp.c
 ===================================================================
---- gcc/tree-vrp.c     (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/tree-vrp.c     (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/tree-vrp.c     (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/tree-vrp.c     (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -5682,6 +5682,14 @@
    tree ret;
    bool only_ranges;
@@ -175,8 +175,8 @@ Index: gcc/tree-vrp.c
                                                 &only_ranges);
 Index: gcc/fwprop.c
 ===================================================================
---- gcc/fwprop.c       (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/fwprop.c       (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/fwprop.c       (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/fwprop.c       (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1,5 +1,5 @@
  /* RTL-based forward propagation pass for GNU compiler.
 -   Copyright (C) 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
@@ -305,8 +305,8 @@ Index: gcc/fwprop.c
    if (DF_REF_TYPE (use) == DF_REF_REG_MEM_STORE)
 Index: gcc/doc/extend.texi
 ===================================================================
---- gcc/doc/extend.texi        (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/doc/extend.texi        (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/doc/extend.texi        (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/doc/extend.texi        (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -914,8 +914,7 @@
  @end smallexample
  
@@ -327,8 +327,8 @@ Index: gcc/doc/extend.texi
  The following built-in functions are changed to generate new SSE4.2
 Index: gcc/doc/passes.texi
 ===================================================================
---- gcc/doc/passes.texi        (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/doc/passes.texi        (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/doc/passes.texi        (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/doc/passes.texi        (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -21,7 +21,7 @@
  * Parsing pass::         The language front end turns text into bits.
  * Gimplification pass::  The bits are turned into something we can optimize.
@@ -548,8 +548,8 @@ Index: gcc/doc/passes.texi
  
 Index: gcc/doc/gccint.texi
 ===================================================================
---- gcc/doc/gccint.texi        (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/doc/gccint.texi        (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/doc/gccint.texi        (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/doc/gccint.texi        (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -109,10 +109,10 @@
  * Options::         Option specification files.
  * Passes::          Order of passes, what they do, and what each file is for.
@@ -562,10 +562,29 @@ Index: gcc/doc/gccint.texi
  * Control Flow::    Maintaining and manipulating the control flow graph.
  * Loop Analysis and Representation:: Analysis and representation of loops
  * Machine Desc::    How to write machine description instruction patterns.
+Index: gcc/doc/tm.texi
+===================================================================
+--- gcc/doc/tm.texi    (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/doc/tm.texi    (.../branches/gcc-4_4-branch)   (wersja 149530)
+@@ -1227,6 +1227,14 @@
+ make it all fit in fewer cache lines.
+ @end defmac
++@defmac MINIMUM_ALIGNMENT (@var{exp}, @var{mode}, @var{align})
++If defined, a C expression to compute the minimum required alignment
++for dynamic stack realignment purposes for @var{exp} (a type or decl),
++@var{mode}, assuming normal alignment @var{align}.
++
++If this macro is not defined, then @var{align} will be used.
++@end defmac
++
+ @defmac EMPTY_FIELD_BOUNDARY
+ Alignment in bits to be given to a structure bit-field that follows an
+ empty field such as @code{int : 0;}.
 Index: gcc/doc/md.texi
 ===================================================================
---- gcc/doc/md.texi    (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/doc/md.texi    (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/doc/md.texi    (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/doc/md.texi    (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -5111,8 +5111,6 @@
  Operand 0 is the memory on which the atomic operation is performed.
  Operand 1 is the second operand to the binary operator.
@@ -577,8 +596,8 @@ Index: gcc/doc/md.texi
  operation and all memory operations after the atomic operation occur
 Index: gcc/doc/rtl.texi
 ===================================================================
---- gcc/doc/rtl.texi   (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/doc/rtl.texi   (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/doc/rtl.texi   (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/doc/rtl.texi   (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -10,10 +10,10 @@
  @cindex representation of RTL
  @cindex Register Transfer Language (RTL)
@@ -596,8 +615,8 @@ Index: gcc/doc/rtl.texi
  structures that point at other structures, and a textual form that is used
 Index: gcc/ira-conflicts.c
 ===================================================================
---- gcc/ira-conflicts.c        (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/ira-conflicts.c        (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/ira-conflicts.c        (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/ira-conflicts.c        (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -411,9 +411,9 @@
      /* Can not be tied.  It is not in the cover class.  */
      return false;
@@ -621,8 +640,8 @@ Index: gcc/ira-conflicts.c
              && VAR_OR_FUNCTION_DECL_P (decl)
 Index: gcc/tree-ssa-loop-niter.c
 ===================================================================
---- gcc/tree-ssa-loop-niter.c  (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/tree-ssa-loop-niter.c  (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/tree-ssa-loop-niter.c  (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/tree-ssa-loop-niter.c  (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -534,7 +534,7 @@
  }
  
@@ -890,15 +909,54 @@ Index: gcc/tree-ssa-loop-niter.c
  
 Index: gcc/DATESTAMP
 ===================================================================
---- gcc/DATESTAMP      (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/DATESTAMP      (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/DATESTAMP      (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/DATESTAMP      (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1 +1 @@
 -20090421
-+20090701
++20090712
+Index: gcc/defaults.h
+===================================================================
+--- gcc/defaults.h     (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/defaults.h     (.../branches/gcc-4_4-branch)   (wersja 149530)
+@@ -954,6 +954,10 @@
+   LOCAL_ALIGNMENT (TREE_TYPE (DECL), DECL_ALIGN (DECL))
+ #endif
++#ifndef MINIMUM_ALIGNMENT
++#define MINIMUM_ALIGNMENT(EXP,MODE,ALIGN) (ALIGN)
++#endif
++
+ /* Alignment value for attribute ((aligned)).  */
+ #ifndef ATTRIBUTE_ALIGNED_VALUE
+ #define ATTRIBUTE_ALIGNED_VALUE BIGGEST_ALIGNMENT
+Index: gcc/tree-tailcall.c
+===================================================================
+--- gcc/tree-tailcall.c        (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/tree-tailcall.c        (.../branches/gcc-4_4-branch)   (wersja 149530)
+@@ -573,6 +573,9 @@
+   gimple stmt = gimple_build_assign_with_ops (code, tmp, op0, op1);
+   tree result;
++  if (TREE_CODE (ret_type) == COMPLEX_TYPE
++      || TREE_CODE (ret_type) == VECTOR_TYPE)
++    DECL_GIMPLE_REG_P (tmp) = 1;
+   add_referenced_var (tmp);
+   result = make_ssa_name (tmp, stmt);
+   gimple_assign_set_lhs (stmt, result);
+@@ -867,6 +870,9 @@
+   tree tmp = create_tmp_var (ret_type, label);
+   gimple phi;
++  if (TREE_CODE (ret_type) == COMPLEX_TYPE
++      || TREE_CODE (ret_type) == VECTOR_TYPE)
++    DECL_GIMPLE_REG_P (tmp) = 1;
+   add_referenced_var (tmp);
+   phi = create_phi_node (tmp, bb);
+   /* RET_TYPE can be a float when -ffast-maths is enabled.  */
 Index: gcc/tree.c
 ===================================================================
---- gcc/tree.c (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/tree.c (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/tree.c (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/tree.c (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1606,7 +1606,8 @@
          : floor_log2 (low));
  }
@@ -1014,8 +1072,8 @@ Index: gcc/tree.c
  
 Index: gcc/tree.h
 ===================================================================
---- gcc/tree.h (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/tree.h (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/tree.h (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/tree.h (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -5088,7 +5088,7 @@
  
  /* Generate a new label for the CFI info to refer to.  */
@@ -1035,10 +1093,22 @@ Index: gcc/tree.h
  /* Compute the number of operands in an expression node NODE.  For 
     tcc_vl_exp nodes like CALL_EXPRs, this is stored in the node itself,
     otherwise it is looked up from the node's code.  */
+Index: gcc/ipa-cp.c
+===================================================================
+--- gcc/ipa-cp.c       (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/ipa-cp.c       (.../branches/gcc-4_4-branch)   (wersja 149530)
+@@ -466,6 +466,7 @@
+       if (dump_file)
+       fprintf (dump_file, "Not considering %s for cloning; no hot calls.\n",
+                cgraph_node_name (node));
++      return false;
+     }
+   if (dump_file)
+     fprintf (dump_file, "Considering %s for cloning.\n",
 Index: gcc/tree-scalar-evolution.c
 ===================================================================
---- gcc/tree-scalar-evolution.c        (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/tree-scalar-evolution.c        (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/tree-scalar-evolution.c        (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/tree-scalar-evolution.c        (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1320,11 +1320,7 @@
  
    *evolution_of_loop = evolution_of_branch;
@@ -1067,8 +1137,8 @@ Index: gcc/tree-scalar-evolution.c
  
 Index: gcc/builtins.c
 ===================================================================
---- gcc/builtins.c     (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/builtins.c     (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/builtins.c     (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/builtins.c     (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -4176,7 +4176,7 @@
  
      arg1_rtx = get_memory_rtx (arg1, len);
@@ -1080,9 +1150,23 @@ Index: gcc/builtins.c
      if (GET_CODE (arg3_rtx) == CONST_INT)
 Index: gcc/fold-const.c
 ===================================================================
---- gcc/fold-const.c   (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/fold-const.c   (.../branches/gcc-4_4-branch)   (wersja 149126)
-@@ -5293,31 +5293,34 @@
+--- gcc/fold-const.c   (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/fold-const.c   (.../branches/gcc-4_4-branch)   (wersja 149530)
+@@ -2605,9 +2605,10 @@
+       case POINTER_TYPE: case REFERENCE_TYPE:
+       case REAL_TYPE:
+       case FIXED_POINT_TYPE:
+-        return build2 (COMPLEX_EXPR, type,
+-                       fold_convert (TREE_TYPE (type), arg),
+-                       fold_convert (TREE_TYPE (type), integer_zero_node));
++        return fold_build2 (COMPLEX_EXPR, type,
++                            fold_convert (TREE_TYPE (type), arg),
++                            fold_convert (TREE_TYPE (type),
++                                          integer_zero_node));
+       case COMPLEX_TYPE:
+         {
+           tree rpart, ipart;
+@@ -5293,31 +5294,34 @@
        break;
  
        case GT_EXPR:
@@ -1127,7 +1211,7 @@ Index: gcc/fold-const.c
        break;
        case NE_EXPR:
        break;
-@@ -11360,6 +11363,8 @@
+@@ -11360,6 +11364,8 @@
              if (prec < HOST_BITS_PER_WIDE_INT
                  || newmask == ~(unsigned HOST_WIDE_INT) 0)
                {
@@ -1136,7 +1220,7 @@ Index: gcc/fold-const.c
                  if (shift_type != TREE_TYPE (arg0))
                    {
                      tem = fold_build2 (TREE_CODE (arg0), shift_type,
-@@ -11370,9 +11375,9 @@
+@@ -11370,9 +11376,9 @@
                    }
                  else
                    tem = op0;
@@ -1149,7 +1233,7 @@ Index: gcc/fold-const.c
                }
            }
        }
-@@ -11861,7 +11866,8 @@
+@@ -11861,7 +11867,8 @@
              if (code == LROTATE_EXPR || code == RROTATE_EXPR)
                low = low % TYPE_PRECISION (type);
              else if (TYPE_UNSIGNED (type) || code == LSHIFT_EXPR)
@@ -1161,8 +1245,8 @@ Index: gcc/fold-const.c
            }
 Index: gcc/objc/objc-act.c
 ===================================================================
---- gcc/objc/objc-act.c        (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/objc/objc-act.c        (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/objc/objc-act.c        (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/objc/objc-act.c        (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -6201,7 +6201,7 @@
  #endif
    tree method_params = NULL_TREE;
@@ -1174,8 +1258,8 @@ Index: gcc/objc/objc-act.c
    /* Obtain the full selector name.  */
 Index: gcc/objc/ChangeLog
 ===================================================================
---- gcc/objc/ChangeLog (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/objc/ChangeLog (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/objc/ChangeLog (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/objc/ChangeLog (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1,3 +1,10 @@
 +2009-06-22  Steven Bosscher  <steven@gcc.gnu.org>
 +          Matthias Klose  <doko@ubuntu.com>
@@ -1189,8 +1273,8 @@ Index: gcc/objc/ChangeLog
        * GCC 4.4.0 released.
 Index: gcc/toplev.c
 ===================================================================
---- gcc/toplev.c       (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/toplev.c       (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/toplev.c       (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/toplev.c       (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1128,10 +1128,14 @@
           indent, __VERSION__);
  
@@ -1210,8 +1294,8 @@ Index: gcc/toplev.c
  #else
 Index: gcc/tree-chrec.c
 ===================================================================
---- gcc/tree-chrec.c   (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/tree-chrec.c   (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/tree-chrec.c   (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/tree-chrec.c   (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -220,16 +220,16 @@
    /* "a*c".  */
    t0 = chrec_fold_multiply (type, CHREC_LEFT (poly0), CHREC_LEFT (poly1));
@@ -1236,8 +1320,8 @@ Index: gcc/tree-chrec.c
                            : build_int_cst (type, 2), t2);
 Index: gcc/tree-chrec.h
 ===================================================================
---- gcc/tree-chrec.h   (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/tree-chrec.h   (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/tree-chrec.h   (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/tree-chrec.h   (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -132,7 +132,8 @@
        || right == chrec_dont_know)
      return chrec_dont_know;
@@ -1250,14 +1334,14 @@ Index: gcc/tree-chrec.h
    /* Pointer types should occur only on the left hand side, i.e. in
 Index: gcc/DEV-PHASE
 ===================================================================
---- gcc/DEV-PHASE      (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/DEV-PHASE      (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/DEV-PHASE      (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/DEV-PHASE      (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1 @@
 +prerelease
 Index: gcc/tree-ssa-sccvn.c
 ===================================================================
---- gcc/tree-ssa-sccvn.c       (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/tree-ssa-sccvn.c       (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/tree-ssa-sccvn.c       (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/tree-ssa-sccvn.c       (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1293,7 +1293,7 @@
      *vnresult = NULL;
    vno1.opcode = gimple_assign_rhs_code (stmt);
@@ -1287,9 +1371,82 @@ Index: gcc/tree-ssa-sccvn.c
  
 Index: gcc/ChangeLog
 ===================================================================
---- gcc/ChangeLog      (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/ChangeLog      (.../branches/gcc-4_4-branch)   (wersja 149126)
-@@ -1,3 +1,507 @@
+--- gcc/ChangeLog      (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/ChangeLog      (.../branches/gcc-4_4-branch)   (wersja 149530)
+@@ -1,3 +1,580 @@
++2009-07-11  Jakub Jelinek  <jakub@redhat.com>
++
++      PR rtl-optimization/40667
++      * defaults.h (MINIMUM_ALIGNMENT): Define if not defined.
++      * doc/tm.texi (MINIMUM_ALIGNMENT): Document it.
++      * config/i386/i386.h (MINIMUM_ALIGNMENT): Define.
++      * config/i386/i386.c (ix86_minimum_alignment): New function.
++      * config/i386/i386-protos.h (ix86_minimum_alignment): New prototype.
++      * cfgexpand.c (expand_one_var): Use MINIMIM_ALIGNMENT.
++      * emit-rtl.c (gen_reg_rtx): Likewise.
++      * function.c (assign_parms): Likewise.  If nominal_type needs
++      bigger alignment than FUNCTION_ARG_BOUNDARY, use its alignment
++      rather than passed_type's alignment.
++
++      PR target/40668
++      * function.c (assign_parm_setup_stack): Adjust
++      MEM_OFFSET (data->stack_parm) if promoted_mode is different
++      from nominal_mode on big endian.
++
++2009-07-08  Richard Henderson  <rth@redhat.com>
++
++      PR target/38900
++      * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Move to i386.c.
++      (enum reg_class): Add CLOBBERED_REGS.
++      (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Likewise.
++      * config/i386/i386.c (ix86_conditional_register_usage): Moved
++      from CONDITIONAL_REGISTER_USAGE; build CLOBBERED_REGS for 64-bit.
++      (ix86_function_ok_for_sibcall): Tidy.  Disallow MS->SYSV sibcalls.
++      (ix86_expand_call): Use sibcall_insn_operand when needed.  Don't
++      force 64-bit sibcalls into R11.
++      * config/i386/constraints.md (U): New constraint.
++      * config/i386/i386.md (sibcall_1, sibcall_value_1): Use it.
++      (sibcall_1_rex64, sibcall_value_1_rex64): Likewise.
++      (sibcall_1_rex64_v, sibcall_value_1_rex64_v): Remove.
++
++2009-07-07  Eric Botcazou  <ebotcazou@adacore.com>
++
++      PR debug/40666
++      * dbxout.c (dbxout_symbol) <PARM_DECL>: Deal with parameters pointing
++      to variables for debugging purposes.
++
++2009-07-07  Jakub Jelinek  <jakub@redhat.com>
++
++      PR middle-end/40669
++      * tree-tailcall.c (adjust_return_value_with_ops,
++      create_tailcall_accumulator): Set DECL_GIMPLE_REG_P on the temporary
++      if it has complex or vector type.
++
++      Backport from mainline:
++      2009-06-03  Richard Guenther  <rguenther@suse.de>
++
++      PR middle-end/40328
++      * fold-const.c (fold_convert): Fold the build COMPLEX_EXPR.
++
++2009-07-03  Vladimir Makarov  <vmakarov@redhat.com>
++
++      PR target/40587
++      * ira.c (build_insn_chain): Use DF_LR_OUT instead of
++      df_get_live_out.
++      
++2009-07-02  Richard Guenther  <rguenther@suse.de>
++
++      PR middle-end/40585
++      * tree-cfg.c (gimple_can_duplicate_bb_p): Disallow duplicating
++      basic blocks with GIMPLE_RESX.
++
++2009-07-01  Martin Jambor  <mjambor@suse.cz>
++
++      Backport from mainline:
++      2009-05-11 Martin Jambor <mjambor@suse.cz>
++      
++      * ipa-cp.c (ipcp_cloning_candidate_p): Add missing return false.
++      
 +2009-06-30  Jakub Jelinek  <jakub@redhat.com>
 +
 +      PR c++/40566
@@ -1800,7 +1957,7 @@ Index: gcc/ChangeLog
 Index: gcc/testsuite/gcc.c-torture/execute/pr40022.c
 ===================================================================
 --- gcc/testsuite/gcc.c-torture/execute/pr40022.c      (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/gcc.c-torture/execute/pr40022.c      (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/gcc.c-torture/execute/pr40022.c      (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,51 @@
 +extern void abort (void);
 +
@@ -1856,7 +2013,7 @@ Index: gcc/testsuite/gcc.c-torture/execute/pr40022.c
 Index: gcc/testsuite/gcc.c-torture/execute/pr40404.c
 ===================================================================
 --- gcc/testsuite/gcc.c-torture/execute/pr40404.c      (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/gcc.c-torture/execute/pr40404.c      (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/gcc.c-torture/execute/pr40404.c      (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,12 @@
 +extern void abort (void);
 +struct S {
@@ -1873,7 +2030,7 @@ Index: gcc/testsuite/gcc.c-torture/execute/pr40404.c
 Index: gcc/testsuite/gcc.c-torture/execute/pr40057.c
 ===================================================================
 --- gcc/testsuite/gcc.c-torture/execute/pr40057.c      (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/gcc.c-torture/execute/pr40057.c      (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/gcc.c-torture/execute/pr40057.c      (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,37 @@
 +/* PR middle-end/40057 */
 +
@@ -1915,7 +2072,7 @@ Index: gcc/testsuite/gcc.c-torture/execute/pr40057.c
 Index: gcc/testsuite/gcc.c-torture/execute/pr40493.c
 ===================================================================
 --- gcc/testsuite/gcc.c-torture/execute/pr40493.c      (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/gcc.c-torture/execute/pr40493.c      (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/gcc.c-torture/execute/pr40493.c      (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,82 @@
 +extern void abort (void);
 +
@@ -1999,10 +2156,50 @@ Index: gcc/testsuite/gcc.c-torture/execute/pr40493.c
 +
 +  return 0;
 +}
+Index: gcc/testsuite/gcc.c-torture/execute/pr40668.c
+===================================================================
+--- gcc/testsuite/gcc.c-torture/execute/pr40668.c      (.../tags/gcc_4_4_0_release)    (wersja 0)
++++ gcc/testsuite/gcc.c-torture/execute/pr40668.c      (.../branches/gcc-4_4-branch)   (wersja 149530)
+@@ -0,0 +1,35 @@
++static void
++foo (unsigned int x, void *p)
++{
++  __builtin_memcpy (p, &x, sizeof x);
++}
++
++void
++bar (int type, void *number)
++{
++  switch (type)
++    {
++    case 1:
++      foo (0x12345678, number);
++      break;
++    case 7:
++      foo (0, number);
++      break;
++    case 8:
++      foo (0, number);
++      break;
++    case 9:
++      foo (0, number);
++      break;
++    }
++}
++
++int
++main (void)
++{
++  unsigned int x;
++  bar (1, &x);
++  if (x != 0x12345678)
++    __builtin_abort ();
++  return 0;
++}
 Index: gcc/testsuite/gcc.c-torture/execute/pr40579.c
 ===================================================================
 --- gcc/testsuite/gcc.c-torture/execute/pr40579.c      (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/gcc.c-torture/execute/pr40579.c      (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/gcc.c-torture/execute/pr40579.c      (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,28 @@
 +extern void abort (void);
 +static char * __attribute__((noinline))
@@ -2035,7 +2232,7 @@ Index: gcc/testsuite/gcc.c-torture/execute/pr40579.c
 Index: gcc/testsuite/gcc.c-torture/compile/pr39983.c
 ===================================================================
 --- gcc/testsuite/gcc.c-torture/compile/pr39983.c      (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/gcc.c-torture/compile/pr39983.c      (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/gcc.c-torture/compile/pr39983.c      (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,17 @@
 +typedef struct {
 +    int *p;
@@ -2056,8 +2253,8 @@ Index: gcc/testsuite/gcc.c-torture/compile/pr39983.c
 +
 Index: gcc/testsuite/gcc.c-torture/compile/pr34334.c
 ===================================================================
---- gcc/testsuite/gcc.c-torture/compile/pr34334.c      (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/testsuite/gcc.c-torture/compile/pr34334.c      (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/testsuite/gcc.c-torture/compile/pr34334.c      (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/testsuite/gcc.c-torture/compile/pr34334.c      (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1,4 +1,4 @@
 -typedef unsigned int size_t;
 +__extension__ typedef __SIZE_TYPE__ size_t;
@@ -2067,7 +2264,7 @@ Index: gcc/testsuite/gcc.c-torture/compile/pr34334.c
 Index: gcc/testsuite/gcc.c-torture/compile/pr40023.c
 ===================================================================
 --- gcc/testsuite/gcc.c-torture/compile/pr40023.c      (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/gcc.c-torture/compile/pr40023.c      (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/gcc.c-torture/compile/pr40023.c      (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,11 @@
 +typedef __builtin_va_list va_list;
 +typedef struct {
@@ -2082,8 +2279,8 @@ Index: gcc/testsuite/gcc.c-torture/compile/pr40023.c
 +
 Index: gcc/testsuite/gcc.c-torture/compile/20060202-1.c
 ===================================================================
---- gcc/testsuite/gcc.c-torture/compile/20060202-1.c   (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/testsuite/gcc.c-torture/compile/20060202-1.c   (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/testsuite/gcc.c-torture/compile/20060202-1.c   (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/testsuite/gcc.c-torture/compile/20060202-1.c   (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1,4 +1,4 @@
 -typedef unsigned int size_t;
 +typedef __SIZE_TYPE__ size_t;
@@ -2092,8 +2289,8 @@ Index: gcc/testsuite/gcc.c-torture/compile/20060202-1.c
    void *sel_id;
 Index: gcc/testsuite/gcc.c-torture/compile/20030405-1.c
 ===================================================================
---- gcc/testsuite/gcc.c-torture/compile/20030405-1.c   (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/testsuite/gcc.c-torture/compile/20030405-1.c   (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/testsuite/gcc.c-torture/compile/20030405-1.c   (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/testsuite/gcc.c-torture/compile/20030405-1.c   (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -6,7 +6,7 @@
     and when the PHI node at the end of the while() is visited the first
     time, CCP will try to assign it a value of UNDEFINED, but the default
@@ -2105,8 +2302,8 @@ Index: gcc/testsuite/gcc.c-torture/compile/20030405-1.c
  
 Index: gcc/testsuite/gcc.c-torture/compile/20010328-1.c
 ===================================================================
---- gcc/testsuite/gcc.c-torture/compile/20010328-1.c   (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/testsuite/gcc.c-torture/compile/20010328-1.c   (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/testsuite/gcc.c-torture/compile/20010328-1.c   (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/testsuite/gcc.c-torture/compile/20010328-1.c   (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1,4 +1,4 @@
 -typedef unsigned int size_t;
 +typedef __SIZE_TYPE__ size_t;
@@ -2115,8 +2312,8 @@ Index: gcc/testsuite/gcc.c-torture/compile/20010328-1.c
  
 Index: gcc/testsuite/gcc.c-torture/compile/pr34688.c
 ===================================================================
---- gcc/testsuite/gcc.c-torture/compile/pr34688.c      (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/testsuite/gcc.c-torture/compile/pr34688.c      (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/testsuite/gcc.c-torture/compile/pr34688.c      (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/testsuite/gcc.c-torture/compile/pr34688.c      (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1,4 +1,4 @@
 -typedef unsigned int size_t;
 +typedef __SIZE_TYPE__ size_t;
@@ -2126,7 +2323,7 @@ Index: gcc/testsuite/gcc.c-torture/compile/pr34688.c
 Index: gcc/testsuite/gcc.c-torture/compile/pr40204.c
 ===================================================================
 --- gcc/testsuite/gcc.c-torture/compile/pr40204.c      (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/gcc.c-torture/compile/pr40204.c      (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/gcc.c-torture/compile/pr40204.c      (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,14 @@
 +/* PR middle-end/40204 */
 +
@@ -2145,7 +2342,7 @@ Index: gcc/testsuite/gcc.c-torture/compile/pr40204.c
 Index: gcc/testsuite/gcc.c-torture/compile/pr40582.c
 ===================================================================
 --- gcc/testsuite/gcc.c-torture/compile/pr40582.c      (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/gcc.c-torture/compile/pr40582.c      (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/gcc.c-torture/compile/pr40582.c      (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,18 @@
 +struct A
 +{
@@ -2167,8 +2364,8 @@ Index: gcc/testsuite/gcc.c-torture/compile/pr40582.c
 +}
 Index: gcc/testsuite/gcc.c-torture/compile/pr33382.c
 ===================================================================
---- gcc/testsuite/gcc.c-torture/compile/pr33382.c      (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/testsuite/gcc.c-torture/compile/pr33382.c      (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/testsuite/gcc.c-torture/compile/pr33382.c      (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/testsuite/gcc.c-torture/compile/pr33382.c      (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1,4 +1,4 @@
 -typedef unsigned int size_t;
 +typedef __SIZE_TYPE__ size_t;
@@ -2177,8 +2374,8 @@ Index: gcc/testsuite/gcc.c-torture/compile/pr33382.c
      char *searchconfig[];
 Index: gcc/testsuite/gcc.c-torture/compile/980329-1.c
 ===================================================================
---- gcc/testsuite/gcc.c-torture/compile/980329-1.c     (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/testsuite/gcc.c-torture/compile/980329-1.c     (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/testsuite/gcc.c-torture/compile/980329-1.c     (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/testsuite/gcc.c-torture/compile/980329-1.c     (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1,4 +1,4 @@
 -typedef unsigned long int size_t;
 +typedef __SIZE_TYPE__ size_t;
@@ -2188,7 +2385,7 @@ Index: gcc/testsuite/gcc.c-torture/compile/980329-1.c
 Index: gcc/testsuite/gcc.c-torture/compile/pr40026.c
 ===================================================================
 --- gcc/testsuite/gcc.c-torture/compile/pr40026.c      (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/gcc.c-torture/compile/pr40026.c      (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/gcc.c-torture/compile/pr40026.c      (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,15 @@
 +typedef struct {
 +    unsigned long bits;
@@ -2208,7 +2405,7 @@ Index: gcc/testsuite/gcc.c-torture/compile/pr40026.c
 Index: gcc/testsuite/gcc.c-torture/compile/pr40035.c
 ===================================================================
 --- gcc/testsuite/gcc.c-torture/compile/pr40035.c      (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/gcc.c-torture/compile/pr40035.c      (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/gcc.c-torture/compile/pr40035.c      (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,20 @@
 +typedef __SIZE_TYPE__ size_t;
 +void *memmove (void *dest, const void *src, size_t count);
@@ -2233,7 +2430,7 @@ Index: gcc/testsuite/gcc.c-torture/compile/pr40035.c
 Index: gcc/testsuite/gcc.c-torture/compile/pr39824.c
 ===================================================================
 --- gcc/testsuite/gcc.c-torture/compile/pr39824.c      (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/gcc.c-torture/compile/pr39824.c      (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/gcc.c-torture/compile/pr39824.c      (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,26 @@
 +static const double internalEndianMagic = 7.949928895127363e-275;
 +static const unsigned char ieee_754_mantissa_mask[] = { 0x00, 0x0F, 0xFF, 0xFF,
@@ -2264,7 +2461,7 @@ Index: gcc/testsuite/gcc.c-torture/compile/pr39824.c
 Index: gcc/testsuite/gcc.c-torture/compile/pr40233.c
 ===================================================================
 --- gcc/testsuite/gcc.c-torture/compile/pr40233.c      (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/gcc.c-torture/compile/pr40233.c      (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/gcc.c-torture/compile/pr40233.c      (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,10 @@
 +typedef int aligned __attribute__((aligned(64)));
 +struct Frame {
@@ -2279,7 +2476,7 @@ Index: gcc/testsuite/gcc.c-torture/compile/pr40233.c
 Index: gcc/testsuite/gcc.c-torture/compile/pr40080.c
 ===================================================================
 --- gcc/testsuite/gcc.c-torture/compile/pr40080.c      (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/gcc.c-torture/compile/pr40080.c      (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/gcc.c-torture/compile/pr40080.c      (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,44 @@
 +extern void *ff(void*,int);
 +
@@ -2327,8 +2524,8 @@ Index: gcc/testsuite/gcc.c-torture/compile/pr40080.c
 +void* foo=xDP_IF_DestroyPlayer;
 Index: gcc/testsuite/gcc.c-torture/compile/pr32584.c
 ===================================================================
---- gcc/testsuite/gcc.c-torture/compile/pr32584.c      (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/testsuite/gcc.c-torture/compile/pr32584.c      (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/testsuite/gcc.c-torture/compile/pr32584.c      (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/testsuite/gcc.c-torture/compile/pr32584.c      (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1,5 +1,8 @@
 -typedef long unsigned int size_t;
 -typedef long int __ssize_t;
@@ -2343,7 +2540,7 @@ Index: gcc/testsuite/gcc.c-torture/compile/pr32584.c
 Index: gcc/testsuite/gcc.c-torture/compile/20090519-1.c
 ===================================================================
 --- gcc/testsuite/gcc.c-torture/compile/20090519-1.c   (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/gcc.c-torture/compile/20090519-1.c   (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/gcc.c-torture/compile/20090519-1.c   (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,11 @@
 +typedef struct { int licensed;  } __pmPDUInfo;
 +void __pmDecodeXtendError (int *);
@@ -2359,7 +2556,7 @@ Index: gcc/testsuite/gcc.c-torture/compile/20090519-1.c
 Index: gcc/testsuite/gcc.c-torture/compile/pr39999.c
 ===================================================================
 --- gcc/testsuite/gcc.c-torture/compile/pr39999.c      (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/gcc.c-torture/compile/pr39999.c      (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/gcc.c-torture/compile/pr39999.c      (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,18 @@
 +void foo(void *);
 +void
@@ -2382,7 +2579,7 @@ Index: gcc/testsuite/gcc.c-torture/compile/pr39999.c
 Index: gcc/testsuite/gcc.c-torture/compile/pr39941.c
 ===================================================================
 --- gcc/testsuite/gcc.c-torture/compile/pr39941.c      (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/gcc.c-torture/compile/pr39941.c      (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/gcc.c-torture/compile/pr39941.c      (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,12 @@
 +typedef void (*entry_func) (void) __attribute__ ((noreturn));
 +extern entry_func entry_addr;
@@ -2398,8 +2595,8 @@ Index: gcc/testsuite/gcc.c-torture/compile/pr39941.c
 +
 Index: gcc/testsuite/gcc.c-torture/compile/pr37669.c
 ===================================================================
---- gcc/testsuite/gcc.c-torture/compile/pr37669.c      (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/testsuite/gcc.c-torture/compile/pr37669.c      (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/testsuite/gcc.c-torture/compile/pr37669.c      (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/testsuite/gcc.c-torture/compile/pr37669.c      (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1,6 +1,6 @@
  /* This testcase used to fail because a miscompiled execute_fold_all_builtins. */
  
@@ -2411,7 +2608,7 @@ Index: gcc/testsuite/gcc.c-torture/compile/pr37669.c
 Index: gcc/testsuite/gcc.c-torture/compile/pr40252.c
 ===================================================================
 --- gcc/testsuite/gcc.c-torture/compile/pr40252.c      (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/gcc.c-torture/compile/pr40252.c      (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/gcc.c-torture/compile/pr40252.c      (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,6 @@
 +typedef unsigned int uint32_t;
 +static void IP(uint32_t v[2])
@@ -2421,8 +2618,8 @@ Index: gcc/testsuite/gcc.c-torture/compile/pr40252.c
 +
 Index: gcc/testsuite/gcc.c-torture/compile/20030320-1.c
 ===================================================================
---- gcc/testsuite/gcc.c-torture/compile/20030320-1.c   (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/testsuite/gcc.c-torture/compile/20030320-1.c   (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/testsuite/gcc.c-torture/compile/20030320-1.c   (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/testsuite/gcc.c-torture/compile/20030320-1.c   (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -2,7 +2,7 @@
     conditional returns without updating dominance info.
     Extracted from glibc's dl-load.c.  */
@@ -2435,7 +2632,7 @@ Index: gcc/testsuite/gcc.c-torture/compile/20030320-1.c
 Index: gcc/testsuite/gcc.c-torture/compile/pr39845.c
 ===================================================================
 --- gcc/testsuite/gcc.c-torture/compile/pr39845.c      (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/gcc.c-torture/compile/pr39845.c      (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/gcc.c-torture/compile/pr39845.c      (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,43 @@
 +typedef union tree_node *tree;
 +enum tree_code { EXCESS_PRECISION_EXPR };
@@ -2482,8 +2679,8 @@ Index: gcc/testsuite/gcc.c-torture/compile/pr39845.c
 +
 Index: gcc/testsuite/gcc.c-torture/compile/20000211-1.c
 ===================================================================
---- gcc/testsuite/gcc.c-torture/compile/20000211-1.c   (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/testsuite/gcc.c-torture/compile/20000211-1.c   (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/testsuite/gcc.c-torture/compile/20000211-1.c   (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/testsuite/gcc.c-torture/compile/20000211-1.c   (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1,4 +1,4 @@
 -typedef long unsigned int size_t;
 +typedef __SIZE_TYPE__ size_t;
@@ -2492,8 +2689,8 @@ Index: gcc/testsuite/gcc.c-torture/compile/20000211-1.c
  typedef int Charcount;
 Index: gcc/testsuite/gcc.c-torture/compile/20080613-1.c
 ===================================================================
---- gcc/testsuite/gcc.c-torture/compile/20080613-1.c   (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/testsuite/gcc.c-torture/compile/20080613-1.c   (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/testsuite/gcc.c-torture/compile/20080613-1.c   (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/testsuite/gcc.c-torture/compile/20080613-1.c   (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1,7 +1,7 @@
  /* PR middle-end/36520 */
  /* Testcase by Richard Guenther <rguenth@gcc.gnu.org> */
@@ -2505,8 +2702,8 @@ Index: gcc/testsuite/gcc.c-torture/compile/20080613-1.c
      size_t cmsg_len;
 Index: gcc/testsuite/gcc.c-torture/compile/980816-1.c
 ===================================================================
---- gcc/testsuite/gcc.c-torture/compile/980816-1.c     (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/testsuite/gcc.c-torture/compile/980816-1.c     (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/testsuite/gcc.c-torture/compile/980816-1.c     (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/testsuite/gcc.c-torture/compile/980816-1.c     (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1,4 +1,4 @@
 -typedef unsigned int size_t;
 +typedef __SIZE_TYPE__ size_t;
@@ -2515,8 +2712,8 @@ Index: gcc/testsuite/gcc.c-torture/compile/980816-1.c
  typedef struct _WidgetRec *Widget;
 Index: gcc/testsuite/gcc.c-torture/compile/20030902-1.c
 ===================================================================
---- gcc/testsuite/gcc.c-torture/compile/20030902-1.c   (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/testsuite/gcc.c-torture/compile/20030902-1.c   (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/testsuite/gcc.c-torture/compile/20030902-1.c   (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/testsuite/gcc.c-torture/compile/20030902-1.c   (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1,4 +1,4 @@
 -typedef unsigned int size_t;
 +typedef __SIZE_TYPE__ size_t;
@@ -2526,7 +2723,7 @@ Index: gcc/testsuite/gcc.c-torture/compile/20030902-1.c
 Index: gcc/testsuite/gcc.c-torture/compile/pr39937.c
 ===================================================================
 --- gcc/testsuite/gcc.c-torture/compile/pr39937.c      (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/gcc.c-torture/compile/pr39937.c      (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/gcc.c-torture/compile/pr39937.c      (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,12 @@
 +int foo (__const char *__restrict __s);
 +static void 
@@ -2540,10 +2737,30 @@ Index: gcc/testsuite/gcc.c-torture/compile/pr39937.c
 +  char line[4096];
 +  read_anisou (line);
 +}
+Index: gcc/testsuite/gcc.c-torture/compile/pr40640.c
+===================================================================
+--- gcc/testsuite/gcc.c-torture/compile/pr40640.c      (.../tags/gcc_4_4_0_release)    (wersja 0)
++++ gcc/testsuite/gcc.c-torture/compile/pr40640.c      (.../branches/gcc-4_4-branch)   (wersja 149530)
+@@ -0,0 +1,15 @@
++void decode_opic_address(int *);
++void sim_io_printf_filtered2 (int, unsigned);
++void
++hw_opic_io_read_buffer(int index)
++{
++  unsigned reg = 0;
++  decode_opic_address(&index);
++  switch (index)
++    {
++      case 0:
++        reg = 1;
++    }
++  sim_io_printf_filtered2 (index, reg);
++}
++
 Index: gcc/testsuite/gcc.c-torture/compile/pr35043.c
 ===================================================================
---- gcc/testsuite/gcc.c-torture/compile/pr35043.c      (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/testsuite/gcc.c-torture/compile/pr35043.c      (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/testsuite/gcc.c-torture/compile/pr35043.c      (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/testsuite/gcc.c-torture/compile/pr35043.c      (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1,4 +1,4 @@
 -typedef long unsigned int size_t;
 +typedef __SIZE_TYPE__ size_t;
@@ -2553,7 +2770,7 @@ Index: gcc/testsuite/gcc.c-torture/compile/pr35043.c
 Index: gcc/testsuite/gcc.c-torture/compile/pr40291.c
 ===================================================================
 --- gcc/testsuite/gcc.c-torture/compile/pr40291.c      (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/gcc.c-torture/compile/pr40291.c      (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/gcc.c-torture/compile/pr40291.c      (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,7 @@
 +/* PR middle-end/40291 */
 +
@@ -2564,8 +2781,8 @@ Index: gcc/testsuite/gcc.c-torture/compile/pr40291.c
 +}
 Index: gcc/testsuite/gcc.c-torture/compile/920428-2.c
 ===================================================================
---- gcc/testsuite/gcc.c-torture/compile/920428-2.c     (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/testsuite/gcc.c-torture/compile/920428-2.c     (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/testsuite/gcc.c-torture/compile/920428-2.c     (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/testsuite/gcc.c-torture/compile/920428-2.c     (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -41,7 +41,7 @@
   short _flag;
   char _file;
@@ -2577,8 +2794,8 @@ Index: gcc/testsuite/gcc.c-torture/compile/920428-2.c
  struct _iobuf *freopen(const char *filename, const char *type, struct _iobuf *stream);
 Index: gcc/testsuite/gcc.c-torture/compile/pr33173.c
 ===================================================================
---- gcc/testsuite/gcc.c-torture/compile/pr33173.c      (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/testsuite/gcc.c-torture/compile/pr33173.c      (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/testsuite/gcc.c-torture/compile/pr33173.c      (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/testsuite/gcc.c-torture/compile/pr33173.c      (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1,4 +1,4 @@
 -typedef long unsigned int size_t;
 +typedef __SIZE_TYPE__ size_t;
@@ -2588,7 +2805,7 @@ Index: gcc/testsuite/gcc.c-torture/compile/pr33173.c
 Index: gcc/testsuite/gcc.target/powerpc/altivec-30.c
 ===================================================================
 --- gcc/testsuite/gcc.target/powerpc/altivec-30.c      (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/gcc.target/powerpc/altivec-30.c      (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/gcc.target/powerpc/altivec-30.c      (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,32 @@
 +/* { dg-do compile { target powerpc*-*-* } } */
 +/* { dg-require-effective-target powerpc_altivec_ok } */
@@ -2625,7 +2842,7 @@ Index: gcc/testsuite/gcc.target/powerpc/altivec-30.c
 Index: gcc/testsuite/gcc.target/powerpc/altivec-31.c
 ===================================================================
 --- gcc/testsuite/gcc.target/powerpc/altivec-31.c      (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/gcc.target/powerpc/altivec-31.c      (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/gcc.target/powerpc/altivec-31.c      (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,29 @@
 +/* { dg-do compile { target powerpc*-*-* } } */
 +/* { dg-require-effective-target powerpc_altivec_ok } */
@@ -2658,8 +2875,8 @@ Index: gcc/testsuite/gcc.target/powerpc/altivec-31.c
 +VBI e;
 Index: gcc/testsuite/gcc.target/powerpc/altivec-types-1.c
 ===================================================================
---- gcc/testsuite/gcc.target/powerpc/altivec-types-1.c (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/testsuite/gcc.target/powerpc/altivec-types-1.c (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/testsuite/gcc.target/powerpc/altivec-types-1.c (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/testsuite/gcc.target/powerpc/altivec-types-1.c (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -24,6 +24,7 @@
  __vector signed vsj;
  __vector __bool vbj;
@@ -2679,7 +2896,7 @@ Index: gcc/testsuite/gcc.target/powerpc/altivec-types-1.c
 Index: gcc/testsuite/gcc.target/i386/pr39543-1.c
 ===================================================================
 --- gcc/testsuite/gcc.target/i386/pr39543-1.c  (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/gcc.target/i386/pr39543-1.c  (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/gcc.target/i386/pr39543-1.c  (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,52 @@
 +/* PR inline-asm/39543 */
 +/* { dg-do compile } */
@@ -2736,7 +2953,7 @@ Index: gcc/testsuite/gcc.target/i386/pr39543-1.c
 Index: gcc/testsuite/gcc.target/i386/pr39543-3.c
 ===================================================================
 --- gcc/testsuite/gcc.target/i386/pr39543-3.c  (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/gcc.target/i386/pr39543-3.c  (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/gcc.target/i386/pr39543-3.c  (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,42 @@
 +/* PR inline-asm/39543 */
 +/* { dg-do compile } */
@@ -2783,7 +3000,7 @@ Index: gcc/testsuite/gcc.target/i386/pr39543-3.c
 Index: gcc/testsuite/gcc.target/i386/pr39543-2.c
 ===================================================================
 --- gcc/testsuite/gcc.target/i386/pr39543-2.c  (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/gcc.target/i386/pr39543-2.c  (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/gcc.target/i386/pr39543-2.c  (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,52 @@
 +/* PR inline-asm/39543 */
 +/* { dg-do compile } */
@@ -2837,10 +3054,16 @@ Index: gcc/testsuite/gcc.target/i386/pr39543-2.c
 +{
 +  bar (s0);
 +}
+
+Zmiany atrybutów dla: gcc/testsuite/gcc.target/x86_64/abi/callabi
+___________________________________________________________________
+Zmienione: svn:mergeinfo
+   Połączono zmiany /trunk/gcc/testsuite/gcc.target/x86_64/abi/callabi:r149341,149351
+
 Index: gcc/testsuite/gcc.target/x86_64/abi/asm-support.S
 ===================================================================
---- gcc/testsuite/gcc.target/x86_64/abi/asm-support.S  (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/testsuite/gcc.target/x86_64/abi/asm-support.S  (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/testsuite/gcc.target/x86_64/abi/asm-support.S  (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/testsuite/gcc.target/x86_64/abi/asm-support.S  (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -49,7 +49,9 @@
        .type   snapshot_ret, @function
  snapshot_ret:
@@ -2854,7 +3077,7 @@ Index: gcc/testsuite/gcc.target/x86_64/abi/asm-support.S
 Index: gcc/testsuite/gnat.dg/enum2_pkg.ads
 ===================================================================
 --- gcc/testsuite/gnat.dg/enum2_pkg.ads        (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/gnat.dg/enum2_pkg.ads        (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/gnat.dg/enum2_pkg.ads        (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,8 @@
 +with Ada.Finalization; use Ada.Finalization;
 +
@@ -2867,7 +3090,7 @@ Index: gcc/testsuite/gnat.dg/enum2_pkg.ads
 Index: gcc/testsuite/gnat.dg/enum2.adb
 ===================================================================
 --- gcc/testsuite/gnat.dg/enum2.adb    (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/gnat.dg/enum2.adb    (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/gnat.dg/enum2.adb    (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,11 @@
 +-- { dg-do run }
 +-- { dg-options "-gnat05 -O2" }
@@ -2883,7 +3106,7 @@ Index: gcc/testsuite/gnat.dg/enum2.adb
 Index: gcc/testsuite/gcc.dg/pr39666-1.c
 ===================================================================
 --- gcc/testsuite/gcc.dg/pr39666-1.c   (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/pr39666-1.c   (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/gcc.dg/pr39666-1.c   (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,22 @@
 +/* PR middle-end/39666 */
 +/* { dg-do compile } */
@@ -2910,7 +3133,7 @@ Index: gcc/testsuite/gcc.dg/pr39666-1.c
 Index: gcc/testsuite/gcc.dg/pr40172-2.c
 ===================================================================
 --- gcc/testsuite/gcc.dg/pr40172-2.c   (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/pr40172-2.c   (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/gcc.dg/pr40172-2.c   (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,16 @@
 +/* PR middle-end/40172 */
 +/* { dg-do compile } */
@@ -2931,7 +3154,7 @@ Index: gcc/testsuite/gcc.dg/pr40172-2.c
 Index: gcc/testsuite/gcc.dg/pr39565.c
 ===================================================================
 --- gcc/testsuite/gcc.dg/pr39565.c     (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/pr39565.c     (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/gcc.dg/pr39565.c     (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,48 @@
 +/* PR39565: Static variable leaves undefined symbol in object file.
 +   Variables codestrs_4 and codestrs_8 should not be undefined,
@@ -2984,7 +3207,7 @@ Index: gcc/testsuite/gcc.dg/pr39565.c
 Index: gcc/testsuite/gcc.dg/pr40340.h
 ===================================================================
 --- gcc/testsuite/gcc.dg/pr40340.h     (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/pr40340.h     (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/gcc.dg/pr40340.h     (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,31 @@
 +#pragma GCC system_header
 +typedef __SIZE_TYPE__ size_t;
@@ -3017,10 +3240,41 @@ Index: gcc/testsuite/gcc.dg/pr40340.h
 +  memset (p, 0, 6);
 +}
 +#endif
+Index: gcc/testsuite/gcc.dg/pr40669.c
+===================================================================
+--- gcc/testsuite/gcc.dg/pr40669.c     (.../tags/gcc_4_4_0_release)    (wersja 0)
++++ gcc/testsuite/gcc.dg/pr40669.c     (.../branches/gcc-4_4-branch)   (wersja 149530)
+@@ -0,0 +1,26 @@
++/* PR middle-end/40669 */
++/* { dg-do compile } */
++/* { dg-options "-O2 -ffast-math" } */
++
++double _Complex
++test (int d, int t, double *x, double *y, double *z, int n,
++      double _Complex (*fnp) (double))
++{
++  int m = n / 2;
++  double min = y[t], max = z[t], med = x[m * d + t];
++  double _Complex result = 0.0;
++
++  if (n == 0)
++    return 0.0;
++
++  if (min > med)
++    result += test (d, (t + 1) % d, x + (m + 1) * d, y, z, n - m - 1, fnp);
++  else if (max < med)
++    result += test (d, (t + 1) % d, x, y, z, m, fnp);
++  else
++    {
++      result += fnp (y[0] + x[m]);
++      result += test (d, (t + 1) % d, x + (m + 1) * d, y, z, n - m - 1, fnp);
++    }
++  return result;
++}
 Index: gcc/testsuite/gcc.dg/pr40340-1.c
 ===================================================================
 --- gcc/testsuite/gcc.dg/pr40340-1.c   (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/pr40340-1.c   (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/gcc.dg/pr40340-1.c   (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,24 @@
 +/* PR middle-end/40340 */
 +/* { dg-do compile } */
@@ -3049,7 +3303,7 @@ Index: gcc/testsuite/gcc.dg/pr40340-1.c
 Index: gcc/testsuite/gcc.dg/pr40340-3.c
 ===================================================================
 --- gcc/testsuite/gcc.dg/pr40340-3.c   (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/pr40340-3.c   (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/gcc.dg/pr40340-3.c   (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,15 @@
 +/* PR middle-end/40340 */
 +/* { dg-do compile } */
@@ -3069,7 +3323,7 @@ Index: gcc/testsuite/gcc.dg/pr40340-3.c
 Index: gcc/testsuite/gcc.dg/torture/pr39855.c
 ===================================================================
 --- gcc/testsuite/gcc.dg/torture/pr39855.c     (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/torture/pr39855.c     (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/gcc.dg/torture/pr39855.c     (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,24 @@
 +/* PR c/39855 */
 +/* { dg-do run { target { int32plus } } } */
@@ -3098,7 +3352,7 @@ Index: gcc/testsuite/gcc.dg/torture/pr39855.c
 Index: gcc/testsuite/gcc.dg/torture/pr40470-4.c
 ===================================================================
 --- gcc/testsuite/gcc.dg/torture/pr40470-4.c   (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/torture/pr40470-4.c   (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/gcc.dg/torture/pr40470-4.c   (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,29 @@
 +/* { dg-do compile { target i?86-*-* x86_64-*-* } } */
 +/* { dg-options "-msse4" } */
@@ -3132,7 +3386,7 @@ Index: gcc/testsuite/gcc.dg/torture/pr40470-4.c
 Index: gcc/testsuite/gcc.dg/torture/pr39903-1.c
 ===================================================================
 --- gcc/testsuite/gcc.dg/torture/pr39903-1.c   (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/torture/pr39903-1.c   (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/gcc.dg/torture/pr39903-1.c   (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,24 @@
 +/* PR target/39903 */
 +/* { dg-do run } */
@@ -3161,7 +3415,7 @@ Index: gcc/testsuite/gcc.dg/torture/pr39903-1.c
 Index: gcc/testsuite/gcc.dg/torture/pr40328.c
 ===================================================================
 --- gcc/testsuite/gcc.dg/torture/pr40328.c     (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/torture/pr40328.c     (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/gcc.dg/torture/pr40328.c     (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,11 @@
 +/* { dg-do compile } */
 +/* { dg-options "-fno-tree-sra" } */
@@ -3177,7 +3431,7 @@ Index: gcc/testsuite/gcc.dg/torture/pr40328.c
 Index: gcc/testsuite/gcc.dg/torture/pr40470-1.c
 ===================================================================
 --- gcc/testsuite/gcc.dg/torture/pr40470-1.c   (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/torture/pr40470-1.c   (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/gcc.dg/torture/pr40470-1.c   (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,22 @@
 +/* { dg-do compile { target i?86-*-* x86_64-*-* } } */
 +/* { dg-options "-msse4" } */
@@ -3204,7 +3458,7 @@ Index: gcc/testsuite/gcc.dg/torture/pr40470-1.c
 Index: gcc/testsuite/gcc.dg/torture/pr39903-2.c
 ===================================================================
 --- gcc/testsuite/gcc.dg/torture/pr39903-2.c   (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/torture/pr39903-2.c   (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/gcc.dg/torture/pr39903-2.c   (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,24 @@
 +/* PR target/39903 */
 +/* { dg-do run } */
@@ -3230,10 +3484,16 @@ Index: gcc/testsuite/gcc.dg/torture/pr39903-2.c
 +    abort ();
 +  return 0;
 +}
+
+Zmiany atrybutów dla: gcc/testsuite/gcc.dg/torture/pr36227.c
+___________________________________________________________________
+Zmienione: svn:mergeinfo
+   Połączono zmiany /trunk/gcc/testsuite/gcc.dg/torture/pr36227.c:r149341,149351
+
 Index: gcc/testsuite/gcc.dg/torture/pr40470-2.c
 ===================================================================
 --- gcc/testsuite/gcc.dg/torture/pr40470-2.c   (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/torture/pr40470-2.c   (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/gcc.dg/torture/pr40470-2.c   (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,27 @@
 +/* { dg-do compile { target i?86-*-* x86_64-*-* } } */
 +/* { dg-options "-msse4" } */
@@ -3265,7 +3525,7 @@ Index: gcc/testsuite/gcc.dg/torture/pr40470-2.c
 Index: gcc/testsuite/gcc.dg/torture/pr40470-3.c
 ===================================================================
 --- gcc/testsuite/gcc.dg/torture/pr40470-3.c   (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/torture/pr40470-3.c   (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/gcc.dg/torture/pr40470-3.c   (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,22 @@
 +/* { dg-do compile { target i?86-*-* x86_64-*-* } } */
 +/* { dg-options "-msse4" } */
@@ -3291,8 +3551,8 @@ Index: gcc/testsuite/gcc.dg/torture/pr40470-3.c
 +}
 Index: gcc/testsuite/gcc.dg/torture/pr39204.c
 ===================================================================
---- gcc/testsuite/gcc.dg/torture/pr39204.c     (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/testsuite/gcc.dg/torture/pr39204.c     (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/testsuite/gcc.dg/torture/pr39204.c     (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/testsuite/gcc.dg/torture/pr39204.c     (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1,7 +1,7 @@
  /* { dg-do compile } */
  /* { dg-options "-w" } */
@@ -3305,7 +3565,7 @@ Index: gcc/testsuite/gcc.dg/torture/pr39204.c
 Index: gcc/testsuite/gcc.dg/torture/pr39829.c
 ===================================================================
 --- gcc/testsuite/gcc.dg/torture/pr39829.c     (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/torture/pr39829.c     (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/gcc.dg/torture/pr39829.c     (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,27 @@
 +/* { dg-do compile } */
 +/* { dg-options "-w" } */
@@ -3337,7 +3597,7 @@ Index: gcc/testsuite/gcc.dg/torture/pr39829.c
 Index: gcc/testsuite/gcc.dg/pr40340-5.c
 ===================================================================
 --- gcc/testsuite/gcc.dg/pr40340-5.c   (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/pr40340-5.c   (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/gcc.dg/pr40340-5.c   (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,17 @@
 +/* PR middle-end/40340 */
 +/* { dg-do compile } */
@@ -3359,7 +3619,7 @@ Index: gcc/testsuite/gcc.dg/pr40340-5.c
 Index: gcc/testsuite/gcc.dg/pr39794.c
 ===================================================================
 --- gcc/testsuite/gcc.dg/pr39794.c     (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/pr39794.c     (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/gcc.dg/pr39794.c     (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,33 @@
 +/* PR rtl-optimization/39794 */
 +/* { dg-do run } */
@@ -3396,8 +3656,8 @@ Index: gcc/testsuite/gcc.dg/pr39794.c
 +}
 Index: gcc/testsuite/gcc.dg/tree-ssa/pr36908.c
 ===================================================================
---- gcc/testsuite/gcc.dg/tree-ssa/pr36908.c    (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/testsuite/gcc.dg/tree-ssa/pr36908.c    (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/testsuite/gcc.dg/tree-ssa/pr36908.c    (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/testsuite/gcc.dg/tree-ssa/pr36908.c    (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -2,7 +2,7 @@
  /* { dg-options "-O2 -ftree-loop-distribution" } */
  #define NULL ((void *)0)
@@ -3409,8 +3669,8 @@ Index: gcc/testsuite/gcc.dg/tree-ssa/pr36908.c
  
 Index: gcc/testsuite/gcc.dg/tree-ssa/pr38250.c
 ===================================================================
---- gcc/testsuite/gcc.dg/tree-ssa/pr38250.c    (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/testsuite/gcc.dg/tree-ssa/pr38250.c    (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/testsuite/gcc.dg/tree-ssa/pr38250.c    (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/testsuite/gcc.dg/tree-ssa/pr38250.c    (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1,7 +1,7 @@
  /* { dg-do compile } */
  /* { dg-options "-O2 -ftree-loop-distribution" } */
@@ -3422,8 +3682,8 @@ Index: gcc/testsuite/gcc.dg/tree-ssa/pr38250.c
  } gsl_complex_long_double;
 Index: gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-10.c
 ===================================================================
---- gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-10.c (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-10.c (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-10.c (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-10.c (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1,7 +1,7 @@
  /* { dg-do compile } */
  /* { dg-options "-O -w -fdump-tree-dse-vops" } */
@@ -3436,7 +3696,7 @@ Index: gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-10.c
 Index: gcc/testsuite/gcc.dg/tree-ssa/pr40087.c
 ===================================================================
 --- gcc/testsuite/gcc.dg/tree-ssa/pr40087.c    (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/tree-ssa/pr40087.c    (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/gcc.dg/tree-ssa/pr40087.c    (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,30 @@
 +/* { dg-do run } */
 +/* { dg-options "-O1 " } */
@@ -3470,8 +3730,8 @@ Index: gcc/testsuite/gcc.dg/tree-ssa/pr40087.c
 +}
 Index: gcc/testsuite/gcc.dg/tree-ssa/20041122-1.c
 ===================================================================
---- gcc/testsuite/gcc.dg/tree-ssa/20041122-1.c (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/testsuite/gcc.dg/tree-ssa/20041122-1.c (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/testsuite/gcc.dg/tree-ssa/20041122-1.c (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/testsuite/gcc.dg/tree-ssa/20041122-1.c (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -2,7 +2,7 @@
  /* { dg-options "-O1 -fdump-tree-dom2" } */
  
@@ -3483,8 +3743,8 @@ Index: gcc/testsuite/gcc.dg/tree-ssa/20041122-1.c
  {
 Index: gcc/testsuite/gcc.dg/tls/opt-2.c
 ===================================================================
---- gcc/testsuite/gcc.dg/tls/opt-2.c   (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/testsuite/gcc.dg/tls/opt-2.c   (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/testsuite/gcc.dg/tls/opt-2.c   (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/testsuite/gcc.dg/tls/opt-2.c   (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -6,6 +6,7 @@
  /* { dg-options "-O2 -ftls-model=initial-exec" } */
  /* { dg-options "-O2 -ftls-model=initial-exec -march=i686" { target { { i?86-*-* x86_64-*-* } && ilp32 } } } */
@@ -3495,8 +3755,8 @@ Index: gcc/testsuite/gcc.dg/tls/opt-2.c
  
 Index: gcc/testsuite/gcc.dg/tls/alias-1.c
 ===================================================================
---- gcc/testsuite/gcc.dg/tls/alias-1.c (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/testsuite/gcc.dg/tls/alias-1.c (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/testsuite/gcc.dg/tls/alias-1.c (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/testsuite/gcc.dg/tls/alias-1.c (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1,7 +1,7 @@
  /* { dg-do link } */
  /* { dg-require-alias "" } */
@@ -3509,7 +3769,7 @@ Index: gcc/testsuite/gcc.dg/tls/alias-1.c
 Index: gcc/testsuite/gcc.dg/pr39867.c
 ===================================================================
 --- gcc/testsuite/gcc.dg/pr39867.c     (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/pr39867.c     (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/gcc.dg/pr39867.c     (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,12 @@
 +/* { dg-do link } */
 +/* { dg-options "-O2" } */
@@ -3526,7 +3786,7 @@ Index: gcc/testsuite/gcc.dg/pr39867.c
 Index: gcc/testsuite/gcc.dg/Wunused-value-3.c
 ===================================================================
 --- gcc/testsuite/gcc.dg/Wunused-value-3.c     (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/Wunused-value-3.c     (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/gcc.dg/Wunused-value-3.c     (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,9 @@
 +/* PR c/39889 */
 +/* { dg-do compile } */
@@ -3540,7 +3800,7 @@ Index: gcc/testsuite/gcc.dg/Wunused-value-3.c
 Index: gcc/testsuite/gcc.dg/pr40172-1.c
 ===================================================================
 --- gcc/testsuite/gcc.dg/pr40172-1.c   (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/pr40172-1.c   (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/gcc.dg/pr40172-1.c   (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,31 @@
 +/* PR middle-end/40172 */
 +/* { dg-do compile } */
@@ -3576,7 +3836,7 @@ Index: gcc/testsuite/gcc.dg/pr40172-1.c
 Index: gcc/testsuite/gcc.dg/pr39666-2.c
 ===================================================================
 --- gcc/testsuite/gcc.dg/pr39666-2.c   (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/pr39666-2.c   (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/gcc.dg/pr39666-2.c   (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,22 @@
 +/* PR middle-end/39666 */
 +/* { dg-do compile } */
@@ -3602,8 +3862,8 @@ Index: gcc/testsuite/gcc.dg/pr39666-2.c
 +}
 Index: gcc/testsuite/gcc.dg/vmx/3a-05.c
 ===================================================================
---- gcc/testsuite/gcc.dg/vmx/3a-05.c   (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/testsuite/gcc.dg/vmx/3a-05.c   (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/testsuite/gcc.dg/vmx/3a-05.c   (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/testsuite/gcc.dg/vmx/3a-05.c   (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -14,9 +14,13 @@
  
  static void test()
@@ -3623,8 +3883,8 @@ Index: gcc/testsuite/gcc.dg/vmx/3a-05.c
  }
 Index: gcc/testsuite/gcc.dg/vmx/3a-04m.c
 ===================================================================
---- gcc/testsuite/gcc.dg/vmx/3a-04m.c  (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/testsuite/gcc.dg/vmx/3a-04m.c  (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/testsuite/gcc.dg/vmx/3a-04m.c  (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/testsuite/gcc.dg/vmx/3a-04m.c  (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -10,9 +10,13 @@
  
  static void test()
@@ -3643,8 +3903,8 @@ Index: gcc/testsuite/gcc.dg/vmx/3a-04m.c
  }
 Index: gcc/testsuite/gcc.dg/vmx/3a-04.c
 ===================================================================
---- gcc/testsuite/gcc.dg/vmx/3a-04.c   (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/testsuite/gcc.dg/vmx/3a-04.c   (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/testsuite/gcc.dg/vmx/3a-04.c   (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/testsuite/gcc.dg/vmx/3a-04.c   (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -10,9 +10,13 @@
  
  static void test()
@@ -3664,7 +3924,7 @@ Index: gcc/testsuite/gcc.dg/vmx/3a-04.c
 Index: gcc/testsuite/gcc.dg/pr40172-3.c
 ===================================================================
 --- gcc/testsuite/gcc.dg/pr40172-3.c   (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/pr40172-3.c   (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/gcc.dg/pr40172-3.c   (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,16 @@
 +/* PR middle-end/40172 */
 +/* { dg-do compile */
@@ -3684,8 +3944,8 @@ Index: gcc/testsuite/gcc.dg/pr40172-3.c
 +}
 Index: gcc/testsuite/gcc.dg/prefetch-loop-arrays-1.c
 ===================================================================
---- gcc/testsuite/gcc.dg/prefetch-loop-arrays-1.c      (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/testsuite/gcc.dg/prefetch-loop-arrays-1.c      (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/testsuite/gcc.dg/prefetch-loop-arrays-1.c      (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/testsuite/gcc.dg/prefetch-loop-arrays-1.c      (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -3,7 +3,7 @@
  /* { dg-options "-O2 -fprefetch-loop-arrays -w" } */
  /* { dg-options "-O2 -fprefetch-loop-arrays -march=i686 -msse -w" { target { { i?86-*-* x86_64-*-* } && ilp32 } } } */
@@ -3698,7 +3958,7 @@ Index: gcc/testsuite/gcc.dg/prefetch-loop-arrays-1.c
 Index: gcc/testsuite/gcc.dg/pr40340-2.c
 ===================================================================
 --- gcc/testsuite/gcc.dg/pr40340-2.c   (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/pr40340-2.c   (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/gcc.dg/pr40340-2.c   (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,16 @@
 +/* PR middle-end/40340 */
 +/* { dg-do compile } */
@@ -3719,7 +3979,7 @@ Index: gcc/testsuite/gcc.dg/pr40340-2.c
 Index: gcc/testsuite/gcc.dg/dfp/pr39902.c
 ===================================================================
 --- gcc/testsuite/gcc.dg/dfp/pr39902.c (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/dfp/pr39902.c (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/gcc.dg/dfp/pr39902.c (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,239 @@
 +/* { dg-options "--std=gnu99" } */
 +
@@ -3963,7 +4223,7 @@ Index: gcc/testsuite/gcc.dg/dfp/pr39902.c
 Index: gcc/testsuite/gcc.dg/dfp/pr39986.c
 ===================================================================
 --- gcc/testsuite/gcc.dg/dfp/pr39986.c (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/dfp/pr39986.c (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/gcc.dg/dfp/pr39986.c (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,31 @@
 +/* { dg-do compile } */
 +/* { dg-options "-std=gnu99" } */
@@ -3998,8 +4258,8 @@ Index: gcc/testsuite/gcc.dg/dfp/pr39986.c
 +/* { dg-final { scan-assembler ".long\t(-1576681472|-1339162624)\n" } } */
 Index: gcc/testsuite/gcc.dg/pr33667.c
 ===================================================================
---- gcc/testsuite/gcc.dg/pr33667.c     (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/testsuite/gcc.dg/pr33667.c     (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/testsuite/gcc.dg/pr33667.c     (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/testsuite/gcc.dg/pr33667.c     (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1,7 +1,7 @@
  /* { dg-do compile } */
  /* { dg-options "-O2" } */
@@ -4012,7 +4272,7 @@ Index: gcc/testsuite/gcc.dg/pr33667.c
 Index: gcc/testsuite/gcc.dg/pr40550.c
 ===================================================================
 --- gcc/testsuite/gcc.dg/pr40550.c     (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/pr40550.c     (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/gcc.dg/pr40550.c     (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,34 @@
 +/* { dg-do run } */
 +/* { dg-options "-msse" { target { { i?86-*-* x86_64-*-* } && ilp32 } } } */
@@ -4050,8 +4310,8 @@ Index: gcc/testsuite/gcc.dg/pr40550.c
 +}
 Index: gcc/testsuite/gcc.dg/20050629-1.c
 ===================================================================
---- gcc/testsuite/gcc.dg/20050629-1.c  (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/testsuite/gcc.dg/20050629-1.c  (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/testsuite/gcc.dg/20050629-1.c  (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/testsuite/gcc.dg/20050629-1.c  (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -5,7 +5,7 @@
     contains many warnings, but it exposes a copy propagation bug that
     is somewhat difficult to reproduce otherwise.  */
@@ -4064,7 +4324,7 @@ Index: gcc/testsuite/gcc.dg/20050629-1.c
 Index: gcc/testsuite/gcc.dg/pr40340-4.c
 ===================================================================
 --- gcc/testsuite/gcc.dg/pr40340-4.c   (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/pr40340-4.c   (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/gcc.dg/pr40340-4.c   (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,16 @@
 +/* PR middle-end/40340 */
 +/* { dg-do compile } */
@@ -4085,7 +4345,7 @@ Index: gcc/testsuite/gcc.dg/pr40340-4.c
 Index: gcc/testsuite/gcc.dg/vect/pr40074.c
 ===================================================================
 --- gcc/testsuite/gcc.dg/vect/pr40074.c        (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/vect/pr40074.c        (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/gcc.dg/vect/pr40074.c        (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,54 @@
 +/* { dg-require-effective-target vect_int } */
 +
@@ -4144,7 +4404,7 @@ Index: gcc/testsuite/gcc.dg/vect/pr40074.c
 Index: gcc/testsuite/gcc.dg/vect/pr40254.c
 ===================================================================
 --- gcc/testsuite/gcc.dg/vect/pr40254.c        (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/vect/pr40254.c        (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/gcc.dg/vect/pr40254.c        (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,39 @@
 +#include <stdlib.h>
 +#include <stdarg.h>
@@ -4188,7 +4448,7 @@ Index: gcc/testsuite/gcc.dg/vect/pr40254.c
 Index: gcc/testsuite/gcc.dg/vect/pr40238.c
 ===================================================================
 --- gcc/testsuite/gcc.dg/vect/pr40238.c        (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/vect/pr40238.c        (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/gcc.dg/vect/pr40238.c        (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,35 @@
 +/* { dg-do compile } */
 +
@@ -4228,7 +4488,7 @@ Index: gcc/testsuite/gcc.dg/vect/pr40238.c
 Index: gcc/testsuite/gcc.dg/vect/pr40542.c
 ===================================================================
 --- gcc/testsuite/gcc.dg/vect/pr40542.c        (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/gcc.dg/vect/pr40542.c        (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/gcc.dg/vect/pr40542.c        (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,14 @@
 +/* { dg-do compile } */
 +
@@ -4246,9 +4506,86 @@ Index: gcc/testsuite/gcc.dg/vect/pr40542.c
 +
 Index: gcc/testsuite/ChangeLog
 ===================================================================
---- gcc/testsuite/ChangeLog    (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/testsuite/ChangeLog    (.../branches/gcc-4_4-branch)   (wersja 149126)
-@@ -1,3 +1,691 @@
+--- gcc/testsuite/ChangeLog    (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/testsuite/ChangeLog    (.../branches/gcc-4_4-branch)   (wersja 149530)
+@@ -1,3 +1,768 @@
++2009-07-11  Jakub Jelinek  <jakub@redhat.com>
++
++      PR target/40668
++      * gcc.c-torture/execute/pr40668.c: New test.
++
++2009-07-10  Jakub Jelinek  <jakub@redhat.com>
++
++      PR c++/40502
++      * g++.dg/ext/strncpy-chk1.C: New test.
++
++2009-07-09  Paul Thomas  <pault@gcc.gnu.org>
++
++      PR fortran/40440
++      * gfortran.dg/alloc_comp_result_2.f90: New test.
++
++2009-07-09  Dodji Seketeli  <dodji@redhat.com>
++
++      PR c++/40684
++      * g++.dg/template/unify11.C: New test.
++
++2009-07-08  H.J. Lu  <hongjiu.lu@intel.com>
++
++      Backport from mainline:
++      2009-07-06  Simon Martin  <simartin@users.sourceforge.net>
++
++      PR c++/40557
++      * g++.dg/template/union2.C: New test.
++
++2009-07-07  Jason Merrill  <jason@redhat.com>
++
++      PR c++/35828
++      * g++.dg/template/defarg12.C: New.
++
++      PR c++/37816
++      * g++.dg/cpp0x/enum7.C: New.
++
++      PR c++/37946
++      * g++.dg/cpp0x/enum6.C: New.
++
++      PR c++/40639
++      * g++.dg/cpp0x/enum5.C: New.
++
++      PR c++/40633
++      * g++.dg/cpp0x/enum4.C: New.
++
++2009-07-07  Jakub Jelinek  <jakub@redhat.com>
++
++      PR middle-end/40669
++      * gcc.dg/pr40669.c: New test.
++
++2009-07-05  Paul Thomas  <pault@gcc.gnu.org>
++
++      PR fortran/40551
++      * gfortran.dg/func_assign_2.f90 : New test.
++
++2009-07-04  Jakub Jelinek  <jakub@redhat.com>
++
++      * gfortran.dg/maxloc_1.f90: New test.
++
++2009-07-04  H.J. Lu  <hongjiu.lu@intel.com>
++
++      Backport from mainline:
++      2009-07-03  Richard Guenther  <rguenther@suse.de>
++
++      PR tree-optimization/40640
++      * gcc.c-torture/compile/pr40640.c: New testcase.
++
++2009-07-03  Vladimir Makarov  <vmakarov@redhat.com>
++
++      PR target/40587
++      * gfortran.dg/pr40587.f: New test.
++      
++2009-07-03  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
++
++      PR fortran/40638
++      * gfortran.dg/unit_1.f90: New test.
++
 +2009-06-30  Jakub Jelinek  <jakub@redhat.com>
 +
 +      PR c++/40566
@@ -4940,7 +5277,7 @@ Index: gcc/testsuite/ChangeLog
  2009-04-21  Release Manager
  
        * GCC 4.4.0 released.
-@@ -192,7 +880,7 @@
+@@ -192,7 +957,7 @@
  
  2009-04-06  Laurent GUERBY  <laurent@guerby.net>
  
@@ -4951,8 +5288,8 @@ Index: gcc/testsuite/ChangeLog
  
 Index: gcc/testsuite/g++.old-deja/g++.brendan/array1.C
 ===================================================================
---- gcc/testsuite/g++.old-deja/g++.brendan/array1.C    (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/testsuite/g++.old-deja/g++.brendan/array1.C    (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/testsuite/g++.old-deja/g++.brendan/array1.C    (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/testsuite/g++.old-deja/g++.brendan/array1.C    (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -3,5 +3,5 @@
  // GROUPS passed array-bindings
  
@@ -4962,8 +5299,8 @@ Index: gcc/testsuite/g++.old-deja/g++.brendan/array1.C
  int main () { printf ("PASS\n"); return 0; }
 Index: gcc/testsuite/g++.old-deja/g++.brendan/crash64.C
 ===================================================================
---- gcc/testsuite/g++.old-deja/g++.brendan/crash64.C   (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/testsuite/g++.old-deja/g++.brendan/crash64.C   (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/testsuite/g++.old-deja/g++.brendan/crash64.C   (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/testsuite/g++.old-deja/g++.brendan/crash64.C   (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1,6 +1,6 @@
  // { dg-do assemble  }
  // GROUPS passed old-abort
@@ -4983,8 +5320,8 @@ Index: gcc/testsuite/g++.old-deja/g++.brendan/crash64.C
  struct metatype { int base_list; };
 Index: gcc/testsuite/g++.old-deja/g++.jason/new3.C
 ===================================================================
---- gcc/testsuite/g++.old-deja/g++.jason/new3.C        (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/testsuite/g++.old-deja/g++.jason/new3.C        (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/testsuite/g++.old-deja/g++.jason/new3.C        (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/testsuite/g++.old-deja/g++.jason/new3.C        (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1,5 +1,5 @@
  // { dg-do run  }
 -// { dg-options "-fcheck-new -pedantic" }
@@ -4995,7 +5332,7 @@ Index: gcc/testsuite/g++.old-deja/g++.jason/new3.C
 Index: gcc/testsuite/gfortran.fortran-torture/execute/getarg_1.x
 ===================================================================
 --- gcc/testsuite/gfortran.fortran-torture/execute/getarg_1.x  (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/gfortran.fortran-torture/execute/getarg_1.x  (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/gfortran.fortran-torture/execute/getarg_1.x  (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,5 @@
 +if [istarget "spu-*-*"] {
 +    # We need -mstdmain to enable argument processing on SPU.
@@ -5004,8 +5341,8 @@ Index: gcc/testsuite/gfortran.fortran-torture/execute/getarg_1.x
 +return 0
 Index: gcc/testsuite/gfortran.fortran-torture/execute/intrinsic_nearest.x
 ===================================================================
---- gcc/testsuite/gfortran.fortran-torture/execute/intrinsic_nearest.x (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/testsuite/gfortran.fortran-torture/execute/intrinsic_nearest.x (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/testsuite/gfortran.fortran-torture/execute/intrinsic_nearest.x (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/testsuite/gfortran.fortran-torture/execute/intrinsic_nearest.x (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1,2 +1,6 @@
 +if [istarget "spu-*-*"] {
 +    # No Inf/NaN support on SPU.
@@ -5015,8 +5352,8 @@ Index: gcc/testsuite/gfortran.fortran-torture/execute/intrinsic_nearest.x
  return 0
 Index: gcc/testsuite/gfortran.fortran-torture/execute/nan_inf_fmt.x
 ===================================================================
---- gcc/testsuite/gfortran.fortran-torture/execute/nan_inf_fmt.x       (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/testsuite/gfortran.fortran-torture/execute/nan_inf_fmt.x       (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/testsuite/gfortran.fortran-torture/execute/nan_inf_fmt.x       (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/testsuite/gfortran.fortran-torture/execute/nan_inf_fmt.x       (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1,2 +1,6 @@
 +if [istarget "spu-*-*"] {
 +    # No Inf/NaN support on SPU.
@@ -5026,8 +5363,8 @@ Index: gcc/testsuite/gfortran.fortran-torture/execute/nan_inf_fmt.x
  return 0
 Index: gcc/testsuite/gfortran.fortran-torture/execute/intrinsic_set_exponent.x
 ===================================================================
---- gcc/testsuite/gfortran.fortran-torture/execute/intrinsic_set_exponent.x    (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/testsuite/gfortran.fortran-torture/execute/intrinsic_set_exponent.x    (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/testsuite/gfortran.fortran-torture/execute/intrinsic_set_exponent.x    (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/testsuite/gfortran.fortran-torture/execute/intrinsic_set_exponent.x    (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1,2 +1,6 @@
 +if [istarget "spu-*-*"] {
 +    # No denormal support on SPU.
@@ -5038,7 +5375,7 @@ Index: gcc/testsuite/gfortran.fortran-torture/execute/intrinsic_set_exponent.x
 Index: gcc/testsuite/gfortran.fortran-torture/execute/pr40021.f
 ===================================================================
 --- gcc/testsuite/gfortran.fortran-torture/execute/pr40021.f   (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/gfortran.fortran-torture/execute/pr40021.f   (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/gfortran.fortran-torture/execute/pr40021.f   (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,40 @@
 +C Derived from lapack
 +        PROGRAM test
@@ -5083,7 +5420,7 @@ Index: gcc/testsuite/gfortran.fortran-torture/execute/pr40021.f
 Index: gcc/testsuite/gfortran.fortran-torture/compile/pr39937.f
 ===================================================================
 --- gcc/testsuite/gfortran.fortran-torture/compile/pr39937.f   (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/gfortran.fortran-torture/compile/pr39937.f   (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/gfortran.fortran-torture/compile/pr39937.f   (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,28 @@
 +      SUBROUTINE DTREVC( SIDE, HOWMNY, SELECT, N, T, LDT, VL, LDVL, VR,
 +     $                   LDVR, MM, M, WORK, INFO )
@@ -5116,7 +5453,7 @@ Index: gcc/testsuite/gfortran.fortran-torture/compile/pr39937.f
 Index: gcc/testsuite/g++.dg/other/pr40446.C
 ===================================================================
 --- gcc/testsuite/g++.dg/other/pr40446.C       (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/other/pr40446.C       (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/g++.dg/other/pr40446.C       (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,46 @@
 +// PR middle-end/40446
 +// { dg-do run { target i?86-*-* x86_64-*-* } }
@@ -5166,8 +5503,8 @@ Index: gcc/testsuite/g++.dg/other/pr40446.C
 +}
 Index: gcc/testsuite/g++.dg/tree-ssa/pr22444.C
 ===================================================================
---- gcc/testsuite/g++.dg/tree-ssa/pr22444.C    (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/testsuite/g++.dg/tree-ssa/pr22444.C    (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/testsuite/g++.dg/tree-ssa/pr22444.C    (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/testsuite/g++.dg/tree-ssa/pr22444.C    (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -4,8 +4,8 @@
  // with the subvars leading to the subvars not being renamed when they should
  // { dg-do compile }
@@ -5182,7 +5519,7 @@ Index: gcc/testsuite/g++.dg/tree-ssa/pr22444.C
 Index: gcc/testsuite/g++.dg/debug/dwarf2/nested-1.C
 ===================================================================
 --- gcc/testsuite/g++.dg/debug/dwarf2/nested-1.C       (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/debug/dwarf2/nested-1.C       (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/g++.dg/debug/dwarf2/nested-1.C       (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,29 @@
 +// Contributed by Dodji Seketeli <dodji@redhat.com>
 +// Origin PR debug/40109
@@ -5215,8 +5552,8 @@ Index: gcc/testsuite/g++.dg/debug/dwarf2/nested-1.C
 +
 Index: gcc/testsuite/g++.dg/ext/packed6.C
 ===================================================================
---- gcc/testsuite/g++.dg/ext/packed6.C (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/testsuite/g++.dg/ext/packed6.C (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/testsuite/g++.dg/ext/packed6.C (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/testsuite/g++.dg/ext/packed6.C (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1,7 +1,7 @@
  // PR c++/15209
  // { dg-options "-w" }
@@ -5228,8 +5565,8 @@ Index: gcc/testsuite/g++.dg/ext/packed6.C
  
 Index: gcc/testsuite/g++.dg/ext/altivec-15.C
 ===================================================================
---- gcc/testsuite/g++.dg/ext/altivec-15.C      (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/testsuite/g++.dg/ext/altivec-15.C      (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/testsuite/g++.dg/ext/altivec-15.C      (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/testsuite/g++.dg/ext/altivec-15.C      (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -2,12 +2,15 @@
  /* { dg-require-effective-target powerpc_altivec_ok } */
  /* { dg-options "-maltivec" } */
@@ -5248,10 +5585,46 @@ Index: gcc/testsuite/g++.dg/ext/altivec-15.C
 +        C0 = __builtin_vec_splat(_simdCosEstCoefficients, 0);
 +        C1 = __builtin_vec_splat(_simdCosEstCoefficients, 1);
  
+Index: gcc/testsuite/g++.dg/ext/strncpy-chk1.C
+===================================================================
+--- gcc/testsuite/g++.dg/ext/strncpy-chk1.C    (.../tags/gcc_4_4_0_release)    (wersja 0)
++++ gcc/testsuite/g++.dg/ext/strncpy-chk1.C    (.../branches/gcc-4_4-branch)   (wersja 149530)
+@@ -0,0 +1,31 @@
++// PR c++/40502
++// { dg-do compile }
++// { dg-options "-O2" }
++
++struct A { char x[12], y[35]; };
++struct B { char z[50]; };
++
++inline void
++foo (char *dest, const char *__restrict src, __SIZE_TYPE__ n)
++{
++  __builtin___strncpy_chk (dest, src, n, __builtin_object_size (dest, 0));    // { dg-warning "will always overflow" }
++}
++
++void bar (const char *, int);
++
++inline void
++baz (int i)
++{
++  char s[128], t[32];
++  bar (s, 0);
++  bar (t, i);
++  A a;
++  B b;
++  foo (a.y, b.z, 36);
++}
++
++void
++test ()
++{
++  baz (0);
++}
 Index: gcc/testsuite/g++.dg/ext/vla7.C
 ===================================================================
 --- gcc/testsuite/g++.dg/ext/vla7.C    (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/ext/vla7.C    (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/g++.dg/ext/vla7.C    (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,30 @@
 +// PR c++/40013
 +// { dg-options "" }
@@ -5285,8 +5658,8 @@ Index: gcc/testsuite/g++.dg/ext/vla7.C
 +}
 Index: gcc/testsuite/g++.dg/opt/memcpy1.C
 ===================================================================
---- gcc/testsuite/g++.dg/opt/memcpy1.C (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/testsuite/g++.dg/opt/memcpy1.C (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/testsuite/g++.dg/opt/memcpy1.C (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/testsuite/g++.dg/opt/memcpy1.C (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -6,7 +6,7 @@
  
  typedef unsigned char uint8_t;
@@ -5299,7 +5672,7 @@ Index: gcc/testsuite/g++.dg/opt/memcpy1.C
 Index: gcc/testsuite/g++.dg/warn/Wuninitialized-5.C
 ===================================================================
 --- gcc/testsuite/g++.dg/warn/Wuninitialized-5.C       (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/warn/Wuninitialized-5.C       (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/g++.dg/warn/Wuninitialized-5.C       (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,22 @@
 +// PR middle-end/39666
 +// { dg-do compile }
@@ -5326,7 +5699,7 @@ Index: gcc/testsuite/g++.dg/warn/Wuninitialized-5.C
 Index: gcc/testsuite/g++.dg/warn/Wuninitialized-4.C
 ===================================================================
 --- gcc/testsuite/g++.dg/warn/Wuninitialized-4.C       (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/warn/Wuninitialized-4.C       (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/g++.dg/warn/Wuninitialized-4.C       (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,22 @@
 +// PR middle-end/39666
 +// { dg-do compile }
@@ -5353,7 +5726,7 @@ Index: gcc/testsuite/g++.dg/warn/Wuninitialized-4.C
 Index: gcc/testsuite/g++.dg/parse/cond5.C
 ===================================================================
 --- gcc/testsuite/g++.dg/parse/cond5.C (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/parse/cond5.C (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/g++.dg/parse/cond5.C (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,10 @@
 +// PR c++/40566
 +
@@ -5368,7 +5741,7 @@ Index: gcc/testsuite/g++.dg/parse/cond5.C
 Index: gcc/testsuite/g++.dg/expr/bound-mem-fun.C
 ===================================================================
 --- gcc/testsuite/g++.dg/expr/bound-mem-fun.C  (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/expr/bound-mem-fun.C  (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/g++.dg/expr/bound-mem-fun.C  (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,18 @@
 +// Contributed by Dodji Seketeli <dodji@redhat.com>
 +// Origin PR c++/38228
@@ -5391,7 +5764,7 @@ Index: gcc/testsuite/g++.dg/expr/bound-mem-fun.C
 Index: gcc/testsuite/g++.dg/cpp0x/variadic94.C
 ===================================================================
 --- gcc/testsuite/g++.dg/cpp0x/variadic94.C    (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/cpp0x/variadic94.C    (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/g++.dg/cpp0x/variadic94.C    (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,33 @@
 +// PR c++/40595
 +// { dg-options "-std=c++0x" }
@@ -5429,7 +5802,7 @@ Index: gcc/testsuite/g++.dg/cpp0x/variadic94.C
 Index: gcc/testsuite/g++.dg/cpp0x/pr39639.C
 ===================================================================
 --- gcc/testsuite/g++.dg/cpp0x/pr39639.C       (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/cpp0x/pr39639.C       (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/g++.dg/cpp0x/pr39639.C       (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,20 @@
 +// Contributed by Dodji Seketeli <dodji@redhat.com>
 +// Origin: PR c++/39639
@@ -5453,8 +5826,8 @@ Index: gcc/testsuite/g++.dg/cpp0x/pr39639.C
 +
 Index: gcc/testsuite/g++.dg/cpp0x/initlist13.C
 ===================================================================
---- gcc/testsuite/g++.dg/cpp0x/initlist13.C    (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/testsuite/g++.dg/cpp0x/initlist13.C    (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/testsuite/g++.dg/cpp0x/initlist13.C    (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/testsuite/g++.dg/cpp0x/initlist13.C    (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -2,4 +2,7 @@
  // { dg-do compile }
  // { dg-options "-std=gnu++0x" }
@@ -5467,7 +5840,7 @@ Index: gcc/testsuite/g++.dg/cpp0x/initlist13.C
 Index: gcc/testsuite/g++.dg/cpp0x/auto14.C
 ===================================================================
 --- gcc/testsuite/g++.dg/cpp0x/auto14.C        (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/cpp0x/auto14.C        (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/g++.dg/cpp0x/auto14.C        (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,29 @@
 +// PR c++/40306, c++/40307
 +// { dg-options "-std=c++0x" }
@@ -5498,10 +5871,16 @@ Index: gcc/testsuite/g++.dg/cpp0x/auto14.C
 +   x.run_fail();
 +   return 0;
 +}
+
+Zmiany atrybutów dla: gcc/testsuite/g++.dg/cpp0x/decltype-38655.C
+___________________________________________________________________
+Zmienione: svn:mergeinfo
+   Połączono zmiany /trunk/gcc/testsuite/g++.dg/cpp0x/decltype-38655.C:r149223,149341,149351
+
 Index: gcc/testsuite/g++.dg/cpp0x/auto15.C
 ===================================================================
 --- gcc/testsuite/g++.dg/cpp0x/auto15.C        (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/cpp0x/auto15.C        (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/g++.dg/cpp0x/auto15.C        (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,13 @@
 +// { dg-options "-std=c++0x" }
 +
@@ -5519,7 +5898,7 @@ Index: gcc/testsuite/g++.dg/cpp0x/auto15.C
 Index: gcc/testsuite/g++.dg/cpp0x/enum3.C
 ===================================================================
 --- gcc/testsuite/g++.dg/cpp0x/enum3.C (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/cpp0x/enum3.C (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/g++.dg/cpp0x/enum3.C (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,17 @@
 +// PR c++/38064
 +// { dg-options "-std=c++0x" }
@@ -5541,7 +5920,7 @@ Index: gcc/testsuite/g++.dg/cpp0x/enum3.C
 Index: gcc/testsuite/g++.dg/cpp0x/initlist15.C
 ===================================================================
 --- gcc/testsuite/g++.dg/cpp0x/initlist15.C    (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/cpp0x/initlist15.C    (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/g++.dg/cpp0x/initlist15.C    (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,17 @@
 +// { dg-options "-std=c++0x" }
 +
@@ -5560,10 +5939,35 @@ Index: gcc/testsuite/g++.dg/cpp0x/initlist15.C
 +    test( 1, 3.14f, 2.78 );
 +    return 0;
 +}
+Index: gcc/testsuite/g++.dg/cpp0x/auto16.C
+===================================================================
+--- gcc/testsuite/g++.dg/cpp0x/auto16.C        (.../tags/gcc_4_4_0_release)    (wersja 0)
++++ gcc/testsuite/g++.dg/cpp0x/auto16.C        (.../branches/gcc-4_4-branch)   (wersja 149530)
+@@ -0,0 +1,7 @@
++// PR c++/40619
++// { dg-options "-std=c++0x" }
++
++template<typename U> struct X {};
++
++template<typename T> auto f(T t) -> X<decltype(t+1)> {}
++template<typename T> auto g(T t) -> X<decltype(t+1)> {}
+Index: gcc/testsuite/g++.dg/cpp0x/enum4.C
+===================================================================
+--- gcc/testsuite/g++.dg/cpp0x/enum4.C (.../tags/gcc_4_4_0_release)    (wersja 0)
++++ gcc/testsuite/g++.dg/cpp0x/enum4.C (.../branches/gcc-4_4-branch)   (wersja 149530)
+@@ -0,0 +1,8 @@
++// PR c++/40633
++// { dg-options "-std=c++0x" }
++
++template< typename T >
++struct wrap {
++   enum class E { val };
++};
++
 Index: gcc/testsuite/g++.dg/cpp0x/initlist16.C
 ===================================================================
 --- gcc/testsuite/g++.dg/cpp0x/initlist16.C    (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/cpp0x/initlist16.C    (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/g++.dg/cpp0x/initlist16.C    (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,12 @@
 +// { dg-options "-std=c++0x" }
 +// { dg-do run }
@@ -5577,10 +5981,35 @@ Index: gcc/testsuite/g++.dg/cpp0x/initlist16.C
 +  f({42});
 +  return {0};
 +}
+Index: gcc/testsuite/g++.dg/cpp0x/enum5.C
+===================================================================
+--- gcc/testsuite/g++.dg/cpp0x/enum5.C (.../tags/gcc_4_4_0_release)    (wersja 0)
++++ gcc/testsuite/g++.dg/cpp0x/enum5.C (.../branches/gcc-4_4-branch)   (wersja 149530)
+@@ -0,0 +1,20 @@
++// PR c++/40639
++// { dg-options "-std=c++0x" }
++
++template< typename T >
++struct wrap {
++   enum E : T { val };
++};
++
++template< typename T >
++struct dependant {
++   enum E : typename T::type { val };
++};
++
++template<typename T>
++struct identity {
++   typedef T type;
++};
++
++wrap<int> x;
++dependant<identity<int>> y;
 Index: gcc/testsuite/g++.dg/cpp0x/initlist17.C
 ===================================================================
 --- gcc/testsuite/g++.dg/cpp0x/initlist17.C    (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/cpp0x/initlist17.C    (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/g++.dg/cpp0x/initlist17.C    (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,9 @@
 +// { dg-options "-std=c++0x" }
 +
@@ -5591,10 +6020,30 @@ Index: gcc/testsuite/g++.dg/cpp0x/initlist17.C
 +  f({42.0});                  // { dg-error "narrowing" }
 +  return {1.0};                       // { dg-error "narrowing" }
 +}
+Index: gcc/testsuite/g++.dg/cpp0x/enum6.C
+===================================================================
+--- gcc/testsuite/g++.dg/cpp0x/enum6.C (.../tags/gcc_4_4_0_release)    (wersja 0)
++++ gcc/testsuite/g++.dg/cpp0x/enum6.C (.../branches/gcc-4_4-branch)   (wersja 149530)
+@@ -0,0 +1,15 @@
++// PR c++/37946
++// { dg-options "-std=c++0x" }
++
++enum class E : char
++{
++    e1,
++    e2
++};
++
++inline E operator| (E a1, E a2)
++{
++    char ret = static_cast<char> (a1)
++        | static_cast<char> (a2);
++    return static_cast<E>(ret);
++}
 Index: gcc/testsuite/g++.dg/cpp0x/initlist18.C
 ===================================================================
 --- gcc/testsuite/g++.dg/cpp0x/initlist18.C    (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/cpp0x/initlist18.C    (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/g++.dg/cpp0x/initlist18.C    (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,19 @@
 +// PR c++/40308, 40311
 +// { dg-do run }
@@ -5615,10 +6064,26 @@ Index: gcc/testsuite/g++.dg/cpp0x/initlist18.C
 +   int * b = new int{5};
 +   return 0;
 +}
+Index: gcc/testsuite/g++.dg/cpp0x/enum7.C
+===================================================================
+--- gcc/testsuite/g++.dg/cpp0x/enum7.C (.../tags/gcc_4_4_0_release)    (wersja 0)
++++ gcc/testsuite/g++.dg/cpp0x/enum7.C (.../branches/gcc-4_4-branch)   (wersja 149530)
+@@ -0,0 +1,11 @@
++// PR c++/37816
++// { dg-options "-std=c++0x" }
++
++class A
++{
++  enum class Color { Red, Orange, Yellow, Green, Blue, Violet };
++  enum class Alert { Green, Yellow, Red };
++  static const Color x = Red; // { dg-error "" }
++  static const Color y = Color::Red;
++  static const Alert z = Alert::Red;
++};
 Index: gcc/testsuite/g++.dg/cpp0x/defaulted10.C
 ===================================================================
 --- gcc/testsuite/g++.dg/cpp0x/defaulted10.C   (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/cpp0x/defaulted10.C   (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/g++.dg/cpp0x/defaulted10.C   (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,14 @@
 +// PR c++/40381
 +// { dg-options "-std=gnu++0x" }
@@ -5637,7 +6102,7 @@ Index: gcc/testsuite/g++.dg/cpp0x/defaulted10.C
 Index: gcc/testsuite/g++.dg/cpp0x/initlist19.C
 ===================================================================
 --- gcc/testsuite/g++.dg/cpp0x/initlist19.C    (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/cpp0x/initlist19.C    (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/g++.dg/cpp0x/initlist19.C    (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,8 @@
 +// { dg-options "-std=c++0x" }
 +
@@ -5650,7 +6115,7 @@ Index: gcc/testsuite/g++.dg/cpp0x/initlist19.C
 Index: gcc/testsuite/g++.dg/eh/nested-try.C
 ===================================================================
 --- gcc/testsuite/g++.dg/eh/nested-try.C       (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/eh/nested-try.C       (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/g++.dg/eh/nested-try.C       (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,25 @@
 +// { dg-do compile }
 +// Nested try statements shadowing each other was crashing in EH edge redirection.
@@ -5680,7 +6145,7 @@ Index: gcc/testsuite/g++.dg/eh/nested-try.C
 Index: gcc/testsuite/g++.dg/torture/pr40460.C
 ===================================================================
 --- gcc/testsuite/g++.dg/torture/pr40460.C     (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/torture/pr40460.C     (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/g++.dg/torture/pr40460.C     (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,9 @@
 +/* { dg-do compile } */
 +
@@ -5694,7 +6159,7 @@ Index: gcc/testsuite/g++.dg/torture/pr40460.C
 Index: gcc/testsuite/g++.dg/torture/pr40389.C
 ===================================================================
 --- gcc/testsuite/g++.dg/torture/pr40389.C     (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/torture/pr40389.C     (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/g++.dg/torture/pr40389.C     (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,84 @@
 +/* { dg-do run } */
 +
@@ -5783,7 +6248,7 @@ Index: gcc/testsuite/g++.dg/torture/pr40389.C
 Index: gcc/testsuite/g++.dg/torture/pr40335.C
 ===================================================================
 --- gcc/testsuite/g++.dg/torture/pr40335.C     (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/torture/pr40335.C     (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/g++.dg/torture/pr40335.C     (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,16 @@
 +/* { dg-do run } */
 +
@@ -5804,7 +6269,7 @@ Index: gcc/testsuite/g++.dg/torture/pr40335.C
 Index: gcc/testsuite/g++.dg/torture/pr32950.C
 ===================================================================
 --- gcc/testsuite/g++.dg/torture/pr32950.C     (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/torture/pr32950.C     (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/g++.dg/torture/pr32950.C     (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,19 @@
 +/* { dg-do compile } */
 +
@@ -5828,7 +6293,7 @@ Index: gcc/testsuite/g++.dg/torture/pr32950.C
 Index: gcc/testsuite/g++.dg/torture/pr40492.C
 ===================================================================
 --- gcc/testsuite/g++.dg/torture/pr40492.C     (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/torture/pr40492.C     (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/g++.dg/torture/pr40492.C     (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,26 @@
 +typedef unsigned short ushort;
 +class QChar {
@@ -5858,8 +6323,8 @@ Index: gcc/testsuite/g++.dg/torture/pr40492.C
 +}
 Index: gcc/testsuite/g++.dg/torture/20070621-1.C
 ===================================================================
---- gcc/testsuite/g++.dg/torture/20070621-1.C  (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/testsuite/g++.dg/torture/20070621-1.C  (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/testsuite/g++.dg/torture/20070621-1.C  (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/testsuite/g++.dg/torture/20070621-1.C  (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -6,7 +6,7 @@
  
  */
@@ -5871,8 +6336,8 @@ Index: gcc/testsuite/g++.dg/torture/20070621-1.C
          enum {
 Index: gcc/testsuite/g++.dg/torture/pr34222.C
 ===================================================================
---- gcc/testsuite/g++.dg/torture/pr34222.C     (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/testsuite/g++.dg/torture/pr34222.C     (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/testsuite/g++.dg/torture/pr34222.C     (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/testsuite/g++.dg/torture/pr34222.C     (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -3,7 +3,7 @@
  namespace std __attribute__ ((__visibility__ ("default"))) {
      template<class _CharT>     struct char_traits;
@@ -5884,8 +6349,8 @@ Index: gcc/testsuite/g++.dg/torture/pr34222.C
      template<typename _CharT, typename _Traits = char_traits<_CharT> >     class basic_ifstream;
 Index: gcc/testsuite/g++.dg/torture/pr34850.C
 ===================================================================
---- gcc/testsuite/g++.dg/torture/pr34850.C     (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/testsuite/g++.dg/torture/pr34850.C     (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/testsuite/g++.dg/torture/pr34850.C     (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/testsuite/g++.dg/torture/pr34850.C     (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -5,7 +5,7 @@
  typedef unsigned int uint32_t;
  typedef uint8_t byte;
@@ -5897,8 +6362,8 @@ Index: gcc/testsuite/g++.dg/torture/pr34850.C
      extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__, __artificial__))
 Index: gcc/testsuite/g++.dg/pr37742.C
 ===================================================================
---- gcc/testsuite/g++.dg/pr37742.C     (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/testsuite/g++.dg/pr37742.C     (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/testsuite/g++.dg/pr37742.C     (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/testsuite/g++.dg/pr37742.C     (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1,6 +1,6 @@
  /* { dg-do compile } */
  
@@ -5907,10 +6372,27 @@ Index: gcc/testsuite/g++.dg/pr37742.C
  void*   __valarray_get_memory(size_t __n);
  int*__restrict__
  __valarray_get_storage(size_t __n)
+Index: gcc/testsuite/g++.dg/template/union2.C
+===================================================================
+--- gcc/testsuite/g++.dg/template/union2.C     (.../tags/gcc_4_4_0_release)    (wersja 0)
++++ gcc/testsuite/g++.dg/template/union2.C     (.../branches/gcc-4_4-branch)   (wersja 149530)
+@@ -0,0 +1,12 @@
++/* PR c++/40557 */
++/* { dg-do "compile" } */
++
++struct A
++{
++  typedef int X;
++};
++
++template<int> union B
++{
++  A::X x;
++};
 Index: gcc/testsuite/g++.dg/template/overload10.C
 ===================================================================
 --- gcc/testsuite/g++.dg/template/overload10.C (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/template/overload10.C (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/g++.dg/template/overload10.C (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,6 @@
 +// PR c++40342
 +
@@ -5921,7 +6403,7 @@ Index: gcc/testsuite/g++.dg/template/overload10.C
 Index: gcc/testsuite/g++.dg/template/typedef18.C
 ===================================================================
 --- gcc/testsuite/g++.dg/template/typedef18.C  (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/template/typedef18.C  (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/g++.dg/template/typedef18.C  (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,24 @@
 +// Contributed by Dodji Seketeli <dodji@redhat.com>
 +// Origin PR c++/40007
@@ -5950,7 +6432,7 @@ Index: gcc/testsuite/g++.dg/template/typedef18.C
 Index: gcc/testsuite/g++.dg/template/typedef19.C
 ===================================================================
 --- gcc/testsuite/g++.dg/template/typedef19.C  (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/template/typedef19.C  (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/g++.dg/template/typedef19.C  (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,21 @@
 +// Contributed by Dodji Seketeli <dodji@redhat.com>
 +// Origin PR c++/40007
@@ -5976,7 +6458,7 @@ Index: gcc/testsuite/g++.dg/template/typedef19.C
 Index: gcc/testsuite/g++.dg/template/error41.C
 ===================================================================
 --- gcc/testsuite/g++.dg/template/error41.C    (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/template/error41.C    (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/g++.dg/template/error41.C    (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,12 @@
 +// PR c++/40370
 +// { dg-do compile }
@@ -5993,7 +6475,7 @@ Index: gcc/testsuite/g++.dg/template/error41.C
 Index: gcc/testsuite/g++.dg/template/error42.C
 ===================================================================
 --- gcc/testsuite/g++.dg/template/error42.C    (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/template/error42.C    (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/g++.dg/template/error42.C    (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,20 @@
 +// PR c++/40372
 +// { dg-do compile }
@@ -6018,7 +6500,7 @@ Index: gcc/testsuite/g++.dg/template/error42.C
 Index: gcc/testsuite/g++.dg/template/canon-type-1.C
 ===================================================================
 --- gcc/testsuite/g++.dg/template/canon-type-1.C       (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/template/canon-type-1.C       (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/g++.dg/template/canon-type-1.C       (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,18 @@
 +// Contributed by Dodji Seketeli <dodji@redhat.com>
 +// Origin PR c++/39754
@@ -6041,7 +6523,7 @@ Index: gcc/testsuite/g++.dg/template/canon-type-1.C
 Index: gcc/testsuite/g++.dg/template/canon-type-2.C
 ===================================================================
 --- gcc/testsuite/g++.dg/template/canon-type-2.C       (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/template/canon-type-2.C       (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/g++.dg/template/canon-type-2.C       (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,18 @@
 +// Contributed by Dodji Seketeli <dodji@redhat.com>
 +// Origin PR c++/39754
@@ -6064,7 +6546,7 @@ Index: gcc/testsuite/g++.dg/template/canon-type-2.C
 Index: gcc/testsuite/g++.dg/template/canon-type-3.C
 ===================================================================
 --- gcc/testsuite/g++.dg/template/canon-type-3.C       (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/template/canon-type-3.C       (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/g++.dg/template/canon-type-3.C       (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,20 @@
 +// Contributed by Dodji Seketeli <dodji@redhat.com>
 +// Origin PR c++/39754
@@ -6086,10 +6568,25 @@ Index: gcc/testsuite/g++.dg/template/canon-type-3.C
 +} ;
 +E < int > e ;
 +
+Index: gcc/testsuite/g++.dg/template/defarg12.C
+===================================================================
+--- gcc/testsuite/g++.dg/template/defarg12.C   (.../tags/gcc_4_4_0_release)    (wersja 0)
++++ gcc/testsuite/g++.dg/template/defarg12.C   (.../branches/gcc-4_4-branch)   (wersja 149530)
+@@ -0,0 +1,10 @@
++// PR c++/35828
++// { dg-options "-std=c++0x" }
++
++template < typename > struct A ;
++template < template < typename > class = A >
++void test ()
++{
++        test ();
++}
++
 Index: gcc/testsuite/g++.dg/template/debug1.C
 ===================================================================
 --- gcc/testsuite/g++.dg/template/debug1.C     (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/template/debug1.C     (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/g++.dg/template/debug1.C     (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,18 @@
 +// PR c++/40274
 +// { dg-options "-g" }
@@ -6112,7 +6609,7 @@ Index: gcc/testsuite/g++.dg/template/debug1.C
 Index: gcc/testsuite/g++.dg/template/canon-type-4.C
 ===================================================================
 --- gcc/testsuite/g++.dg/template/canon-type-4.C       (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/template/canon-type-4.C       (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/g++.dg/template/canon-type-4.C       (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,22 @@
 +// Contributed by Dodji Seketeli <dodji@redhat.com>
 +// Origin PR c++/39754
@@ -6139,7 +6636,7 @@ Index: gcc/testsuite/g++.dg/template/canon-type-4.C
 Index: gcc/testsuite/g++.dg/template/canon-type-5.C
 ===================================================================
 --- gcc/testsuite/g++.dg/template/canon-type-5.C       (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/template/canon-type-5.C       (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/g++.dg/template/canon-type-5.C       (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,22 @@
 +// Contributed by Dodji Seketeli <dodji@redhat.com>
 +// Origin PR c++/39754
@@ -6166,7 +6663,7 @@ Index: gcc/testsuite/g++.dg/template/canon-type-5.C
 Index: gcc/testsuite/g++.dg/template/canon-type-6.C
 ===================================================================
 --- gcc/testsuite/g++.dg/template/canon-type-6.C       (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/template/canon-type-6.C       (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/g++.dg/template/canon-type-6.C       (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,22 @@
 +// Contributed by Dodji Seketeli <dodji@redhat.com>
 +// Origin PR c++/39754
@@ -6193,7 +6690,7 @@ Index: gcc/testsuite/g++.dg/template/canon-type-6.C
 Index: gcc/testsuite/g++.dg/template/typedef20.C
 ===================================================================
 --- gcc/testsuite/g++.dg/template/typedef20.C  (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/template/typedef20.C  (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/g++.dg/template/typedef20.C  (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,27 @@
 +// Contributed by Dodji Seketeli <dodji@redhat.com>
 +// Origin PR c++/40007
@@ -6225,7 +6722,7 @@ Index: gcc/testsuite/g++.dg/template/typedef20.C
 Index: gcc/testsuite/g++.dg/template/canon-type-7.C
 ===================================================================
 --- gcc/testsuite/g++.dg/template/canon-type-7.C       (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/template/canon-type-7.C       (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/g++.dg/template/canon-type-7.C       (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,21 @@
 +// Contributed by Dodji Seketeli <dodji@redhat.com>
 +// Origin PR c++/39754
@@ -6251,7 +6748,7 @@ Index: gcc/testsuite/g++.dg/template/canon-type-7.C
 Index: gcc/testsuite/g++.dg/template/call7.C
 ===================================================================
 --- gcc/testsuite/g++.dg/template/call7.C      (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/template/call7.C      (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/g++.dg/template/call7.C      (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,19 @@
 +// Contributed by Dodji Seketeli <dodji@redhat.com>
 +// Origin: PR c++/17395
@@ -6275,7 +6772,7 @@ Index: gcc/testsuite/g++.dg/template/call7.C
 Index: gcc/testsuite/g++.dg/template/dtor6.C
 ===================================================================
 --- gcc/testsuite/g++.dg/template/dtor6.C      (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/template/dtor6.C      (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/g++.dg/template/dtor6.C      (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,10 @@
 +// PR c++/40139
 +
@@ -6287,10 +6784,51 @@ Index: gcc/testsuite/g++.dg/template/dtor6.C
 +template<int N> int A<N>::i = { A::~A }; // { dg-error "" }
 +
 +template class A<0>;
+Index: gcc/testsuite/g++.dg/template/unify11.C
+===================================================================
+--- gcc/testsuite/g++.dg/template/unify11.C    (.../tags/gcc_4_4_0_release)    (wersja 0)
++++ gcc/testsuite/g++.dg/template/unify11.C    (.../branches/gcc-4_4-branch)   (wersja 149530)
+@@ -0,0 +1,36 @@
++// Contributed by Dodji Seketeli <dodji@redhat.com>
++// Origin: PR c++/40684
++// { dg-options "-std=c++0x" }
++
++struct A
++{
++};
++
++template <typename S, typename T, typename U, typename S::v = &S::v::s>
++typename S::A
++foo (S c, T t, U u)
++{
++}
++
++struct B
++{
++  struct C
++  {
++    template <typename U>
++    C (U t)
++    {
++      A a;
++      A b = foo (this, a, t); // { dg-error "no matching function" }
++    }
++  } c;
++  B () : c (A ())
++  {
++  }
++};
++
++int
++main ()
++{
++  B f;
++}
++
 Index: gcc/testsuite/g++.dg/template/dtor7.C
 ===================================================================
 --- gcc/testsuite/g++.dg/template/dtor7.C      (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/g++.dg/template/dtor7.C      (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/g++.dg/template/dtor7.C      (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,24 @@
 +// PR c++/40373
 +// { dg-compile }
@@ -6316,10 +6854,16 @@ Index: gcc/testsuite/g++.dg/template/dtor7.C
 +}
 +
 +// { dg-bogus "is ambiguous" "" { xfail *-*-* } 15 }
+
+Zmiany atrybutów dla: gcc/testsuite/g++.dg
+___________________________________________________________________
+Dodane: svn:mergeinfo
+   Połączono zmiany /trunk/gcc/testsuite/g++.dg:r148910,149223,149341,149351
+
 Index: gcc/testsuite/lib/gcc-dg.exp
 ===================================================================
---- gcc/testsuite/lib/gcc-dg.exp       (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/testsuite/lib/gcc-dg.exp       (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/testsuite/lib/gcc-dg.exp       (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/testsuite/lib/gcc-dg.exp       (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -186,7 +186,7 @@
      # Likewise, if we see ".text exceeds local store range" or
      # similar.
@@ -6331,8 +6875,8 @@ Index: gcc/testsuite/lib/gcc-dg.exp
      }
 Index: gcc/testsuite/lib/gcc-defs.exp
 ===================================================================
---- gcc/testsuite/lib/gcc-defs.exp     (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/testsuite/lib/gcc-defs.exp     (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/testsuite/lib/gcc-defs.exp     (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/testsuite/lib/gcc-defs.exp     (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -155,6 +155,10 @@
      if [regexp "(^|\n)\[^\n\]*: region \[^\n\]* is full" $output] {
        return "memory full"
@@ -6346,8 +6890,8 @@ Index: gcc/testsuite/lib/gcc-defs.exp
  
 Index: gcc/testsuite/lib/gfortran.exp
 ===================================================================
---- gcc/testsuite/lib/gfortran.exp     (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/testsuite/lib/gfortran.exp     (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/testsuite/lib/gfortran.exp     (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/testsuite/lib/gfortran.exp     (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -27,6 +27,7 @@
  load_lib gcc-defs.exp
  load_lib timeout.exp
@@ -6372,8 +6916,8 @@ Index: gcc/testsuite/lib/gfortran.exp
      verbose "gfortran is initialized" 3
 Index: gcc/testsuite/lib/target-supports.exp
 ===================================================================
---- gcc/testsuite/lib/target-supports.exp      (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/testsuite/lib/target-supports.exp      (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/testsuite/lib/target-supports.exp      (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/testsuite/lib/target-supports.exp      (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -466,6 +466,11 @@
        return 0
      }
@@ -6416,14 +6960,14 @@ Index: gcc/testsuite/lib/target-supports.exp
 Index: gcc/testsuite/objc.dg/pr28050.m
 ===================================================================
 --- gcc/testsuite/objc.dg/pr28050.m    (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/objc.dg/pr28050.m    (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/objc.dg/pr28050.m    (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,2 @@
 +/* { dg-do compile } */
 +int i = [0]; /* { dg-error "expected .:. before .\\]. token" } */
 Index: gcc/testsuite/gfortran.dg/data_value_1.f90
 ===================================================================
 --- gcc/testsuite/gfortran.dg/data_value_1.f90 (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/gfortran.dg/data_value_1.f90 (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/gfortran.dg/data_value_1.f90 (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,14 @@
 +! { dg-do compile }
 +! Test the fix for PR40402, in which it was not detected that X
@@ -6442,7 +6986,7 @@ Index: gcc/testsuite/gfortran.dg/data_value_1.f90
 Index: gcc/testsuite/gfortran.dg/pr39666-1.f90
 ===================================================================
 --- gcc/testsuite/gfortran.dg/pr39666-1.f90    (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/gfortran.dg/pr39666-1.f90    (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/gfortran.dg/pr39666-1.f90    (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,14 @@
 +! PR middle-end/39666
 +! { dg-do compile }
@@ -6460,8 +7004,8 @@ Index: gcc/testsuite/gfortran.dg/pr39666-1.f90
 +END FUNCTION
 Index: gcc/testsuite/gfortran.dg/nearest_1.f90
 ===================================================================
---- gcc/testsuite/gfortran.dg/nearest_1.f90    (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/testsuite/gfortran.dg/nearest_1.f90    (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/testsuite/gfortran.dg/nearest_1.f90    (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/testsuite/gfortran.dg/nearest_1.f90    (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1,6 +1,7 @@
  ! { dg-do run }
  ! { dg-options "-O0 -ffloat-store" }
@@ -6473,7 +7017,7 @@ Index: gcc/testsuite/gfortran.dg/nearest_1.f90
 Index: gcc/testsuite/gfortran.dg/generic_18.f90
 ===================================================================
 --- gcc/testsuite/gfortran.dg/generic_18.f90   (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/gfortran.dg/generic_18.f90   (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/gfortran.dg/generic_18.f90   (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,54 @@
 +! { dg-do compile }
 +! { dg-options "-fdump-tree-original" }
@@ -6531,8 +7075,8 @@ Index: gcc/testsuite/gfortran.dg/generic_18.f90
 +! { dg-final { cleanup-modules "SomeOptions" } }
 Index: gcc/testsuite/gfortran.dg/nearest_3.f90
 ===================================================================
---- gcc/testsuite/gfortran.dg/nearest_3.f90    (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/testsuite/gfortran.dg/nearest_3.f90    (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/testsuite/gfortran.dg/nearest_3.f90    (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/testsuite/gfortran.dg/nearest_3.f90    (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1,5 +1,6 @@
  ! { dg-do run }
  ! { dg-options "-pedantic-errors -mieee" { target alpha*-*-* sh*-*-* } } 
@@ -6540,10 +7084,39 @@ Index: gcc/testsuite/gfortran.dg/nearest_3.f90
  !
  ! PR fortran/34209
  !
+Index: gcc/testsuite/gfortran.dg/unit_1.f90
+===================================================================
+--- gcc/testsuite/gfortran.dg/unit_1.f90       (.../tags/gcc_4_4_0_release)    (wersja 0)
++++ gcc/testsuite/gfortran.dg/unit_1.f90       (.../branches/gcc-4_4-branch)   (wersja 149530)
+@@ -0,0 +1,24 @@
++! { dg-do run }
++! PR40638 Run Time Error: Unit number in I/O statement too large
++      program main
++      integer(kind=2) ::  lun, anum
++      integer(kind=1) ::  looney, bin
++      lun  = 12
++      anum = 5
++      looney = 42
++      bin = 23
++      open (lun, status='scratch')
++      write(lun,*) anum
++      anum = 0
++      rewind(lun)
++      read (lun, *) anum
++      if (anum.ne.5) call abort
++      open (looney, status='scratch')
++      write(looney,*)bin
++      bin = 0
++      rewind (looney)
++      read (looney,*)bin
++      if (bin.ne.23) call abort
++      close (lun)
++      close (looney)
++      end
 Index: gcc/testsuite/gfortran.dg/namelist_42.f90
 ===================================================================
---- gcc/testsuite/gfortran.dg/namelist_42.f90  (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/testsuite/gfortran.dg/namelist_42.f90  (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/testsuite/gfortran.dg/namelist_42.f90  (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/testsuite/gfortran.dg/namelist_42.f90  (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1,5 +1,6 @@
  ! { dg-do run { target fd_truncate } }
  ! { dg-options "-mieee" { target alpha*-*-* sh*-*-* } }
@@ -6553,8 +7126,8 @@ Index: gcc/testsuite/gfortran.dg/namelist_42.f90
  !
 Index: gcc/testsuite/gfortran.dg/module_nan.f90
 ===================================================================
---- gcc/testsuite/gfortran.dg/module_nan.f90   (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/testsuite/gfortran.dg/module_nan.f90   (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/testsuite/gfortran.dg/module_nan.f90   (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/testsuite/gfortran.dg/module_nan.f90   (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1,6 +1,7 @@
  ! { dg-do run }
  ! { dg-options "-fno-range-check" }
@@ -6565,8 +7138,8 @@ Index: gcc/testsuite/gfortran.dg/module_nan.f90
  !
 Index: gcc/testsuite/gfortran.dg/nan_2.f90
 ===================================================================
---- gcc/testsuite/gfortran.dg/nan_2.f90        (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/testsuite/gfortran.dg/nan_2.f90        (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/testsuite/gfortran.dg/nan_2.f90        (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/testsuite/gfortran.dg/nan_2.f90        (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1,6 +1,7 @@
  ! { dg-do run }
  ! { dg-options "-fno-range-check -pedantic" }
@@ -6577,8 +7150,8 @@ Index: gcc/testsuite/gfortran.dg/nan_2.f90
  !
 Index: gcc/testsuite/gfortran.dg/array_memset_2.f90
 ===================================================================
---- gcc/testsuite/gfortran.dg/array_memset_2.f90       (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/testsuite/gfortran.dg/array_memset_2.f90       (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/testsuite/gfortran.dg/array_memset_2.f90       (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/testsuite/gfortran.dg/array_memset_2.f90       (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -20,8 +20,8 @@
    data c /2*1.0/
  
@@ -6600,8 +7173,8 @@ Index: gcc/testsuite/gfortran.dg/array_memset_2.f90
  ! { dg-final { cleanup-modules "foo" } }
 Index: gcc/testsuite/gfortran.dg/init_flag_3.f90
 ===================================================================
---- gcc/testsuite/gfortran.dg/init_flag_3.f90  (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/testsuite/gfortran.dg/init_flag_3.f90  (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/testsuite/gfortran.dg/init_flag_3.f90  (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/testsuite/gfortran.dg/init_flag_3.f90  (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1,6 +1,7 @@
  ! { dg-do run }
  ! { dg-options "-finit-integer=-1 -finit-logical=false -finit-real=nan" }
@@ -6613,7 +7186,7 @@ Index: gcc/testsuite/gfortran.dg/init_flag_3.f90
 Index: gcc/testsuite/gfortran.dg/dependency_24.f90
 ===================================================================
 --- gcc/testsuite/gfortran.dg/dependency_24.f90        (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/gfortran.dg/dependency_24.f90        (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/gfortran.dg/dependency_24.f90        (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,82 @@
 +! { dg-do run }
 +! Check the fix for PR38863 comment #1, where defined assignment
@@ -6699,8 +7272,8 @@ Index: gcc/testsuite/gfortran.dg/dependency_24.f90
 +
 Index: gcc/testsuite/gfortran.dg/isnan_1.f90
 ===================================================================
---- gcc/testsuite/gfortran.dg/isnan_1.f90      (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/testsuite/gfortran.dg/isnan_1.f90      (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/testsuite/gfortran.dg/isnan_1.f90      (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/testsuite/gfortran.dg/isnan_1.f90      (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -2,6 +2,7 @@
  !
  ! { dg-do run }
@@ -6711,8 +7284,8 @@ Index: gcc/testsuite/gfortran.dg/isnan_1.f90
    real :: x
 Index: gcc/testsuite/gfortran.dg/nan_4.f90
 ===================================================================
---- gcc/testsuite/gfortran.dg/nan_4.f90        (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/testsuite/gfortran.dg/nan_4.f90        (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/testsuite/gfortran.dg/nan_4.f90        (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/testsuite/gfortran.dg/nan_4.f90        (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1,6 +1,7 @@
  ! { dg-do compile }
  ! { dg-options "-std=gnu" } 
@@ -6721,10 +7294,43 @@ Index: gcc/testsuite/gfortran.dg/nan_4.f90
  !
  ! PR fortran/34398.
  !
+Index: gcc/testsuite/gfortran.dg/alloc_comp_result_2.f90
+===================================================================
+--- gcc/testsuite/gfortran.dg/alloc_comp_result_2.f90  (.../tags/gcc_4_4_0_release)    (wersja 0)
++++ gcc/testsuite/gfortran.dg/alloc_comp_result_2.f90  (.../branches/gcc-4_4-branch)   (wersja 149530)
+@@ -0,0 +1,28 @@
++! { dg-do run }
++! Tests the fix for PR40440, in which gfortran tried to deallocate
++! the allocatable components of the actual argument of CALL SUB
++!
++! Contributed by Juergen Reuter <juergen.reuter@desy.de>
++! Reduced testcase from Tobias Burnus  <burnus@gcc.gnu.org> 
++!
++  implicit none
++  type t
++    integer, allocatable :: A(:)
++  end type t
++  type (t) :: arg
++  arg = t ([1,2,3])
++  call sub (func (arg))
++contains
++  function func (a)
++    type(t), pointer :: func
++    type(t), target :: a
++    integer, save :: i = 0
++    if (i /= 0) call abort ! multiple calls would cause this abort
++    i = i + 1
++    func => a
++  end function func
++  subroutine sub (a)
++    type(t), intent(IN), target :: a
++    if (any (a%A .ne. [1,2,3])) call abort
++  end subroutine sub
++end
 Index: gcc/testsuite/gfortran.dg/chmod_2.f90
 ===================================================================
---- gcc/testsuite/gfortran.dg/chmod_2.f90      (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/testsuite/gfortran.dg/chmod_2.f90      (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/testsuite/gfortran.dg/chmod_2.f90      (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/testsuite/gfortran.dg/chmod_2.f90      (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1,5 +1,6 @@
 -! { dg-do run { target { ! *-*-mingw* } } }
 +! { dg-do run { target { ! { *-*-mingw* *-*-cygwin* spu-*-* } } } }
@@ -6735,8 +7341,8 @@ Index: gcc/testsuite/gfortran.dg/chmod_2.f90
    integer :: i
 Index: gcc/testsuite/gfortran.dg/default_format_1.f90
 ===================================================================
---- gcc/testsuite/gfortran.dg/default_format_1.f90     (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/testsuite/gfortran.dg/default_format_1.f90     (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/testsuite/gfortran.dg/default_format_1.f90     (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/testsuite/gfortran.dg/default_format_1.f90     (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1,4 +1,4 @@
 -! { dg-do run }
 +! { dg-do run { xfail spu-*-*  } }
@@ -6745,8 +7351,8 @@ Index: gcc/testsuite/gfortran.dg/default_format_1.f90
  !
 Index: gcc/testsuite/gfortran.dg/int_conv_2.f90
 ===================================================================
---- gcc/testsuite/gfortran.dg/int_conv_2.f90   (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/testsuite/gfortran.dg/int_conv_2.f90   (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/testsuite/gfortran.dg/int_conv_2.f90   (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/testsuite/gfortran.dg/int_conv_2.f90   (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1,4 +1,5 @@
  ! { dg-do compile }
 +! { dg-skip-if "NaN not supported" { spu-*-* } { "*" } { "" } }
@@ -6755,8 +7361,8 @@ Index: gcc/testsuite/gfortran.dg/int_conv_2.f90
    implicit none
 Index: gcc/testsuite/gfortran.dg/open_errors.f90
 ===================================================================
---- gcc/testsuite/gfortran.dg/open_errors.f90  (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/testsuite/gfortran.dg/open_errors.f90  (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/testsuite/gfortran.dg/open_errors.f90  (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/testsuite/gfortran.dg/open_errors.f90  (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1,6 +1,7 @@
 -! { dg-do run { target { ! *-*-mingw* } } }
 +! { dg-do run { target { ! { *-*-mingw* *-*-cygwin* spu-*-* } } } }
@@ -6769,7 +7375,7 @@ Index: gcc/testsuite/gfortran.dg/open_errors.f90
 Index: gcc/testsuite/gfortran.dg/alloc_comp_assign_10.f90
 ===================================================================
 --- gcc/testsuite/gfortran.dg/alloc_comp_assign_10.f90 (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/gfortran.dg/alloc_comp_assign_10.f90 (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/gfortran.dg/alloc_comp_assign_10.f90 (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,61 @@
 +! { dg-do run }
 +!
@@ -6834,8 +7440,8 @@ Index: gcc/testsuite/gfortran.dg/alloc_comp_assign_10.f90
 +! { dg-final { cleanup-modules "test_struct" } }
 Index: gcc/testsuite/gfortran.dg/scalar_mask_2.f90
 ===================================================================
---- gcc/testsuite/gfortran.dg/scalar_mask_2.f90        (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/testsuite/gfortran.dg/scalar_mask_2.f90        (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/testsuite/gfortran.dg/scalar_mask_2.f90        (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/testsuite/gfortran.dg/scalar_mask_2.f90        (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1,4 +1,5 @@
 -! { dg-do run }
 +! { dg-do run { xfail spu-*-* } }
@@ -6845,8 +7451,8 @@ Index: gcc/testsuite/gfortran.dg/scalar_mask_2.f90
    real, dimension(2,2) :: a
 Index: gcc/testsuite/gfortran.dg/stat_2.f90
 ===================================================================
---- gcc/testsuite/gfortran.dg/stat_2.f90       (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/testsuite/gfortran.dg/stat_2.f90       (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/testsuite/gfortran.dg/stat_2.f90       (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/testsuite/gfortran.dg/stat_2.f90       (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1,5 +1,5 @@
  ! { dg-do run { target fd_truncate } }
 -! { dg-skip-if "" { *-*-mingw* } { "*" } { "" } }
@@ -6856,18 +7462,37 @@ Index: gcc/testsuite/gfortran.dg/stat_2.f90
    integer :: s1(13), r1, s2(13), r2, s3(13), r3
 Index: gcc/testsuite/gfortran.dg/pr20257.f90
 ===================================================================
---- gcc/testsuite/gfortran.dg/pr20257.f90      (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/testsuite/gfortran.dg/pr20257.f90      (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/testsuite/gfortran.dg/pr20257.f90      (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/testsuite/gfortran.dg/pr20257.f90      (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1,4 +1,5 @@
  ! { dg-do run { target fd_truncate } }
 +! { dg-skip-if "Too big for local store" { spu-*-* } { "*" } { "" } }
    integer,parameter :: n = 10000
    real(8) array(10000)
  
+Index: gcc/testsuite/gfortran.dg/maxloc_1.f90
+===================================================================
+--- gcc/testsuite/gfortran.dg/maxloc_1.f90     (.../tags/gcc_4_4_0_release)    (wersja 0)
++++ gcc/testsuite/gfortran.dg/maxloc_1.f90     (.../branches/gcc-4_4-branch)   (wersja 149530)
+@@ -0,0 +1,14 @@
++! { dg-do run }
++  integer :: a(3), n
++  a(1) = -huge(n)
++  a(2) = -huge(n)
++  a(3) = -huge(n)
++  a(1) = a(1) - 1
++  a(2) = a(2) - 1
++  a(3) = a(3) - 1
++  n = maxloc (a, dim = 1)
++  if (n .ne. 1) call abort
++  a(2) = -huge(n)
++  n = maxloc (a, dim = 1)
++  if (n .ne. 2) call abort
++end
 Index: gcc/testsuite/gfortran.dg/derived_pointer_recursion_2.f90
 ===================================================================
 --- gcc/testsuite/gfortran.dg/derived_pointer_recursion_2.f90  (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/gfortran.dg/derived_pointer_recursion_2.f90  (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/gfortran.dg/derived_pointer_recursion_2.f90  (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,48 @@
 +! { dg-do run }
 +!
@@ -6919,8 +7544,8 @@ Index: gcc/testsuite/gfortran.dg/derived_pointer_recursion_2.f90
 +
 Index: gcc/testsuite/gfortran.dg/default_format_denormal_1.f90
 ===================================================================
---- gcc/testsuite/gfortran.dg/default_format_denormal_1.f90    (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/testsuite/gfortran.dg/default_format_denormal_1.f90    (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/testsuite/gfortran.dg/default_format_denormal_1.f90    (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/testsuite/gfortran.dg/default_format_denormal_1.f90    (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1,4 +1,4 @@
 -! { dg-do run { xfail alpha*-*-* *-*-darwin[89]* *-*-freebsd* *-*-mingw* } }
 +! { dg-do run { xfail alpha*-*-* *-*-darwin[89]* *-*-freebsd* *-*-mingw* *-*-cygwin* spu-*-* } }
@@ -6930,7 +7555,7 @@ Index: gcc/testsuite/gfortran.dg/default_format_denormal_1.f90
 Index: gcc/testsuite/gfortran.dg/leadz_trailz_2.f90
 ===================================================================
 --- gcc/testsuite/gfortran.dg/leadz_trailz_2.f90       (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/gfortran.dg/leadz_trailz_2.f90       (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/gfortran.dg/leadz_trailz_2.f90       (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,36 @@
 +! { dg-do run }
 +! { dg-require-effective-target fortran_large_int }
@@ -6971,7 +7596,7 @@ Index: gcc/testsuite/gfortran.dg/leadz_trailz_2.f90
 Index: gcc/testsuite/gfortran.dg/pr39666-2.f90
 ===================================================================
 --- gcc/testsuite/gfortran.dg/pr39666-2.f90    (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/gfortran.dg/pr39666-2.f90    (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/gfortran.dg/pr39666-2.f90    (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,14 @@
 +! PR middle-end/39666
 +! { dg-do compile }
@@ -6989,8 +7614,8 @@ Index: gcc/testsuite/gfortran.dg/pr39666-2.f90
 +END FUNCTION
 Index: gcc/testsuite/gfortran.dg/private_type_2.f90
 ===================================================================
---- gcc/testsuite/gfortran.dg/private_type_2.f90       (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/testsuite/gfortran.dg/private_type_2.f90       (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/testsuite/gfortran.dg/private_type_2.f90       (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/testsuite/gfortran.dg/private_type_2.f90       (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1,8 +1,11 @@
  ! { dg-do compile }
 +! { dg-options "-std=f95" }
@@ -7006,7 +7631,7 @@ Index: gcc/testsuite/gfortran.dg/private_type_2.f90
 Index: gcc/testsuite/gfortran.dg/assumed_charlen_dummy.f90
 ===================================================================
 --- gcc/testsuite/gfortran.dg/assumed_charlen_dummy.f90        (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/gfortran.dg/assumed_charlen_dummy.f90        (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/gfortran.dg/assumed_charlen_dummy.f90        (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,10 @@
 +! { dg-do compile }
 +! Test the fix for PR fortran/39893.
@@ -7020,8 +7645,8 @@ Index: gcc/testsuite/gfortran.dg/assumed_charlen_dummy.f90
 +      END
 Index: gcc/testsuite/gfortran.dg/nan_1.f90
 ===================================================================
---- gcc/testsuite/gfortran.dg/nan_1.f90        (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/testsuite/gfortran.dg/nan_1.f90        (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/testsuite/gfortran.dg/nan_1.f90        (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/testsuite/gfortran.dg/nan_1.f90        (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -3,6 +3,7 @@
  !
  ! { dg-do run }
@@ -7030,10 +7655,32 @@ Index: gcc/testsuite/gfortran.dg/nan_1.f90
  !
  module aux2
    interface isnan
+Index: gcc/testsuite/gfortran.dg/pr40587.f
+===================================================================
+--- gcc/testsuite/gfortran.dg/pr40587.f        (.../tags/gcc_4_4_0_release)    (wersja 0)
++++ gcc/testsuite/gfortran.dg/pr40587.f        (.../branches/gcc-4_4-branch)   (wersja 149530)
+@@ -0,0 +1,17 @@
++C PR traget/40587
++C { dg-do compile }
++C { dg-options "-O2" }
++      subroutine TEST(i, r, result)
++      implicit none
++      integer i
++      REAL*8 r
++      REAL*8 result
++      REAL*8 r2
++      if(i.eq.0) then
++         r2 = r
++      else
++         call ERROR()
++      endif
++      result = r2
++      return
++      end
 Index: gcc/testsuite/gfortran.dg/gamma_5.f90
 ===================================================================
---- gcc/testsuite/gfortran.dg/gamma_5.f90      (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/testsuite/gfortran.dg/gamma_5.f90      (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/testsuite/gfortran.dg/gamma_5.f90      (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/testsuite/gfortran.dg/gamma_5.f90      (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -21,7 +21,7 @@
       xd = n + 0.5d0
       td = c(n)*sqrt(pi)
@@ -7045,8 +7692,8 @@ Index: gcc/testsuite/gfortran.dg/gamma_5.f90
    call tst_s(2.3, gamma(2.3))
 Index: gcc/testsuite/gfortran.dg/namelist_43.f90
 ===================================================================
---- gcc/testsuite/gfortran.dg/namelist_43.f90  (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/testsuite/gfortran.dg/namelist_43.f90  (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/testsuite/gfortran.dg/namelist_43.f90  (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/testsuite/gfortran.dg/namelist_43.f90  (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1,5 +1,6 @@
  ! { dg-do run { target fd_truncate } }
  ! { dg-options "-mieee" { target alpha*-*-* sh*-*-* } }
@@ -7056,8 +7703,8 @@ Index: gcc/testsuite/gfortran.dg/namelist_43.f90
  !
 Index: gcc/testsuite/gfortran.dg/transfer_simplify_1.f90
 ===================================================================
---- gcc/testsuite/gfortran.dg/transfer_simplify_1.f90  (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/testsuite/gfortran.dg/transfer_simplify_1.f90  (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/testsuite/gfortran.dg/transfer_simplify_1.f90  (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/testsuite/gfortran.dg/transfer_simplify_1.f90  (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1,5 +1,6 @@
  ! { dg-do run }
  ! { dg-options "-O2" }
@@ -7067,8 +7714,8 @@ Index: gcc/testsuite/gfortran.dg/transfer_simplify_1.f90
  ! (TRANSFER intrinsic).
 Index: gcc/testsuite/gfortran.dg/nan_3.f90
 ===================================================================
---- gcc/testsuite/gfortran.dg/nan_3.f90        (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/testsuite/gfortran.dg/nan_3.f90        (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/testsuite/gfortran.dg/nan_3.f90        (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/testsuite/gfortran.dg/nan_3.f90        (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1,6 +1,7 @@
  ! { dg-do run }
  ! { dg-options "-fno-range-check" }
@@ -7080,7 +7727,7 @@ Index: gcc/testsuite/gfortran.dg/nan_3.f90
 Index: gcc/testsuite/gfortran.dg/array_constructor_31.f90
 ===================================================================
 --- gcc/testsuite/gfortran.dg/array_constructor_31.f90 (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/gfortran.dg/array_constructor_31.f90 (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/gfortran.dg/array_constructor_31.f90 (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,10 @@
 +! { dg-do compile }
 +! Test the fix for pr40018 in which the elements in the array
@@ -7095,7 +7742,7 @@ Index: gcc/testsuite/gfortran.dg/array_constructor_31.f90
 Index: gcc/testsuite/gfortran.dg/backspace_11.f90
 ===================================================================
 --- gcc/testsuite/gfortran.dg/backspace_11.f90 (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/gfortran.dg/backspace_11.f90 (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/gfortran.dg/backspace_11.f90 (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,24 @@
 +! { dg-do run }
 +! PR 40334 backspace regression
@@ -7123,8 +7770,8 @@ Index: gcc/testsuite/gfortran.dg/backspace_11.f90
 +end program backspace_11
 Index: gcc/testsuite/gfortran.dg/chmod_1.f90
 ===================================================================
---- gcc/testsuite/gfortran.dg/chmod_1.f90      (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/testsuite/gfortran.dg/chmod_1.f90      (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/testsuite/gfortran.dg/chmod_1.f90      (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/testsuite/gfortran.dg/chmod_1.f90      (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1,5 +1,6 @@
 -! { dg-do run { target { ! *-*-mingw* } } }
 +! { dg-do run { target { ! { *-*-mingw* *-*-cygwin* spu-*-* } } } }
@@ -7135,8 +7782,8 @@ Index: gcc/testsuite/gfortran.dg/chmod_1.f90
    integer :: i
 Index: gcc/testsuite/gfortran.dg/integer_exponentiation_3.F90
 ===================================================================
---- gcc/testsuite/gfortran.dg/integer_exponentiation_3.F90     (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/testsuite/gfortran.dg/integer_exponentiation_3.F90     (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/testsuite/gfortran.dg/integer_exponentiation_3.F90     (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/testsuite/gfortran.dg/integer_exponentiation_3.F90     (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1,4 +1,5 @@
 -! { dg-do run }
 +! { dg-do run { xfail spu-*-* } }
@@ -7146,8 +7793,8 @@ Index: gcc/testsuite/gfortran.dg/integer_exponentiation_3.F90
    implicit none
 Index: gcc/testsuite/gfortran.dg/elemental_subroutine_1.f90
 ===================================================================
---- gcc/testsuite/gfortran.dg/elemental_subroutine_1.f90       (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/testsuite/gfortran.dg/elemental_subroutine_1.f90       (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/testsuite/gfortran.dg/elemental_subroutine_1.f90       (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/testsuite/gfortran.dg/elemental_subroutine_1.f90       (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -48,7 +48,7 @@
  ! Test an expression in the INTENT(IN) argument
    x = (/1.0, 2.0/)
@@ -7159,8 +7806,8 @@ Index: gcc/testsuite/gfortran.dg/elemental_subroutine_1.f90
  
 Index: gcc/testsuite/gfortran.dg/isnan_2.f90
 ===================================================================
---- gcc/testsuite/gfortran.dg/isnan_2.f90      (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/testsuite/gfortran.dg/isnan_2.f90      (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/testsuite/gfortran.dg/isnan_2.f90      (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/testsuite/gfortran.dg/isnan_2.f90      (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -3,6 +3,7 @@
  ! { dg-do run }
  ! { dg-options "-fno-range-check" }
@@ -7171,8 +7818,8 @@ Index: gcc/testsuite/gfortran.dg/isnan_2.f90
    character(len=1) :: s
 Index: gcc/testsuite/gfortran.dg/chmod_3.f90
 ===================================================================
---- gcc/testsuite/gfortran.dg/chmod_3.f90      (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/testsuite/gfortran.dg/chmod_3.f90      (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/testsuite/gfortran.dg/chmod_3.f90      (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/testsuite/gfortran.dg/chmod_3.f90      (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1,5 +1,6 @@
 -! { dg-do run { target { ! *-*-mingw* } } }
 +! { dg-do run { target { ! { *-*-mingw* *-*-cygwin* spu-*-* } } } }
@@ -7183,8 +7830,8 @@ Index: gcc/testsuite/gfortran.dg/chmod_3.f90
    integer :: i
 Index: gcc/testsuite/gfortran.dg/integer_exponentiation_5.F90
 ===================================================================
---- gcc/testsuite/gfortran.dg/integer_exponentiation_5.F90     (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/testsuite/gfortran.dg/integer_exponentiation_5.F90     (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/testsuite/gfortran.dg/integer_exponentiation_5.F90     (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/testsuite/gfortran.dg/integer_exponentiation_5.F90     (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1,4 +1,5 @@
 -! { dg-do run }
 +! { dg-do run { xfail spu-*-* } }
@@ -7194,8 +7841,8 @@ Index: gcc/testsuite/gfortran.dg/integer_exponentiation_5.F90
  module mod_check
 Index: gcc/testsuite/gfortran.dg/stat_1.f90
 ===================================================================
---- gcc/testsuite/gfortran.dg/stat_1.f90       (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/testsuite/gfortran.dg/stat_1.f90       (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/testsuite/gfortran.dg/stat_1.f90       (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/testsuite/gfortran.dg/stat_1.f90       (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1,5 +1,5 @@
  ! { dg-do run { target fd_truncate } }
 -! { dg-skip-if "" { *-*-mingw* } { "*" } { "" } }
@@ -7206,7 +7853,7 @@ Index: gcc/testsuite/gfortran.dg/stat_1.f90
 Index: gcc/testsuite/gfortran.dg/internal_write_1.f90
 ===================================================================
 --- gcc/testsuite/gfortran.dg/internal_write_1.f90     (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/gfortran.dg/internal_write_1.f90     (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/gfortran.dg/internal_write_1.f90     (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,9 @@
 +! { dg-do run }
 +! { dg-shouldfail "End of file" }
@@ -7219,8 +7866,8 @@ Index: gcc/testsuite/gfortran.dg/internal_write_1.f90
 +! { dg-output "Fortran runtime error: End of file" }
 Index: gcc/testsuite/gfortran.dg/real_const_3.f90
 ===================================================================
---- gcc/testsuite/gfortran.dg/real_const_3.f90 (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/testsuite/gfortran.dg/real_const_3.f90 (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/testsuite/gfortran.dg/real_const_3.f90 (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/testsuite/gfortran.dg/real_const_3.f90 (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1,6 +1,7 @@
  !{ dg-do run }
  !{ dg-options "-fno-range-check" }
@@ -7232,7 +7879,7 @@ Index: gcc/testsuite/gfortran.dg/real_const_3.f90
 Index: gcc/testsuite/gfortran.dg/private_type_13.f90
 ===================================================================
 --- gcc/testsuite/gfortran.dg/private_type_13.f90      (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/gfortran.dg/private_type_13.f90      (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/gfortran.dg/private_type_13.f90      (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,32 @@
 +! { dg-do compile }
 +! Test fix for F95 part of PR39800, in which the host association of the type 't1'
@@ -7269,7 +7916,7 @@ Index: gcc/testsuite/gfortran.dg/private_type_13.f90
 Index: gcc/testsuite/gfortran.dg/leadz_trailz_1.f90
 ===================================================================
 --- gcc/testsuite/gfortran.dg/leadz_trailz_1.f90       (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/testsuite/gfortran.dg/leadz_trailz_1.f90       (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/testsuite/gfortran.dg/leadz_trailz_1.f90       (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,133 @@
 +! { dg-do run }
 +
@@ -7406,18 +8053,62 @@ Index: gcc/testsuite/gfortran.dg/leadz_trailz_1.f90
 +end
 Index: gcc/testsuite/gfortran.dg/vect/pr39318.f90
 ===================================================================
---- gcc/testsuite/gfortran.dg/vect/pr39318.f90 (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/testsuite/gfortran.dg/vect/pr39318.f90 (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/testsuite/gfortran.dg/vect/pr39318.f90 (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/testsuite/gfortran.dg/vect/pr39318.f90 (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1,4 +1,4 @@
 -! { dg-do compile } 
 +! { dg-do compile { target fopenmp } } 
  ! { dg-options "-c -fopenmp -fexceptions -O2 -ftree-vectorize" } 
  
        subroutine adw_trajsp (F_u,i0,in,j0,jn)
+Index: gcc/testsuite/gfortran.dg/func_assign_2.f90
+===================================================================
+--- gcc/testsuite/gfortran.dg/func_assign_2.f90        (.../tags/gcc_4_4_0_release)    (wersja 0)
++++ gcc/testsuite/gfortran.dg/func_assign_2.f90        (.../branches/gcc-4_4-branch)   (wersja 149530)
+@@ -0,0 +1,33 @@
++! { dg-do run }
++! Test the fix for PR40551 in which the assignment
++! was not dealing correctly with non-contiguous lhs
++! references; eg. a(1,:)
++!
++! Reported by by Maciej Zwierzycki
++! at http://gcc.gnu.org/ml/fortran/2009-06/msg00254.html
++! and by Tobias Burnus <burnus@gcc.gnu.org> on Bugzilla
++!
++integer :: a(2,2)
++a = -42
++a(1,:) = func()
++if (any (reshape (a, [4]) /= [1, -42, 2, -42])) call abort 
++a = -42
++a(2,:) = func()
++if (any (reshape (a, [4]) /= [-42, 1, -42, 2])) call abort 
++a = -42
++a(:,1) = func()
++if (any (reshape (a, [4]) /= [1, 2, -42, -42])) call abort 
++a = -42
++a(:,2) = func()
++if (any (reshape (a, [4]) /= [-42, -42, 1, 2])) call abort 
++contains
++ function func()
++   integer :: func(2)
++   call sub(func)
++ end function func
++ subroutine sub(a)
++   integer :: a(2)
++   a = [1,2]
++ end subroutine
++end
++
+
+Zmiany atrybutów dla: gcc/testsuite/ChangeLog-2008
+___________________________________________________________________
+Zmienione: svn:mergeinfo
+   Połączono zmiany /trunk/gcc/testsuite/ChangeLog-2008:r149341,149351
+
 Index: gcc/cp/typeck.c
 ===================================================================
---- gcc/cp/typeck.c    (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/cp/typeck.c    (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/cp/typeck.c    (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/cp/typeck.c    (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -260,6 +260,19 @@
    enum tree_code code2 = TREE_CODE (t2);
    tree attributes;
@@ -7510,8 +8201,8 @@ Index: gcc/cp/typeck.c
            rhs = convert (lhstype, rhs);
 Index: gcc/cp/class.c
 ===================================================================
---- gcc/cp/class.c     (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/cp/class.c     (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/cp/class.c     (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/cp/class.c     (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -6158,7 +6158,7 @@
  
        fn = TREE_PURPOSE (matches);
@@ -7523,8 +8214,8 @@ Index: gcc/cp/class.c
        if (match)
 Index: gcc/cp/decl.c
 ===================================================================
---- gcc/cp/decl.c      (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/cp/decl.c      (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/cp/decl.c      (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/cp/decl.c      (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -929,6 +929,17 @@
        tree p1 = TYPE_ARG_TYPES (f1);
        tree p2 = TYPE_ARG_TYPES (f2);
@@ -7554,10 +8245,37 @@ Index: gcc/cp/decl.c
        {
          type = TREE_TYPE (decl) = do_auto_deduction (type, init, auto_node);
          if (type == error_mark_node)
+@@ -11001,7 +11014,7 @@
+           TYPE_UNSIGNED (enumtype) = TYPE_UNSIGNED (underlying_type);
+           ENUM_UNDERLYING_TYPE (enumtype) = underlying_type;
+         }
+-      else
++      else if (!dependent_type_p (underlying_type))
+         error ("underlying type %<%T%> of %<%T%> must be an integral type", 
+                underlying_type, enumtype);
+     }
+@@ -11047,6 +11060,8 @@
+       TREE_TYPE (TREE_VALUE (values)) = enumtype;
+       if (at_function_scope_p ())
+       add_stmt (build_min (TAG_DEFN, enumtype));
++      if (SCOPED_ENUM_P (enumtype))
++      finish_scope ();
+       return;
+     }
+@@ -11362,7 +11377,7 @@
+   TREE_READONLY (decl) = 1;
+   DECL_INITIAL (decl) = value;
+-  if (context && context == current_class_type)
++  if (context && context == current_class_type && !SCOPED_ENUM_P (enumtype))
+     /* In something like `struct S { enum E { i = 7 }; };' we put `i'
+        on the TYPE_FIELDS list for `S'.  (That's so that you can say
+        things like `S::i' later.)  */
 Index: gcc/cp/call.c
 ===================================================================
---- gcc/cp/call.c      (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/cp/call.c      (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/cp/call.c      (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/cp/call.c      (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -240,7 +240,7 @@
        return false;
      }
@@ -7672,10 +8390,29 @@ Index: gcc/cp/call.c
        if (type_unknown_p (expr))
        expr = instantiate_type (totype, expr, complain);
        /* Convert a constant to its underlying value, unless we are
+Index: gcc/cp/error.c
+===================================================================
+--- gcc/cp/error.c     (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/cp/error.c     (.../branches/gcc-4_4-branch)   (wersja 149530)
+@@ -2458,7 +2458,7 @@
+                 while (block && TREE_CODE (block) == BLOCK)
+                   block = BLOCK_SUPERCONTEXT (block);
+-                if (TREE_CODE (block) == FUNCTION_DECL)
++                if (block && TREE_CODE (block) == FUNCTION_DECL)
+                   fndecl = block;
+                 abstract_origin = NULL;
+               }
+
+Zmiany atrybutów dla: gcc/cp/ChangeLog-2007
+___________________________________________________________________
+Zmienione: svn:mergeinfo
+   Połączono zmiany /trunk/gcc/cp/ChangeLog-2007:r149341,149351
+
 Index: gcc/cp/cvt.c
 ===================================================================
---- gcc/cp/cvt.c       (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/cp/cvt.c       (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/cp/cvt.c       (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/cp/cvt.c       (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -760,8 +760,15 @@
      }
  
@@ -7694,11 +8431,63 @@ Index: gcc/cp/cvt.c
    return error_mark_node;
  }
  
+
+Zmiany atrybutów dla: gcc/cp/ChangeLog-2008
+___________________________________________________________________
+Zmienione: svn:mergeinfo
+   Połączono zmiany /trunk/gcc/cp/ChangeLog-2008:r149341,149351
+
+Index: gcc/cp/tree.c
+===================================================================
+--- gcc/cp/tree.c      (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/cp/tree.c      (.../branches/gcc-4_4-branch)   (wersja 149530)
+@@ -1880,8 +1880,7 @@
+     case PARM_DECL:
+       /* For comparing uses of parameters in late-specified return types
+        with an out-of-class definition of the function.  */
+-      if (same_type_p (TREE_TYPE (t1), TREE_TYPE (t2))
+-        && parm_index (t1) == parm_index (t2))
++      if (same_type_p (TREE_TYPE (t1), TREE_TYPE (t2)))
+       return true;
+       else
+       return false;
 Index: gcc/cp/ChangeLog
 ===================================================================
---- gcc/cp/ChangeLog   (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/cp/ChangeLog   (.../branches/gcc-4_4-branch)   (wersja 149126)
-@@ -1,3 +1,105 @@
+--- gcc/cp/ChangeLog   (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/cp/ChangeLog   (.../branches/gcc-4_4-branch)   (wersja 149530)
+@@ -1,3 +1,137 @@
++2009-07-10  Jakub Jelinek  <jakub@redhat.com>
++
++      PR c++/40502
++      * error.c (cp_print_error_function): Check for NULL block.
++
++2009-07-09  Dodji Seketeli  <dodji@redhat.com>
++
++      PR c++/40684
++      * pt.c (type_unification_real): Use tsubst_template_arg instead
++      of tsubst to substitute default template arguments.
++
++2009-07-07  Jason Merrill  <jason@redhat.com>
++
++      PR c++/35828
++      * pt.c (tsubst_decl): Don't abort if we didn't change anything
++      in a TEMPLATE_DECL's args.
++
++      PR c++/37816
++      * decl.c (build_enumerator): Don't add enumerators for a
++      scoped enum to the enclosing class.
++
++      PR c++/40639
++      * decl.c (start_enum): Allow dependent underlying type.
++
++      PR c++/40633
++      * decl.c (finish_enum): Finish scope even in a template.
++
++2009-07-04  Jason Merrill  <jason@redhat.com>
++
++      PR c++/40619
++      * tree.c (cp_tree_equal) [PARM_DECL]: Don't check parm index.
++
 +2009-06-30  Jason Merrill  <jason@redhat.com>
 +
 +      PR c++/40595
@@ -7806,8 +8595,8 @@ Index: gcc/cp/ChangeLog
        * GCC 4.4.0 released.
 Index: gcc/cp/pt.c
 ===================================================================
---- gcc/cp/pt.c        (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/cp/pt.c        (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/cp/pt.c        (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/cp/pt.c        (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -7597,8 +7597,15 @@
       and return a PACK_EXPANSION_*. The caller will need to deal with
       that.  */
@@ -7826,7 +8615,32 @@ Index: gcc/cp/pt.c
  
    /* We could not find any argument packs that work.  */
    if (len < 0)
-@@ -9144,6 +9151,14 @@
+@@ -8052,8 +8059,7 @@
+     case TEMPLATE_DECL:
+       {
+       /* We can get here when processing a member function template,
+-         member class template, and template template parameter of
+-         a template class.  */
++         member class template, or template template parameter.  */
+       tree decl = DECL_TEMPLATE_RESULT (t);
+       tree spec;
+       tree tmpl_args;
+@@ -8096,10 +8102,10 @@
+       if (full_args == error_mark_node)
+         return error_mark_node;
+-      /* tsubst_template_args doesn't copy the vector if
+-         nothing changed.  But, *something* should have
+-         changed.  */
+-      gcc_assert (full_args != tmpl_args);
++      /* If this is a default template template argument,
++         tsubst might not have changed anything.  */
++      if (full_args == tmpl_args)
++        return t;
+       spec = retrieve_specialization (t, full_args,
+                                       /*class_specializations_p=*/true);
+@@ -9144,6 +9150,14 @@
  
        max = tsubst_expr (omax, args, complain, in_decl,
                           /*integral_constant_expression_p=*/false);
@@ -7841,7 +8655,7 @@ Index: gcc/cp/pt.c
        max = fold_decl_constant_value (max);
  
        /* If we're in a partial instantiation, preserve the magic NOP_EXPR
-@@ -9974,11 +9989,15 @@
+@@ -9974,11 +9988,15 @@
  
        if (r == NULL)
        {
@@ -7858,6 +8672,18 @@ Index: gcc/cp/pt.c
          /* Give it the template pattern as its context; its true context
             hasn't been instantiated yet and this is good enough for
             mangling.  */
+@@ -12582,8 +12600,9 @@
+            to explicitly check cxx_dialect here.  */
+           if (TREE_PURPOSE (TREE_VEC_ELT (tparms, i)))
+             {
+-              tree arg = tsubst (TREE_PURPOSE (TREE_VEC_ELT (tparms, i)), 
+-                                 targs, tf_none, NULL_TREE);
++              tree arg = tsubst_template_arg
++                              (TREE_PURPOSE (TREE_VEC_ELT (tparms, i)),
++                               targs, tf_none, NULL_TREE);
+               if (arg == error_mark_node)
+                 return 1;
+               else
 @@ -13532,6 +13551,13 @@
          && !template_parameter_pack_p (parm))
        return 1;
@@ -7874,8 +8700,8 @@ Index: gcc/cp/pt.c
  
 Index: gcc/cp/semantics.c
 ===================================================================
---- gcc/cp/semantics.c (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/cp/semantics.c (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/cp/semantics.c (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/cp/semantics.c (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -2838,16 +2838,16 @@
                                                     done, address_p,
                                                     template_p,
@@ -7905,8 +8731,8 @@ Index: gcc/cp/semantics.c
                decl = convert_from_reference (decl);
 Index: gcc/cp/decl2.c
 ===================================================================
---- gcc/cp/decl2.c     (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/cp/decl2.c     (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/cp/decl2.c     (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/cp/decl2.c     (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -3809,6 +3809,7 @@
      {
        error ("deleted function %q+D", decl);
@@ -7917,8 +8743,8 @@ Index: gcc/cp/decl2.c
    if (skip_evaluation)
 Index: gcc/cp/parser.c
 ===================================================================
---- gcc/cp/parser.c    (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/cp/parser.c    (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/cp/parser.c    (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/cp/parser.c    (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -10477,6 +10477,12 @@
           argument pack. */
        if (cp_lexer_next_token_is (parser->lexer, CPP_ELLIPSIS))
@@ -7981,8 +8807,8 @@ Index: gcc/cp/parser.c
    return groktypename (&type_specifier_seq, abstract_declarator,
 Index: gcc/tree-ssa-ccp.c
 ===================================================================
---- gcc/tree-ssa-ccp.c (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/tree-ssa-ccp.c (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/tree-ssa-ccp.c (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/tree-ssa-ccp.c (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1290,7 +1290,9 @@
        if (TREE_CODE (base) == SSA_NAME
            && (value = get_value (base))
@@ -7996,8 +8822,8 @@ Index: gcc/tree-ssa-ccp.c
        }
 Index: gcc/dojump.c
 ===================================================================
---- gcc/dojump.c       (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/dojump.c       (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/dojump.c       (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/dojump.c       (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -141,7 +141,8 @@
      }
  
@@ -8024,9 +8850,29 @@ Index: gcc/dojump.c
                }
 Index: gcc/dbxout.c
 ===================================================================
---- gcc/dbxout.c       (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/dbxout.c       (.../branches/gcc-4_4-branch)   (wersja 149126)
-@@ -3593,7 +3593,7 @@
+--- gcc/dbxout.c       (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/dbxout.c       (.../branches/gcc-4_4-branch)   (wersja 149530)
+@@ -2761,10 +2761,16 @@
+       }
+     case PARM_DECL:
+-      /* Parm decls go in their own separate chains
+-       and are output by dbxout_reg_parms and dbxout_parms.  */
+-      gcc_unreachable ();
++      if (DECL_HAS_VALUE_EXPR_P (decl))
++      decl = DECL_VALUE_EXPR (decl);
++      /* PARM_DECLs go in their own separate chain and are output by
++       dbxout_reg_parms and dbxout_parms, except for those that are
++       disguised VAR_DECLs like Out parameters in Ada.  */
++      gcc_assert (TREE_CODE (decl) == VAR_DECL);
++
++      /* ... fall through ...  */
++
+     case RESULT_DECL:
+     case VAR_DECL:
+       /* Don't mention a variable that is external.
+@@ -3593,7 +3599,7 @@
    while (block)
      {
        /* Ignore blocks never expanded or otherwise marked as real.  */
@@ -8037,8 +8883,8 @@ Index: gcc/dbxout.c
          int blocknum = BLOCK_NUMBER (block);
 Index: gcc/ira-int.h
 ===================================================================
---- gcc/ira-int.h      (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/ira-int.h      (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/ira-int.h      (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/ira-int.h      (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -730,21 +730,24 @@
  extern HARD_REG_SET ira_reg_mode_hard_regset
                      [FIRST_PSEUDO_REGISTER][NUM_MACHINE_MODES];
@@ -8105,8 +8951,8 @@ Index: gcc/ira-int.h
    /* The number of the current element in IRA_ALLOCNOS.  */
 Index: gcc/cse.c
 ===================================================================
---- gcc/cse.c  (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/cse.c  (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/cse.c  (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/cse.c  (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1,6 +1,6 @@
  /* Common subexpression elimination for GNU compiler.
     Copyright (C) 1987, 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998
@@ -8126,8 +8972,8 @@ Index: gcc/cse.c
      return 0;
 Index: gcc/ira-color.c
 ===================================================================
---- gcc/ira-color.c    (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/ira-color.c    (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/ira-color.c    (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/ira-color.c    (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -285,8 +285,8 @@
            continue;
  
@@ -8188,8 +9034,8 @@ Index: gcc/ira-color.c
         cover_class, ALLOCNO_COVER_CLASS_COST (a),
 Index: gcc/ipa-utils.h
 ===================================================================
---- gcc/ipa-utils.h    (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/ipa-utils.h    (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/ipa-utils.h    (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/ipa-utils.h    (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -23,9 +23,6 @@
  #include "tree.h"
  #include "cgraph.h"
@@ -8202,8 +9048,8 @@ Index: gcc/ipa-utils.h
    int low_link;
 Index: gcc/dwarf2out.c
 ===================================================================
---- gcc/dwarf2out.c    (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/dwarf2out.c    (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/dwarf2out.c    (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/dwarf2out.c    (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -694,14 +694,15 @@
    *p = cfi;
  }
@@ -8379,8 +9225,8 @@ Index: gcc/dwarf2out.c
        return;
 Index: gcc/expr.c
 ===================================================================
---- gcc/expr.c (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/expr.c (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/expr.c (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/expr.c (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -8257,7 +8257,8 @@
        /* If neither mode is BLKmode, and both modes are the same size
         then we can use gen_lowpart.  */
@@ -8394,7 +9240,7 @@ Index: gcc/expr.c
 Index: gcc/ada/system-aix64.ads
 ===================================================================
 --- gcc/ada/system-aix64.ads   (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/ada/system-aix64.ads   (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/ada/system-aix64.ads   (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,155 @@
 +------------------------------------------------------------------------------
 +--                                                                          --
@@ -8553,8 +9399,8 @@ Index: gcc/ada/system-aix64.ads
 +end System;
 Index: gcc/ada/ChangeLog
 ===================================================================
---- gcc/ada/ChangeLog  (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/ada/ChangeLog  (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/ada/ChangeLog  (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/ada/ChangeLog  (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1,3 +1,26 @@
 +2009-06-30  Eric Botcazou  <ebotcazou@adacore.com>
 +
@@ -52291,8 +53137,8 @@ Index: gcc/ada/ChangeLog
 +notice and this notice are preserved.
 Index: gcc/ada/gcc-interface/utils.c
 ===================================================================
---- gcc/ada/gcc-interface/utils.c      (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/ada/gcc-interface/utils.c      (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/ada/gcc-interface/utils.c      (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/ada/gcc-interface/utils.c      (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1570,6 +1570,15 @@
    TREE_STATIC (var_decl)
      = !extern_flag && (public_flag || static_flag || global_bindings_p ());
@@ -52311,8 +53157,8 @@ Index: gcc/ada/gcc-interface/utils.c
  
 Index: gcc/ada/gcc-interface/Makefile.in
 ===================================================================
---- gcc/ada/gcc-interface/Makefile.in  (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/ada/gcc-interface/Makefile.in  (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/ada/gcc-interface/Makefile.in  (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/ada/gcc-interface/Makefile.in  (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1103,7 +1103,7 @@
  endif
  
@@ -52351,8 +53197,8 @@ Index: gcc/ada/gcc-interface/Makefile.in
  
 Index: gcc/ada/gcc-interface/utils2.c
 ===================================================================
---- gcc/ada/gcc-interface/utils2.c     (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/ada/gcc-interface/utils2.c     (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/ada/gcc-interface/utils2.c     (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/ada/gcc-interface/utils2.c     (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -6,7 +6,7 @@
   *                                                                          *
   *                          C Implementation File                           *
@@ -52424,7 +53270,7 @@ Index: gcc/ada/gcc-interface/utils2.c
 Index: gcc/ada/ChangeLog-2001
 ===================================================================
 --- gcc/ada/ChangeLog-2001     (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/ada/ChangeLog-2001     (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/ada/ChangeLog-2001     (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,2239 @@
 +2001-12-23  Richard Henderson  <rth@redhat.com>
 +
@@ -54668,7 +55514,7 @@ Index: gcc/ada/ChangeLog-2001
 Index: gcc/ada/ChangeLog-2002
 ===================================================================
 --- gcc/ada/ChangeLog-2002     (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/ada/ChangeLog-2002     (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/ada/ChangeLog-2002     (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,986 @@
 +2002-12-28  Joseph S. Myers  <jsm@polyomino.org.uk>
 +
@@ -55659,7 +56505,7 @@ Index: gcc/ada/ChangeLog-2002
 Index: gcc/ada/ChangeLog-2003
 ===================================================================
 --- gcc/ada/ChangeLog-2003     (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/ada/ChangeLog-2003     (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/ada/ChangeLog-2003     (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,3021 @@
 +2003-12-23  Kelley Cook  <kcook@gcc.gnu.org>
 +
@@ -58685,7 +59531,7 @@ Index: gcc/ada/ChangeLog-2003
 Index: gcc/ada/ChangeLog-2004
 ===================================================================
 --- gcc/ada/ChangeLog-2004     (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/ada/ChangeLog-2004     (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/ada/ChangeLog-2004     (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,8347 @@
 +2004-12-30  Sohail Somani  <sohail@sohailsomani.com>
 +
@@ -67037,7 +67883,7 @@ Index: gcc/ada/ChangeLog-2004
 Index: gcc/ada/ChangeLog-2005
 ===================================================================
 --- gcc/ada/ChangeLog-2005     (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/ada/ChangeLog-2005     (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/ada/ChangeLog-2005     (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,8014 @@
 +2005-12-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
 +
@@ -75056,7 +75902,7 @@ Index: gcc/ada/ChangeLog-2005
 Index: gcc/ada/ChangeLog-2006
 ===================================================================
 --- gcc/ada/ChangeLog-2006     (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/ada/ChangeLog-2006     (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/ada/ChangeLog-2006     (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,4462 @@
 +2006-12-07  Geoffrey Keating  <geoffk@apple.com>
 +
@@ -79523,7 +80369,7 @@ Index: gcc/ada/ChangeLog-2006
 Index: gcc/ada/ChangeLog-2007
 ===================================================================
 --- gcc/ada/ChangeLog-2007     (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/ada/ChangeLog-2007     (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/ada/ChangeLog-2007     (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,9221 @@
 +2007-12-27  Samuel Tardieu  <sam@rfc1149.net>
 +
@@ -88749,7 +89595,7 @@ Index: gcc/ada/ChangeLog-2007
 Index: gcc/ada/ChangeLog-2008
 ===================================================================
 --- gcc/ada/ChangeLog-2008     (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ gcc/ada/ChangeLog-2008     (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ gcc/ada/ChangeLog-2008     (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,7464 @@
 +2008-12-09  Jakub Jelinek  <jakub@redhat.com>
 +
@@ -96217,8 +97063,8 @@ Index: gcc/ada/ChangeLog-2008
 +notice and this notice are preserved.
 Index: gcc/dse.c
 ===================================================================
---- gcc/dse.c  (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/dse.c  (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/dse.c  (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/dse.c  (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -223,7 +223,7 @@
    /* This canonized mem.  */
    rtx mem;
@@ -96390,8 +97236,8 @@ Index: gcc/dse.c
                        bitmap_ior_into (kill, group->group_kill);
 Index: gcc/fortran/interface.c
 ===================================================================
---- gcc/fortran/interface.c    (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/fortran/interface.c    (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/fortran/interface.c    (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/fortran/interface.c    (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -2502,6 +2502,7 @@
  gfc_search_interface (gfc_interface *intr, int sub_flag,
                      gfc_actual_arglist **ap)
@@ -96424,8 +97270,8 @@ Index: gcc/fortran/interface.c
  
 Index: gcc/fortran/trans-expr.c
 ===================================================================
---- gcc/fortran/trans-expr.c   (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/fortran/trans-expr.c   (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/fortran/trans-expr.c   (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/fortran/trans-expr.c   (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1526,48 +1526,6 @@
  }
  
@@ -96475,7 +97321,15 @@ Index: gcc/fortran/trans-expr.c
  /* Initialize MAPPING.  */
  
  void
-@@ -2782,7 +2740,18 @@
+@@ -2765,6 +2723,7 @@
+        dealt with in trans-array.c(gfc_conv_array_parameter).  */
+       if (e && e->ts.type == BT_DERIVED
+           && e->ts.derived->attr.alloc_comp
++          && !(e->symtree && e->symtree->n.sym->attr.pointer)
+           && (e->expr_type != EXPR_VARIABLE && !e->rank))
+         {
+         int parm_rank;
+@@ -2782,7 +2741,18 @@
              break;
            }
  
@@ -96494,7 +97348,26 @@ Index: gcc/fortran/trans-expr.c
          gfc_add_expr_to_block (&se->post, tmp);
          }
  
-@@ -4430,11 +4399,14 @@
+@@ -4286,6 +4256,7 @@
+   gfc_ss *ss;
+   gfc_ref * ref;
+   bool seen_array_ref;
++  bool c = false;
+   /* The caller has already checked rank>0 and expr_type == EXPR_FUNCTION.  */
+   if (expr2->value.function.isym && !gfc_is_intrinsic_libcall (expr2))
+@@ -4296,6 +4267,10 @@
+       && expr2->value.function.esym->attr.elemental)
+     return NULL;
++  /* Fail if rhs is not FULL or a contiguous section.  */
++  if (expr1->ref && !(gfc_full_array_ref_p (expr1->ref, &c) || c))
++    return NULL;
++
+   /* Fail if EXPR1 can't be expressed as a descriptor.  */
+   if (gfc_ref_needs_temporary_p (expr1->ref))
+     return NULL;
+@@ -4430,11 +4405,14 @@
    len = fold_build2 (MULT_EXPR, gfc_array_index_type, len,
                     fold_convert (gfc_array_index_type, tmp));
  
@@ -96513,10 +97386,19 @@ Index: gcc/fortran/trans-expr.c
    len = fold_convert (size_type_node, len);
  
    /* Construct call to __builtin_memset.  */
+@@ -4749,7 +4727,7 @@
+   if (expr->rank < 1 || !expr->ref || expr->ref->next)
+     return false;
+-  if (!gfc_full_array_ref_p (expr->ref))
++  if (!gfc_full_array_ref_p (expr->ref, NULL))
+     return false;
+   /* Next check that it's of a simple enough type.  */
 Index: gcc/fortran/trans-array.c
 ===================================================================
---- gcc/fortran/trans-array.c  (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/fortran/trans-array.c  (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/fortran/trans-array.c  (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/fortran/trans-array.c  (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1246,10 +1246,11 @@
                  gfc_init_se (&se, NULL);
                  gfc_conv_constant (&se, p->expr);
@@ -96542,11 +97424,51 @@ Index: gcc/fortran/trans-array.c
        se.expr = gfc_build_addr_expr (gfc_get_pchar_type (c->expr->ts.kind),
                                       se.expr);
        list = tree_cons (build_int_cst (gfc_array_index_type, nelem),
+@@ -4819,7 +4822,7 @@
+       else if (se->direct_byref)
+       full = 0;
+       else
+-      full = gfc_full_array_ref_p (info->ref);
++      full = gfc_full_array_ref_p (info->ref, NULL);
+       if (full)
+       {
 Index: gcc/fortran/ChangeLog
 ===================================================================
---- gcc/fortran/ChangeLog      (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/fortran/ChangeLog      (.../branches/gcc-4_4-branch)   (wersja 149126)
-@@ -1,3 +1,106 @@
+--- gcc/fortran/ChangeLog      (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/fortran/ChangeLog      (.../branches/gcc-4_4-branch)   (wersja 149530)
+@@ -1,3 +1,137 @@
++2009-07-09  Paul Thomas  <pault@gcc.gnu.org>
++
++      PR fortran/40440
++      * trans-expr.c (gfc_conv_procedure_call): Do not deallocate
++      allocatable components if the argument is a pointer.
++
++2009-07-05  Paul Thomas  <pault@gcc.gnu.org>
++
++      PR fortran/40551
++      * dependency.h : Add second bool* argument to prototype of
++      gfc_full_array_ref_p.
++      * dependency.c (gfc_full_array_ref_p): If second argument is
++      present, return true if last dimension of reference is an
++      element or has unity stride.
++      * trans-array.c : Add NULL second argument to references to
++      gfc_full_array_ref_p.
++      * trans-expr.c : The same, except for;
++      (gfc_trans_arrayfunc_assign): Return fail if lhs reference
++      is not a full array or a contiguous section.
++
++2009-07-04  Jakub Jelinek  <jakub@redhat.com>
++
++      * trans-intrinsic.c (gfc_conv_intrinsic_minmaxloc): For integer
++      maxloc initialize limit to -huge-1 rather than just -huge.
++
++2009-07-03  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
++
++      PR fortran/40638
++      * trans-io.c (set_parameter_value): Don't build un-necessary run-time
++      checks for units of KIND less than 4.
++
 +2009-06-29  Paul Thomas  <pault@gcc.gnu.org>
 +
 +      PR fortran/40443
@@ -96655,8 +97577,8 @@ Index: gcc/fortran/ChangeLog
        * GCC 4.4.0 released.
 Index: gcc/fortran/data.c
 ===================================================================
---- gcc/fortran/data.c (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/fortran/data.c (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/fortran/data.c (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/fortran/data.c (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -416,7 +416,11 @@
      }
  
@@ -96672,8 +97594,8 @@ Index: gcc/fortran/data.c
        /* Overwriting an existing initializer is non-standard but usually only
 Index: gcc/fortran/trans-stmt.c
 ===================================================================
---- gcc/fortran/trans-stmt.c   (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/fortran/trans-stmt.c   (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/fortran/trans-stmt.c   (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/fortran/trans-stmt.c   (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -270,9 +270,11 @@
          gfc_conv_expr_descriptor (&parmse, e, gfc_walk_expr (e));
          gfc_add_block_to_block (&se->pre, &parmse.pre);
@@ -96806,8 +97728,8 @@ Index: gcc/fortran/trans-stmt.c
                  }
 Index: gcc/fortran/trans-stmt.h
 ===================================================================
---- gcc/fortran/trans-stmt.h   (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/fortran/trans-stmt.h   (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/fortran/trans-stmt.h   (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/fortran/trans-stmt.h   (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -39,7 +39,7 @@
  tree gfc_trans_entry (gfc_code *);
  tree gfc_trans_pause (gfc_code *);
@@ -96819,8 +97741,8 @@ Index: gcc/fortran/trans-stmt.h
  tree gfc_trans_arithmetic_if (gfc_code *);
 Index: gcc/fortran/module.c
 ===================================================================
---- gcc/fortran/module.c       (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/fortran/module.c       (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/fortran/module.c       (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/fortran/module.c       (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -4738,7 +4738,7 @@
    if ((file = fopen (filename, "r")) == NULL)
      return -1;
@@ -96846,8 +97768,8 @@ Index: gcc/fortran/module.c
        fclose (file);
 Index: gcc/fortran/trans.c
 ===================================================================
---- gcc/fortran/trans.c        (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/fortran/trans.c        (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/fortran/trans.c        (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/fortran/trans.c        (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1109,12 +1109,14 @@
            if (code->resolved_isym
                && code->resolved_isym->id == GFC_ISYM_MVBITS)
@@ -96867,8 +97789,8 @@ Index: gcc/fortran/trans.c
        case EXEC_RETURN:
 Index: gcc/fortran/trans-types.c
 ===================================================================
---- gcc/fortran/trans-types.c  (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/fortran/trans-types.c  (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/fortran/trans-types.c  (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/fortran/trans-types.c  (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -595,7 +595,7 @@
    return make_signed_type (mode_precision);
  }
@@ -96880,8 +97802,8 @@ Index: gcc/fortran/trans-types.c
    if (size == CHAR_TYPE_SIZE)
 Index: gcc/fortran/trans.h
 ===================================================================
---- gcc/fortran/trans.h        (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/fortran/trans.h        (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/fortran/trans.h        (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/fortran/trans.h        (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -310,9 +310,6 @@
  /* Does an intrinsic map directly to an external library call.  */
  int gfc_is_intrinsic_libcall (gfc_expr *);
@@ -96903,8 +97825,8 @@ Index: gcc/fortran/trans.h
  extern GTY(()) tree gfor_fndecl_sc_kind;
 Index: gcc/fortran/trans-types.h
 ===================================================================
---- gcc/fortran/trans-types.h  (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/fortran/trans-types.h  (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/fortran/trans-types.h  (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/fortran/trans-types.h  (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -68,6 +68,7 @@
  
  tree gfc_type_for_size (unsigned, int);
@@ -96915,8 +97837,8 @@ Index: gcc/fortran/trans-types.h
  tree gfc_get_array_type_bounds (tree, int, tree *, tree *, int,
 Index: gcc/fortran/resolve.c
 ===================================================================
---- gcc/fortran/resolve.c      (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/fortran/resolve.c      (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/fortran/resolve.c      (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/fortran/resolve.c      (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -82,7 +82,19 @@
    return formal_arg_flag;
  }
@@ -96992,8 +97914,8 @@ Index: gcc/fortran/resolve.c
  
 Index: gcc/fortran/f95-lang.c
 ===================================================================
---- gcc/fortran/f95-lang.c     (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/fortran/f95-lang.c     (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/fortran/f95-lang.c     (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/fortran/f95-lang.c     (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -917,12 +917,12 @@
    gfc_define_builtin ("__builtin_fmodf", mfunc_float[1], 
                      BUILT_IN_FMODF, "fmodf", true);
@@ -97013,10 +97935,23 @@ Index: gcc/fortran/f95-lang.c
  
    /* lround{f,,l} and llround{f,,l} */
    type = tree_cons (NULL_TREE, float_type_node, void_list_node);
+Index: gcc/fortran/trans-io.c
+===================================================================
+--- gcc/fortran/trans-io.c     (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/fortran/trans-io.c     (.../branches/gcc-4_4-branch)   (wersja 149530)
+@@ -471,7 +471,7 @@
+   gfc_conv_expr_val (&se, e);
+   /* If we're storing a UNIT number, we need to check it first.  */
+-  if (type == IOPARM_common_unit && e->ts.kind != 4)
++  if (type == IOPARM_common_unit && e->ts.kind > 4)
+     {
+       tree cond, max;
+       int i;
 Index: gcc/fortran/trans-decl.c
 ===================================================================
---- gcc/fortran/trans-decl.c   (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/fortran/trans-decl.c   (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/fortran/trans-decl.c   (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/fortran/trans-decl.c   (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -141,6 +141,8 @@
  tree gfor_fndecl_size0;
  tree gfor_fndecl_size1;
@@ -97046,10 +97981,128 @@ Index: gcc/fortran/trans-decl.c
  }
  
  
+Index: gcc/fortran/dependency.c
+===================================================================
+--- gcc/fortran/dependency.c   (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/fortran/dependency.c   (.../branches/gcc-4_4-branch)   (wersja 149530)
+@@ -1186,17 +1186,28 @@
+ /* Determine if an array ref, usually an array section specifies the
+-   entire array.  */
++   entire array.  In addition, if the second, pointer argument is
++   provided, the function will return true if the reference is
++   contiguous; eg. (:, 1) gives true but (1,:) gives false.  */
+ bool
+-gfc_full_array_ref_p (gfc_ref *ref)
++gfc_full_array_ref_p (gfc_ref *ref, bool *contiguous)
+ {
+   int i;
++  bool lbound_OK = true;
++  bool ubound_OK = true;
++  if (contiguous)
++    *contiguous = false;
++
+   if (ref->type != REF_ARRAY)
+     return false;
+   if (ref->u.ar.type == AR_FULL)
+-    return true;
++    {
++      if (contiguous)
++      *contiguous = true;
++      return true;
++    }
+   if (ref->u.ar.type != AR_SECTION)
+     return false;
+   if (ref->next)
+@@ -1209,6 +1220,10 @@
+        the correct element.  */
+       if (ref->u.ar.dimen_type[i] == DIMEN_ELEMENT)
+       {
++        /* This is a contiguous reference.  */
++        if (contiguous)
++          *contiguous = (i + 1 == ref->u.ar.dimen);
++
+         if (!ref->u.ar.as
+             || !ref->u.ar.as->lower[i]
+             || !ref->u.ar.as->upper[i]
+@@ -1228,17 +1243,24 @@
+             || !ref->u.ar.as->lower[i]
+             || gfc_dep_compare_expr (ref->u.ar.start[i],
+                                      ref->u.ar.as->lower[i])))
+-      return false;
++      lbound_OK = false;
+       /* Check the upper bound.  */
+       if (ref->u.ar.end[i]
+         && (!ref->u.ar.as
+             || !ref->u.ar.as->upper[i]
+             || gfc_dep_compare_expr (ref->u.ar.end[i],
+                                      ref->u.ar.as->upper[i])))
+-      return false;
++      ubound_OK = false;
+       /* Check the stride.  */
+       if (ref->u.ar.stride[i] && !gfc_expr_is_one (ref->u.ar.stride[i], 0))
+       return false;
++
++      /* This is a contiguous reference.  */
++      if (contiguous)
++      *contiguous = (i + 1 == ref->u.ar.dimen);
++
++      if (!lbound_OK || !ubound_OK)
++      return false;
+     }
+   return true;
+ }
+@@ -1284,11 +1306,11 @@
+         if (lref->u.ar.dimen != rref->u.ar.dimen)
+           {
+             if (lref->u.ar.type == AR_FULL)
+-              fin_dep = gfc_full_array_ref_p (rref) ? GFC_DEP_EQUAL
+-                                                    : GFC_DEP_OVERLAP;
++              fin_dep = gfc_full_array_ref_p (rref, NULL) ? GFC_DEP_EQUAL
++                                                          : GFC_DEP_OVERLAP;
+             else if (rref->u.ar.type == AR_FULL)
+-              fin_dep = gfc_full_array_ref_p (lref) ? GFC_DEP_EQUAL
+-                                                    : GFC_DEP_OVERLAP;
++              fin_dep = gfc_full_array_ref_p (lref, NULL) ? GFC_DEP_EQUAL
++                                                          : GFC_DEP_OVERLAP;
+             else
+               return 1;
+             break;
+Index: gcc/fortran/dependency.h
+===================================================================
+--- gcc/fortran/dependency.h   (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/fortran/dependency.h   (.../branches/gcc-4_4-branch)   (wersja 149530)
+@@ -33,7 +33,7 @@
+ /*********************** Functions prototypes **************************/
+ bool gfc_ref_needs_temporary_p (gfc_ref *);
+-bool gfc_full_array_ref_p (gfc_ref *);
++bool gfc_full_array_ref_p (gfc_ref *, bool *);
+ gfc_expr *gfc_get_noncopying_intrinsic_argument (gfc_expr *);
+ int gfc_check_fncall_dependency (gfc_expr *, sym_intent, gfc_symbol *,
+                                gfc_actual_arglist *, gfc_dep_check);
 Index: gcc/fortran/trans-intrinsic.c
 ===================================================================
---- gcc/fortran/trans-intrinsic.c      (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/fortran/trans-intrinsic.c      (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/fortran/trans-intrinsic.c      (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/fortran/trans-intrinsic.c      (.../branches/gcc-4_4-branch)   (wersja 149530)
+@@ -2181,12 +2181,12 @@
+      possible value is HUGE in both cases.  */
+   if (op == GT_EXPR)
+     tmp = fold_build1 (NEGATE_EXPR, TREE_TYPE (tmp), tmp);
+-  gfc_add_modify (&se->pre, limit, tmp);
+-
+   if (op == GT_EXPR && expr->ts.type == BT_INTEGER)
+     tmp = fold_build2 (MINUS_EXPR, TREE_TYPE (tmp), tmp,
+                      build_int_cst (type, 1));
++  gfc_add_modify (&se->pre, limit, tmp);
++
+   /* Initialize the scalarizer.  */
+   gfc_init_loopinfo (&loop);
+   gfc_add_ss_to_loop (&loop, arrayss);
 @@ -2707,53 +2707,51 @@
    tree leadz;
    tree bit_size;
@@ -97260,8 +98313,8 @@ Index: gcc/fortran/trans-intrinsic.c
                              fold_convert (type, args[0]), tmp);
 Index: gcc/fortran/simplify.c
 ===================================================================
---- gcc/fortran/simplify.c     (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/fortran/simplify.c     (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/fortran/simplify.c     (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/fortran/simplify.c     (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -2410,10 +2410,13 @@
    bs = gfc_integer_kinds[i].bit_size;
    if (mpz_cmp_si (e->value.integer, 0) == 0)
@@ -97279,8 +98332,8 @@ Index: gcc/fortran/simplify.c
    return result;
 Index: gcc/ira-lives.c
 ===================================================================
---- gcc/ira-lives.c    (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/ira-lives.c    (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/ira-lives.c    (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/ira-lives.c    (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -782,10 +782,11 @@
                  [ira_class_hard_regs[cl][0]]) >= 0
              && reg_class_size[cl] <= (unsigned) CLASS_MAX_NREGS (cl, mode))
@@ -97299,15 +98352,54 @@ Index: gcc/ira-lives.c
              ALLOCNO_CONFLICT_HARD_REG_COSTS (operand_a)
 Index: gcc/BASE-VER
 ===================================================================
---- gcc/BASE-VER       (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/BASE-VER       (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/BASE-VER       (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/BASE-VER       (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1 +1 @@
 -4.4.0
 +4.4.1
+Index: gcc/function.c
+===================================================================
+--- gcc/function.c     (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/function.c     (.../branches/gcc-4_4-branch)   (wersja 149530)
+@@ -2977,9 +2977,17 @@
+                                         TYPE_UNSIGNED (TREE_TYPE (parm)));
+       if (data->stack_parm)
+-      /* ??? This may need a big-endian conversion on sparc64.  */
+-      data->stack_parm
+-        = adjust_address (data->stack_parm, data->nominal_mode, 0);
++      {
++        int offset = subreg_lowpart_offset (data->nominal_mode,
++                                            GET_MODE (data->stack_parm));
++        /* ??? This may need a big-endian conversion on sparc64.  */
++        data->stack_parm
++          = adjust_address (data->stack_parm, data->nominal_mode, 0);
++        if (offset && MEM_OFFSET (data->stack_parm))
++          set_mem_offset (data->stack_parm,
++                          plus_constant (MEM_OFFSET (data->stack_parm),
++                                         offset));
++      }
+     }
+   if (data->entry_parm != data->stack_parm)
+@@ -3139,8 +3147,12 @@
+         {
+           unsigned int align = FUNCTION_ARG_BOUNDARY (data.promoted_mode,
+                                                     data.passed_type);
++        align = MINIMUM_ALIGNMENT (data.passed_type, data.promoted_mode,
++                                   align);
+         if (TYPE_ALIGN (data.nominal_type) > align)
+-          align = TYPE_ALIGN (data.passed_type);
++          align = MINIMUM_ALIGNMENT (data.nominal_type,
++                                     TYPE_MODE (data.nominal_type),
++                                     TYPE_ALIGN (data.nominal_type));
+         if (crtl->stack_alignment_estimated < align)
+           {
+             gcc_assert (!crtl->stack_realign_processed);
 Index: gcc/ira-emit.c
 ===================================================================
---- gcc/ira-emit.c     (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/ira-emit.c     (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/ira-emit.c     (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/ira-emit.c     (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -812,7 +812,8 @@
        }
        else
@@ -97320,8 +98412,8 @@ Index: gcc/ira-emit.c
        ira_overall_cost += cost;
 Index: gcc/gcse.c
 ===================================================================
---- gcc/gcse.c (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/gcse.c (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/gcse.c (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/gcse.c (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1,7 +1,7 @@
  /* Global common subexpression elimination/Partial redundancy elimination
     and global constant/copy propagation for GNU compiler.
@@ -97342,8 +98434,8 @@ Index: gcc/gcse.c
                          SET_BIT (bmap[bb_index], indx);
 Index: gcc/alias.c
 ===================================================================
---- gcc/alias.c        (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/alias.c        (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/alias.c        (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/alias.c        (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1438,15 +1438,16 @@
          return x;
        return 0;
@@ -97393,10 +98485,16 @@ Index: gcc/alias.c
  
    if (! base_alias_check (x_addr, mem_addr, GET_MODE (x), mem_mode))
      return 0;
+
+Zmiany atrybutów dla: gcc/ChangeLog-2008
+___________________________________________________________________
+Zmienione: svn:mergeinfo
+   Połączono zmiany /trunk/gcc/ChangeLog-2008:r149341,149351
+
 Index: gcc/tree-vect-analyze.c
 ===================================================================
---- gcc/tree-vect-analyze.c    (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/tree-vect-analyze.c    (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/tree-vect-analyze.c    (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/tree-vect-analyze.c    (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -199,6 +199,15 @@
              print_gimple_stmt (vect_dump, stmt, 0, TDF_SLIM);
            }
@@ -97445,8 +98543,8 @@ Index: gcc/tree-vect-analyze.c
              {
 Index: gcc/gimplify.c
 ===================================================================
---- gcc/gimplify.c     (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/gimplify.c     (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/gimplify.c     (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/gimplify.c     (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1628,21 +1628,64 @@
        }
        len = i;
@@ -97521,10 +98619,45 @@ Index: gcc/gimplify.c
        gimple_switch = gimple_build_switch_vec (SWITCH_COND (switch_expr), 
                                                 default_case, labels);
        gimplify_seq_add_stmt (pre_p, gimple_switch);
+Index: gcc/emit-rtl.c
+===================================================================
+--- gcc/emit-rtl.c     (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/emit-rtl.c     (.../branches/gcc-4_4-branch)   (wersja 149530)
+@@ -869,7 +869,11 @@
+   if (SUPPORTS_STACK_ALIGNMENT 
+       && crtl->stack_alignment_estimated < align
+       && !crtl->stack_realign_processed)
+-    crtl->stack_alignment_estimated = align;
++    {
++      unsigned int min_align = MINIMUM_ALIGNMENT (NULL, mode, align);
++      if (crtl->stack_alignment_estimated < min_align)
++      crtl->stack_alignment_estimated = min_align;
++    }
+   if (generating_concat_p
+       && (GET_MODE_CLASS (mode) == MODE_COMPLEX_FLOAT
+Index: gcc/cfgexpand.c
+===================================================================
+--- gcc/cfgexpand.c    (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/cfgexpand.c    (.../branches/gcc-4_4-branch)   (wersja 149530)
+@@ -1076,9 +1076,11 @@
+        variables, which won't be on stack, we collect alignment of
+        type and ignore user specified alignment.  */
+       if (TREE_STATIC (var) || DECL_EXTERNAL (var))
+-      align = TYPE_ALIGN (TREE_TYPE (var));
++      align = MINIMUM_ALIGNMENT (TREE_TYPE (var),
++                                 TYPE_MODE (TREE_TYPE (var)),
++                                 TYPE_ALIGN (TREE_TYPE (var)));
+       else
+-      align = DECL_ALIGN (var);
++      align = MINIMUM_ALIGNMENT (var, DECL_MODE (var), DECL_ALIGN (var));
+       if (crtl->stack_alignment_estimated < align)
+         {
 Index: gcc/cselib.c
 ===================================================================
---- gcc/cselib.c       (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/cselib.c       (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/cselib.c       (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/cselib.c       (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1,6 +1,6 @@
  /* Common subexpression elimination library for GNU compiler.
     Copyright (C) 1987, 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
@@ -97544,8 +98677,8 @@ Index: gcc/cselib.c
              num_mems++;
 Index: gcc/tree-ssa-live.c
 ===================================================================
---- gcc/tree-ssa-live.c        (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/tree-ssa-live.c        (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/tree-ssa-live.c        (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/tree-ssa-live.c        (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -582,7 +582,25 @@
     /* For terse debug info we can eliminate info on unused variables.  */
     else if (debug_info_level == DINFO_LEVEL_NONE
@@ -97617,8 +98750,8 @@ Index: gcc/tree-ssa-live.c
    if (dump_file && (dump_flags & TDF_DETAILS))
 Index: gcc/po/exgettext
 ===================================================================
---- gcc/po/exgettext   (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/po/exgettext   (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/po/exgettext   (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/po/exgettext   (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -83,7 +83,7 @@
  echo "scanning for keywords and %e strings..." >&2
  
@@ -97630,8 +98763,8 @@ Index: gcc/po/exgettext
          do  eval echo $dir$glob
 Index: gcc/po/ChangeLog
 ===================================================================
---- gcc/po/ChangeLog   (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/po/ChangeLog   (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/po/ChangeLog   (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/po/ChangeLog   (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1,3 +1,12 @@
 +2009-04-22  Joseph Myers  <joseph@codesourcery.com>
 +
@@ -97647,8 +98780,8 @@ Index: gcc/po/ChangeLog
        * GCC 4.4.0 released.
 Index: gcc/po/gcc.pot
 ===================================================================
---- gcc/po/gcc.pot     (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/po/gcc.pot     (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/po/gcc.pot     (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/po/gcc.pot     (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -8,7 +8,7 @@
  msgstr ""
  "Project-Id-Version: PACKAGE VERSION\n"
@@ -108893,8 +110026,8 @@ Index: gcc/po/gcc.pot
 +msgstr ""
 Index: gcc/tree-ssa-forwprop.c
 ===================================================================
---- gcc/tree-ssa-forwprop.c    (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/tree-ssa-forwprop.c    (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/tree-ssa-forwprop.c    (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/tree-ssa-forwprop.c    (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -683,6 +683,7 @@
    tree *rhsp, *lhsp;
    gimple use_stmt = gsi_stmt (*use_stmt_gsi);
@@ -108968,10 +110101,31 @@ Index: gcc/tree-ssa-forwprop.c
         }
     }
  
+Index: gcc/ira.c
+===================================================================
+--- gcc/ira.c  (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/ira.c  (.../branches/gcc-4_4-branch)   (wersja 149530)
+@@ -2794,14 +2794,14 @@
+       CLEAR_REG_SET (live_relevant_regs);
+       memset (live_subregs_used, 0, max_regno * sizeof (int));
+       
+-      EXECUTE_IF_SET_IN_BITMAP (df_get_live_out (bb), 0, i, bi)
++      EXECUTE_IF_SET_IN_BITMAP (DF_LR_OUT (bb), 0, i, bi)
+       {
+         if (i >= FIRST_PSEUDO_REGISTER)
+           break;
+         bitmap_set_bit (live_relevant_regs, i);
+       }
+-      EXECUTE_IF_SET_IN_BITMAP (df_get_live_out (bb),
++      EXECUTE_IF_SET_IN_BITMAP (DF_LR_OUT (bb),
+                               FIRST_PSEUDO_REGISTER, i, bi)
+       {
+         if (pseudo_for_reload_consideration_p (i))
 Index: gcc/ira-costs.c
 ===================================================================
---- gcc/ira-costs.c    (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/ira-costs.c    (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/ira-costs.c    (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/ira-costs.c    (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -138,9 +138,6 @@
    sri.extra_cost = 0;
    secondary_class = targetm.secondary_reload (to_p, x, rclass, mode, &sri);
@@ -109112,8 +110266,8 @@ Index: gcc/ira-costs.c
    ira_free (total_costs);
 Index: gcc/rtl.h
 ===================================================================
---- gcc/rtl.h  (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/rtl.h  (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/rtl.h  (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/rtl.h  (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -2282,7 +2282,7 @@
  extern int true_dependence (const_rtx, enum machine_mode, const_rtx, bool (*)(const_rtx, bool));
  extern rtx get_addr (rtx);
@@ -109125,8 +110279,8 @@ Index: gcc/rtl.h
  extern int output_dependence (const_rtx, const_rtx);
 Index: gcc/tree-inline.c
 ===================================================================
---- gcc/tree-inline.c  (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/tree-inline.c  (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/tree-inline.c  (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/tree-inline.c  (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -501,7 +501,7 @@
              && (var_ann (old_var) || !gimple_in_ssa_p (cfun)))
            cfun->local_decls = tree_cons (NULL_TREE, old_var,
@@ -109147,8 +110301,8 @@ Index: gcc/tree-inline.c
            VEC_safe_push (tree, gc, *nonlocalized_list, origin_var);
 Index: gcc/tree-ssa-phiprop.c
 ===================================================================
---- gcc/tree-ssa-phiprop.c     (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/tree-ssa-phiprop.c     (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/tree-ssa-phiprop.c     (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/tree-ssa-phiprop.c     (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -119,8 +119,7 @@
        FOR_EACH_IMM_USE_STMT (use_stmt, ui2, vuse)
        {
@@ -109161,8 +110315,8 @@ Index: gcc/tree-ssa-phiprop.c
            {
 Index: gcc/resource.c
 ===================================================================
---- gcc/resource.c     (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/resource.c     (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/resource.c     (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/resource.c     (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -135,8 +135,6 @@
  static int
  find_basic_block (rtx insn, int search_limit)
@@ -109289,8 +110443,8 @@ Index: gcc/resource.c
  /* Clear any hashed information that we have stored for INSN.  */
 Index: gcc/tree-vect-generic.c
 ===================================================================
---- gcc/tree-vect-generic.c    (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/tree-vect-generic.c    (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/tree-vect-generic.c    (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/tree-vect-generic.c    (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -481,8 +481,10 @@
        tree vector_compute_type
          = type_for_widest_vector_mode (TYPE_MODE (TREE_TYPE (type)), op,
@@ -109306,8 +110460,8 @@ Index: gcc/tree-vect-generic.c
    /* If we are breaking a BLKmode vector into smaller pieces,
 Index: gcc/emutls.c
 ===================================================================
---- gcc/emutls.c       (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/emutls.c       (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/emutls.c       (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/emutls.c       (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -155,23 +155,23 @@
    if (__builtin_expect (arr == NULL, 0))
      {
@@ -109339,8 +110493,8 @@ Index: gcc/emutls.c
      }
 Index: gcc/reg-stack.c
 ===================================================================
---- gcc/reg-stack.c    (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/reg-stack.c    (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/reg-stack.c    (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/reg-stack.c    (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1371,21 +1371,23 @@
  
            if (pat != PATTERN (insn))
@@ -109378,8 +110532,8 @@ Index: gcc/reg-stack.c
            else
 Index: gcc/Makefile.in
 ===================================================================
---- gcc/Makefile.in    (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/Makefile.in    (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/Makefile.in    (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/Makefile.in    (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -2785,7 +2785,8 @@
     value-prof.h $(TREE_INLINE_H) $(TARGET_H)
  cfgrtl.o : cfgrtl.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
@@ -109392,8 +110546,8 @@ Index: gcc/Makefile.in
  cfganal.o : cfganal.c $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(RTL_H) \
 Index: gcc/gimple.h
 ===================================================================
---- gcc/gimple.h       (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/gimple.h       (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/gimple.h       (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/gimple.h       (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1394,36 +1394,7 @@
    return (gimple_has_ops (g)) ? (bool) g->gsbase.modified : false;
  }
@@ -109487,10 +110641,25 @@ Index: gcc/gimple.h
  /* Return a new iterator pointing to GIMPLE_SEQ's first statement.  */
  
  static inline gimple_stmt_iterator
+Index: gcc/tree-cfg.c
+===================================================================
+--- gcc/tree-cfg.c     (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/tree-cfg.c     (.../branches/gcc-4_4-branch)   (wersja 149530)
+@@ -4923,6 +4923,10 @@
+ static bool
+ gimple_can_duplicate_bb_p (const_basic_block bb ATTRIBUTE_UNUSED)
+ {
++  gimple_seq_node last = gimple_seq_last (bb_seq (bb));
++  /* We cannot duplicate GIMPLE_RESXs due to expander limitations.  */
++  if (last && gimple_code (last->stmt) == GIMPLE_RESX)
++    return false;
+   return true;
+ }
 Index: gcc/c-parser.c
 ===================================================================
---- gcc/c-parser.c     (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/c-parser.c     (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/c-parser.c     (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/c-parser.c     (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -6564,7 +6564,7 @@
      {
        tree keywordexpr;
@@ -109502,8 +110671,8 @@ Index: gcc/c-parser.c
        sel = c_parser_objc_selector (parser);
 Index: gcc/config/s390/s390.md
 ===================================================================
---- gcc/config/s390/s390.md    (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/config/s390/s390.md    (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/config/s390/s390.md    (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/config/s390/s390.md    (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -8750,7 +8750,7 @@
  (define_insn "bswap<mode>2"
    [(set (match_operand:GPR 0            "register_operand"     "=d, d")
@@ -109515,8 +110684,8 @@ Index: gcc/config/s390/s390.md
     lrv<g>\t%0,%1"
 Index: gcc/config/s390/constraints.md
 ===================================================================
---- gcc/config/s390/constraints.md     (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/config/s390/constraints.md     (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/config/s390/constraints.md     (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/config/s390/constraints.md     (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -129,13 +129,13 @@
  (define_constraint "I"
    "An 8-bit constant (0..255)"
@@ -109535,8 +110704,8 @@ Index: gcc/config/s390/constraints.md
  (define_constraint "K"
 Index: gcc/config/m32c/m32c.c
 ===================================================================
---- gcc/config/m32c/m32c.c     (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/config/m32c/m32c.c     (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/config/m32c/m32c.c     (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/config/m32c/m32c.c     (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -417,6 +417,9 @@
      }
    else
@@ -109581,8 +110750,8 @@ Index: gcc/config/m32c/m32c.c
  
 Index: gcc/config/spu/spu-builtins.h
 ===================================================================
---- gcc/config/spu/spu-builtins.h      (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/config/spu/spu-builtins.h      (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/config/spu/spu-builtins.h      (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/config/spu/spu-builtins.h      (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1,119 +0,0 @@
 -/* Copyright (C) 2006, 2007 Free Software Foundation, Inc.
 -
@@ -109705,8 +110874,8 @@ Index: gcc/config/spu/spu-builtins.h
 -
 Index: gcc/config/spu/spu.c
 ===================================================================
---- gcc/config/spu/spu.c       (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/config/spu/spu.c       (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/config/spu/spu.c       (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/config/spu/spu.c       (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -52,13 +52,79 @@
  #include "machmode.h"
  #include "gimple.h"
@@ -109822,8 +110991,8 @@ Index: gcc/config/spu/spu.c
 +
 Index: gcc/config/spu/spu.h
 ===================================================================
---- gcc/config/spu/spu.h       (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/config/spu/spu.h       (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/config/spu/spu.h       (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/config/spu/spu.h       (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -622,3 +622,33 @@
  extern GTY(()) rtx spu_compare_op0;
  extern GTY(()) rtx spu_compare_op1;
@@ -109860,8 +111029,8 @@ Index: gcc/config/spu/spu.h
 +
 Index: gcc/config/spu/spu-c.c
 ===================================================================
---- gcc/config/spu/spu-c.c     (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/config/spu/spu-c.c     (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/config/spu/spu-c.c     (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/config/spu/spu-c.c     (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -32,7 +32,6 @@
  #include "insn-codes.h"
  #include "recog.h"
@@ -109910,8 +111079,8 @@ Index: gcc/config/spu/spu-c.c
            break;
 Index: gcc/config/spu/t-spu-elf
 ===================================================================
---- gcc/config/spu/t-spu-elf   (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/config/spu/t-spu-elf   (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/config/spu/t-spu-elf   (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/config/spu/t-spu-elf   (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -85,13 +85,10 @@
    output.h $(BASIC_BLOCK_H) $(INTEGRATE_H) toplev.h $(GGC_H) $(HASHTAB_H) \
    $(TM_P_H) $(TARGET_H) $(TARGET_DEF_H) langhooks.h reload.h cfglayout.h \
@@ -109928,9 +111097,119 @@ Index: gcc/config/spu/t-spu-elf
        $(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $(srcdir)/config/spu/spu-c.c
 Index: gcc/config/i386/i386.h
 ===================================================================
---- gcc/config/i386/i386.h     (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/config/i386/i386.h     (.../branches/gcc-4_4-branch)   (wersja 149126)
-@@ -1475,6 +1475,7 @@
+--- gcc/config/i386/i386.h     (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/config/i386/i386.h     (.../branches/gcc-4_4-branch)   (wersja 149530)
+@@ -808,7 +808,16 @@
+ #define LOCAL_DECL_ALIGNMENT(DECL) \
+   ix86_local_alignment ((DECL), VOIDmode, DECL_ALIGN (DECL))
++/* If defined, a C expression to compute the minimum required alignment
++   for dynamic stack realignment purposes for EXP (a TYPE or DECL),
++   MODE, assuming normal alignment ALIGN.
++   If this macro is not defined, then (ALIGN) will be used.  */
++
++#define MINIMUM_ALIGNMENT(EXP, MODE, ALIGN) \
++  ix86_minimum_alignment (EXP, MODE, ALIGN)
++
++
+ /* If defined, a C expression that gives the alignment boundary, in
+    bits, of an argument with the specified mode and type.  If it is
+    not defined, `PARM_BOUNDARY' is used for all arguments.  */
+@@ -937,52 +946,7 @@
+ #define OVERRIDE_ABI_FORMAT(FNDECL) ix86_call_abi_override (FNDECL)
+ /* Macro to conditionally modify fixed_regs/call_used_regs.  */
+-#define CONDITIONAL_REGISTER_USAGE                                    \
+-do {                                                                  \
+-    int i;                                                            \
+-    unsigned int j;                                                   \
+-    for (i = 0; i < FIRST_PSEUDO_REGISTER; i++)                               \
+-      {                                                                       \
+-      if (fixed_regs[i] > 1)                                          \
+-        fixed_regs[i] = (fixed_regs[i] == (TARGET_64BIT ? 3 : 2));    \
+-      if (call_used_regs[i] > 1)                                      \
+-        call_used_regs[i] = (call_used_regs[i]                        \
+-                             == (TARGET_64BIT ? 3 : 2));              \
+-      }                                                                       \
+-    j = PIC_OFFSET_TABLE_REGNUM;                                      \
+-    if (j != INVALID_REGNUM)                                          \
+-      fixed_regs[j] = call_used_regs[j] = 1;                          \
+-    if (TARGET_64BIT                                                  \
+-      && ((cfun && cfun->machine->call_abi == MS_ABI)                 \
+-          || (!cfun && DEFAULT_ABI == MS_ABI)))                       \
+-      {                                                                       \
+-      call_used_regs[SI_REG] = 0;                                     \
+-      call_used_regs[DI_REG] = 0;                                     \
+-      call_used_regs[XMM6_REG] = 0;                                   \
+-      call_used_regs[XMM7_REG] = 0;                                   \
+-      for (i = FIRST_REX_SSE_REG; i <= LAST_REX_SSE_REG; i++)         \
+-        call_used_regs[i] = 0;                                        \
+-      }                                                                       \
+-    if (! TARGET_MMX)                                                 \
+-      for (i = 0; i < FIRST_PSEUDO_REGISTER; i++)                     \
+-      if (TEST_HARD_REG_BIT (reg_class_contents[(int)MMX_REGS], i))   \
+-        fixed_regs[i] = call_used_regs[i] = 1, reg_names[i] = "";     \
+-    if (! TARGET_SSE)                                                 \
+-      for (i = 0; i < FIRST_PSEUDO_REGISTER; i++)                     \
+-      if (TEST_HARD_REG_BIT (reg_class_contents[(int)SSE_REGS], i))   \
+-        fixed_regs[i] = call_used_regs[i] = 1, reg_names[i] = "";     \
+-    if (! (TARGET_80387 || TARGET_FLOAT_RETURNS_IN_80387))            \
+-      for (i = 0; i < FIRST_PSEUDO_REGISTER; i++)                     \
+-      if (TEST_HARD_REG_BIT (reg_class_contents[(int)FLOAT_REGS], i)) \
+-        fixed_regs[i] = call_used_regs[i] = 1, reg_names[i] = "";     \
+-    if (! TARGET_64BIT)                                                       \
+-      {                                                                       \
+-      for (i = FIRST_REX_INT_REG; i <= LAST_REX_INT_REG; i++)         \
+-        reg_names[i] = "";                                            \
+-      for (i = FIRST_REX_SSE_REG; i <= LAST_REX_SSE_REG; i++)         \
+-        reg_names[i] = "";                                            \
+-      }                                                                       \
+-  } while (0)
++#define CONDITIONAL_REGISTER_USAGE  ix86_conditional_register_usage ()
+ /* Return number of consecutive hard regs needed starting at reg REGNO
+    to hold something of mode MODE.
+@@ -1208,6 +1172,7 @@
+   NO_REGS,
+   AREG, DREG, CREG, BREG, SIREG, DIREG,
+   AD_REGS,                    /* %eax/%edx for DImode */
++  CLOBBERED_REGS,             /* call-clobbered integers */
+   Q_REGS,                     /* %eax %ebx %ecx %edx */
+   NON_Q_REGS,                 /* %esi %edi %ebp %esp */
+   INDEX_REGS,                 /* %eax %ebx %ecx %edx %esi %edi %ebp */
+@@ -1256,6 +1221,7 @@
+    "AREG", "DREG", "CREG", "BREG",    \
+    "SIREG", "DIREG",                  \
+    "AD_REGS",                         \
++   "CLOBBERED_REGS",                  \
+    "Q_REGS", "NON_Q_REGS",            \
+    "INDEX_REGS",                      \
+    "LEGACY_REGS",                     \
+@@ -1273,16 +1239,19 @@
+    "FLOAT_INT_SSE_REGS",              \
+    "ALL_REGS" }
+-/* Define which registers fit in which classes.
+-   This is an initializer for a vector of HARD_REG_SET
+-   of length N_REG_CLASSES.  */
++/* Define which registers fit in which classes.  This is an initializer
++   for a vector of HARD_REG_SET of length N_REG_CLASSES.
++   Note that the default setting of CLOBBERED_REGS is for 32-bit; this
++   is adjusted by CONDITIONAL_REGISTER_USAGE for the 64-bit ABI in effect.  */
++
+ #define REG_CLASS_CONTENTS                                            \
+ {     { 0x00,     0x0 },                                              \
+       { 0x01,     0x0 }, { 0x02, 0x0 },       /* AREG, DREG */                \
+       { 0x04,     0x0 }, { 0x08, 0x0 },       /* CREG, BREG */                \
+       { 0x10,     0x0 }, { 0x20, 0x0 },       /* SIREG, DIREG */              \
+       { 0x03,     0x0 },              /* AD_REGS */                   \
++      { 0x07,     0x0 },              /* CLOBBERED_REGS */            \
+       { 0x0f,     0x0 },              /* Q_REGS */                    \
+   { 0x1100f0,  0x1fe0 },              /* NON_Q_REGS */                \
+       { 0x7f,  0x1fe0 },              /* INDEX_REGS */                \
+@@ -1475,6 +1444,7 @@
     || ((CLASS) == AD_REGS)                                            \
     || ((CLASS) == SIREG)                                              \
     || ((CLASS) == DIREG)                                              \
@@ -109940,8 +111219,8 @@ Index: gcc/config/i386/i386.h
  
 Index: gcc/config/i386/linux.h
 ===================================================================
---- gcc/config/i386/linux.h    (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/config/i386/linux.h    (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/config/i386/linux.h    (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/config/i386/linux.h    (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -153,7 +153,9 @@
        fprintf ((FILE), "\t.p2align %d,,%d\n", (LOG), (MAX_SKIP));     \
        /* Make sure that we have at least 8 byte alignment if > 8 byte \
@@ -109953,10 +111232,103 @@ Index: gcc/config/i386/linux.h
          fprintf ((FILE), "\t.p2align 3\n");                           \
        }                                                                       \
      }                                                                 \
+Index: gcc/config/i386/i386.md
+===================================================================
+--- gcc/config/i386/i386.md    (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/config/i386/i386.md    (.../branches/gcc-4_4-branch)   (wersja 149530)
+@@ -15033,14 +15033,12 @@
+   [(set_attr "type" "call")])
+ (define_insn "*sibcall_1"
+-  [(call (mem:QI (match_operand:SI 0 "sibcall_insn_operand" "s,c,d,a"))
++  [(call (mem:QI (match_operand:SI 0 "sibcall_insn_operand" "s,U"))
+        (match_operand 1 "" ""))]
+   "SIBLING_CALL_P (insn) && !TARGET_64BIT"
+-{
+-  if (constant_call_address_operand (operands[0], Pmode))
+-    return "jmp\t%P0";
+-  return "jmp\t%A0";
+-}
++  "@
++   jmp\t%P0
++   jmp\t%A0"
+   [(set_attr "type" "call")])
+ (define_insn "*call_1_rex64"
+@@ -15087,22 +15085,15 @@
+   [(set_attr "type" "call")])
+ (define_insn "*sibcall_1_rex64"
+-  [(call (mem:QI (match_operand:DI 0 "constant_call_address_operand" ""))
++  [(call (mem:QI (match_operand:DI 0 "sibcall_insn_operand" "s,U"))
+        (match_operand 1 "" ""))]
+   "SIBLING_CALL_P (insn) && TARGET_64BIT"
+-  "jmp\t%P0"
++  "@
++   jmp\t%P0
++   jmp\t%A0"
+   [(set_attr "type" "call")])
+-(define_insn "*sibcall_1_rex64_v"
+-  [(call (mem:QI (reg:DI R11_REG))
+-       (match_operand 0 "" ""))]
+-  "SIBLING_CALL_P (insn) && TARGET_64BIT"
+-  "jmp\t{*%%}r11"
+-  [(set_attr "type" "call")])
+-
+-
+ ;; Call subroutine, returning value in operand 0
+-
+ (define_expand "call_value_pop"
+   [(parallel [(set (match_operand 0 "" "")
+                  (call (match_operand:QI 1 "" "")
+@@ -21560,14 +21551,12 @@
+ (define_insn "*sibcall_value_1"
+   [(set (match_operand 0 "" "")
+-      (call (mem:QI (match_operand:SI 1 "sibcall_insn_operand" "s,c,d,a"))
++      (call (mem:QI (match_operand:SI 1 "sibcall_insn_operand" "s,U"))
+             (match_operand:SI 2 "" "")))]
+   "SIBLING_CALL_P (insn) && !TARGET_64BIT"
+-{
+-  if (constant_call_address_operand (operands[1], Pmode))
+-    return "jmp\t%P1";
+-  return "jmp\t%A1";
+-}
++  "@
++   jmp\t%P1
++   jmp\t%A1"
+   [(set_attr "type" "callv")])
+ (define_insn "*call_value_1_rex64"
+@@ -21618,19 +21607,13 @@
+ (define_insn "*sibcall_value_1_rex64"
+   [(set (match_operand 0 "" "")
+-      (call (mem:QI (match_operand:DI 1 "constant_call_address_operand" ""))
++      (call (mem:QI (match_operand:DI 1 "sibcall_insn_operand" "s,U"))
+             (match_operand:DI 2 "" "")))]
+   "SIBLING_CALL_P (insn) && TARGET_64BIT"
+-  "jmp\t%P1"
++  "@
++   jmp\t%P1
++   jmp\t%A1"
+   [(set_attr "type" "callv")])
+-
+-(define_insn "*sibcall_value_1_rex64_v"
+-  [(set (match_operand 0 "" "")
+-      (call (mem:QI (reg:DI R11_REG))
+-            (match_operand:DI 1 "" "")))]
+-  "SIBLING_CALL_P (insn) && TARGET_64BIT"
+-  "jmp\t{*%%}r11"
+-  [(set_attr "type" "callv")])
\f
+ ;; We used to use "int $5", in honor of #BR which maps to interrupt vector 5.
+ ;; That, however, is usually mapped by the OS to SIGSEGV, which is often
 Index: gcc/config/i386/sol2.h
 ===================================================================
---- gcc/config/i386/sol2.h     (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/config/i386/sol2.h     (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/config/i386/sol2.h     (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/config/i386/sol2.h     (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1,6 +1,6 @@
  /* Target definitions for GCC for Intel 80386 running Solaris 2
     Copyright (C) 1993, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
@@ -109975,10 +111347,33 @@ Index: gcc/config/i386/sol2.h
 +#ifndef TARGET_GNU_LD
 +#define USE_HIDDEN_LINKONCE 0
 +#endif
+Index: gcc/config/i386/constraints.md
+===================================================================
+--- gcc/config/i386/constraints.md     (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/config/i386/constraints.md     (.../branches/gcc-4_4-branch)   (wersja 149530)
+@@ -18,7 +18,7 @@
+ ;; <http://www.gnu.org/licenses/>.
+ ;;; Unused letters:
+-;;;     B     H           TU W
++;;;     B     H           T  W
+ ;;;           h jk          vw  z
+ ;; Integer register constraints.
+@@ -62,6 +62,9 @@
+  "The @code{a} and @code{d} registers, as a pair (for instructions
+   that return half the result in one and half in the other).")
++(define_register_constraint "U" "CLOBBERED_REGS"
++ "The call-clobbered integer registers.")
++
+ ;; Floating-point register constraints.
+ (define_register_constraint "f"
+  "TARGET_80387 || TARGET_FLOAT_RETURNS_IN_80387 ? FLOAT_REGS : NO_REGS"
 Index: gcc/config/i386/x86-64.h
 ===================================================================
---- gcc/config/i386/x86-64.h   (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/config/i386/x86-64.h   (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/config/i386/x86-64.h   (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/config/i386/x86-64.h   (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -74,7 +74,9 @@
        fprintf ((FILE), "\t.p2align %d,,%d\n", (LOG), (MAX_SKIP));     \
        /* Make sure that we have at least 8 byte alignment if > 8 byte \
@@ -109992,8 +111387,8 @@ Index: gcc/config/i386/x86-64.h
      }                                                                 \
 Index: gcc/config/i386/sse.md
 ===================================================================
---- gcc/config/i386/sse.md     (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/config/i386/sse.md     (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/config/i386/sse.md     (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/config/i386/sse.md     (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -978,7 +978,7 @@
          (match_operand:AVXMODEF2P 2 "nonimmediate_operand" "xm")))]
    "AVX_VEC_FLOAT_MODE_P (<MODE>mode) && flag_finite_math_only
@@ -110003,10 +111398,31 @@ Index: gcc/config/i386/sse.md
    [(set_attr "type" "sseadd")
     (set_attr "prefix" "vex")
     (set_attr "mode" "<MODE>")])
+Index: gcc/config/i386/i386-protos.h
+===================================================================
+--- gcc/config/i386/i386-protos.h      (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/config/i386/i386-protos.h      (.../branches/gcc-4_4-branch)   (wersja 149530)
+@@ -22,6 +22,7 @@
+ /* Functions in i386.c */
+ extern void override_options (bool);
+ extern void optimization_options (int, int);
++extern void ix86_conditional_register_usage (void);
+ extern int ix86_can_use_return_insn_p (void);
+ extern int ix86_frame_pointer_required (void);
+@@ -200,6 +201,8 @@
+ extern int ix86_data_alignment (tree, int);
+ extern unsigned int ix86_local_alignment (tree, enum machine_mode,
+                                         unsigned int);
++extern unsigned int ix86_minimum_alignment (tree, enum machine_mode,
++                                          unsigned int);
+ extern int ix86_constant_alignment (tree, int);
+ extern tree ix86_handle_shared_attribute (tree *, tree, tree, int, bool *);
+ extern tree ix86_handle_selectany_attribute (tree *, tree, tree, int, bool *);
 Index: gcc/config/i386/driver-i386.c
 ===================================================================
---- gcc/config/i386/driver-i386.c      (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/config/i386/driver-i386.c      (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/config/i386/driver-i386.c      (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/config/i386/driver-i386.c      (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -336,7 +336,11 @@
  enum vendor_signatures
  {
@@ -110103,9 +111519,205 @@ Index: gcc/config/i386/driver-i386.c
  done:
 Index: gcc/config/i386/i386.c
 ===================================================================
---- gcc/config/i386/i386.c     (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/config/i386/i386.c     (.../branches/gcc-4_4-branch)   (wersja 149126)
-@@ -5357,7 +5357,10 @@
+--- gcc/config/i386/i386.c     (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/config/i386/i386.c     (.../branches/gcc-4_4-branch)   (wersja 149530)
+@@ -3274,6 +3274,79 @@
+     target_option_default_node = target_option_current_node
+       = build_target_option_node ();
+ }
++
++/* Update register usage after having seen the compiler flags.  */
++
++void
++ix86_conditional_register_usage (void)
++{
++  int i;
++  unsigned int j;
++
++  for (i = 0; i < FIRST_PSEUDO_REGISTER; i++)
++    {
++      if (fixed_regs[i] > 1)
++      fixed_regs[i] = (fixed_regs[i] == (TARGET_64BIT ? 3 : 2));
++      if (call_used_regs[i] > 1)
++      call_used_regs[i] = (call_used_regs[i] == (TARGET_64BIT ? 3 : 2));
++    }
++
++  /* The PIC register, if it exists, is fixed.  */
++  j = PIC_OFFSET_TABLE_REGNUM;
++  if (j != INVALID_REGNUM)
++    fixed_regs[j] = call_used_regs[j] = 1;
++
++  /* The MS_ABI changes the set of call-used registers.  */
++  if (TARGET_64BIT && ix86_cfun_abi () == MS_ABI)
++    {
++      call_used_regs[SI_REG] = 0;
++      call_used_regs[DI_REG] = 0;
++      call_used_regs[XMM6_REG] = 0;
++      call_used_regs[XMM7_REG] = 0;
++      for (i = FIRST_REX_SSE_REG; i <= LAST_REX_SSE_REG; i++)
++      call_used_regs[i] = 0;
++    }
++
++  /* The default setting of CLOBBERED_REGS is for 32-bit; add in the
++     other call-clobbered regs for 64-bit.  */
++  if (TARGET_64BIT)
++    {
++      CLEAR_HARD_REG_SET (reg_class_contents[(int)CLOBBERED_REGS]);
++
++      for (i = 0; i < FIRST_PSEUDO_REGISTER; i++)
++      if (TEST_HARD_REG_BIT (reg_class_contents[(int)GENERAL_REGS], i)
++          && call_used_regs[i])
++        SET_HARD_REG_BIT (reg_class_contents[(int)CLOBBERED_REGS], i);
++    }
++
++  /* If MMX is disabled, squash the registers.  */
++  if (! TARGET_MMX)
++    for (i = 0; i < FIRST_PSEUDO_REGISTER; i++)
++      if (TEST_HARD_REG_BIT (reg_class_contents[(int)MMX_REGS], i))
++      fixed_regs[i] = call_used_regs[i] = 1, reg_names[i] = "";
++
++  /* If SSE is disabled, squash the registers.  */
++  if (! TARGET_SSE)
++    for (i = 0; i < FIRST_PSEUDO_REGISTER; i++)
++      if (TEST_HARD_REG_BIT (reg_class_contents[(int)SSE_REGS], i))
++      fixed_regs[i] = call_used_regs[i] = 1, reg_names[i] = "";
++
++  /* If the FPU is disabled, squash the registers.  */
++  if (! (TARGET_80387 || TARGET_FLOAT_RETURNS_IN_80387))
++    for (i = 0; i < FIRST_PSEUDO_REGISTER; i++)
++      if (TEST_HARD_REG_BIT (reg_class_contents[(int)FLOAT_REGS], i))
++      fixed_regs[i] = call_used_regs[i] = 1, reg_names[i] = "";
++
++  /* If 32-bit, squash the 64-bit registers.  */
++  if (! TARGET_64BIT)
++    {
++      for (i = FIRST_REX_INT_REG; i <= LAST_REX_INT_REG; i++)
++      reg_names[i] = "";
++      for (i = FIRST_REX_SSE_REG; i <= LAST_REX_SSE_REG; i++)
++      reg_names[i] = "";
++    }
++}
++
\f
+ /* Save the current options */
+@@ -4047,7 +4120,7 @@
+ static bool
+ ix86_function_ok_for_sibcall (tree decl, tree exp)
+ {
+-  tree func;
++  tree type, decl_or_type;
+   rtx a, b;
+   /* If we are generating position-independent code, we cannot sibcall
+@@ -4056,13 +4129,23 @@
+   if (!TARGET_64BIT && flag_pic && (!decl || !targetm.binds_local_p (decl)))
+     return false;
++  /* If we need to align the outgoing stack, then sibcalling would
++     unalign the stack, which may break the called function.  */
++  if (ix86_incoming_stack_boundary < PREFERRED_STACK_BOUNDARY)
++    return false;
++
+   if (decl)
+-    func = decl;
++    {
++      decl_or_type = decl;
++      type = TREE_TYPE (decl);
++    }
+   else
+     {
+-      func = TREE_TYPE (CALL_EXPR_FN (exp));
+-      if (POINTER_TYPE_P (func))
+-        func = TREE_TYPE (func);
++      /* We're looking at the CALL_EXPR, we need the type of the function.  */
++      type = CALL_EXPR_FN (exp);              /* pointer expression */
++      type = TREE_TYPE (type);                        /* pointer type */
++      type = TREE_TYPE (type);                        /* function type */
++      decl_or_type = type;
+     }
+   /* Check that the return value locations are the same.  Like
+@@ -4074,7 +4157,7 @@
+      differences in the return value ABI.  Note that it is ok for one
+      of the functions to have void return type as long as the return
+      value of the other is passed in a register.  */
+-  a = ix86_function_value (TREE_TYPE (exp), func, false);
++  a = ix86_function_value (TREE_TYPE (exp), decl_or_type, false);
+   b = ix86_function_value (TREE_TYPE (DECL_RESULT (cfun->decl)),
+                          cfun->decl, false);
+   if (STACK_REG_P (a) || STACK_REG_P (b))
+@@ -4087,38 +4170,32 @@
+   else if (!rtx_equal_p (a, b))
+     return false;
+-  /* If this call is indirect, we'll need to be able to use a call-clobbered
+-     register for the address of the target function.  Make sure that all
+-     such registers are not used for passing parameters.  */
+-  if (!decl && !TARGET_64BIT)
++  if (TARGET_64BIT)
+     {
+-      tree type;
+-
+-      /* We're looking at the CALL_EXPR, we need the type of the function.  */
+-      type = CALL_EXPR_FN (exp);              /* pointer expression */
+-      type = TREE_TYPE (type);                        /* pointer type */
+-      type = TREE_TYPE (type);                        /* function type */
+-
+-      if (ix86_function_regparm (type, NULL) >= 3)
++      /* The SYSV ABI has more call-clobbered registers;
++       disallow sibcalls from MS to SYSV.  */
++      if (cfun->machine->call_abi == MS_ABI
++        && ix86_function_type_abi (type) == SYSV_ABI)
++      return false;
++    }
++  else
++    {
++      /* If this call is indirect, we'll need to be able to use a
++       call-clobbered register for the address of the target function.
++       Make sure that all such registers are not used for passing
++       parameters.  Note that DLLIMPORT functions are indirect.  */
++      if (!decl
++        || (TARGET_DLLIMPORT_DECL_ATTRIBUTES && DECL_DLLIMPORT_P (decl)))
+       {
+-        /* ??? Need to count the actual number of registers to be used,
+-           not the possible number of registers.  Fix later.  */
+-        return false;
++        if (ix86_function_regparm (type, NULL) >= 3)
++          {
++            /* ??? Need to count the actual number of registers to be used,
++               not the possible number of registers.  Fix later.  */
++            return false;
++          }
+       }
+     }
+-  /* Dllimport'd functions are also called indirectly.  */
+-  if (TARGET_DLLIMPORT_DECL_ATTRIBUTES
+-      && !TARGET_64BIT
+-      && decl && DECL_DLLIMPORT_P (decl)
+-      && ix86_function_regparm (TREE_TYPE (decl), NULL) >= 3)
+-    return false;
+-
+-  /* If we need to align the outgoing stack, then sibcalling would
+-     unalign the stack, which may break the called function.  */
+-  if (ix86_incoming_stack_boundary < PREFERRED_STACK_BOUNDARY)
+-    return false;
+-
+   /* Otherwise okay.  That also includes certain types of indirect calls.  */
+   return true;
+ }
+@@ -4642,7 +4719,8 @@
+   /* Set up the number of registers to use for passing arguments.  */
+   if (cum->call_abi == MS_ABI && !ACCUMULATE_OUTGOING_ARGS)
+-    sorry ("ms_abi attribute require -maccumulate-outgoing-args or subtarget optimization implying it");
++    sorry ("ms_abi attribute requires -maccumulate-outgoing-args "
++         "or subtarget optimization implying it");
+   cum->nregs = ix86_regparm;
+   if (TARGET_64BIT)
+     {
+@@ -5357,7 +5435,10 @@
        case X86_64_SSE_CLASS:
        case X86_64_SSESF_CLASS:
        case X86_64_SSEDF_CLASS:
@@ -110117,7 +111729,7 @@ Index: gcc/config/i386/i386.c
        case X86_64_X87_CLASS:
        case X86_64_COMPLEX_X87_CLASS:
        return gen_rtx_REG (mode, FIRST_STACK_REG);
-@@ -7301,10 +7304,12 @@
+@@ -7301,10 +7382,12 @@
    cfun->machine->accesses_prev_frame = 1;
  }
  \f
@@ -110134,10 +111746,86 @@ Index: gcc/config/i386/i386.c
  #endif
  
  static int pic_labels_used;
+@@ -7773,7 +7856,8 @@
+       || (TARGET_64BIT && frame->to_allocate >= (HOST_WIDE_INT) 0x80000000))
+     frame->save_regs_using_mov = false;
+-  if (!TARGET_64BIT_MS_ABI && TARGET_RED_ZONE && current_function_sp_is_unchanging
++  if (!TARGET_64BIT_MS_ABI && TARGET_RED_ZONE
++      && current_function_sp_is_unchanging
+       && current_function_is_leaf
+       && !ix86_current_function_calls_tls_descriptor)
+     {
+@@ -18687,20 +18771,13 @@
+       && GET_CODE (XEXP (fnaddr, 0)) == SYMBOL_REF
+       && !local_symbolic_operand (XEXP (fnaddr, 0), VOIDmode))
+     fnaddr = gen_rtx_MEM (QImode, construct_plt_address (XEXP (fnaddr, 0)));
+-  else if (! call_insn_operand (XEXP (fnaddr, 0), Pmode))
++  else if (sibcall
++         ? !sibcall_insn_operand (XEXP (fnaddr, 0), Pmode)
++         : !call_insn_operand (XEXP (fnaddr, 0), Pmode))
+     {
+       fnaddr = copy_to_mode_reg (Pmode, XEXP (fnaddr, 0));
+       fnaddr = gen_rtx_MEM (QImode, fnaddr);
+     }
+-  if (sibcall && TARGET_64BIT
+-      && !constant_call_address_operand (XEXP (fnaddr, 0), Pmode))
+-    {
+-      rtx addr;
+-      addr = copy_to_mode_reg (Pmode, XEXP (fnaddr, 0));
+-      fnaddr = gen_rtx_REG (Pmode, R11_REG);
+-      emit_move_insn (fnaddr, addr);
+-      fnaddr = gen_rtx_MEM (QImode, fnaddr);
+-    }
+   call = gen_rtx_CALL (VOIDmode, fnaddr, callarg1);
+   if (retval)
+@@ -19469,6 +19546,41 @@
+     }
+   return align;
+ }
++
++/* Compute the minimum required alignment for dynamic stack realignment
++   purposes for a local variable, parameter or a stack slot.  EXP is
++   the data type or decl itself, MODE is its mode and ALIGN is the
++   alignment that the object would ordinarily have.  */
++
++unsigned int
++ix86_minimum_alignment (tree exp, enum machine_mode mode,
++                      unsigned int align)
++{
++  tree type, decl;
++
++  if (TARGET_64BIT || align != 64 || ix86_preferred_stack_boundary >= 64)
++    return align;
++
++  if (exp && DECL_P (exp))
++    {
++      type = TREE_TYPE (exp);
++      decl = exp;
++    }
++  else
++    {
++      type = exp;
++      decl = NULL;
++    }
++
++  /* Don't do dynamic stack realignment for long long objects with
++     -mpreferred-stack-boundary=2.  */
++  if ((mode == DImode || (type && TYPE_MODE (type) == DImode))
++      && (!type || !TYPE_USER_ALIGN (type))
++      && (!decl || !DECL_USER_ALIGN (decl)))
++    return 32;
++
++  return align;
++}
\f
+ /* Emit RTL insns to initialize the variable parts of a trampoline.
+    FNADDR is an RTX for the address of the function's pure code.
 Index: gcc/config/sh/sh.c
 ===================================================================
---- gcc/config/sh/sh.c (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/config/sh/sh.c (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/config/sh/sh.c (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/config/sh/sh.c (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -6908,6 +6908,8 @@
  
    tmp = gen_frame_mem (Pmode, tmp);
@@ -110149,8 +111837,8 @@ Index: gcc/config/sh/sh.c
  /* Clear variables at function end.  */
 Index: gcc/config/sh/sh.md
 ===================================================================
---- gcc/config/sh/sh.md        (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/config/sh/sh.md        (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/config/sh/sh.md        (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/config/sh/sh.md        (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -3999,6 +3999,34 @@
    [(set_attr "length" "4")
     (set_attr "type" "arith")])
@@ -110210,8 +111898,8 @@ Index: gcc/config/sh/sh.md
  
 Index: gcc/config/rs6000/rs6000-c.c
 ===================================================================
---- gcc/config/rs6000/rs6000-c.c       (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/config/rs6000/rs6000-c.c       (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/config/rs6000/rs6000-c.c       (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/config/rs6000/rs6000-c.c       (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -91,6 +91,7 @@
  static GTY(()) tree pixel_keyword;
  static GTY(()) tree __bool_keyword;
@@ -110250,8 +111938,8 @@ Index: gcc/config/rs6000/rs6000-c.c
          /* Enable context-sensitive macros.  */
 Index: gcc/config/arm/arm.c
 ===================================================================
---- gcc/config/arm/arm.c       (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/config/arm/arm.c       (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/config/arm/arm.c       (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/config/arm/arm.c       (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -16883,7 +16883,7 @@
  
    if (push && pushed_words && dwarf2out_do_frame ())
@@ -110281,8 +111969,8 @@ Index: gcc/config/arm/arm.c
          dwarf2out_def_cfa (l, SP_REGNUM, cfa_offset);
 Index: gcc/config/arm/arm.h
 ===================================================================
---- gcc/config/arm/arm.h       (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/config/arm/arm.h       (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/config/arm/arm.h       (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/config/arm/arm.h       (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -2244,8 +2244,10 @@
  #define GO_IF_MODE_DEPENDENT_ADDRESS(ADDR, LABEL)     \
    if (TARGET_32BIT)                                   \
@@ -110297,8 +111985,8 @@ Index: gcc/config/arm/arm.h
  #define CASE_VECTOR_MODE Pmode
 Index: gcc/config/arm/arm.md
 ===================================================================
---- gcc/config/arm/arm.md      (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/config/arm/arm.md      (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/config/arm/arm.md      (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/config/arm/arm.md      (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -8214,7 +8214,7 @@
  
  (define_insn "cstoresi_nltu_thumb1"
@@ -110310,8 +111998,8 @@ Index: gcc/config/arm/arm.md
    "cmp\\t%1, %2\;sbc\\t%0, %0, %0"
 Index: gcc/config/vax/vax.c
 ===================================================================
---- gcc/config/vax/vax.c       (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/config/vax/vax.c       (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/config/vax/vax.c       (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/config/vax/vax.c       (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -122,7 +122,7 @@
  
    if (dwarf2out_do_frame ())
@@ -110323,8 +112011,8 @@ Index: gcc/config/vax/vax.c
        for (regno = FIRST_PSEUDO_REGISTER-1; regno >= 0; --regno)
 Index: gcc/dfp.c
 ===================================================================
---- gcc/dfp.c  (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/dfp.c  (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/dfp.c  (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/dfp.c  (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1,5 +1,5 @@
  /* Decimal floating point support.
 -   Copyright (C) 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
@@ -110509,8 +112197,8 @@ Index: gcc/dfp.c
    decimal128ToNumber (&d128, &dn);
 Index: gcc/cfgrtl.c
 ===================================================================
---- gcc/cfgrtl.c       (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/cfgrtl.c       (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/cfgrtl.c       (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/cfgrtl.c       (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -53,6 +53,7 @@
  #include "toplev.h"
  #include "tm_p.h"
@@ -110550,8 +112238,8 @@ Index: gcc/cfgrtl.c
    0,                                    /* static_pass_number */
 Index: gcc/stmt.c
 ===================================================================
---- gcc/stmt.c (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/stmt.c (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/stmt.c (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/stmt.c (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1418,6 +1418,7 @@
        goto restart;
  
@@ -110562,8 +112250,8 @@ Index: gcc/stmt.c
  
 Index: gcc/convert.c
 ===================================================================
---- gcc/convert.c      (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/convert.c      (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/convert.c      (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/convert.c      (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -740,10 +740,16 @@
  
        case COND_EXPR:
@@ -110586,8 +112274,8 @@ Index: gcc/convert.c
          break;
 Index: gcc/tree-ssa-operands.c
 ===================================================================
---- gcc/tree-ssa-operands.c    (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gcc/tree-ssa-operands.c    (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gcc/tree-ssa-operands.c    (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gcc/tree-ssa-operands.c    (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -2099,6 +2099,13 @@
        /* Add call-clobbered operands, if needed.  */
        if (code == GIMPLE_CALL)
@@ -110606,12 +112294,12 @@ Index: gcc/tree-ssa-operands.c
 Zmiany atrybutów dla: gcc
 ___________________________________________________________________
 Dodane: svn:mergeinfo
-   Połączono zmiany /trunk/gcc:r148910
+   Połączono zmiany /trunk/gcc:r148910,149341,149351
 
 Index: libstdc++-v3/configure
 ===================================================================
---- libstdc++-v3/configure     (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ libstdc++-v3/configure     (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- libstdc++-v3/configure     (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ libstdc++-v3/configure     (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1567,7 +1567,7 @@
  ### am handles this now?  ORIGINAL_LD_FOR_MULTILIBS=$LD
  
@@ -110623,8 +112311,8 @@ Index: libstdc++-v3/configure
  # Find the rest of the source tree framework.
 Index: libstdc++-v3/include/ext/memory
 ===================================================================
---- libstdc++-v3/include/ext/memory    (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ libstdc++-v3/include/ext/memory    (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- libstdc++-v3/include/ext/memory    (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ libstdc++-v3/include/ext/memory    (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -102,9 +102,9 @@
    template<typename _InputIter, typename _Size, typename _ForwardIter>
      inline pair<_InputIter, _ForwardIter>
@@ -110660,8 +112348,8 @@ Index: libstdc++-v3/include/ext/memory
    /**
 Index: libstdc++-v3/include/bits/locale_facets.tcc
 ===================================================================
---- libstdc++-v3/include/bits/locale_facets.tcc        (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ libstdc++-v3/include/bits/locale_facets.tcc        (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- libstdc++-v3/include/bits/locale_facets.tcc        (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ libstdc++-v3/include/bits/locale_facets.tcc        (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -379,8 +379,7 @@
        if (!__testeof)
          {
@@ -110694,8 +112382,8 @@ Index: libstdc++-v3/include/bits/locale_facets.tcc
              __v = __gnu_cxx::__numeric_traits<_ValueT>::__max;
 Index: libstdc++-v3/include/bits/atomic_0.h
 ===================================================================
---- libstdc++-v3/include/bits/atomic_0.h       (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ libstdc++-v3/include/bits/atomic_0.h       (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- libstdc++-v3/include/bits/atomic_0.h       (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ libstdc++-v3/include/bits/atomic_0.h       (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -119,17 +119,17 @@
      void
      store(void* __v, memory_order __m = memory_order_seq_cst) volatile
@@ -110788,8 +112476,8 @@ Index: libstdc++-v3/include/bits/atomic_0.h
        }
 Index: libstdc++-v3/include/bits/atomic_2.h
 ===================================================================
---- libstdc++-v3/include/bits/atomic_2.h       (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ libstdc++-v3/include/bits/atomic_2.h       (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- libstdc++-v3/include/bits/atomic_2.h       (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ libstdc++-v3/include/bits/atomic_2.h       (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -65,6 +65,10 @@
      void
      clear(memory_order __m = memory_order_seq_cst) volatile
@@ -110873,8 +112561,8 @@ Index: libstdc++-v3/include/bits/atomic_2.h
        __integral_type __i1o = __i1;
 Index: libstdc++-v3/include/bits/stl_construct.h
 ===================================================================
---- libstdc++-v3/include/bits/stl_construct.h  (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ libstdc++-v3/include/bits/stl_construct.h  (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- libstdc++-v3/include/bits/stl_construct.h  (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ libstdc++-v3/include/bits/stl_construct.h  (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -82,6 +82,26 @@
      _Destroy(_Tp* __pointer)
      { __pointer->~_Tp(); }
@@ -110916,8 +112604,8 @@ Index: libstdc++-v3/include/bits/stl_construct.h
    /**
 Index: libstdc++-v3/include/Makefile.in
 ===================================================================
---- libstdc++-v3/include/Makefile.in   (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ libstdc++-v3/include/Makefile.in   (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- libstdc++-v3/include/Makefile.in   (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ libstdc++-v3/include/Makefile.in   (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1096,7 +1096,7 @@
  pch_output_anchors = \
        ${pch1_output_anchor} ${pch2_output_anchor} ${pch3_output_anchor}
@@ -110929,8 +112617,8 @@ Index: libstdc++-v3/include/Makefile.in
  
 Index: libstdc++-v3/include/Makefile.am
 ===================================================================
---- libstdc++-v3/include/Makefile.am   (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ libstdc++-v3/include/Makefile.am   (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- libstdc++-v3/include/Makefile.am   (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ libstdc++-v3/include/Makefile.am   (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -850,7 +850,7 @@
        ${pch1_output_builddir} ${pch2_output_builddir} ${pch3_output_builddir}
  pch_output_anchors = \
@@ -110942,8 +112630,8 @@ Index: libstdc++-v3/include/Makefile.am
  else
 Index: libstdc++-v3/include/std/system_error
 ===================================================================
---- libstdc++-v3/include/std/system_error      (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ libstdc++-v3/include/std/system_error      (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- libstdc++-v3/include/std/system_error      (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ libstdc++-v3/include/std/system_error      (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -51,10 +51,6 @@
    template<typename _Tp>
      struct is_error_code_enum : public false_type { };
@@ -111032,8 +112720,8 @@ Index: libstdc++-v3/include/std/system_error
      clear()
 Index: libstdc++-v3/include/std/thread
 ===================================================================
---- libstdc++-v3/include/std/thread    (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ libstdc++-v3/include/std/thread    (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- libstdc++-v3/include/std/thread    (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ libstdc++-v3/include/std/thread    (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -135,7 +135,7 @@
      ~thread()
      {
@@ -111054,8 +112742,8 @@ Index: libstdc++-v3/include/std/thread
      }
 Index: libstdc++-v3/include/std/mutex
 ===================================================================
---- libstdc++-v3/include/std/mutex     (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ libstdc++-v3/include/std/mutex     (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- libstdc++-v3/include/std/mutex     (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ libstdc++-v3/include/std/mutex     (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -729,8 +729,11 @@
  #else
    extern function<void()> __once_functor;
@@ -111092,8 +112780,8 @@ Index: libstdc++-v3/include/std/mutex
        if (__e)
 Index: libstdc++-v3/include/parallel/algo.h
 ===================================================================
---- libstdc++-v3/include/parallel/algo.h       (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ libstdc++-v3/include/parallel/algo.h       (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- libstdc++-v3/include/parallel/algo.h       (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ libstdc++-v3/include/parallel/algo.h       (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -149,8 +149,8 @@
  
        if (_GLIBCXX_PARALLEL_CONDITION(true))
@@ -111107,8 +112795,8 @@ Index: libstdc++-v3/include/parallel/algo.h
                                                 find_if_selector()).first;
 Index: libstdc++-v3/src/math_stubs_long_double.cc
 ===================================================================
---- libstdc++-v3/src/math_stubs_long_double.cc (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ libstdc++-v3/src/math_stubs_long_double.cc (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- libstdc++-v3/src/math_stubs_long_double.cc (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ libstdc++-v3/src/math_stubs_long_double.cc (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -70,6 +70,14 @@
    }
  #endif
@@ -111126,8 +112814,8 @@ Index: libstdc++-v3/src/math_stubs_long_double.cc
    cosl(long double x)
 Index: libstdc++-v3/src/mutex.cc
 ===================================================================
---- libstdc++-v3/src/mutex.cc  (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ libstdc++-v3/src/mutex.cc  (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- libstdc++-v3/src/mutex.cc  (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ libstdc++-v3/src/mutex.cc  (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -28,11 +28,11 @@
  #ifndef _GLIBCXX_HAVE_TLS
  namespace
@@ -111189,8 +112877,8 @@ Index: libstdc++-v3/src/mutex.cc
      }
 Index: libstdc++-v3/scripts/run_doxygen
 ===================================================================
---- libstdc++-v3/scripts/run_doxygen   (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ libstdc++-v3/scripts/run_doxygen   (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- libstdc++-v3/scripts/run_doxygen   (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ libstdc++-v3/scripts/run_doxygen   (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1,7 +1,8 @@
  #!/bin/bash
  
@@ -111261,8 +112949,8 @@ Index: libstdc++-v3/scripts/run_doxygen
  for f in *_libstdc__-v3_*; do
 Index: libstdc++-v3/scripts/create_testsuite_files
 ===================================================================
---- libstdc++-v3/scripts/create_testsuite_files        (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ libstdc++-v3/scripts/create_testsuite_files        (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- libstdc++-v3/scripts/create_testsuite_files        (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ libstdc++-v3/scripts/create_testsuite_files        (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -32,7 +32,7 @@
  # This is the ugly version of "everything but the current directory".  It's
  # what has to happen when find(1) doesn't support -mindepth, or -xtype.
@@ -111274,8 +112962,8 @@ Index: libstdc++-v3/scripts/create_testsuite_files
  cat  $tmp.01 $tmp.02 | sort > $tmp.1
 Index: libstdc++-v3/libsupc++/eh_ptr.cc
 ===================================================================
---- libstdc++-v3/libsupc++/eh_ptr.cc   (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ libstdc++-v3/libsupc++/eh_ptr.cc   (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- libstdc++-v3/libsupc++/eh_ptr.cc   (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ libstdc++-v3/libsupc++/eh_ptr.cc   (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -26,6 +26,8 @@
  
  #ifdef _GLIBCXX_ATOMIC_BUILTINS_4
@@ -111310,8 +112998,8 @@ Index: libstdc++-v3/libsupc++/eh_ptr.cc
  #endif
 Index: libstdc++-v3/libsupc++/exception_ptr.h
 ===================================================================
---- libstdc++-v3/libsupc++/exception_ptr.h     (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ libstdc++-v3/libsupc++/exception_ptr.h     (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- libstdc++-v3/libsupc++/exception_ptr.h     (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ libstdc++-v3/libsupc++/exception_ptr.h     (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -121,7 +121,7 @@
        exception_ptr& 
        operator=(exception_ptr&& __o) throw()
@@ -111345,8 +113033,8 @@ Index: libstdc++-v3/libsupc++/exception_ptr.h
        operator==(const exception_ptr&, const exception_ptr&) throw();
 Index: libstdc++-v3/ChangeLog
 ===================================================================
---- libstdc++-v3/ChangeLog     (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ libstdc++-v3/ChangeLog     (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- libstdc++-v3/ChangeLog     (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ libstdc++-v3/ChangeLog     (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1,3 +1,196 @@
 +2009-06-30  Paolo Carlini  <paolo.carlini@oracle.com>
 +
@@ -111546,8 +113234,8 @@ Index: libstdc++-v3/ChangeLog
        * GCC 4.4.0 released.
 Index: libstdc++-v3/testsuite/25_algorithms/minmax/2.cc
 ===================================================================
---- libstdc++-v3/testsuite/25_algorithms/minmax/2.cc   (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ libstdc++-v3/testsuite/25_algorithms/minmax/2.cc   (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- libstdc++-v3/testsuite/25_algorithms/minmax/2.cc   (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ libstdc++-v3/testsuite/25_algorithms/minmax/2.cc   (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -27,25 +27,25 @@
  {
    bool test __attribute__((unused)) = true;
@@ -111586,8 +113274,8 @@ Index: libstdc++-v3/testsuite/25_algorithms/minmax/2.cc
    VERIFY( wc.first == 5 );
 Index: libstdc++-v3/testsuite/25_algorithms/minmax/3.cc
 ===================================================================
---- libstdc++-v3/testsuite/25_algorithms/minmax/3.cc   (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ libstdc++-v3/testsuite/25_algorithms/minmax/3.cc   (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- libstdc++-v3/testsuite/25_algorithms/minmax/3.cc   (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ libstdc++-v3/testsuite/25_algorithms/minmax/3.cc   (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -41,8 +41,8 @@
  {
    bool test __attribute__((unused)) = true;
@@ -111602,7 +113290,7 @@ Index: libstdc++-v3/testsuite/25_algorithms/minmax/3.cc
 Index: libstdc++-v3/testsuite/25_algorithms/find/39546.cc
 ===================================================================
 --- libstdc++-v3/testsuite/25_algorithms/find/39546.cc (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ libstdc++-v3/testsuite/25_algorithms/find/39546.cc (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ libstdc++-v3/testsuite/25_algorithms/find/39546.cc (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,43 @@
 +// Copyright (C) 2009 Free Software Foundation, Inc.
 +//
@@ -111649,8 +113337,8 @@ Index: libstdc++-v3/testsuite/25_algorithms/find/39546.cc
 +}
 Index: libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/error_code.cc
 ===================================================================
---- libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/error_code.cc   (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/error_code.cc   (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/error_code.cc   (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/error_code.cc   (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1,6 +1,6 @@
  // { dg-options "-std=gnu++0x" }
  
@@ -111670,8 +113358,8 @@ Index: libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/wchar_t/error_
    {
 Index: libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/error_code.cc
 ===================================================================
---- libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/error_code.cc      (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/error_code.cc      (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/error_code.cc      (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/error_code.cc      (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -32,7 +32,7 @@
  
    char buf[64];
@@ -111684,7 +113372,7 @@ Index: libstdc++-v3/testsuite/27_io/basic_ostream/inserters_other/char/error_cod
 Index: libstdc++-v3/testsuite/19_diagnostics/error_condition/modifiers/39881.cc
 ===================================================================
 --- libstdc++-v3/testsuite/19_diagnostics/error_condition/modifiers/39881.cc   (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ libstdc++-v3/testsuite/19_diagnostics/error_condition/modifiers/39881.cc   (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ libstdc++-v3/testsuite/19_diagnostics/error_condition/modifiers/39881.cc   (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,61 @@
 +// { dg-options "-std=gnu++0x" }
 +
@@ -111750,7 +113438,7 @@ Index: libstdc++-v3/testsuite/19_diagnostics/error_condition/modifiers/39881.cc
 Index: libstdc++-v3/testsuite/19_diagnostics/error_condition/cons/39881.cc
 ===================================================================
 --- libstdc++-v3/testsuite/19_diagnostics/error_condition/cons/39881.cc        (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ libstdc++-v3/testsuite/19_diagnostics/error_condition/cons/39881.cc        (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ libstdc++-v3/testsuite/19_diagnostics/error_condition/cons/39881.cc        (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,60 @@
 +// { dg-options "-std=gnu++0x" }
 +
@@ -111815,7 +113503,7 @@ Index: libstdc++-v3/testsuite/19_diagnostics/error_condition/cons/39881.cc
 Index: libstdc++-v3/testsuite/19_diagnostics/error_code/modifiers/39882.cc
 ===================================================================
 --- libstdc++-v3/testsuite/19_diagnostics/error_code/modifiers/39882.cc        (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ libstdc++-v3/testsuite/19_diagnostics/error_code/modifiers/39882.cc        (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ libstdc++-v3/testsuite/19_diagnostics/error_code/modifiers/39882.cc        (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,61 @@
 +// { dg-options "-std=gnu++0x" }
 +
@@ -111881,7 +113569,7 @@ Index: libstdc++-v3/testsuite/19_diagnostics/error_code/modifiers/39882.cc
 Index: libstdc++-v3/testsuite/19_diagnostics/error_code/cons/39882.cc
 ===================================================================
 --- libstdc++-v3/testsuite/19_diagnostics/error_code/cons/39882.cc     (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ libstdc++-v3/testsuite/19_diagnostics/error_code/cons/39882.cc     (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ libstdc++-v3/testsuite/19_diagnostics/error_code/cons/39882.cc     (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,60 @@
 +// { dg-options "-std=gnu++0x" }
 +
@@ -111945,8 +113633,8 @@ Index: libstdc++-v3/testsuite/19_diagnostics/error_code/cons/39882.cc
 +}
 Index: libstdc++-v3/testsuite/19_diagnostics/error_code/cons/1.cc
 ===================================================================
---- libstdc++-v3/testsuite/19_diagnostics/error_code/cons/1.cc (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ libstdc++-v3/testsuite/19_diagnostics/error_code/cons/1.cc (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- libstdc++-v3/testsuite/19_diagnostics/error_code/cons/1.cc (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ libstdc++-v3/testsuite/19_diagnostics/error_code/cons/1.cc (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -37,7 +37,7 @@
    VERIFY( e2.category() == cat );
  
@@ -111958,8 +113646,8 @@ Index: libstdc++-v3/testsuite/19_diagnostics/error_code/cons/1.cc
  
 Index: libstdc++-v3/testsuite/19_diagnostics/error_code/operators/bool.cc
 ===================================================================
---- libstdc++-v3/testsuite/19_diagnostics/error_code/operators/bool.cc (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ libstdc++-v3/testsuite/19_diagnostics/error_code/operators/bool.cc (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- libstdc++-v3/testsuite/19_diagnostics/error_code/operators/bool.cc (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ libstdc++-v3/testsuite/19_diagnostics/error_code/operators/bool.cc (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -34,7 +34,7 @@
      }
  
@@ -111971,8 +113659,8 @@ Index: libstdc++-v3/testsuite/19_diagnostics/error_code/operators/bool.cc
        VERIFY( true );
 Index: libstdc++-v3/testsuite/19_diagnostics/error_code/operators/equal.cc
 ===================================================================
---- libstdc++-v3/testsuite/19_diagnostics/error_code/operators/equal.cc        (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ libstdc++-v3/testsuite/19_diagnostics/error_code/operators/equal.cc        (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- libstdc++-v3/testsuite/19_diagnostics/error_code/operators/equal.cc        (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ libstdc++-v3/testsuite/19_diagnostics/error_code/operators/equal.cc        (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -27,7 +27,7 @@
    bool test __attribute__((unused)) = true;
  
@@ -111984,8 +113672,8 @@ Index: libstdc++-v3/testsuite/19_diagnostics/error_code/operators/equal.cc
    VERIFY( !(e1 == e2) );
 Index: libstdc++-v3/testsuite/19_diagnostics/error_code/operators/not_equal.cc
 ===================================================================
---- libstdc++-v3/testsuite/19_diagnostics/error_code/operators/not_equal.cc    (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ libstdc++-v3/testsuite/19_diagnostics/error_code/operators/not_equal.cc    (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- libstdc++-v3/testsuite/19_diagnostics/error_code/operators/not_equal.cc    (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ libstdc++-v3/testsuite/19_diagnostics/error_code/operators/not_equal.cc    (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -27,7 +27,7 @@
    bool test __attribute__((unused)) = true;
  
@@ -111997,8 +113685,8 @@ Index: libstdc++-v3/testsuite/19_diagnostics/error_code/operators/not_equal.cc
    VERIFY( e1 != e2 );
 Index: libstdc++-v3/testsuite/19_diagnostics/error_category/cons/copy_neg.cc
 ===================================================================
---- libstdc++-v3/testsuite/19_diagnostics/error_category/cons/copy_neg.cc      (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ libstdc++-v3/testsuite/19_diagnostics/error_category/cons/copy_neg.cc      (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- libstdc++-v3/testsuite/19_diagnostics/error_category/cons/copy_neg.cc      (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ libstdc++-v3/testsuite/19_diagnostics/error_category/cons/copy_neg.cc      (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -32,7 +32,7 @@
    return 0;
  }
@@ -112011,7 +113699,7 @@ Index: libstdc++-v3/testsuite/19_diagnostics/error_category/cons/copy_neg.cc
 Index: libstdc++-v3/testsuite/19_diagnostics/system_error/39880.cc
 ===================================================================
 --- libstdc++-v3/testsuite/19_diagnostics/system_error/39880.cc        (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ libstdc++-v3/testsuite/19_diagnostics/system_error/39880.cc        (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ libstdc++-v3/testsuite/19_diagnostics/system_error/39880.cc        (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,29 @@
 +// { dg-options "-std=gnu++0x" }
 +// { dg-do compile }
@@ -112044,8 +113732,8 @@ Index: libstdc++-v3/testsuite/19_diagnostics/system_error/39880.cc
 +}
 Index: libstdc++-v3/testsuite/19_diagnostics/system_error/cons-1.cc
 ===================================================================
---- libstdc++-v3/testsuite/19_diagnostics/system_error/cons-1.cc       (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ libstdc++-v3/testsuite/19_diagnostics/system_error/cons-1.cc       (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- libstdc++-v3/testsuite/19_diagnostics/system_error/cons-1.cc       (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ libstdc++-v3/testsuite/19_diagnostics/system_error/cons-1.cc       (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -26,7 +26,8 @@
  {
    bool test __attribute__((unused)) = true;
@@ -112058,8 +113746,8 @@ Index: libstdc++-v3/testsuite/19_diagnostics/system_error/cons-1.cc
    {
 Index: libstdc++-v3/testsuite/19_diagnostics/system_error/what-4.cc
 ===================================================================
---- libstdc++-v3/testsuite/19_diagnostics/system_error/what-4.cc       (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ libstdc++-v3/testsuite/19_diagnostics/system_error/what-4.cc       (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- libstdc++-v3/testsuite/19_diagnostics/system_error/what-4.cc       (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ libstdc++-v3/testsuite/19_diagnostics/system_error/what-4.cc       (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -31,7 +31,8 @@
    bool test __attribute__((unused)) = true;
    std::string s("after nine thirty, this request cannot be met");
@@ -112072,8 +113760,8 @@ Index: libstdc++-v3/testsuite/19_diagnostics/system_error/what-4.cc
    VERIFY( s1 == s2 );
 Index: libstdc++-v3/testsuite/18_support/exception_ptr/current_exception.cc
 ===================================================================
---- libstdc++-v3/testsuite/18_support/exception_ptr/current_exception.cc       (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ libstdc++-v3/testsuite/18_support/exception_ptr/current_exception.cc       (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- libstdc++-v3/testsuite/18_support/exception_ptr/current_exception.cc       (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ libstdc++-v3/testsuite/18_support/exception_ptr/current_exception.cc       (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -31,7 +31,7 @@
    using namespace std;
  
@@ -112104,7 +113792,7 @@ Index: libstdc++-v3/testsuite/18_support/exception_ptr/current_exception.cc
 Index: libstdc++-v3/testsuite/18_support/exception_ptr/40296.cc
 ===================================================================
 --- libstdc++-v3/testsuite/18_support/exception_ptr/40296.cc   (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ libstdc++-v3/testsuite/18_support/exception_ptr/40296.cc   (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ libstdc++-v3/testsuite/18_support/exception_ptr/40296.cc   (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,30 @@
 +// { dg-do compile }
 +// { dg-options "-std=gnu++0x" }
@@ -112139,7 +113827,7 @@ Index: libstdc++-v3/testsuite/18_support/exception_ptr/40296.cc
 Index: libstdc++-v3/testsuite/18_support/exception_ptr/move.cc
 ===================================================================
 --- libstdc++-v3/testsuite/18_support/exception_ptr/move.cc    (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ libstdc++-v3/testsuite/18_support/exception_ptr/move.cc    (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ libstdc++-v3/testsuite/18_support/exception_ptr/move.cc    (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,45 @@
 +// { dg-options "-std=gnu++0x" }
 +// { dg-require-atomic-builtins "" }
@@ -112189,7 +113877,7 @@ Index: libstdc++-v3/testsuite/18_support/exception_ptr/move.cc
 Index: libstdc++-v3/testsuite/30_threads/call_once/39909.cc
 ===================================================================
 --- libstdc++-v3/testsuite/30_threads/call_once/39909.cc       (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ libstdc++-v3/testsuite/30_threads/call_once/39909.cc       (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ libstdc++-v3/testsuite/30_threads/call_once/39909.cc       (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,56 @@
 +// { dg-do run { target *-*-freebsd* *-*-netbsd* *-*-linux* *-*-solaris* *-*-cygwin *-*-darwin* alpha*-*-osf* mips-sgi-irix6* } }
 +// { dg-options " -std=gnu++0x -pthread" { target *-*-freebsd* *-*-netbsd* *-*-linux* alpha*-*-osf* mips-sgi-irix6* } }
@@ -112249,8 +113937,8 @@ Index: libstdc++-v3/testsuite/30_threads/call_once/39909.cc
 +}
 Index: libstdc++-v3/testsuite/30_threads/unique_lock/locking/2.cc
 ===================================================================
---- libstdc++-v3/testsuite/30_threads/unique_lock/locking/2.cc (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ libstdc++-v3/testsuite/30_threads/unique_lock/locking/2.cc (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- libstdc++-v3/testsuite/30_threads/unique_lock/locking/2.cc (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ libstdc++-v3/testsuite/30_threads/unique_lock/locking/2.cc (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -44,7 +44,8 @@
          }
        catch (const std::system_error& ex)
@@ -112275,7 +113963,7 @@ Index: libstdc++-v3/testsuite/30_threads/unique_lock/locking/2.cc
 Index: libstdc++-v3/testsuite/ext/rope/40299.cc
 ===================================================================
 --- libstdc++-v3/testsuite/ext/rope/40299.cc   (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ libstdc++-v3/testsuite/ext/rope/40299.cc   (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ libstdc++-v3/testsuite/ext/rope/40299.cc   (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,27 @@
 +// { dg-options "-std=gnu++0x" }
 +// { dg-do compile }
@@ -112307,7 +113995,7 @@ Index: libstdc++-v3/testsuite/ext/rope/40299.cc
 Index: libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/39802.cc
 ===================================================================
 --- libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/39802.cc      (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/39802.cc      (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/39802.cc      (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,77 @@
 +// Copyright (C) 2009 Free Software Foundation
 +//
@@ -112389,7 +114077,7 @@ Index: libstdc++-v3/testsuite/22_locale/num_get/get/wchar_t/39802.cc
 Index: libstdc++-v3/testsuite/22_locale/num_get/get/char/39802.cc
 ===================================================================
 --- libstdc++-v3/testsuite/22_locale/num_get/get/char/39802.cc (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ libstdc++-v3/testsuite/22_locale/num_get/get/char/39802.cc (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ libstdc++-v3/testsuite/22_locale/num_get/get/char/39802.cc (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,77 @@
 +// Copyright (C) 2009 Free Software Foundation
 +//
@@ -112470,8 +114158,8 @@ Index: libstdc++-v3/testsuite/22_locale/num_get/get/char/39802.cc
 +}
 Index: libstdc++-v3/testsuite/lib/libstdc++.exp
 ===================================================================
---- libstdc++-v3/testsuite/lib/libstdc++.exp   (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ libstdc++-v3/testsuite/lib/libstdc++.exp   (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- libstdc++-v3/testsuite/lib/libstdc++.exp   (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ libstdc++-v3/testsuite/lib/libstdc++.exp   (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -402,8 +402,7 @@
      # Flag setting based on type argument.
      if { $type == "executable" } {
@@ -112485,7 +114173,7 @@ Index: libstdc++-v3/testsuite/lib/libstdc++.exp
 Index: libstdc++-v3/testsuite/23_containers/vector/40192.cc
 ===================================================================
 --- libstdc++-v3/testsuite/23_containers/vector/40192.cc       (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ libstdc++-v3/testsuite/23_containers/vector/40192.cc       (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ libstdc++-v3/testsuite/23_containers/vector/40192.cc       (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,28 @@
 +// Copyright (C) 2009 Free Software Foundation, Inc.
 +//
@@ -112517,8 +114205,8 @@ Index: libstdc++-v3/testsuite/23_containers/vector/40192.cc
 +}
 Index: libstdc++-v3/testsuite/util/testsuite_abi.cc
 ===================================================================
---- libstdc++-v3/testsuite/util/testsuite_abi.cc       (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ libstdc++-v3/testsuite/util/testsuite_abi.cc       (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- libstdc++-v3/testsuite/util/testsuite_abi.cc       (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ libstdc++-v3/testsuite/util/testsuite_abi.cc       (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -183,6 +183,7 @@
        known_versions.push_back("GLIBCXX_3.4.9");
        known_versions.push_back("GLIBCXX_3.4.10");
@@ -112529,8 +114217,8 @@ Index: libstdc++-v3/testsuite/util/testsuite_abi.cc
        known_versions.push_back("GLIBCXX_LDBL_3.4.10");
 Index: libstdc++-v3/configure.ac
 ===================================================================
---- libstdc++-v3/configure.ac  (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ libstdc++-v3/configure.ac  (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- libstdc++-v3/configure.ac  (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ libstdc++-v3/configure.ac  (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -12,7 +12,7 @@
  ### am handles this now?  ORIGINAL_LD_FOR_MULTILIBS=$LD
  
@@ -112542,8 +114230,8 @@ Index: libstdc++-v3/configure.ac
  # Find the rest of the source tree framework.
 Index: libstdc++-v3/config/abi/pre/gnu.ver
 ===================================================================
---- libstdc++-v3/config/abi/pre/gnu.ver        (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ libstdc++-v3/config/abi/pre/gnu.ver        (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- libstdc++-v3/config/abi/pre/gnu.ver        (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ libstdc++-v3/config/abi/pre/gnu.ver        (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -958,6 +958,14 @@
  
  } GLIBCXX_3.4.10;
@@ -112561,8 +114249,8 @@ Index: libstdc++-v3/config/abi/pre/gnu.ver
  
 Index: libstdc++-v3/doc/xml/authors.xml
 ===================================================================
---- libstdc++-v3/doc/xml/authors.xml   (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ libstdc++-v3/doc/xml/authors.xml   (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- libstdc++-v3/doc/xml/authors.xml   (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ libstdc++-v3/doc/xml/authors.xml   (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -21,6 +21,16 @@
  -->
  
@@ -112582,8 +114270,8 @@ Index: libstdc++-v3/doc/xml/authors.xml
  
 Index: libstdc++-v3/doc/xml/faq.xml
 ===================================================================
---- libstdc++-v3/doc/xml/faq.xml       (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ libstdc++-v3/doc/xml/faq.xml       (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- libstdc++-v3/doc/xml/faq.xml       (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ libstdc++-v3/doc/xml/faq.xml       (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -692,9 +692,9 @@
      </para>
      <para>    
@@ -112608,8 +114296,8 @@ Index: libstdc++-v3/doc/xml/faq.xml
    </answer>
 Index: libstdc++-v3/doc/xml/manual/intro.xml
 ===================================================================
---- libstdc++-v3/doc/xml/manual/intro.xml      (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ libstdc++-v3/doc/xml/manual/intro.xml      (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- libstdc++-v3/doc/xml/manual/intro.xml      (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ libstdc++-v3/doc/xml/manual/intro.xml      (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -27,7 +27,7 @@
    <title>Status</title>
  
@@ -112621,8 +114309,8 @@ Index: libstdc++-v3/doc/xml/manual/intro.xml
      <!-- Section 01.1 : Status C++ 1998 -->
 Index: libstdc++-v3/doc/xml/manual/abi.xml
 ===================================================================
---- libstdc++-v3/doc/xml/manual/abi.xml        (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ libstdc++-v3/doc/xml/manual/abi.xml        (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- libstdc++-v3/doc/xml/manual/abi.xml        (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ libstdc++-v3/doc/xml/manual/abi.xml        (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -207,6 +207,7 @@
      <listitem><para>gcc-4.1.0: GCC_4.1.0</para></listitem>
      <listitem><para>gcc-4.2.0: GCC_4.2.0</para></listitem>
@@ -112669,8 +114357,8 @@ Index: libstdc++-v3/doc/xml/manual/abi.xml
      </listitem>
 Index: libstdc++-v3/doc/xml/manual/status_cxxtr1.xml
 ===================================================================
---- libstdc++-v3/doc/xml/manual/status_cxxtr1.xml      (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ libstdc++-v3/doc/xml/manual/status_cxxtr1.xml      (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- libstdc++-v3/doc/xml/manual/status_cxxtr1.xml      (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ libstdc++-v3/doc/xml/manual/status_cxxtr1.xml      (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1,4 +1,4 @@
 -<sect2 id="manual.intro.status.standard.tr1" xreflabel="Status C++ TR1">
 +<sect2 id="status.iso.tr1" xreflabel="Status C++ TR1">
@@ -112679,8 +114367,8 @@ Index: libstdc++-v3/doc/xml/manual/status_cxxtr1.xml
  <sect2info>
 Index: libstdc++-v3/doc/xml/manual/status_cxx1998.xml
 ===================================================================
---- libstdc++-v3/doc/xml/manual/status_cxx1998.xml     (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ libstdc++-v3/doc/xml/manual/status_cxx1998.xml     (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- libstdc++-v3/doc/xml/manual/status_cxx1998.xml     (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ libstdc++-v3/doc/xml/manual/status_cxx1998.xml     (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1,4 +1,4 @@
 -<sect2 id="manual.intro.status.standard.1998" xreflabel="ISO C++ 1998">
 +<sect2 id="status.iso.1998" xreflabel="ISO C++ 1998">
@@ -112707,8 +114395,8 @@ Index: libstdc++-v3/doc/xml/manual/status_cxx1998.xml
     <para>
 Index: libstdc++-v3/doc/xml/manual/appendix_contributing.xml
 ===================================================================
---- libstdc++-v3/doc/xml/manual/appendix_contributing.xml      (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ libstdc++-v3/doc/xml/manual/appendix_contributing.xml      (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- libstdc++-v3/doc/xml/manual/appendix_contributing.xml      (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ libstdc++-v3/doc/xml/manual/appendix_contributing.xml      (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1102,7 +1102,7 @@
        For validating the XML document, you'll need
        something like <command>xmllint</command> and access to the
@@ -112720,8 +114408,8 @@ Index: libstdc++-v3/doc/xml/manual/appendix_contributing.xml
        <para>
 Index: libstdc++-v3/doc/xml/manual/status_cxx200x.xml
 ===================================================================
---- libstdc++-v3/doc/xml/manual/status_cxx200x.xml     (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ libstdc++-v3/doc/xml/manual/status_cxx200x.xml     (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- libstdc++-v3/doc/xml/manual/status_cxx200x.xml     (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ libstdc++-v3/doc/xml/manual/status_cxx200x.xml     (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1,4 +1,4 @@
 -<sect2 id="manual.intro.status.standard.200x" xreflabel="Status C++ 200x">
 +<sect2 id="status.iso.200x" xreflabel="Status C++ 200x">
@@ -112730,8 +114418,8 @@ Index: libstdc++-v3/doc/xml/manual/status_cxx200x.xml
  <sect2info>
 Index: configure.ac
 ===================================================================
---- configure.ac       (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ configure.ac       (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- configure.ac       (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ configure.ac       (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1250,6 +1250,7 @@
  if test "x$with_gmp$with_gmp_include$with_gmp_lib" = x && test -d ${srcdir}/gmp; then
    gmplibs='-L$$r/$(HOST_SUBDIR)/gmp/.libs -L$$r/$(HOST_SUBDIR)/gmp/_libs '"$gmplibs"
@@ -112750,8 +114438,8 @@ Index: configure.ac
  AC_ARG_WITH(host-libstdcxx, [  --with-host-libstdcxx=L Use linker arguments L to link with libstdc++
 Index: libgfortran/Makefile.in
 ===================================================================
---- libgfortran/Makefile.in    (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ libgfortran/Makefile.in    (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- libgfortran/Makefile.in    (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ libgfortran/Makefile.in    (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -416,9 +416,9 @@
        io/size_from_kind.c io/transfer.c io/unit.c io/unix.c \
        io/write.c io/fbuf.c intrinsics/associated.c \
@@ -112810,8 +114498,8 @@ Index: libgfortran/Makefile.in
  @am__fastdepCC_TRUE@  then mv -f "$(DEPDIR)/c99_functions.Tpo" "$(DEPDIR)/c99_functions.Plo"; else rm -f "$(DEPDIR)/c99_functions.Tpo"; exit 1; fi
 Index: libgfortran/runtime/backtrace.c
 ===================================================================
---- libgfortran/runtime/backtrace.c    (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ libgfortran/runtime/backtrace.c    (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- libgfortran/runtime/backtrace.c    (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ libgfortran/runtime/backtrace.c    (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -147,7 +147,7 @@
  
      /* Write the list of addresses in hexadecimal format.  */
@@ -112823,8 +114511,8 @@ Index: libgfortran/runtime/backtrace.c
      /* Don't output an error message if something goes wrong, we'll simply
 Index: libgfortran/runtime/error.c
 ===================================================================
---- libgfortran/runtime/error.c        (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ libgfortran/runtime/error.c        (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- libgfortran/runtime/error.c        (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ libgfortran/runtime/error.c        (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -112,48 +112,11 @@
   * Other error returns are reserved for the STOP statement with a numeric code.
   */
@@ -112879,7 +114567,7 @@ Index: libgfortran/runtime/error.c
 Index: libgfortran/intrinsics/bit_intrinsics.c
 ===================================================================
 --- libgfortran/intrinsics/bit_intrinsics.c    (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ libgfortran/intrinsics/bit_intrinsics.c    (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ libgfortran/intrinsics/bit_intrinsics.c    (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,138 @@
 +/* Implementation of the bit intrinsics not implemented as GCC builtins.
 +   Copyright (C) 2009 Free Software Foundation, Inc.
@@ -113021,8 +114709,8 @@ Index: libgfortran/intrinsics/bit_intrinsics.c
 +#endif
 Index: libgfortran/ChangeLog
 ===================================================================
---- libgfortran/ChangeLog      (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ libgfortran/ChangeLog      (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- libgfortran/ChangeLog      (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ libgfortran/ChangeLog      (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1,3 +1,364 @@
 +2009-06-29  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
 +
@@ -113390,8 +115078,8 @@ Index: libgfortran/ChangeLog
        * GCC 4.4.0 released.
 Index: libgfortran/gfortran.map
 ===================================================================
---- libgfortran/gfortran.map   (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ libgfortran/gfortran.map   (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- libgfortran/gfortran.map   (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ libgfortran/gfortran.map   (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1090,6 +1090,13 @@
      _gfortran_unpack1_char4;
  } GFORTRAN_1.0; 
@@ -113408,8 +115096,8 @@ Index: libgfortran/gfortran.map
      _gfortran_f2c_specific__abs_c4;
 Index: libgfortran/libgfortran.h
 ===================================================================
---- libgfortran/libgfortran.h  (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ libgfortran/libgfortran.h  (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- libgfortran/libgfortran.h  (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ libgfortran/libgfortran.h  (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -631,12 +631,9 @@
  extern void sys_exit (int) __attribute__ ((noreturn));
  internal_proto(sys_exit);
@@ -113427,8 +115115,8 @@ Index: libgfortran/libgfortran.h
  
 Index: libgfortran/io/file_pos.c
 ===================================================================
---- libgfortran/io/file_pos.c  (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ libgfortran/io/file_pos.c  (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- libgfortran/io/file_pos.c  (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ libgfortran/io/file_pos.c  (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -41,17 +41,17 @@
  {
    gfc_offset base;
@@ -113620,8 +115308,8 @@ Index: libgfortran/io/file_pos.c
    else
 Index: libgfortran/io/open.c
 ===================================================================
---- libgfortran/io/open.c      (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ libgfortran/io/open.c      (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- libgfortran/io/open.c      (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ libgfortran/io/open.c      (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -150,7 +150,7 @@
  static void
  test_endfile (gfc_unit * u)
@@ -113688,8 +115376,8 @@ Index: libgfortran/io/open.c
          generate_error (&opp->common, LIBERROR_OS,
 Index: libgfortran/io/list_read.c
 ===================================================================
---- libgfortran/io/list_read.c (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ libgfortran/io/list_read.c (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- libgfortran/io/list_read.c (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ libgfortran/io/list_read.c (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -28,6 +28,7 @@
  
  #include "io.h"
@@ -113985,8 +115673,8 @@ Index: libgfortran/io/list_read.c
          }
 Index: libgfortran/io/read.c
 ===================================================================
---- libgfortran/io/read.c      (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ libgfortran/io/read.c      (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- libgfortran/io/read.c      (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ libgfortran/io/read.c      (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -28,6 +28,7 @@
  #include <errno.h>
  #include <ctype.h>
@@ -114734,8 +116422,8 @@ Index: libgfortran/io/read.c
  
 Index: libgfortran/io/io.h
 ===================================================================
---- libgfortran/io/io.h        (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ libgfortran/io/io.h        (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- libgfortran/io/io.h        (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ libgfortran/io/io.h        (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -46,35 +46,61 @@
  
  typedef struct stream
@@ -115011,8 +116699,8 @@ Index: libgfortran/io/io.h
  internal_proto(free_ionml);
 Index: libgfortran/io/unit.c
 ===================================================================
---- libgfortran/io/unit.c      (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ libgfortran/io/unit.c      (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- libgfortran/io/unit.c      (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ libgfortran/io/unit.c      (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -535,6 +535,8 @@
        u->file_len = strlen (stdin_name);
        u->file = get_mem (u->file_len);
@@ -115142,8 +116830,8 @@ Index: libgfortran/io/unit.c
  
 Index: libgfortran/io/fbuf.c
 ===================================================================
---- libgfortran/io/fbuf.c      (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ libgfortran/io/fbuf.c      (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- libgfortran/io/fbuf.c      (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ libgfortran/io/fbuf.c      (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -28,8 +28,11 @@
  #include <stdlib.h>
  
@@ -115459,8 +117147,8 @@ Index: libgfortran/io/fbuf.c
 +}
 Index: libgfortran/io/unix.c
 ===================================================================
---- libgfortran/io/unix.c      (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ libgfortran/io/unix.c      (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- libgfortran/io/unix.c      (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ libgfortran/io/unix.c      (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -89,10 +89,6 @@
  
  #endif
@@ -116844,8 +118532,8 @@ Index: libgfortran/io/unix.c
  
 Index: libgfortran/io/transfer.c
 ===================================================================
---- libgfortran/io/transfer.c  (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ libgfortran/io/transfer.c  (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- libgfortran/io/transfer.c  (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ libgfortran/io/transfer.c  (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -32,6 +32,7 @@
  #include <string.h>
  #include <assert.h>
@@ -118994,8 +120682,8 @@ Index: libgfortran/io/transfer.c
 +}
 Index: libgfortran/io/intrinsics.c
 ===================================================================
---- libgfortran/io/intrinsics.c        (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ libgfortran/io/intrinsics.c        (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- libgfortran/io/intrinsics.c        (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ libgfortran/io/intrinsics.c        (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -41,21 +41,26 @@
  PREFIX(fgetc) (const int * unit, char * c, gfc_charlen_type c_len)
  {
@@ -119122,8 +120810,8 @@ Index: libgfortran/io/intrinsics.c
    }
 Index: libgfortran/io/format.c
 ===================================================================
---- libgfortran/io/format.c    (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ libgfortran/io/format.c    (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- libgfortran/io/format.c    (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ libgfortran/io/format.c    (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -58,7 +58,7 @@
  static const fnode colon_node = { FMT_COLON, 0, NULL, NULL, {{ 0, 0, 0 }}, 0,
                                  NULL };
@@ -119244,8 +120932,8 @@ Index: libgfortran/io/format.c
   * Parenthesis nodes are incremented after the list has been
 Index: libgfortran/io/write.c
 ===================================================================
---- libgfortran/io/write.c     (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ libgfortran/io/write.c     (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- libgfortran/io/write.c     (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ libgfortran/io/write.c     (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -108,7 +108,7 @@
    gfc_char4_t c;
    static const uchar masks[6] =  { 0x00, 0xC0, 0xE0, 0xF0, 0xF8, 0xFC };
@@ -119422,8 +121110,8 @@ Index: libgfortran/io/write.c
            nml_carry = 1;
 Index: libgfortran/io/write_float.def
 ===================================================================
---- libgfortran/io/write_float.def     (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ libgfortran/io/write_float.def     (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- libgfortran/io/write_float.def     (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ libgfortran/io/write_float.def     (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -603,7 +603,7 @@
    int d = f->u.real.d;\
    int w = f->u.real.w;\
@@ -119456,8 +121144,8 @@ Index: libgfortran/io/write_float.def
          { \
 Index: libgfortran/Makefile.am
 ===================================================================
---- libgfortran/Makefile.am    (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ libgfortran/Makefile.am    (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- libgfortran/Makefile.am    (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ libgfortran/Makefile.am    (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -58,6 +58,7 @@
  intrinsics/abort.c \
  intrinsics/access.c \
@@ -119468,8 +121156,8 @@ Index: libgfortran/Makefile.am
  intrinsics/chmod.c \
 Index: Makefile.def
 ===================================================================
---- Makefile.def       (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ Makefile.def       (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- Makefile.def       (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ Makefile.def       (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -65,7 +65,7 @@
                host="none-${host_vendor}-${host_os}";
                target="none-${host_vendor}-${host_os}"; };
@@ -119481,8 +121169,8 @@ Index: Makefile.def
                target="none-${host_vendor}-${host_os}"; };
 Index: ChangeLog
 ===================================================================
---- ChangeLog  (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ ChangeLog  (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- ChangeLog  (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ ChangeLog  (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1,3 +1,11 @@
 +2009-04-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
 +
@@ -119497,8 +121185,8 @@ Index: ChangeLog
        * GCC 4.4.0 released.
 Index: contrib/ChangeLog
 ===================================================================
---- contrib/ChangeLog  (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ contrib/ChangeLog  (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- contrib/ChangeLog  (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ contrib/ChangeLog  (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1,3 +1,17 @@
 +2009-06-20  Gerald Pfeifer  <gerald@pfeifer.com>
 +
@@ -119519,8 +121207,8 @@ Index: contrib/ChangeLog
        * GCC 4.4.0 released.
 Index: contrib/test_summary
 ===================================================================
---- contrib/test_summary       (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ contrib/test_summary       (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- contrib/test_summary       (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ contrib/test_summary       (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1,6 +1,7 @@
  #! /bin/sh
  
@@ -119547,8 +121235,8 @@ Index: contrib/test_summary
      sub(/,;t t $/, " ", configflags);
 Index: contrib/dg-extract-results.sh
 ===================================================================
---- contrib/dg-extract-results.sh      (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ contrib/dg-extract-results.sh      (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- contrib/dg-extract-results.sh      (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ contrib/dg-extract-results.sh      (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -6,7 +6,7 @@
  # The resulting file can be used with test result comparison scripts for
  # results from tests that were run in parallel.  See usage() below.
@@ -119647,8 +121335,8 @@ Index: contrib/dg-extract-results.sh
  }
 Index: libjava/Makefile.in
 ===================================================================
---- libjava/Makefile.in        (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ libjava/Makefile.in        (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- libjava/Makefile.in        (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ libjava/Makefile.in        (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -72,6 +72,7 @@
        $(top_srcdir)/contrib/aot-compile-rpm.in \
        $(top_srcdir)/contrib/aot-compile.in \
@@ -119719,8 +121407,8 @@ Index: libjava/Makefile.in
  @CREATE_JAVA_HOME_TRUE@           $(DESTDIR)$(SDK_INCLUDE_DIR)/linux); \
 Index: libjava/configure.ac
 ===================================================================
---- libjava/configure.ac       (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ libjava/configure.ac       (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- libjava/configure.ac       (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ libjava/configure.ac       (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -834,6 +834,8 @@
  AC_CONFIG_LINKS(gnu/java/nio/channels/natFileChannelImpl.cc:gnu/java/nio/channels/natFileChannel${FILE-${PLATFORM}}.cc)
  
@@ -119740,8 +121428,8 @@ Index: libjava/configure.ac
  
 Index: libjava/classpath/tools/gnu/classpath/tools/gjdoc/Main.java
 ===================================================================
---- libjava/classpath/tools/gnu/classpath/tools/gjdoc/Main.java        (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ libjava/classpath/tools/gnu/classpath/tools/gjdoc/Main.java        (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- libjava/classpath/tools/gnu/classpath/tools/gjdoc/Main.java        (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ libjava/classpath/tools/gnu/classpath/tools/gjdoc/Main.java        (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1825,16 +1825,7 @@
    public String getGjdocVersion()
    {
@@ -119762,8 +121450,8 @@ Index: libjava/classpath/tools/gnu/classpath/tools/gjdoc/Main.java
    }
 Index: libjava/classpath/tools/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet.java
 ===================================================================
---- libjava/classpath/tools/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet.java     (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ libjava/classpath/tools/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet.java     (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- libjava/classpath/tools/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet.java     (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ libjava/classpath/tools/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet.java     (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -3736,20 +3736,7 @@
     protected String getDocletVersion()
     {
@@ -119796,8 +121484,8 @@ Nie można wyświetlić: plik binarny.
 svn:mime-type = application/octet-stream
 Index: libjava/classpath/ChangeLog.gcj
 ===================================================================
---- libjava/classpath/ChangeLog.gcj    (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ libjava/classpath/ChangeLog.gcj    (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- libjava/classpath/ChangeLog.gcj    (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ libjava/classpath/ChangeLog.gcj    (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1,3 +1,13 @@
 +2009-06-16  Matthias Klose  <doko@ubuntu.com>
 +
@@ -119814,8 +121502,8 @@ Index: libjava/classpath/ChangeLog.gcj
        * configure.ac: Detect xulrunner-1.9.
 Index: libjava/ChangeLog
 ===================================================================
---- libjava/ChangeLog  (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ libjava/ChangeLog  (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- libjava/ChangeLog  (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ libjava/ChangeLog  (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1,3 +1,28 @@
 +2009-05-11  Matthias Klose  <doko@ubuntu.com>
 +
@@ -119847,8 +121535,8 @@ Index: libjava/ChangeLog
        * GCC 4.4.0 released.
 Index: libjava/contrib/aotcompile.py.in
 ===================================================================
---- libjava/contrib/aotcompile.py.in   (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ libjava/contrib/aotcompile.py.in   (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- libjava/contrib/aotcompile.py.in   (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ libjava/contrib/aotcompile.py.in   (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -177,11 +177,14 @@
      
      def __init__(self, path):
@@ -119901,7 +121589,7 @@ Index: libjava/contrib/aotcompile.py.in
 Index: libjava/contrib/generate-cacerts.pl.in
 ===================================================================
 --- libjava/contrib/generate-cacerts.pl.in     (.../tags/gcc_4_4_0_release)    (wersja 0)
-+++ libjava/contrib/generate-cacerts.pl.in     (.../branches/gcc-4_4-branch)   (wersja 149126)
++++ libjava/contrib/generate-cacerts.pl.in     (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -0,0 +1,106 @@
 +#!/usr/bin/perl
 +
@@ -120011,8 +121699,8 @@ Index: libjava/contrib/generate-cacerts.pl.in
 +}
 Index: libjava/configure
 ===================================================================
---- libjava/configure  (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ libjava/configure  (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- libjava/configure  (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ libjava/configure  (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -19141,6 +19141,8 @@
  
  
@@ -120041,8 +121729,8 @@ Index: libjava/configure
    "include/platform.h" ) CONFIG_LINKS="$CONFIG_LINKS include/platform.h:include/$PLATFORMH" ;;
 Index: libjava/Makefile.am
 ===================================================================
---- libjava/Makefile.am        (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ libjava/Makefile.am        (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- libjava/Makefile.am        (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ libjava/Makefile.am        (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -305,8 +305,15 @@
  ## compiled.
  EXTRA_libgcj_la_SOURCES = java/lang/Object.java
@@ -120080,8 +121768,8 @@ Index: libjava/Makefile.am
            $(DESTDIR)$(SDK_INCLUDE_DIR)/linux); \
 Index: libcpp/po/ChangeLog
 ===================================================================
---- libcpp/po/ChangeLog        (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ libcpp/po/ChangeLog        (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- libcpp/po/ChangeLog        (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ libcpp/po/ChangeLog        (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1,3 +1,7 @@
 +2009-04-22  Joseph Myers  <joseph@codesourcery.com>
 +
@@ -120092,8 +121780,8 @@ Index: libcpp/po/ChangeLog
        * GCC 4.4.0 released.
 Index: libcpp/po/cpplib.pot
 ===================================================================
---- libcpp/po/cpplib.pot       (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ libcpp/po/cpplib.pot       (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- libcpp/po/cpplib.pot       (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ libcpp/po/cpplib.pot       (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -8,7 +8,7 @@
  msgstr ""
  "Project-Id-Version: PACKAGE VERSION\n"
@@ -120625,8 +122313,8 @@ Index: libcpp/po/cpplib.pot
  msgstr ""
 Index: gnattools/Makefile.in
 ===================================================================
---- gnattools/Makefile.in      (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gnattools/Makefile.in      (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gnattools/Makefile.in      (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gnattools/Makefile.in      (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -164,7 +164,7 @@
        -(cd $(GCC_DIR)/ada/tools; $(LN_S) ../sdefault.adb .)
        -$(foreach PAIR,$(TOOLS_TARGET_PAIRS), \
@@ -120638,8 +122326,8 @@ Index: gnattools/Makefile.in
  
 Index: gnattools/ChangeLog
 ===================================================================
---- gnattools/ChangeLog        (.../tags/gcc_4_4_0_release)    (wersja 149126)
-+++ gnattools/ChangeLog        (.../branches/gcc-4_4-branch)   (wersja 149126)
+--- gnattools/ChangeLog        (.../tags/gcc_4_4_0_release)    (wersja 149530)
++++ gnattools/ChangeLog        (.../branches/gcc-4_4-branch)   (wersja 149530)
 @@ -1,3 +1,9 @@
 +2009-05-18  Bechir Zalila  <bechir.zalila@gmail.com>
 +
diff --git a/gcc-ix86-branch.diff b/gcc-ix86-branch.diff
deleted file mode 100644 (file)
index 51cd3dd..0000000
+++ /dev/null
@@ -1,3689 +0,0 @@
-Index: gcc/doc/invoke.texi
-===================================================================
---- gcc/doc/invoke.texi        (.../tags/gcc_4_4_0_release)    (revision 146537)
-+++ gcc/doc/invoke.texi        (.../branches/ix86/gcc-4_4-branch)      (revision 146537)
-@@ -584,7 +584,7 @@
- -m96bit-long-double  -mregparm=@var{num}  -msseregparm @gol
- -mveclibabi=@var{type} -mpc32 -mpc64 -mpc80 -mstackrealign @gol
- -momit-leaf-frame-pointer  -mno-red-zone -mno-tls-direct-seg-refs @gol
---mcmodel=@var{code-model} @gol
-+-mcmodel=@var{code-model} -mabi=@var{name} @gol
- -m32  -m64 -mlarge-data-threshold=@var{num} @gol
- -mfused-madd -mno-fused-madd -msse2avx}
-@@ -10959,6 +10959,9 @@
- @item core2
- Intel Core2 CPU with 64-bit extensions, MMX, SSE, SSE2, SSE3 and SSSE3
- instruction set support.
-+@item atom
-+Intel Atom CPU with 64-bit extensions, MMX, SSE, SSE2, SSE3 and SSSE3
-+instruction set support.
- @item k6
- AMD K6 CPU with MMX instruction set support.
- @item k6-2, k6-3
-@@ -11394,6 +11397,16 @@
- @option{-funsafe-math-optimizations} have to be enabled. A SVML or ACML ABI
- compatible library will have to be specified at link time.
-+@item -mabi=@var{name}
-+@opindex mabi
-+Generate code for the specified calling convention.  Permissible values
-+are: @samp{sysv} for the ABI used on GNU/Linux and other systems and
-+@samp{ms} for the Microsoft ABI.  The default is to use the Microsoft
-+ABI when targeting Windows.  On all other systems, the default is the
-+SYSV ABI.  You can control this behavior for a specific function by
-+using the function attribute @samp{ms_abi}/@samp{sysv_abi}.
-+@xref{Function Attributes}.
-+
- @item -mpush-args
- @itemx -mno-push-args
- @opindex mpush-args
-Index: gcc/doc/md.texi
-===================================================================
---- gcc/doc/md.texi    (.../tags/gcc_4_4_0_release)    (revision 146537)
-+++ gcc/doc/md.texi    (.../branches/ix86/gcc-4_4-branch)      (revision 146537)
-@@ -7506,6 +7506,11 @@
- recognize complicated bypasses, e.g.@: when the consumer is only an address
- of insn @samp{store} (not a stored value).
-+If there are more one bypass with the same output and input insns, the
-+chosen bypass is the first bypass with a guard in description whose
-+guard function returns nonzero.  If there is no such bypass, then
-+bypass without the guard function is chosen.
-+
- @findex exclusion_set
- @findex presence_set
- @findex final_presence_set
-Index: gcc/genautomata.c
-===================================================================
---- gcc/genautomata.c  (.../tags/gcc_4_4_0_release)    (revision 146537)
-+++ gcc/genautomata.c  (.../branches/ix86/gcc-4_4-branch)      (revision 146537)
-@@ -1,5 +1,5 @@
- /* Pipeline hazard description translator.
--   Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008
-+   Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008, 2009
-    Free Software Foundation, Inc.
-    Written by Vladimir Makarov <vmakarov@redhat.com>
-@@ -22,21 +22,25 @@
- /* References:
--   1. Detecting pipeline structural hazards quickly. T. Proebsting,
-+   1. The finite state automaton based pipeline hazard recognizer and
-+      instruction scheduler in GCC.  V. Makarov.  Proceedings of GCC
-+      summit, 2003.
-+
-+   2. Detecting pipeline structural hazards quickly. T. Proebsting,
-       C. Fraser. Proceedings of ACM SIGPLAN-SIGACT Symposium on
-       Principles of Programming Languages, pages 280--286, 1994.
-       This article is a good start point to understand usage of finite
-       state automata for pipeline hazard recognizers.  But I'd
--      recommend the 2nd article for more deep understanding.
-+      recommend the 1st and 3rd article for more deep understanding.
--   2. Efficient Instruction Scheduling Using Finite State Automata:
-+   3. Efficient Instruction Scheduling Using Finite State Automata:
-       V. Bala and N. Rubin, Proceedings of MICRO-28.  This is the best
-       article about usage of finite state automata for pipeline hazard
-       recognizers.
--   The current implementation is different from the 2nd article in the
--   following:
-+   The current implementation is described in the 1st article and it
-+   is different from the 3rd article in the following:
-    1. New operator `|' (alternative) is permitted in functional unit
-       reservation which can be treated deterministically and
-@@ -463,7 +467,10 @@
-      insn.  */
-   int insn_num;
-   /* The following field value is list of bypasses in which given insn
--     is output insn.  */
-+     is output insn.  Bypasses with the same input insn stay one after
-+     another in the list in the same order as their occurrences in the
-+     description but the bypass without a guard stays always the last
-+     in a row of bypasses with the same input insn.  */
-   struct bypass_decl *bypass_list;
-   /* The following fields are defined by automaton generator.  */
-@@ -2367,18 +2374,67 @@
- }
--/* The function searches for bypass with given IN_INSN_RESERV in given
--   BYPASS_LIST.  */
--static struct bypass_decl *
--find_bypass (struct bypass_decl *bypass_list,
--           struct insn_reserv_decl *in_insn_reserv)
-+/* The function inserts BYPASS in the list of bypasses of the
-+   corresponding output insn.  The order of bypasses in the list is
-+   decribed in a comment for member `bypass_list' (see above).  If
-+   there is already the same bypass in the list the function reports
-+   this and does nothing.  */
-+static void
-+insert_bypass (struct bypass_decl *bypass)
- {
--  struct bypass_decl *bypass;
--
--  for (bypass = bypass_list; bypass != NULL; bypass = bypass->next)
--    if (bypass->in_insn_reserv == in_insn_reserv)
--      break;
--  return bypass;
-+  struct bypass_decl *curr, *last;
-+  struct insn_reserv_decl *out_insn_reserv = bypass->out_insn_reserv;
-+  struct insn_reserv_decl *in_insn_reserv = bypass->in_insn_reserv;
-+  
-+  for (curr = out_insn_reserv->bypass_list, last = NULL;
-+       curr != NULL;
-+       last = curr, curr = curr->next)
-+    if (curr->in_insn_reserv == in_insn_reserv)
-+      {
-+      if ((bypass->bypass_guard_name != NULL
-+           && curr->bypass_guard_name != NULL
-+           && ! strcmp (bypass->bypass_guard_name, curr->bypass_guard_name))
-+          || bypass->bypass_guard_name == curr->bypass_guard_name)
-+        {
-+          if (bypass->bypass_guard_name == NULL)
-+            {
-+              if (!w_flag)
-+                error ("the same bypass `%s - %s' is already defined",
-+                       bypass->out_insn_name, bypass->in_insn_name);
-+              else
-+                warning (0, "the same bypass `%s - %s' is already defined",
-+                         bypass->out_insn_name, bypass->in_insn_name);
-+            }
-+          else if (!w_flag)
-+            error ("the same bypass `%s - %s' (guard %s) is already defined",
-+                   bypass->out_insn_name, bypass->in_insn_name,
-+                   bypass->bypass_guard_name);
-+          else
-+            warning
-+              (0, "the same bypass `%s - %s' (guard %s) is already defined",
-+               bypass->out_insn_name, bypass->in_insn_name,
-+               bypass->bypass_guard_name);
-+          return;
-+        }
-+      if (curr->bypass_guard_name == NULL)
-+        break;
-+      if (curr->next == NULL || curr->next->in_insn_reserv != in_insn_reserv)
-+        {
-+          last = curr;
-+          break;
-+        }
-+        
-+      }
-+  if (last == NULL)
-+    {
-+      bypass->next = out_insn_reserv->bypass_list;
-+      out_insn_reserv->bypass_list = bypass;
-+    }
-+  else
-+    {
-+      bypass->next = last->next;
-+      last->next = bypass;
-+    }
- }
- /* The function processes pipeline description declarations, checks
-@@ -2391,7 +2447,6 @@
-   decl_t decl_in_table;
-   decl_t out_insn_reserv;
-   decl_t in_insn_reserv;
--  struct bypass_decl *bypass;
-   int automaton_presence;
-   int i;
-@@ -2514,36 +2569,7 @@
-               = DECL_INSN_RESERV (out_insn_reserv);
-             DECL_BYPASS (decl)->in_insn_reserv
-               = DECL_INSN_RESERV (in_insn_reserv);
--            bypass
--              = find_bypass (DECL_INSN_RESERV (out_insn_reserv)->bypass_list,
--                             DECL_BYPASS (decl)->in_insn_reserv);
--            if (bypass != NULL)
--              {
--                if (DECL_BYPASS (decl)->latency == bypass->latency)
--                  {
--                    if (!w_flag)
--                      error
--                        ("the same bypass `%s - %s' is already defined",
--                         DECL_BYPASS (decl)->out_insn_name,
--                         DECL_BYPASS (decl)->in_insn_name);
--                    else
--                      warning
--                        (0, "the same bypass `%s - %s' is already defined",
--                         DECL_BYPASS (decl)->out_insn_name,
--                         DECL_BYPASS (decl)->in_insn_name);
--                  }
--                else
--                  error ("bypass `%s - %s' is already defined",
--                         DECL_BYPASS (decl)->out_insn_name,
--                         DECL_BYPASS (decl)->in_insn_name);
--              }
--            else
--              {
--                DECL_BYPASS (decl)->next
--                  = DECL_INSN_RESERV (out_insn_reserv)->bypass_list;
--                DECL_INSN_RESERV (out_insn_reserv)->bypass_list
--                  = DECL_BYPASS (decl);
--              }
-+            insert_bypass (DECL_BYPASS (decl));
-           }
-       }
-     }
-@@ -8159,19 +8185,32 @@
-                           (advance_cycle_insn_decl)->insn_num));
-           fprintf (output_file, "        case %d:\n",
-                    bypass->in_insn_reserv->insn_num);
--          if (bypass->bypass_guard_name == NULL)
--            fprintf (output_file, "          return %d;\n",
--                     bypass->latency);
--          else
-+          for (;;)
-             {
--              fprintf (output_file,
--                       "          if (%s (%s, %s))\n",
--                       bypass->bypass_guard_name, INSN_PARAMETER_NAME,
--                       INSN2_PARAMETER_NAME);
--              fprintf (output_file,
--                       "            return %d;\n          break;\n",
--                       bypass->latency);
-+              if (bypass->bypass_guard_name == NULL)
-+                {
-+                  gcc_assert (bypass->next == NULL
-+                              || (bypass->in_insn_reserv
-+                                  != bypass->next->in_insn_reserv));
-+                  fprintf (output_file, "          return %d;\n",
-+                           bypass->latency);
-+                }
-+              else
-+                {
-+                  fprintf (output_file,
-+                           "          if (%s (%s, %s))\n",
-+                           bypass->bypass_guard_name, INSN_PARAMETER_NAME,
-+                           INSN2_PARAMETER_NAME);
-+                  fprintf (output_file, "            return %d;\n",
-+                           bypass->latency);
-+                }
-+              if (bypass->next == NULL
-+                  || bypass->in_insn_reserv != bypass->next->in_insn_reserv)
-+                break;
-+              bypass = bypass->next;
-             }
-+          if (bypass->bypass_guard_name != NULL)
-+            fprintf (output_file, "          break;\n");
-         }
-       fputs ("        }\n      break;\n", output_file);
-       }
-Index: gcc/testsuite/gcc.target/x86_64/abi/callabi/vaarg-4a.c
-===================================================================
---- gcc/testsuite/gcc.target/x86_64/abi/callabi/vaarg-4a.c     (.../tags/gcc_4_4_0_release)    (revision 0)
-+++ gcc/testsuite/gcc.target/x86_64/abi/callabi/vaarg-4a.c     (.../branches/ix86/gcc-4_4-branch)      (revision 146537)
-@@ -0,0 +1,24 @@
-+/* Test for cross x86_64<->w64 abi va_list calls.  */
-+/* { dg-do run { target i?86-*-linux* x86_64-*-linux* } } */
-+/* { dg-options "-O2 -mabi=ms -std=gnu99 -fno-builtin" } */
-+/* { dg-additional-sources "vaarg-4b.c" } */
-+
-+extern __SIZE_TYPE__ __attribute__ ((sysv_abi)) strlen (const char *);
-+extern int __attribute__ ((sysv_abi)) sprintf (char *,const char *, ...);
-+extern void __attribute__ ((sysv_abi)) abort (void);
-+
-+extern void do_cpy (char *, ...);
-+
-+int __attribute__ ((sysv_abi))
-+main ()
-+{
-+  char s[256];
-+
-+  do_cpy (s, "1","2","3","4", "5", "6", "7", "");
-+
-+  if (s[0] != '1' || s[1] !='2' || s[2] != '3' || s[3] != '4'
-+      || s[4] != '5' || s[5] != '6' || s[6] != '7' || s[7] != 0)
-+    abort ();
-+
-+  return 0;
-+}
-Index: gcc/testsuite/gcc.target/x86_64/abi/callabi/vaarg-4b.c
-===================================================================
---- gcc/testsuite/gcc.target/x86_64/abi/callabi/vaarg-4b.c     (.../tags/gcc_4_4_0_release)    (revision 0)
-+++ gcc/testsuite/gcc.target/x86_64/abi/callabi/vaarg-4b.c     (.../branches/ix86/gcc-4_4-branch)      (revision 146537)
-@@ -0,0 +1,31 @@
-+/* Test for cross x86_64<->w64 abi va_list calls.  */
-+/* { dg-options "-O2 -mabi=ms -std=gnu99 -fno-builtin" } */
-+
-+#include <stdarg.h>
-+
-+extern __SIZE_TYPE__ __attribute__ ((sysv_abi)) strlen (const char *);
-+extern int __attribute__ ((sysv_abi)) sprintf (char *, const char *, ...);
-+
-+static void
-+vdo_cpy (char *s, va_list argp)
-+{
-+  __SIZE_TYPE__ len;
-+  char *r = s;
-+  char *e;
-+  *r = 0;
-+  for (;;) {
-+    e = va_arg (argp, char *);
-+    if (*e == 0) break;
-+    sprintf (r,"%s", e);
-+    r += strlen (r);
-+  }
-+}
-+
-+void
-+do_cpy (char *s, ...)
-+{
-+  va_list argp;
-+  va_start (argp, s);
-+  vdo_cpy (s, argp);
-+  va_end (argp);
-+}
-Index: gcc/testsuite/gcc.target/x86_64/abi/callabi/vaarg-5a.c
-===================================================================
---- gcc/testsuite/gcc.target/x86_64/abi/callabi/vaarg-5a.c     (.../tags/gcc_4_4_0_release)    (revision 0)
-+++ gcc/testsuite/gcc.target/x86_64/abi/callabi/vaarg-5a.c     (.../branches/ix86/gcc-4_4-branch)      (revision 146537)
-@@ -0,0 +1,17 @@
-+/* Test for cross x86_64<->w64 abi va_list calls.  */
-+/* { dg-do run { target i?86-*-linux* x86_64-*-linux* } } */
-+/* { dg-options "-O2 -mabi=ms -std=gnu99 -fno-builtin" } */
-+/* { dg-additional-sources "vaarg-5b.c" } */
-+
-+extern void __attribute__ ((sysv_abi)) abort (void);
-+extern int fct2 (int, ...);
-+
-+#define SZ_ARGS       1ll,2ll,3ll,4ll,5ll,6ll,7ll,0ll
-+
-+int __attribute__ ((sysv_abi))
-+main()
-+{
-+  if (fct2 (-1, SZ_ARGS) != 0)
-+    abort ();
-+  return 0;
-+}
-Index: gcc/testsuite/gcc.target/x86_64/abi/callabi/vaarg-5b.c
-===================================================================
---- gcc/testsuite/gcc.target/x86_64/abi/callabi/vaarg-5b.c     (.../tags/gcc_4_4_0_release)    (revision 0)
-+++ gcc/testsuite/gcc.target/x86_64/abi/callabi/vaarg-5b.c     (.../branches/ix86/gcc-4_4-branch)      (revision 146537)
-@@ -0,0 +1,37 @@
-+/* Test for cross x86_64<->w64 abi va_list calls.  */
-+/* { dg-options "-O2 -mabi=ms -std=gnu99 -fno-builtin" } */
-+
-+#include <stdarg.h>
-+
-+#define SZ_ARGS       1ll,2ll,3ll,4ll,5ll,6ll,7ll,0ll
-+
-+static int __attribute__ ((sysv_abi))
-+fct1 (va_list argp, ...)
-+{
-+  long long p1,p2;
-+  int ret = 1;
-+  __builtin_sysv_va_list argp_2;
-+
-+  __builtin_sysv_va_start (argp_2, argp);
-+  do {
-+    p1 = va_arg (argp_2, long long);
-+    p2 = va_arg (argp, long long);
-+    if (p1 != p2)
-+      ret = 0;
-+  } while (ret && p1 != 0);
-+  __builtin_sysv_va_end (argp_2);
-+
-+  return ret;
-+}
-+
-+int
-+fct2 (int dummy, ...)
-+{
-+  va_list argp;
-+  int ret = dummy;
-+
-+  va_start (argp, dummy);
-+  ret += fct1 (argp, SZ_ARGS);
-+  va_end (argp);
-+  return ret;
-+}
-Index: gcc/testsuite/gcc.target/x86_64/abi/callabi/func-indirect-2a.c
-===================================================================
---- gcc/testsuite/gcc.target/x86_64/abi/callabi/func-indirect-2a.c     (.../tags/gcc_4_4_0_release)    (revision 0)
-+++ gcc/testsuite/gcc.target/x86_64/abi/callabi/func-indirect-2a.c     (.../branches/ix86/gcc-4_4-branch)      (revision 146537)
-@@ -0,0 +1,17 @@
-+/* Test for cross x86_64<->w64 abi standard calls via variable.  */
-+/* { dg-do run { target i?86-*-linux* x86_64-*-linux* } } */
-+/* { dg-options "-O2 -mabi=ms -std=gnu99 -ffast-math -fno-builtin" } */
-+/* { dg-additional-sources "func-indirect-2b.c" } */
-+
-+extern void __attribute__ ((sysv_abi)) abort (void);
-+typedef int (*func)(void *, char *, char *, short, long long);
-+extern func get_callback (void);
-+
-+int __attribute__ ((sysv_abi))
-+main ()
-+{
-+  func callme = get_callback ();
-+  if (callme (0, 0, 0, 0x1234, 0x1234567890abcdefLL))
-+    abort ();
-+  return 0;
-+}
-Index: gcc/testsuite/gcc.target/x86_64/abi/callabi/func-2a.c
-===================================================================
---- gcc/testsuite/gcc.target/x86_64/abi/callabi/func-2a.c      (.../tags/gcc_4_4_0_release)    (revision 0)
-+++ gcc/testsuite/gcc.target/x86_64/abi/callabi/func-2a.c      (.../branches/ix86/gcc-4_4-branch)      (revision 146537)
-@@ -0,0 +1,27 @@
-+/* Test for cross x86_64<->w64 abi standard calls.  */
-+/* { dg-do run { target i?86-*-linux* x86_64-*-linux* } } */
-+/* { dg-options "-O2 -mabi=ms -std=gnu99 -ffast-math -fno-builtin" } */
-+/* { dg-additional-sources "func-2b.c" } */
-+
-+extern void __attribute__ ((sysv_abi)) abort (void);
-+long double func_cross (long double, double, float, long, int, char);
-+
-+long double __attribute__ ((sysv_abi))
-+func_native (long double a, double b, float c, long d, int e, char f)
-+{
-+  long double ret;
-+  ret = a + (long double) b + (long double) c;
-+  ret *= (long double) (d + (long) e);
-+  if (f>0)
-+    ret += func_native (a,b,c,d,e,-f);
-+  return ret;
-+}
-+
-+int __attribute__ ((sysv_abi))
-+main ()
-+{
-+  if (func_cross (1.0,2.0,3.0,1,2,3)
-+      != func_native (1.0,2.0,3.0,1,2,3))
-+    abort ();
-+  return 0;
-+}
-Index: gcc/testsuite/gcc.target/x86_64/abi/callabi/func-indirect-2b.c
-===================================================================
---- gcc/testsuite/gcc.target/x86_64/abi/callabi/func-indirect-2b.c     (.../tags/gcc_4_4_0_release)    (revision 0)
-+++ gcc/testsuite/gcc.target/x86_64/abi/callabi/func-indirect-2b.c     (.../branches/ix86/gcc-4_4-branch)      (revision 146537)
-@@ -0,0 +1,24 @@
-+/* Test for cross x86_64<->w64 abi standard calls via variable.  */
-+/* { dg-options "-O2 -mabi=ms -std=gnu99 -ffast-math -fno-builtin" } */
-+
-+typedef int (*func)(void *, char *, char *, short, long long);
-+
-+static int
-+callback (void *ptr, char *string1, char *string2, short number,
-+        long long rand)
-+{
-+  if (ptr != 0
-+      || string1 != 0
-+      || string2 != 0
-+      || number != 0x1234
-+      || rand != 0x1234567890abcdefLL)
-+    return 1;
-+  else
-+    return 0;
-+}
-+
-+func
-+get_callback (void)
-+{
-+  return callback;
-+}
-Index: gcc/testsuite/gcc.target/x86_64/abi/callabi/func-2b.c
-===================================================================
---- gcc/testsuite/gcc.target/x86_64/abi/callabi/func-2b.c      (.../tags/gcc_4_4_0_release)    (revision 0)
-+++ gcc/testsuite/gcc.target/x86_64/abi/callabi/func-2b.c      (.../branches/ix86/gcc-4_4-branch)      (revision 146537)
-@@ -0,0 +1,13 @@
-+/* Test for cross x86_64<->w64 abi standard calls.  */
-+/* { dg-options "-mabi=ms -std=gnu99 -ffast-math -fno-builtin" } */
-+
-+long double func_cross (long double a, double b, float c, long d, int e,
-+                      char f)
-+{
-+  long double ret;
-+  ret = a + (long double) b + (long double) c;
-+  ret *= (long double) (d + (long) e);
-+  if (f>0)
-+    ret += func_cross (a,b,c,d,e,-f);
-+  return ret;
-+}
-
-Property changes on: gcc/testsuite/gcc.target/x86_64/abi/callabi
-___________________________________________________________________
-Deleted: svn:mergeinfo
-
-Index: gcc/testsuite/ChangeLog.ix86
-===================================================================
---- gcc/testsuite/ChangeLog.ix86       (.../tags/gcc_4_4_0_release)    (revision 0)
-+++ gcc/testsuite/ChangeLog.ix86       (.../branches/ix86/gcc-4_4-branch)      (revision 146537)
-@@ -0,0 +1,14 @@
-+2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
-+
-+      Backport from mainline:
-+      2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
-+
-+      PR target/39472
-+      * gcc.target/x86_64/abi/callabi/func-2a.c: New.
-+      * gcc.target/x86_64/abi/callabi/func-2b.c: Likewise.
-+      * gcc.target/x86_64/abi/callabi/func-indirect-2a.c: Likewise.
-+      * gcc.target/x86_64/abi/callabi/func-indirect-2b.c: Likewise.
-+      * gcc.target/x86_64/abi/callabi/vaarg-4a.c: Likewise.
-+      * gcc.target/x86_64/abi/callabi/vaarg-4b.c: Likewise.
-+      * gcc.target/x86_64/abi/callabi/vaarg-5a.c: Likewise.
-+      * gcc.target/x86_64/abi/callabi/vaarg-5b.c: Likewise.
-
-Property changes on: gcc/testsuite/gcc.dg/torture/pr36227.c
-___________________________________________________________________
-Deleted: svn:mergeinfo
-
-
-Property changes on: gcc/testsuite/g++.dg/cpp0x/decltype-38655.C
-___________________________________________________________________
-Deleted: svn:mergeinfo
-
-
-Property changes on: gcc/testsuite/ChangeLog-2008
-___________________________________________________________________
-Deleted: svn:mergeinfo
-
-
-Property changes on: gcc/cp/ChangeLog-2007
-___________________________________________________________________
-Deleted: svn:mergeinfo
-
-
-Property changes on: gcc/cp/ChangeLog-2008
-___________________________________________________________________
-Deleted: svn:mergeinfo
-
-Index: gcc/rtl.def
-===================================================================
---- gcc/rtl.def        (.../tags/gcc_4_4_0_release)    (revision 146537)
-+++ gcc/rtl.def        (.../branches/ix86/gcc-4_4-branch)      (revision 146537)
-@@ -1088,7 +1088,11 @@
-    guard for the bypass.  The function will get the two insns as
-    parameters.  If the function returns zero the bypass will be
-    ignored for this case.  Additional guard is necessary to recognize
--   complicated bypasses, e.g. when consumer is load address.  */
-+   complicated bypasses, e.g. when consumer is load address.  If there
-+   are more one bypass with the same output and input insns, the
-+   chosen bypass is the first bypass with a guard in description whose
-+   guard function returns nonzero.  If there is no such bypass, then
-+   bypass without the guard function is chosen.  */
- DEF_RTL_EXPR(DEFINE_BYPASS, "define_bypass", "issS", RTX_EXTRA)
- /* (define_automaton string) describes names of automata generated and
-
-Property changes on: gcc/ChangeLog-2008
-___________________________________________________________________
-Deleted: svn:mergeinfo
-
-Index: gcc/ChangeLog.ix86
-===================================================================
---- gcc/ChangeLog.ix86 (.../tags/gcc_4_4_0_release)    (revision 0)
-+++ gcc/ChangeLog.ix86 (.../branches/ix86/gcc-4_4-branch)      (revision 146537)
-@@ -0,0 +1,171 @@
-+2009-04-20  H.J. Lu  <hongjiu.lu@intel.com>
-+
-+      Backport from mainline:
-+      2009-04-20  Joey Ye  <joey.ye@intel.com>
-+                  Xuepeng Guo <xuepeng.guo@intel.com>
-+                  H.J. Lu  <hongjiu.lu@intel.com>
-+
-+      * config/i386/atom.md: Add bypasses with ix86_dep_by_shift_count.
-+
-+      * config/i386/i386.c (LEA_SEARCH_THRESHOLD): New macro.
-+      (IX86_LEA_PRIORITY): Likewise.
-+      (distance_non_agu_define): New function.
-+      (distance_agu_use): Likewise.
-+      (ix86_lea_for_add_ok): Likewise.
-+      (ix86_dep_by_shift_count): Likewise.
-+
-+      * config/i386/i386.md: Call ix86_lea_for_add_ok to decide we
-+      should split for LEA.
-+
-+      * config/i386/i386-protos.h (ix86_lea_for_add_ok): Declare new
-+      function.
-+      (ix86_dep_by_shift_count): Likewise.
-+
-+2009-04-07  H.J. Lu  <hongjiu.lu@intel.com>
-+
-+      Backport from mainline:
-+      2009-04-07  H.J. Lu  <hongjiu.lu@intel.com>
-+
-+      * doc/invoke.texi: Document Atom support.
-+
-+2009-04-06  H.J. Lu  <hongjiu.lu@intel.com>
-+
-+      * config/i386/i386.md: Revert 2 accidental checkins.
-+
-+2009-04-06  H.J. Lu  <hongjiu.lu@intel.com>
-+
-+      Backport from mainline:
-+      2009-04-06  Joey Ye  <joey.ye@intel.com>
-+                  Xuepeng Guo <xuepeng.guo@intel.com>
-+                  H.J. Lu  <hongjiu.lu@intel.com>
-+
-+      Atom pipeline model, tuning and insn selection.
-+      * config.gcc (atom): Add atom config options and target.
-+
-+      * config/i386/atom.md: New.
-+
-+      * config/i386/i386.c (atom_cost): New cost.
-+      (m_ATOM): New macro flag.
-+      (initial_ix86_tune_features): Set m_ATOM.
-+      (x86_accumulate_outgoing_args): Likewise.
-+      (x86_arch_always_fancy_math_387): Likewise.
-+      (processor_target): Add Atom cost.
-+      (cpu_names): Add Atom cpu name.
-+      (override_options): Set Atom ISA.
-+      (ix86_issue_rate): New case PROCESSOR_ATOM.
-+      (ix86_adjust_cost): Likewise.
-+
-+      * config/i386/i386.h (TARGET_ATOM): New target macro.
-+      (ix86_tune_indices): Add X86_TUNE_OPT_AGU.
-+      (TARGET_OPT_AGU): New target option.
-+      (target_cpu_default): Add TARGET_CPU_DEFAULT_atom.
-+      (processor_type): Add PROCESSOR_ATOM.
-+
-+      * config/i386/i386.md (cpu): Add new value "atom".
-+      (use_carry, movu): New attr.
-+      (atom.md): Include atom.md.
-+      (adddi3_carry_rex64): Set attr "use_carry".
-+      (addqi3_carry): Likewise.
-+      (addhi3_carry): Likewise.
-+      (addsi3_carry): Likewise.
-+      (*addsi3_carry_zext): Likewise.
-+      (subdi3_carry_rex64): Likewise.
-+      (subqi3_carry): Likewise.
-+      (subhi3_carry): Likewise.
-+      (subsi3_carry): Likewise.
-+      (x86_movdicc_0_m1_rex64): Likewise.
-+      (*x86_movdicc_0_m1_se): Likewise.
-+      (x86_movsicc_0_m1): Likewise.
-+      (*x86_movsicc_0_m1_se): Likewise.
-+      (*adddi_1_rex64): Emit add insn as much as possible.
-+      (*addsi_1): Likewise.
-+      (return_internal): Set atom_unit.
-+      (return_internal_long): Likewise.
-+      (return_pop_internal): Likewise.
-+      (*rcpsf2_sse): Set atom_sse_attr attr.
-+      (*qrt<mode>2_sse): Likewise.
-+
-+2009-04-02  H.J. Lu  <hongjiu.lu@intel.com>
-+
-+      Backport from mainline:
-+      2009-04-02  H.J. Lu  <hongjiu.lu@intel.com>
-+
-+      * config/i386/i386.c (ix86_abi): Move initialization to ...
-+      (override_options): Here.
-+
-+2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
-+
-+      Backport from mainline:
-+      2009-03-29  H.J. Lu  <hongjiu.lu@intel.com>
-+
-+      * config/i386/i386-protos.h (ix86_agi_dependent): New.
-+
-+      * config/i386/i386.c (ix86_agi_dependent): Rewrite.
-+      (ix86_adjust_cost): Updated.
-+
-+2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
-+
-+      Backport from mainline:
-+      2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
-+
-+      PR target/39472
-+      * config/i386/i386.c (ix86_abi): New.
-+      (override_options): Handle -mabi=.
-+      (ix86_function_arg_regno_p): Replace DEFAULT_ABI with
-+      ix86_abi.
-+      (ix86_call_abi_override): Likewise.
-+      (init_cumulative_args): Likewise.
-+      (function_arg_advance): Likewise.
-+      (function_arg_64): Likewise.
-+      (function_arg): Likewise.
-+      (ix86_pass_by_reference): Likewise.
-+      (ix86_function_value_regno_p): Likewise.
-+      (ix86_build_builtin_va_list_abi): Likewise.
-+      (setup_incoming_varargs_64): Likewise.
-+      (is_va_list_char_pointer): Likewise.
-+      (ix86_init_machine_status): Likewise.
-+      (ix86_reg_parm_stack_space): Use enum calling_abi on
-+      call_abi.
-+      (ix86_function_type_abi): Return enum calling_abi.  Rewrite
-+      for 64bit.  Replace DEFAULT_ABI with ix86_abi.
-+      (ix86_function_abi): Make it static and return enum
-+      calling_abi.
-+      (ix86_cfun_abi): Return enum calling_abi.  Replace DEFAULT_ABI
-+      with ix86_abi.
-+      (ix86_fn_abi_va_list): Updated.
-+
-+      * config/i386/i386.h (ix86_abi): New.
-+      (STACK_BOUNDARY): Replace DEFAULT_ABI with ix86_abi.
-+      (CONDITIONAL_REGISTER_USAGE): Likewise.
-+      (CUMULATIVE_ARGS): Change call_abi type to enum calling_abi.
-+      (machine_function): Likewise.
-+
-+      * config/i386/i386.md (untyped_call): Replace DEFAULT_ABI
-+      with ix86_abi.
-+      * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Likewise.
-+      (STACK_BOUNDARY): Likewise.
-+      * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Likewise.
-+
-+      * config/i386/i386.opt (mabi=): New.
-+
-+      * config/i386/i386-protos.h (ix86_cfun_abi): Changed to
-+      return enum calling_abi.
-+      (ix86_function_type_abi): Likewise.
-+      (ix86_function_abi): Removed.
-+
-+2009-03-27  H.J. Lu  <hongjiu.lu@intel.com>
-+
-+      Backport from mainline:
-+      2009-03-27  Vladimir Makarov  <vmakarov@redhat.com>
-+
-+      * genautomata.c: Add a new year to the copyright.  Add a new
-+      reference.
-+      (struct insn_reserv_decl): Add comments for member bypass_list.
-+      (find_bypass): Remove.
-+      (insert_bypass): New.
-+      (process_decls): Use insert_bypass.
-+      (output_internal_insn_latency_func): Output all bypasses with the
-+      same input insn in one switch case.
-+
-+      * rtl.def (define_bypass): Describe bypass choice.
-+      * doc/md.texi (define_bypass): Ditto.
-Index: gcc/config.gcc
-===================================================================
---- gcc/config.gcc     (.../tags/gcc_4_4_0_release)    (revision 146537)
-+++ gcc/config.gcc     (.../branches/ix86/gcc-4_4-branch)      (revision 146537)
-@@ -1088,7 +1088,7 @@
-                       tmake_file="${tmake_file} i386/t-linux64"
-                       need_64bit_hwint=yes
-                       case X"${with_cpu}" in
--                      Xgeneric|Xcore2|Xnocona|Xx86-64|Xamdfam10|Xbarcelona|Xk8|Xopteron|Xathlon64|Xathlon-fx)
-+                      Xgeneric|Xatom|Xcore2|Xnocona|Xx86-64|Xamdfam10|Xbarcelona|Xk8|Xopteron|Xathlon64|Xathlon-fx)
-                               ;;
-                       X)
-                               if test x$with_cpu_64 = x; then
-@@ -1097,7 +1097,7 @@
-                               ;;
-                       *)
-                               echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
--                              echo "generic core2 nocona x86-64 amdfam10 barcelona k8 opteron athlon64 athlon-fx" 1>&2
-+                              echo "generic atom core2 nocona x86-64 amdfam10 barcelona k8 opteron athlon64 athlon-fx" 1>&2
-                               exit 1
-                               ;;
-                       esac
-@@ -1202,7 +1202,7 @@
-               # libgcc/configure.ac instead.
-               need_64bit_hwint=yes
-               case X"${with_cpu}" in
--              Xgeneric|Xcore2|Xnocona|Xx86-64|Xamdfam10|Xbarcelona|Xk8|Xopteron|Xathlon64|Xathlon-fx)
-+              Xgeneric|Xatom|Xcore2|Xnocona|Xx86-64|Xamdfam10|Xbarcelona|Xk8|Xopteron|Xathlon64|Xathlon-fx)
-                       ;;
-               X)
-                       if test x$with_cpu_64 = x; then
-@@ -1211,7 +1211,7 @@
-                       ;;
-               *)
-                       echo "Unsupported CPU used in --with-cpu=$with_cpu, supported values:" 1>&2
--                      echo "generic core2 nocona x86-64 amdfam10 barcelona k8 opteron athlon64 athlon-fx" 1>&2
-+                      echo "generic atom core2 nocona x86-64 amdfam10 barcelona k8 opteron athlon64 athlon-fx" 1>&2
-                       exit 1
-                       ;;
-               esac
-@@ -2805,7 +2805,7 @@
-                               esac
-                               # OK
-                               ;;
--                      "" | amdfam10 | barcelona | k8 | opteron | athlon64 | athlon-fx | nocona | core2 | generic)
-+                      "" | amdfam10 | barcelona | k8 | opteron | athlon64 | athlon-fx | nocona | core2 | atom | generic)
-                               # OK
-                               ;;
-                       *)
-Index: gcc/config/i386/i386.h
-===================================================================
---- gcc/config/i386/i386.h     (.../tags/gcc_4_4_0_release)    (revision 146537)
-+++ gcc/config/i386/i386.h     (.../branches/ix86/gcc-4_4-branch)      (revision 146537)
-@@ -236,6 +236,7 @@
- #define TARGET_GENERIC64 (ix86_tune == PROCESSOR_GENERIC64)
- #define TARGET_GENERIC (TARGET_GENERIC32 || TARGET_GENERIC64)
- #define TARGET_AMDFAM10 (ix86_tune == PROCESSOR_AMDFAM10)
-+#define TARGET_ATOM (ix86_tune == PROCESSOR_ATOM)
- /* Feature tests against the various tunings.  */
- enum ix86_tune_indices {
-@@ -300,6 +301,7 @@
-   X86_TUNE_USE_VECTOR_FP_CONVERTS,
-   X86_TUNE_USE_VECTOR_CONVERTS,
-   X86_TUNE_FUSE_CMP_AND_BRANCH,
-+  X86_TUNE_OPT_AGU,
-   X86_TUNE_LAST
- };
-@@ -387,6 +389,7 @@
-       ix86_tune_features[X86_TUNE_USE_VECTOR_CONVERTS]
- #define TARGET_FUSE_CMP_AND_BRANCH \
-       ix86_tune_features[X86_TUNE_FUSE_CMP_AND_BRANCH]
-+#define TARGET_OPT_AGU ix86_tune_features[X86_TUNE_OPT_AGU]
- /* Feature tests against the various architecture variations.  */
- enum ix86_arch_indices {
-@@ -470,7 +473,10 @@
-   MS_ABI = 1
- };
--/* The default abi form used by target.  */
-+/* The abi used by target.  */
-+extern enum calling_abi ix86_abi;
-+
-+/* The default abi used by target.  */
- #define DEFAULT_ABI SYSV_ABI
- /* Subtargets may reset this to 1 in order to enable 96-bit long double
-@@ -569,6 +575,7 @@
-   TARGET_CPU_DEFAULT_prescott,
-   TARGET_CPU_DEFAULT_nocona,
-   TARGET_CPU_DEFAULT_core2,
-+  TARGET_CPU_DEFAULT_atom,
-   TARGET_CPU_DEFAULT_geode,
-   TARGET_CPU_DEFAULT_k6,
-@@ -658,7 +665,7 @@
- /* Boundary (in *bits*) on which stack pointer should be aligned.  */
- #define STACK_BOUNDARY \
-- (TARGET_64BIT && DEFAULT_ABI == MS_ABI ? 128 : BITS_PER_WORD)
-+ (TARGET_64BIT && ix86_abi == MS_ABI ? 128 : BITS_PER_WORD)
- /* Stack boundary of the main function guaranteed by OS.  */
- #define MAIN_STACK_BOUNDARY (TARGET_64BIT ? 128 : 32)
-@@ -954,7 +961,7 @@
-       fixed_regs[j] = call_used_regs[j] = 1;                          \
-     if (TARGET_64BIT                                                  \
-       && ((cfun && cfun->machine->call_abi == MS_ABI)                 \
--          || (!cfun && DEFAULT_ABI == MS_ABI)))                       \
-+          || (!cfun && ix86_abi == MS_ABI)))                          \
-       {                                                                       \
-       call_used_regs[SI_REG] = 0;                                     \
-       call_used_regs[DI_REG] = 0;                                     \
-@@ -1614,7 +1621,7 @@
-   int maybe_vaarg;            /* true for calls to possibly vardic fncts.  */
-   int float_in_sse;           /* 1 if in 32-bit mode SFmode (2 for DFmode) should
-                                  be passed in SSE registers.  Otherwise 0.  */
--  int call_abi;                       /* Set to SYSV_ABI for sysv abi. Otherwise
-+  enum calling_abi call_abi;  /* Set to SYSV_ABI for sysv abi. Otherwise
-                                  MS_ABI for ms abi.  */
- } CUMULATIVE_ARGS;
-@@ -2260,6 +2267,7 @@
-   PROCESSOR_GENERIC32,
-   PROCESSOR_GENERIC64,
-   PROCESSOR_AMDFAM10,
-+  PROCESSOR_ATOM,
-   PROCESSOR_max
- };
-@@ -2433,7 +2441,7 @@
-   int tls_descriptor_call_expanded_p;
-   /* This value is used for amd64 targets and specifies the current abi
-      to be used. MS_ABI means ms abi. Otherwise SYSV_ABI means sysv abi.  */
--  int call_abi;
-+   enum calling_abi call_abi;
- };
- #define ix86_stack_locals (cfun->machine->stack_locals)
-Index: gcc/config/i386/cygming.h
-===================================================================
---- gcc/config/i386/cygming.h  (.../tags/gcc_4_4_0_release)    (revision 146537)
-+++ gcc/config/i386/cygming.h  (.../branches/ix86/gcc-4_4-branch)      (revision 146537)
-@@ -34,7 +34,7 @@
- #endif
- #undef TARGET_64BIT_MS_ABI
--#define TARGET_64BIT_MS_ABI (!cfun ? DEFAULT_ABI == MS_ABI : TARGET_64BIT && cfun->machine->call_abi == MS_ABI)
-+#define TARGET_64BIT_MS_ABI (!cfun ? ix86_abi == MS_ABI : TARGET_64BIT && cfun->machine->call_abi == MS_ABI)
- #undef DEFAULT_ABI
- #define DEFAULT_ABI (TARGET_64BIT ? MS_ABI : SYSV_ABI)
-@@ -202,7 +202,7 @@
- #define CHECK_STACK_LIMIT 4000
- #undef STACK_BOUNDARY
--#define STACK_BOUNDARY        (DEFAULT_ABI == MS_ABI ? 128 : BITS_PER_WORD)
-+#define STACK_BOUNDARY        (ix86_abi == MS_ABI ? 128 : BITS_PER_WORD)
- /* By default, target has a 80387, uses IEEE compatible arithmetic,
-    returns float values in the 387 and needs stack probes.
-Index: gcc/config/i386/i386.md
-===================================================================
---- gcc/config/i386/i386.md    (.../tags/gcc_4_4_0_release)    (revision 146537)
-+++ gcc/config/i386/i386.md    (.../branches/ix86/gcc-4_4-branch)      (revision 146537)
-@@ -316,7 +316,7 @@
\f
- ;; Processor type.
--(define_attr "cpu" "none,pentium,pentiumpro,geode,k6,athlon,k8,core2,
-+(define_attr "cpu" "none,pentium,pentiumpro,geode,k6,athlon,k8,core2,atom,
-                   generic64,amdfam10"
-   (const (symbol_ref "ix86_schedule")))
-@@ -612,6 +612,12 @@
- (define_attr "i387_cw" "trunc,floor,ceil,mask_pm,uninitialized,any"
-   (const_string "any"))
-+;; Define attribute to classify add/sub insns that consumes carry flag (CF)
-+(define_attr "use_carry" "0,1" (const_string "0"))
-+
-+;; Define attribute to indicate unaligned ssemov insns
-+(define_attr "movu" "0,1" (const_string "0"))
-+
- ;; Describe a user's asm statement.
- (define_asm_attributes
-   [(set_attr "length" "128")
-@@ -727,6 +733,7 @@
- (include "k6.md")
- (include "athlon.md")
- (include "geode.md")
-+(include "atom.md")
\f
- ;; Operand and operator predicates and constraints
-@@ -5790,6 +5797,7 @@
-   "TARGET_64BIT && ix86_binary_operator_ok (PLUS, DImode, operands)"
-   "adc{q}\t{%2, %0|%0, %2}"
-   [(set_attr "type" "alu")
-+   (set_attr "use_carry" "1")
-    (set_attr "pent_pair" "pu")
-    (set_attr "mode" "DI")])
-@@ -5864,6 +5872,7 @@
-   "ix86_binary_operator_ok (PLUS, QImode, operands)"
-   "adc{b}\t{%2, %0|%0, %2}"
-   [(set_attr "type" "alu")
-+   (set_attr "use_carry" "1")
-    (set_attr "pent_pair" "pu")
-    (set_attr "mode" "QI")])
-@@ -5876,6 +5885,7 @@
-   "ix86_binary_operator_ok (PLUS, HImode, operands)"
-   "adc{w}\t{%2, %0|%0, %2}"
-   [(set_attr "type" "alu")
-+   (set_attr "use_carry" "1")
-    (set_attr "pent_pair" "pu")
-    (set_attr "mode" "HI")])
-@@ -5888,6 +5898,7 @@
-   "ix86_binary_operator_ok (PLUS, SImode, operands)"
-   "adc{l}\t{%2, %0|%0, %2}"
-   [(set_attr "type" "alu")
-+   (set_attr "use_carry" "1")
-    (set_attr "pent_pair" "pu")
-    (set_attr "mode" "SI")])
-@@ -5901,6 +5912,7 @@
-   "TARGET_64BIT && ix86_binary_operator_ok (PLUS, SImode, operands)"
-   "adc{l}\t{%2, %k0|%k0, %2}"
-   [(set_attr "type" "alu")
-+   (set_attr "use_carry" "1")
-    (set_attr "pent_pair" "pu")
-    (set_attr "mode" "SI")])
-@@ -6130,9 +6142,9 @@
-    (set_attr "mode" "SI")])
- (define_insn "*adddi_1_rex64"
--  [(set (match_operand:DI 0 "nonimmediate_operand" "=r,rm,r")
--      (plus:DI (match_operand:DI 1 "nonimmediate_operand" "%0,0,r")
--               (match_operand:DI 2 "x86_64_general_operand" "rme,re,le")))
-+  [(set (match_operand:DI 0 "nonimmediate_operand" "=r,rm,r,r")
-+      (plus:DI (match_operand:DI 1 "nonimmediate_operand" "%0,0,r,r")
-+               (match_operand:DI 2 "x86_64_general_operand" "rme,re,0,le")))
-    (clobber (reg:CC FLAGS_REG))]
-   "TARGET_64BIT && ix86_binary_operator_ok (PLUS, DImode, operands)"
- {
-@@ -6153,6 +6165,10 @@
-       }
-     default:
-+      /* Use add as much as possible to replace lea for AGU optimization. */
-+      if (which_alternative == 2 && TARGET_OPT_AGU)
-+        return "add{q}\t{%1, %0|%0, %1}";
-+        
-       gcc_assert (rtx_equal_p (operands[0], operands[1]));
-       /* Make things pretty and `subl $4,%eax' rather than `addl $-4, %eax'.
-@@ -6171,8 +6187,11 @@
-     }
- }
-   [(set (attr "type")
--     (cond [(eq_attr "alternative" "2")
-+     (cond [(and (eq_attr "alternative" "2") 
-+                 (eq (symbol_ref "TARGET_OPT_AGU") (const_int 0)))
-             (const_string "lea")
-+            (eq_attr "alternative" "3")
-+              (const_string "lea")
-           ; Current assemblers are broken and do not allow @GOTOFF in
-           ; ought but a memory context.
-           (match_operand:DI 2 "pic_symbolic_operand" "")
-@@ -6189,8 +6208,8 @@
-       (plus:DI (match_operand:DI 1 "register_operand" "")
-                (match_operand:DI 2 "x86_64_nonmemory_operand" "")))
-    (clobber (reg:CC FLAGS_REG))]
--  "TARGET_64BIT && reload_completed
--   && true_regnum (operands[0]) != true_regnum (operands[1])"
-+  "TARGET_64BIT && reload_completed 
-+   && ix86_lea_for_add_ok (PLUS, insn, operands)"
-   [(set (match_dup 0)
-       (plus:DI (match_dup 1)
-                (match_dup 2)))]
-@@ -6394,9 +6413,9 @@
- (define_insn "*addsi_1"
--  [(set (match_operand:SI 0 "nonimmediate_operand" "=r,rm,r")
--      (plus:SI (match_operand:SI 1 "nonimmediate_operand" "%0,0,r")
--               (match_operand:SI 2 "general_operand" "g,ri,li")))
-+  [(set (match_operand:SI 0 "nonimmediate_operand" "=r,rm,r,r")
-+      (plus:SI (match_operand:SI 1 "nonimmediate_operand" "%0,0,r,r")
-+               (match_operand:SI 2 "general_operand" "g,ri,0,li")))
-    (clobber (reg:CC FLAGS_REG))]
-   "ix86_binary_operator_ok (PLUS, SImode, operands)"
- {
-@@ -6417,6 +6436,10 @@
-       }
-     default:
-+      /* Use add as much as possible to replace lea for AGU optimization. */
-+      if (which_alternative == 2 && TARGET_OPT_AGU)
-+        return "add{l}\t{%1, %0|%0, %1}";
-+
-       gcc_assert (rtx_equal_p (operands[0], operands[1]));
-       /* Make things pretty and `subl $4,%eax' rather than `addl $-4, %eax'.
-@@ -6433,7 +6456,10 @@
-     }
- }
-   [(set (attr "type")
--     (cond [(eq_attr "alternative" "2")
-+     (cond [(and (eq_attr "alternative" "2") 
-+                 (eq (symbol_ref "TARGET_OPT_AGU") (const_int 0)))
-+               (const_string "lea")
-+            (eq_attr "alternative" "3")
-             (const_string "lea")
-           ; Current assemblers are broken and do not allow @GOTOFF in
-           ; ought but a memory context.
-@@ -6451,8 +6477,7 @@
-       (plus (match_operand 1 "register_operand" "")
-               (match_operand 2 "nonmemory_operand" "")))
-    (clobber (reg:CC FLAGS_REG))]
--  "reload_completed
--   && true_regnum (operands[0]) != true_regnum (operands[1])"
-+  "reload_completed && ix86_lea_for_add_ok (PLUS, insn, operands)" 
-   [(const_int 0)]
- {
-   rtx pat;
-@@ -7553,6 +7578,7 @@
-   "TARGET_64BIT && ix86_binary_operator_ok (MINUS, DImode, operands)"
-   "sbb{q}\t{%2, %0|%0, %2}"
-   [(set_attr "type" "alu")
-+   (set_attr "use_carry" "1")
-    (set_attr "pent_pair" "pu")
-    (set_attr "mode" "DI")])
-@@ -7601,6 +7627,7 @@
-   "ix86_binary_operator_ok (MINUS, QImode, operands)"
-   "sbb{b}\t{%2, %0|%0, %2}"
-   [(set_attr "type" "alu")
-+   (set_attr "use_carry" "1")
-    (set_attr "pent_pair" "pu")
-    (set_attr "mode" "QI")])
-@@ -7613,6 +7640,7 @@
-   "ix86_binary_operator_ok (MINUS, HImode, operands)"
-   "sbb{w}\t{%2, %0|%0, %2}"
-   [(set_attr "type" "alu")
-+   (set_attr "use_carry" "1")
-    (set_attr "pent_pair" "pu")
-    (set_attr "mode" "HI")])
-@@ -7625,6 +7653,7 @@
-   "ix86_binary_operator_ok (MINUS, SImode, operands)"
-   "sbb{l}\t{%2, %0|%0, %2}"
-   [(set_attr "type" "alu")
-+   (set_attr "use_carry" "1")
-    (set_attr "pent_pair" "pu")
-    (set_attr "mode" "SI")])
-@@ -15164,7 +15193,7 @@
-                    ? gen_rtx_REG (XCmode, FIRST_FLOAT_REG) : NULL),
-                   operands[0], const0_rtx,
-                   GEN_INT ((TARGET_64BIT
--                            ? (DEFAULT_ABI == SYSV_ABI
-+                            ? (ix86_abi == SYSV_ABI
-                                ? X86_64_SSE_REGPARM_MAX
-                                : X64_SSE_REGPARM_MAX)
-                             : X86_32_SSE_REGPARM_MAX)
-@@ -15244,6 +15273,7 @@
-   "reload_completed"
-   "ret"
-   [(set_attr "length" "1")
-+   (set_attr "atom_unit" "jeu")
-    (set_attr "length_immediate" "0")
-    (set_attr "modrm" "0")])
-@@ -15256,6 +15286,7 @@
-   "reload_completed"
-   "rep\;ret"
-   [(set_attr "length" "1")
-+   (set_attr "atom_unit" "jeu")
-    (set_attr "length_immediate" "0")
-    (set_attr "prefix_rep" "1")
-    (set_attr "modrm" "0")])
-@@ -15266,6 +15297,7 @@
-   "reload_completed"
-   "ret\t%0"
-   [(set_attr "length" "3")
-+   (set_attr "atom_unit" "jeu")
-    (set_attr "length_immediate" "2")
-    (set_attr "modrm" "0")])
-@@ -16387,6 +16419,7 @@
-   "TARGET_SSE_MATH"
-   "%vrcpss\t{%1, %d0|%d0, %1}"
-   [(set_attr "type" "sse")
-+   (set_attr "atom_sse_attr" "rcp")
-    (set_attr "prefix" "maybe_vex")
-    (set_attr "mode" "SF")])
-@@ -16738,6 +16771,7 @@
-   "TARGET_SSE_MATH"
-   "%vrsqrtss\t{%1, %d0|%d0, %1}"
-   [(set_attr "type" "sse")
-+   (set_attr "atom_sse_attr" "rcp")
-    (set_attr "prefix" "maybe_vex")
-    (set_attr "mode" "SF")])
-@@ -16758,6 +16792,7 @@
-   "SSE_FLOAT_MODE_P (<MODE>mode) && TARGET_SSE_MATH"
-   "%vsqrts<ssemodefsuffix>\t{%1, %d0|%d0, %1}"
-   [(set_attr "type" "sse")
-+   (set_attr "atom_sse_attr" "sqrt")
-    (set_attr "prefix" "maybe_vex")
-    (set_attr "mode" "<MODE>")
-    (set_attr "athlon_decode" "*")
-@@ -19811,6 +19846,7 @@
-   ; Since we don't have the proper number of operands for an alu insn,
-   ; fill in all the blanks.
-   [(set_attr "type" "alu")
-+   (set_attr "use_carry" "1")
-    (set_attr "pent_pair" "pu")
-    (set_attr "memory" "none")
-    (set_attr "imm_disp" "false")
-@@ -19826,6 +19862,7 @@
-   ""
-   "sbb{q}\t%0, %0"
-   [(set_attr "type" "alu")
-+   (set_attr "use_carry" "1")
-    (set_attr "pent_pair" "pu")
-    (set_attr "memory" "none")
-    (set_attr "imm_disp" "false")
-@@ -19869,6 +19906,7 @@
-   ; Since we don't have the proper number of operands for an alu insn,
-   ; fill in all the blanks.
-   [(set_attr "type" "alu")
-+   (set_attr "use_carry" "1")
-    (set_attr "pent_pair" "pu")
-    (set_attr "memory" "none")
-    (set_attr "imm_disp" "false")
-@@ -19884,6 +19922,7 @@
-   ""
-   "sbb{l}\t%0, %0"
-   [(set_attr "type" "alu")
-+   (set_attr "use_carry" "1")
-    (set_attr "pent_pair" "pu")
-    (set_attr "memory" "none")
-    (set_attr "imm_disp" "false")
-@@ -20216,7 +20255,8 @@
-     }
- }
-   [(set (attr "type")
--      (cond [(eq_attr "alternative" "0")
-+      (cond [(and (eq_attr "alternative" "0") 
-+                  (eq (symbol_ref "TARGET_OPT_AGU") (const_int 0)))
-                (const_string "alu")
-              (match_operand:SI 2 "const0_operand" "")
-                (const_string "imov")
-@@ -20259,7 +20299,8 @@
-     }
- }
-   [(set (attr "type")
--      (cond [(eq_attr "alternative" "0")
-+      (cond [(and (eq_attr "alternative" "0")
-+                  (eq (symbol_ref "TARGET_OPT_AGU") (const_int 0)))
-                (const_string "alu")
-              (match_operand:DI 2 "const0_operand" "")
-                (const_string "imov")
-@@ -21751,6 +21792,7 @@
-   return patterns[locality];
- }
-   [(set_attr "type" "sse")
-+   (set_attr "atom_sse_attr" "prefetch")
-    (set_attr "memory" "none")])
- (define_insn "*prefetch_sse_rex"
-@@ -21769,6 +21811,7 @@
-   return patterns[locality];
- }
-   [(set_attr "type" "sse")
-+   (set_attr "atom_sse_attr" "prefetch")
-    (set_attr "memory" "none")])
- (define_insn "*prefetch_3dnow"
-Index: gcc/config/i386/atom.md
-===================================================================
---- gcc/config/i386/atom.md    (.../tags/gcc_4_4_0_release)    (revision 0)
-+++ gcc/config/i386/atom.md    (.../branches/ix86/gcc-4_4-branch)      (revision 146537)
-@@ -0,0 +1,795 @@
-+;; Atom Scheduling
-+;; Copyright (C) 2009 Free Software Foundation, Inc.
-+;;
-+;; This file is part of GCC.
-+;;
-+;; GCC is free software; you can redistribute it and/or modify
-+;; it under the terms of the GNU General Public License as published by
-+;; the Free Software Foundation; either version 3, or (at your option)
-+;; any later version.
-+;;
-+;; GCC is distributed in the hope that it will be useful,
-+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+;; GNU General Public License for more details.
-+;;
-+;; You should have received a copy of the GNU General Public License
-+;; along with GCC; see the file COPYING3.  If not see
-+;; <http://www.gnu.org/licenses/>.
-+;;
-+;; Atom is an in-order core with two integer pipelines.
-+
-+
-+(define_attr "atom_unit" "sishuf,simul,jeu,complex,other" 
-+  (const_string "other"))
-+
-+(define_attr "atom_sse_attr" "rcp,movdup,lfence,fence,prefetch,sqrt,mxcsr,other"
-+  (const_string "other"))
-+
-+(define_automaton "atom")
-+
-+;;  Atom has two ports: port 0 and port 1 connecting to all execution units
-+(define_cpu_unit "atom-port-0,atom-port-1" "atom")
-+
-+;;  EU: Execution Unit
-+;;  Atom EUs are connected by port 0 or port 1. 
-+
-+(define_cpu_unit "atom-eu-0, atom-eu-1,
-+                  atom-imul-1, atom-imul-2, atom-imul-3, atom-imul-4"
-+                  "atom")
-+
-+;; Some EUs have duplicated copied and can be accessed via either
-+;; port 0 or port 1
-+;; (define_reservation "atom-port-either" "(atom-port-0 | atom-port-1)")
-+
-+;;; Some instructions is dual-pipe execution, need both ports
-+;;; Complex multi-op macro-instructoins need both ports and all EUs
-+(define_reservation "atom-port-dual" "(atom-port-0 + atom-port-1)")
-+(define_reservation "atom-all-eu" "(atom-eu-0 + atom-eu-1 + 
-+                                    atom-imul-1 + atom-imul-2 + atom-imul-3 +
-+                                    atom-imul-4)")
-+
-+;;; Most of simple instructions have 1 cycle latency. Some of them
-+;;; issue in port 0, some in port 0 and some in either port.
-+(define_reservation "atom-simple-0" "(atom-port-0 + atom-eu-0)")
-+(define_reservation "atom-simple-1" "(atom-port-1 + atom-eu-1)")
-+(define_reservation "atom-simple-either" "(atom-simple-0 | atom-simple-1)")
-+
-+;;; Some insn issues in port 0 with 3 cycle latency and 1 cycle tput
-+(define_reservation "atom-eu-0-3-1" "(atom-port-0 + atom-eu-0, nothing*2)")
-+
-+;;; fmul insn can have 4 or 5 cycles latency
-+(define_reservation "atom-fmul-5c" "(atom-port-0 + atom-eu-0), nothing*4")
-+(define_reservation "atom-fmul-4c" "(atom-port-0 + atom-eu-0), nothing*3")
-+
-+;;; fadd can has 5 cycles latency depends on instruction forms
-+(define_reservation "atom-fadd-5c" "(atom-port-1 + atom-eu-1), nothing*5")
-+
-+;;; imul insn has 5 cycles latency
-+(define_reservation "atom-imul-32" 
-+                    "atom-imul-1, atom-imul-2, atom-imul-3, atom-imul-4, 
-+                     atom-port-0")
-+;;; imul instruction excludes other non-FP instructions.
-+(exclusion_set "atom-eu-0, atom-eu-1" 
-+               "atom-imul-1, atom-imul-2, atom-imul-3, atom-imul-4")
-+
-+;;; dual-execution instructions can have 1,2,4,5 cycles latency depends on 
-+;;; instruction forms
-+(define_reservation "atom-dual-1c" "(atom-port-dual + atom-eu-0 + atom-eu-1)")
-+(define_reservation "atom-dual-2c"
-+                    "(atom-port-dual + atom-eu-0 + atom-eu-1, nothing)")
-+(define_reservation "atom-dual-5c"
-+                    "(atom-port-dual + atom-eu-0 + atom-eu-1, nothing*4)")
-+
-+;;; Complex macro-instruction has variants of latency, and uses both ports.
-+(define_reservation "atom-complex" "(atom-port-dual + atom-all-eu)")
-+
-+(define_insn_reservation  "atom_other" 9
-+  (and (eq_attr "cpu" "atom")
-+       (and (eq_attr "type" "other")
-+            (eq_attr "atom_unit" "!jeu")))
-+  "atom-complex, atom-all-eu*8")
-+
-+;; return has type "other" with atom_unit "jeu"
-+(define_insn_reservation  "atom_other_2" 1
-+  (and (eq_attr "cpu" "atom")
-+       (and (eq_attr "type" "other")
-+            (eq_attr "atom_unit" "jeu")))
-+  "atom-dual-1c")
-+
-+(define_insn_reservation  "atom_multi" 9
-+  (and (eq_attr "cpu" "atom")
-+       (eq_attr "type" "multi"))
-+  "atom-complex, atom-all-eu*8")
-+
-+;; Normal alu insns without carry
-+(define_insn_reservation  "atom_alu" 1
-+  (and (eq_attr "cpu" "atom")
-+       (and (eq_attr "type" "alu")
-+            (and (eq_attr "memory" "none")
-+                 (eq_attr "use_carry" "0"))))
-+  "atom-simple-either")
-+
-+;; Normal alu insns without carry
-+(define_insn_reservation  "atom_alu_mem" 1
-+  (and (eq_attr "cpu" "atom")
-+       (and (eq_attr "type" "alu")
-+            (and (eq_attr "memory" "!none")
-+                 (eq_attr "use_carry" "0"))))
-+  "atom-simple-either")
-+
-+;; Alu insn consuming CF, such as add/sbb
-+(define_insn_reservation  "atom_alu_carry" 1
-+  (and (eq_attr "cpu" "atom")
-+       (and (eq_attr "type" "alu")
-+            (and (eq_attr "memory" "none")
-+                 (eq_attr "use_carry" "1"))))
-+  "atom-simple-either")
-+
-+;; Alu insn consuming CF, such as add/sbb
-+(define_insn_reservation  "atom_alu_carry_mem" 1
-+  (and (eq_attr "cpu" "atom")
-+       (and (eq_attr "type" "alu")
-+            (and (eq_attr "memory" "!none")
-+                (eq_attr "use_carry" "1"))))
-+  "atom-simple-either")
-+
-+(define_insn_reservation  "atom_alu1" 1
-+  (and (eq_attr "cpu" "atom")
-+       (and (eq_attr "type" "alu1")
-+            (eq_attr "memory" "none")))
-+  "atom-simple-either")
-+
-+(define_insn_reservation  "atom_alu1_mem" 1
-+  (and (eq_attr "cpu" "atom")
-+       (and (eq_attr "type" "alu1")
-+            (eq_attr "memory" "!none")))
-+  "atom-simple-either")
-+
-+(define_insn_reservation  "atom_negnot" 1
-+  (and (eq_attr "cpu" "atom")
-+       (and (eq_attr "type" "negnot")
-+            (eq_attr "memory" "none")))
-+  "atom-simple-either")
-+
-+(define_insn_reservation  "atom_negnot_mem" 1
-+  (and (eq_attr "cpu" "atom")
-+       (and (eq_attr "type" "negnot")
-+            (eq_attr "memory" "!none")))
-+  "atom-simple-either")
-+
-+(define_insn_reservation  "atom_imov" 1
-+  (and (eq_attr "cpu" "atom")
-+       (and (eq_attr "type" "imov")
-+            (eq_attr "memory" "none")))
-+  "atom-simple-either")
-+
-+(define_insn_reservation  "atom_imov_mem" 1
-+  (and (eq_attr "cpu" "atom")
-+       (and (eq_attr "type" "imov")
-+            (eq_attr "memory" "!none")))
-+  "atom-simple-either")
-+
-+;; 16<-16, 32<-32
-+(define_insn_reservation  "atom_imovx" 1
-+  (and (eq_attr "cpu" "atom")
-+       (and (eq_attr "type" "imovx")
-+            (and (eq_attr "memory" "none")
-+                 (ior (and (match_operand:HI 0 "register_operand")
-+                           (match_operand:HI 1 "general_operand"))
-+                      (and (match_operand:SI 0 "register_operand")
-+                           (match_operand:SI 1 "general_operand"))))))
-+  "atom-simple-either")
-+
-+;; 16<-16, 32<-32, mem
-+(define_insn_reservation  "atom_imovx_mem" 1
-+  (and (eq_attr "cpu" "atom")
-+       (and (eq_attr "type" "imovx")
-+            (and (eq_attr "memory" "!none")
-+                 (ior (and (match_operand:HI 0 "register_operand")
-+                           (match_operand:HI 1 "general_operand"))
-+                      (and (match_operand:SI 0 "register_operand")
-+                           (match_operand:SI 1 "general_operand"))))))
-+  "atom-simple-either")
-+
-+;; 32<-16, 32<-8, 64<-16, 64<-8, 64<-32, 8<-8
-+(define_insn_reservation  "atom_imovx_2" 1
-+  (and (eq_attr "cpu" "atom")
-+       (and (eq_attr "type" "imovx")
-+            (and (eq_attr "memory" "none")
-+                 (ior (match_operand:QI 0 "register_operand")
-+                      (ior (and (match_operand:SI 0 "register_operand")
-+                                (not (match_operand:SI 1 "general_operand")))
-+                           (match_operand:DI 0 "register_operand"))))))
-+  "atom-simple-0")
-+
-+;; 32<-16, 32<-8, 64<-16, 64<-8, 64<-32, 8<-8, mem
-+(define_insn_reservation  "atom_imovx_2_mem" 1
-+  (and (eq_attr "cpu" "atom")
-+       (and (eq_attr "type" "imovx")
-+            (and (eq_attr "memory" "!none")
-+                 (ior (match_operand:QI 0 "register_operand")
-+                      (ior (and (match_operand:SI 0 "register_operand")
-+                                (not (match_operand:SI 1 "general_operand")))
-+                           (match_operand:DI 0 "register_operand"))))))
-+  "atom-simple-0")
-+
-+;; 16<-8
-+(define_insn_reservation  "atom_imovx_3" 3
-+  (and (eq_attr "cpu" "atom")
-+       (and (eq_attr "type" "imovx")
-+            (and (match_operand:HI 0 "register_operand")
-+                 (match_operand:QI 1 "general_operand"))))
-+  "atom-complex, atom-all-eu*2")
-+
-+(define_insn_reservation  "atom_lea" 1
-+  (and (eq_attr "cpu" "atom")
-+       (and (eq_attr "type" "lea")
-+            (eq_attr "mode" "!HI")))
-+  "atom-simple-either")
-+
-+;; lea 16bit address is complex insn
-+(define_insn_reservation  "atom_lea_2" 2
-+  (and (eq_attr "cpu" "atom")
-+       (and (eq_attr "type" "lea")
-+            (eq_attr "mode" "HI")))
-+  "atom-complex, atom-all-eu")
-+
-+(define_insn_reservation  "atom_incdec" 1
-+  (and (eq_attr "cpu" "atom")
-+       (and (eq_attr "type" "incdec")
-+            (eq_attr "memory" "none")))
-+  "atom-simple-either")
-+
-+(define_insn_reservation  "atom_incdec_mem" 1
-+  (and (eq_attr "cpu" "atom")
-+       (and (eq_attr "type" "incdec")
-+            (eq_attr "memory" "!none")))
-+  "atom-simple-either")
-+
-+;; simple shift instruction use SHIFT eu, none memory
-+(define_insn_reservation  "atom_ishift" 1
-+  (and (eq_attr "cpu" "atom")
-+       (and (eq_attr "type" "ishift")
-+            (and (eq_attr "memory" "none") (eq_attr "prefix_0f" "0"))))
-+  "atom-simple-0")
-+
-+;; simple shift instruction use SHIFT eu, memory
-+(define_insn_reservation  "atom_ishift_mem" 1
-+  (and (eq_attr "cpu" "atom")
-+       (and (eq_attr "type" "ishift")
-+            (and (eq_attr "memory" "!none") (eq_attr "prefix_0f" "0"))))
-+  "atom-simple-0")
-+
-+;; DF shift (prefixed with 0f) is complex insn with latency of 7 cycles
-+(define_insn_reservation  "atom_ishift_3" 7
-+  (and (eq_attr "cpu" "atom")
-+       (and (eq_attr "type" "ishift")
-+            (eq_attr "prefix_0f" "1")))
-+  "atom-complex, atom-all-eu*6")
-+
-+(define_insn_reservation  "atom_ishift1" 1
-+  (and (eq_attr "cpu" "atom")
-+       (and (eq_attr "type" "ishift1")
-+            (eq_attr "memory" "none")))
-+  "atom-simple-0")
-+
-+(define_insn_reservation  "atom_ishift1_mem" 1
-+  (and (eq_attr "cpu" "atom")
-+       (and (eq_attr "type" "ishift1")
-+            (eq_attr "memory" "!none")))
-+  "atom-simple-0")
-+
-+(define_insn_reservation  "atom_rotate" 1
-+  (and (eq_attr "cpu" "atom")
-+       (and (eq_attr "type" "rotate")
-+            (eq_attr "memory" "none")))
-+  "atom-simple-0")
-+
-+(define_insn_reservation  "atom_rotate_mem" 1
-+  (and (eq_attr "cpu" "atom")
-+       (and (eq_attr "type" "rotate")
-+            (eq_attr "memory" "!none")))
-+  "atom-simple-0")
-+
-+(define_insn_reservation  "atom_rotate1" 1
-+  (and (eq_attr "cpu" "atom")
-+       (and (eq_attr "type" "rotate1")
-+            (eq_attr "memory" "none")))
-+  "atom-simple-0")
-+
-+(define_insn_reservation  "atom_rotate1_mem" 1
-+  (and (eq_attr "cpu" "atom")
-+       (and (eq_attr "type" "rotate1")
-+            (eq_attr "memory" "!none")))
-+  "atom-simple-0")
-+
-+(define_insn_reservation  "atom_imul" 5
-+  (and (eq_attr "cpu" "atom")
-+       (and (eq_attr "type" "imul")
-+            (and (eq_attr "memory" "none") (eq_attr "mode" "SI"))))
-+  "atom-imul-32")
-+
-+(define_insn_reservation  "atom_imul_mem" 5
-+  (and (eq_attr "cpu" "atom")
-+       (and (eq_attr "type" "imul")
-+            (and (eq_attr "memory" "!none") (eq_attr "mode" "SI"))))
-+  "atom-imul-32")
-+
-+;; latency set to 10 as common 64x64 imul
-+(define_insn_reservation  "atom_imul_3" 10
-+  (and (eq_attr "cpu" "atom")
-+       (and (eq_attr "type" "imul")
-+            (eq_attr "mode" "!SI")))
-+  "atom-complex, atom-all-eu*9")
-+
-+(define_insn_reservation  "atom_idiv" 65
-+  (and (eq_attr "cpu" "atom")
-+       (eq_attr "type" "idiv"))
-+  "atom-complex, atom-all-eu*32, nothing*32")
-+
-+(define_insn_reservation  "atom_icmp" 1
-+  (and (eq_attr "cpu" "atom")
-+       (and (eq_attr "type" "icmp")
-+            (eq_attr "memory" "none")))
-+  "atom-simple-either")
-+
-+(define_insn_reservation  "atom_icmp_mem" 1
-+  (and (eq_attr "cpu" "atom")
-+       (and (eq_attr "type" "icmp")
-+            (eq_attr "memory" "!none")))
-+  "atom-simple-either")
-+
-+(define_insn_reservation  "atom_test" 1
-+  (and (eq_attr "cpu" "atom")
-+       (and (eq_attr "type" "test")
-+            (eq_attr "memory" "none")))
-+  "atom-simple-either")
-+
-+(define_insn_reservation  "atom_test_mem" 1
-+  (and (eq_attr "cpu" "atom")
-+       (and (eq_attr "type" "test")
-+            (eq_attr "memory" "!none")))
-+  "atom-simple-either")
-+
-+(define_insn_reservation  "atom_ibr" 1
-+  (and (eq_attr "cpu" "atom")
-+       (and (eq_attr "type" "ibr")
-+            (eq_attr "memory" "!load")))
-+  "atom-simple-1")
-+
-+;; complex if jump target is from address
-+(define_insn_reservation  "atom_ibr_2" 2
-+  (and (eq_attr "cpu" "atom")
-+       (and (eq_attr "type" "ibr")
-+            (eq_attr "memory" "load")))
-+  "atom-complex, atom-all-eu")
-+
-+(define_insn_reservation  "atom_setcc" 1
-+  (and (eq_attr "cpu" "atom")
-+       (and (eq_attr "type" "setcc")
-+            (eq_attr "memory" "!store")))
-+  "atom-simple-either")
-+
-+;; 2 cycles complex if target is in memory
-+(define_insn_reservation  "atom_setcc_2" 2
-+  (and (eq_attr "cpu" "atom")
-+       (and (eq_attr "type" "setcc")
-+            (eq_attr "memory" "store")))
-+  "atom-complex, atom-all-eu")
-+
-+(define_insn_reservation  "atom_icmov" 1
-+  (and (eq_attr "cpu" "atom")
-+       (and (eq_attr "type" "icmov")
-+            (eq_attr "memory" "none")))
-+  "atom-simple-either")
-+
-+(define_insn_reservation  "atom_icmov_mem" 1
-+  (and (eq_attr "cpu" "atom")
-+       (and (eq_attr "type" "icmov")
-+            (eq_attr "memory" "!none")))
-+  "atom-simple-either")
-+
-+;; UCODE if segreg, ignored
-+(define_insn_reservation  "atom_push" 2
-+  (and (eq_attr "cpu" "atom")
-+       (eq_attr "type" "push"))
-+  "atom-dual-2c")
-+
-+;; pop r64 is 1 cycle. UCODE if segreg, ignored
-+(define_insn_reservation  "atom_pop" 1
-+  (and (eq_attr "cpu" "atom")
-+       (and (eq_attr "type" "pop")
-+            (eq_attr "mode" "DI")))
-+  "atom-dual-1c")
-+
-+;; pop non-r64 is 2 cycles. UCODE if segreg, ignored
-+(define_insn_reservation  "atom_pop_2" 2
-+  (and (eq_attr "cpu" "atom")
-+       (and (eq_attr "type" "pop")
-+            (eq_attr "mode" "!DI")))
-+  "atom-dual-2c")
-+
-+;; UCODE if segreg, ignored
-+(define_insn_reservation  "atom_call" 1
-+  (and (eq_attr "cpu" "atom")
-+       (eq_attr "type" "call"))
-+  "atom-dual-1c")
-+
-+(define_insn_reservation  "atom_callv" 1
-+  (and (eq_attr "cpu" "atom")
-+       (eq_attr "type" "callv"))
-+  "atom-dual-1c")
-+
-+(define_insn_reservation  "atom_leave" 3
-+  (and (eq_attr "cpu" "atom")
-+       (eq_attr "type" "leave"))
-+  "atom-complex, atom-all-eu*2")
-+
-+(define_insn_reservation  "atom_str" 3
-+  (and (eq_attr "cpu" "atom")
-+       (eq_attr "type" "str"))
-+  "atom-complex, atom-all-eu*2")
-+
-+(define_insn_reservation  "atom_sselog" 1
-+  (and (eq_attr "cpu" "atom")
-+       (and (eq_attr "type" "sselog")
-+            (eq_attr "memory" "none")))
-+  "atom-simple-either")
-+
-+(define_insn_reservation  "atom_sselog_mem" 1
-+  (and (eq_attr "cpu" "atom")
-+       (and (eq_attr "type" "sselog")
-+            (eq_attr "memory" "!none")))
-+  "atom-simple-either")
-+
-+(define_insn_reservation  "atom_sselog1" 1
-+  (and (eq_attr "cpu" "atom")
-+       (and (eq_attr "type" "sselog1")
-+            (eq_attr "memory" "none")))
-+  "atom-simple-0")
-+
-+(define_insn_reservation  "atom_sselog1_mem" 1
-+  (and (eq_attr "cpu" "atom")
-+       (and (eq_attr "type" "sselog1")
-+            (eq_attr "memory" "!none")))
-+  "atom-simple-0")
-+
-+;; not pmad, not psad
-+(define_insn_reservation  "atom_sseiadd" 1
-+  (and (eq_attr "cpu" "atom")
-+       (and (eq_attr "type" "sseiadd")
-+            (and (not (match_operand:V2DI 0 "register_operand"))
-+                 (and (eq_attr "atom_unit" "!simul")
-+                      (eq_attr "atom_unit" "!complex")))))
-+  "atom-simple-either")
-+
-+;; pmad, psad and 64
-+(define_insn_reservation  "atom_sseiadd_2" 4
-+  (and (eq_attr "cpu" "atom")
-+       (and (eq_attr "type" "sseiadd")
-+            (and (not (match_operand:V2DI 0 "register_operand"))
-+                 (and (eq_attr "atom_unit" "simul" )
-+                      (eq_attr "mode" "DI")))))
-+  "atom-fmul-4c")
-+
-+;; pmad, psad and 128
-+(define_insn_reservation  "atom_sseiadd_3" 5
-+  (and (eq_attr "cpu" "atom")
-+       (and (eq_attr "type" "sseiadd")
-+            (and (not (match_operand:V2DI 0 "register_operand"))
-+                 (and (eq_attr "atom_unit" "simul" )
-+                      (eq_attr "mode" "TI")))))
-+  "atom-fmul-5c")
-+
-+;; if paddq(64 bit op), phadd/phsub
-+(define_insn_reservation  "atom_sseiadd_4" 6
-+  (and (eq_attr "cpu" "atom")
-+       (and (eq_attr "type" "sseiadd")
-+            (ior (match_operand:V2DI 0 "register_operand")
-+                 (eq_attr "atom_unit" "complex"))))
-+  "atom-complex, atom-all-eu*5")
-+
-+;; if immediate op. 
-+(define_insn_reservation  "atom_sseishft" 1
-+  (and (eq_attr "cpu" "atom")
-+       (and (eq_attr "type" "sseishft")
-+            (and (eq_attr "atom_unit" "!sishuf")
-+                 (match_operand 2 "immediate_operand"))))
-+  "atom-simple-either")
-+
-+;; if palignr or psrldq
-+(define_insn_reservation  "atom_sseishft_2" 1
-+  (and (eq_attr "cpu" "atom")
-+       (and (eq_attr "type" "sseishft")
-+            (and (eq_attr "atom_unit" "sishuf")
-+                 (match_operand 2 "immediate_operand"))))
-+  "atom-simple-0")
-+
-+;; if reg/mem op
-+(define_insn_reservation  "atom_sseishft_3" 2
-+  (and (eq_attr "cpu" "atom")
-+       (and (eq_attr "type" "sseishft")
-+            (not (match_operand 2 "immediate_operand"))))
-+  "atom-complex, atom-all-eu")
-+
-+(define_insn_reservation  "atom_sseimul" 1
-+  (and (eq_attr "cpu" "atom")
-+       (eq_attr "type" "sseimul"))
-+  "atom-simple-0")
-+
-+;; rcpss or rsqrtss
-+(define_insn_reservation  "atom_sse" 4
-+  (and (eq_attr "cpu" "atom")
-+       (and (eq_attr "type" "sse")
-+            (and (eq_attr "atom_sse_attr" "rcp") (eq_attr "mode" "SF"))))
-+  "atom-fmul-4c")
-+
-+;; movshdup, movsldup. Suggest to type sseishft
-+(define_insn_reservation  "atom_sse_2" 1
-+  (and (eq_attr "cpu" "atom")
-+       (and (eq_attr "type" "sse")
-+            (eq_attr "atom_sse_attr" "movdup")))
-+  "atom-simple-0")
-+
-+;; lfence
-+(define_insn_reservation  "atom_sse_3" 1
-+  (and (eq_attr "cpu" "atom")
-+       (and (eq_attr "type" "sse")
-+            (eq_attr "atom_sse_attr" "lfence")))
-+  "atom-simple-either")
-+
-+;; sfence,clflush,mfence, prefetch
-+(define_insn_reservation  "atom_sse_4" 1
-+  (and (eq_attr "cpu" "atom")
-+       (and (eq_attr "type" "sse")
-+            (ior (eq_attr "atom_sse_attr" "fence")
-+                 (eq_attr "atom_sse_attr" "prefetch"))))
-+  "atom-simple-0")
-+
-+;; rcpps, rsqrtss, sqrt, ldmxcsr
-+(define_insn_reservation  "atom_sse_5" 7
-+  (and (eq_attr "cpu" "atom")
-+       (and (eq_attr "type" "sse")
-+            (ior (ior (eq_attr "atom_sse_attr" "sqrt")
-+                      (eq_attr "atom_sse_attr" "mxcsr"))
-+                 (and (eq_attr "atom_sse_attr" "rcp")
-+                      (eq_attr "mode" "V4SF")))))
-+  "atom-complex, atom-all-eu*6")
-+
-+;; xmm->xmm
-+(define_insn_reservation  "atom_ssemov" 1
-+  (and (eq_attr "cpu" "atom")
-+       (and (eq_attr "type" "ssemov")
-+            (and (match_operand 0 "register_operand" "xy") (match_operand 1 "register_operand" "xy"))))
-+  "atom-simple-either")
-+
-+;; reg->xmm
-+(define_insn_reservation  "atom_ssemov_2" 1
-+  (and (eq_attr "cpu" "atom")
-+       (and (eq_attr "type" "ssemov")
-+            (and (match_operand 0 "register_operand" "xy") (match_operand 1 "register_operand" "r"))))
-+  "atom-simple-0")
-+
-+;; xmm->reg
-+(define_insn_reservation  "atom_ssemov_3" 3
-+  (and (eq_attr "cpu" "atom")
-+       (and (eq_attr "type" "ssemov")
-+            (and (match_operand 0 "register_operand" "r") (match_operand 1 "register_operand" "xy"))))
-+  "atom-eu-0-3-1")
-+
-+;; mov mem
-+(define_insn_reservation  "atom_ssemov_4" 1
-+  (and (eq_attr "cpu" "atom")
-+       (and (eq_attr "type" "ssemov")
-+            (and (eq_attr "movu" "0") (eq_attr "memory" "!none"))))
-+  "atom-simple-0")
-+
-+;; movu mem
-+(define_insn_reservation  "atom_ssemov_5" 2
-+  (and (eq_attr "cpu" "atom")
-+       (and (eq_attr "type" "ssemov")
-+            (ior (eq_attr "movu" "1") (eq_attr "memory" "!none"))))
-+  "atom-complex, atom-all-eu")
-+
-+;; no memory simple
-+(define_insn_reservation  "atom_sseadd" 5
-+  (and (eq_attr "cpu" "atom")
-+       (and (eq_attr "type" "sseadd")
-+            (and (eq_attr "memory" "none")
-+                 (and (eq_attr "mode" "!V2DF")
-+                      (eq_attr "atom_unit" "!complex")))))
-+  "atom-fadd-5c")
-+
-+;; memory simple
-+(define_insn_reservation  "atom_sseadd_mem" 5
-+  (and (eq_attr "cpu" "atom")
-+       (and (eq_attr "type" "sseadd")
-+            (and (eq_attr "memory" "!none")
-+                 (and (eq_attr "mode" "!V2DF")
-+                      (eq_attr "atom_unit" "!complex")))))
-+  "atom-dual-5c")
-+
-+;; maxps, minps, *pd, hadd, hsub
-+(define_insn_reservation  "atom_sseadd_3" 8
-+  (and (eq_attr "cpu" "atom")
-+       (and (eq_attr "type" "sseadd")
-+            (ior (eq_attr "mode" "V2DF") (eq_attr "atom_unit" "complex"))))
-+  "atom-complex, atom-all-eu*7")
-+
-+;; Except dppd/dpps
-+(define_insn_reservation  "atom_ssemul" 5
-+  (and (eq_attr "cpu" "atom")
-+       (and (eq_attr "type" "ssemul")
-+            (eq_attr "mode" "!SF")))
-+  "atom-fmul-5c")
-+
-+;; Except dppd/dpps, 4 cycle if mulss
-+(define_insn_reservation  "atom_ssemul_2" 4
-+  (and (eq_attr "cpu" "atom")
-+       (and (eq_attr "type" "ssemul")
-+            (eq_attr "mode" "SF")))
-+  "atom-fmul-4c")
-+
-+(define_insn_reservation  "atom_ssecmp" 1
-+  (and (eq_attr "cpu" "atom")
-+       (eq_attr "type" "ssecmp"))
-+  "atom-simple-either")
-+
-+(define_insn_reservation  "atom_ssecomi" 10
-+  (and (eq_attr "cpu" "atom")
-+       (eq_attr "type" "ssecomi"))
-+  "atom-complex, atom-all-eu*9")
-+
-+;; no memory and cvtpi2ps, cvtps2pi, cvttps2pi
-+(define_insn_reservation  "atom_ssecvt" 5
-+  (and (eq_attr "cpu" "atom")
-+       (and (eq_attr "type" "ssecvt")
-+            (ior (and (match_operand:V2SI 0 "register_operand")
-+                      (match_operand:V4SF 1 "register_operand"))
-+                 (and (match_operand:V4SF 0 "register_operand")
-+                      (match_operand:V2SI 1 "register_operand")))))
-+  "atom-fadd-5c")
-+
-+;; memory and cvtpi2ps, cvtps2pi, cvttps2pi
-+(define_insn_reservation  "atom_ssecvt_2" 5
-+  (and (eq_attr "cpu" "atom")
-+       (and (eq_attr "type" "ssecvt")
-+            (ior (and (match_operand:V2SI 0 "register_operand")
-+                      (match_operand:V4SF 1 "memory_operand"))
-+                 (and (match_operand:V4SF 0 "register_operand")
-+                      (match_operand:V2SI 1 "memory_operand")))))
-+  "atom-dual-5c")
-+
-+;; otherwise. 7 cycles average for cvtss2sd
-+(define_insn_reservation  "atom_ssecvt_3" 7
-+  (and (eq_attr "cpu" "atom")
-+       (and (eq_attr "type" "ssecvt")
-+            (not (ior (and (match_operand:V2SI 0 "register_operand")
-+                           (match_operand:V4SF 1 "nonimmediate_operand"))
-+                      (and (match_operand:V4SF 0 "register_operand")
-+                           (match_operand:V2SI 1 "nonimmediate_operand"))))))
-+  "atom-complex, atom-all-eu*6")
-+
-+;; memory and cvtsi2sd
-+(define_insn_reservation  "atom_sseicvt" 5
-+  (and (eq_attr "cpu" "atom")
-+       (and (eq_attr "type" "sseicvt")
-+            (and (match_operand:V2DF 0 "register_operand")
-+                 (match_operand:SI 1 "memory_operand"))))
-+  "atom-dual-5c")
-+
-+;; otherwise. 8 cycles average for cvtsd2si
-+(define_insn_reservation  "atom_sseicvt_2" 8
-+  (and (eq_attr "cpu" "atom")
-+       (and (eq_attr "type" "sseicvt")
-+            (not (and (match_operand:V2DF 0 "register_operand")
-+                      (match_operand:SI 1 "memory_operand")))))
-+  "atom-complex, atom-all-eu*7")
-+
-+(define_insn_reservation  "atom_ssediv" 62
-+  (and (eq_attr "cpu" "atom")
-+       (eq_attr "type" "ssediv"))
-+  "atom-complex, atom-all-eu*12, nothing*49")
-+
-+;; simple for fmov
-+(define_insn_reservation  "atom_fmov" 1
-+  (and (eq_attr "cpu" "atom")
-+       (and (eq_attr "type" "fmov")
-+            (eq_attr "memory" "none")))
-+  "atom-simple-either")
-+
-+;; simple for fmov
-+(define_insn_reservation  "atom_fmov_mem" 1
-+  (and (eq_attr "cpu" "atom")
-+       (and (eq_attr "type" "fmov")
-+            (eq_attr "memory" "!none")))
-+  "atom-simple-either")
-+
-+;; Define bypass here
-+
-+;; There will be no stall from lea to non-mem EX insns
-+(define_bypass 0 "atom_lea"
-+                 "atom_alu_carry,
-+                  atom_alu,atom_alu1,atom_negnot,atom_imov,atom_imovx,
-+                  atom_incdec, atom_setcc, atom_icmov, atom_pop")
-+
-+(define_bypass 0 "atom_lea"
-+                 "atom_alu_mem, atom_alu_carry_mem, atom_alu1_mem,
-+                  atom_imovx_mem, atom_imovx_2_mem,
-+                  atom_imov_mem, atom_icmov_mem, atom_fmov_mem"
-+                 "!ix86_agi_dependent")
-+
-+;; There will be 3 cycles stall from EX insns to AGAN insns LEA
-+(define_bypass 4 "atom_alu_carry,
-+                  atom_alu,atom_alu1,atom_negnot,atom_imov,atom_imovx,
-+                  atom_incdec,atom_ishift,atom_ishift1,atom_rotate,
-+                  atom_rotate1, atom_setcc, atom_icmov, atom_pop,
-+                  atom_alu_mem, atom_alu_carry_mem, atom_alu1_mem,
-+                  atom_imovx_mem, atom_imovx_2_mem,
-+                  atom_imov_mem, atom_icmov_mem, atom_fmov_mem"
-+                 "atom_lea")
-+
-+;; There will be 3 cycles stall from EX insns to insns need addr calculation
-+(define_bypass 4 "atom_alu_carry,
-+                  atom_alu,atom_alu1,atom_negnot,atom_imov,atom_imovx,
-+                  atom_incdec,atom_ishift,atom_ishift1,atom_rotate,
-+                  atom_rotate1, atom_setcc, atom_icmov, atom_pop,
-+                  atom_imovx_mem, atom_imovx_2_mem,
-+                  atom_alu_mem, atom_alu_carry_mem, atom_alu1_mem,
-+                  atom_imov_mem, atom_icmov_mem, atom_fmov_mem"
-+                 "atom_alu_mem, atom_alu_carry_mem, atom_alu1_mem,
-+                  atom_negnot_mem, atom_imov_mem, atom_incdec_mem,
-+                  atom_imovx_mem, atom_imovx_2_mem,
-+                  atom_imul_mem, atom_icmp_mem,
-+                  atom_test_mem, atom_icmov_mem, atom_sselog_mem,
-+                  atom_sselog1_mem, atom_fmov_mem, atom_sseadd_mem,
-+                  atom_ishift_mem, atom_ishift1_mem, 
-+                  atom_rotate_mem, atom_rotate1_mem"
-+                  "ix86_agi_dependent")
-+
-+;; Stall from imul to lea is 8 cycles.
-+(define_bypass 9 "atom_imul, atom_imul_mem" "atom_lea")
-+
-+;; Stall from imul to memory address is 8 cycles.
-+(define_bypass 9 "atom_imul, atom_imul_mem" 
-+                 "atom_alu_mem, atom_alu_carry_mem, atom_alu1_mem,
-+                  atom_negnot_mem, atom_imov_mem, atom_incdec_mem,
-+                  atom_ishift_mem, atom_ishift1_mem, atom_rotate_mem,
-+                  atom_rotate1_mem, atom_imul_mem, atom_icmp_mem,
-+                  atom_test_mem, atom_icmov_mem, atom_sselog_mem,
-+                  atom_sselog1_mem, atom_fmov_mem, atom_sseadd_mem"
-+                  "ix86_agi_dependent")
-+
-+;; There will be 0 cycle stall from cmp/test to jcc
-+
-+;; There will be 1 cycle stall from flag producer to cmov and adc/sbb
-+(define_bypass 2 "atom_icmp, atom_test, atom_alu, atom_alu_carry,
-+                  atom_alu1, atom_negnot, atom_incdec, atom_ishift,
-+                  atom_ishift1, atom_rotate, atom_rotate1"
-+                 "atom_icmov, atom_alu_carry")
-+
-+;; lea to shift count stall is 2 cycles
-+(define_bypass 3 "atom_lea"
-+                 "atom_ishift, atom_ishift1, atom_rotate, atom_rotate1,
-+                  atom_ishift_mem, atom_ishift1_mem, 
-+                  atom_rotate_mem, atom_rotate1_mem"
-+                 "ix86_dep_by_shift_count")
-+
-+;; lea to shift source stall is 1 cycle
-+(define_bypass 2 "atom_lea"
-+                 "atom_ishift, atom_ishift1, atom_rotate, atom_rotate1"
-+                 "!ix86_dep_by_shift_count")
-+
-+;; non-lea to shift count stall is 1 cycle
-+(define_bypass 2 "atom_alu_carry,
-+                  atom_alu,atom_alu1,atom_negnot,atom_imov,atom_imovx,
-+                  atom_incdec,atom_ishift,atom_ishift1,atom_rotate,
-+                  atom_rotate1, atom_setcc, atom_icmov, atom_pop,
-+                  atom_alu_mem, atom_alu_carry_mem, atom_alu1_mem,
-+                  atom_imovx_mem, atom_imovx_2_mem,
-+                  atom_imov_mem, atom_icmov_mem, atom_fmov_mem"
-+                 "atom_ishift, atom_ishift1, atom_rotate, atom_rotate1,
-+                  atom_ishift_mem, atom_ishift1_mem, 
-+                  atom_rotate_mem, atom_rotate1_mem"
-+                 "ix86_dep_by_shift_count")
-Index: gcc/config/i386/sse.md
-===================================================================
---- gcc/config/i386/sse.md     (.../tags/gcc_4_4_0_release)    (revision 146537)
-+++ gcc/config/i386/sse.md     (.../branches/ix86/gcc-4_4-branch)      (revision 146537)
-@@ -338,6 +338,7 @@
-    && !(MEM_P (operands[0]) && MEM_P (operands[1]))"
-   "vmovup<avxmodesuffixf2c>\t{%1, %0|%0, %1}"
-   [(set_attr "type" "ssemov")
-+   (set_attr "movu" "1")
-    (set_attr "prefix" "vex")
-    (set_attr "mode" "<MODE>")])
-@@ -363,6 +364,7 @@
-    && !(MEM_P (operands[0]) && MEM_P (operands[1]))"
-   "movup<ssemodesuffixf2c>\t{%1, %0|%0, %1}"
-   [(set_attr "type" "ssemov")
-+   (set_attr "movu" "1")
-    (set_attr "mode" "<MODE>")])
- (define_insn "avx_movdqu<avxmodesuffix>"
-@@ -373,6 +375,7 @@
-   "TARGET_AVX && !(MEM_P (operands[0]) && MEM_P (operands[1]))"
-   "vmovdqu\t{%1, %0|%0, %1}"
-   [(set_attr "type" "ssemov")
-+   (set_attr "movu" "1")
-    (set_attr "prefix" "vex")
-    (set_attr "mode" "<avxvecmode>")])
-@@ -383,6 +386,7 @@
-   "TARGET_SSE2 && !(MEM_P (operands[0]) && MEM_P (operands[1]))"
-   "movdqu\t{%1, %0|%0, %1}"
-   [(set_attr "type" "ssemov")
-+   (set_attr "movu" "1")
-    (set_attr "prefix_data16" "1")
-    (set_attr "mode" "TI")])
-@@ -424,7 +428,7 @@
-                    UNSPEC_MOVNT))]
-   "TARGET_SSE2"
-   "movntdq\t{%1, %0|%0, %1}"
--  [(set_attr "type" "ssecvt")
-+  [(set_attr "type" "ssemov")
-    (set_attr "prefix_data16" "1")
-    (set_attr "mode" "TI")])
-@@ -434,7 +438,7 @@
-                  UNSPEC_MOVNT))]
-   "TARGET_SSE2"
-   "movnti\t{%1, %0|%0, %1}"
--  [(set_attr "type" "ssecvt")
-+  [(set_attr "type" "ssemov")
-    (set_attr "mode" "V2DF")])
- (define_insn "avx_lddqu<avxmodesuffix>"
-@@ -445,6 +449,7 @@
-   "TARGET_AVX"
-   "vlddqu\t{%1, %0|%0, %1}"
-   [(set_attr "type" "ssecvt")
-+   (set_attr "movu" "1")
-    (set_attr "prefix" "vex")
-    (set_attr "mode" "<avxvecmode>")])
-@@ -454,7 +459,8 @@
-                     UNSPEC_LDDQU))]
-   "TARGET_SSE3"
-   "lddqu\t{%1, %0|%0, %1}"
--  [(set_attr "type" "ssecvt")
-+  [(set_attr "type" "ssemov")
-+   (set_attr "movu" "1")
-    (set_attr "prefix_rep" "1")
-    (set_attr "mode" "TI")])
-@@ -761,6 +767,7 @@
-   "TARGET_SSE"
-   "%vrcpps\t{%1, %0|%0, %1}"
-   [(set_attr "type" "sse")
-+   (set_attr "atom_sse_attr" "rcp")
-    (set_attr "prefix" "maybe_vex")
-    (set_attr "mode" "V4SF")])
-@@ -787,6 +794,7 @@
-   "TARGET_SSE"
-   "rcpss\t{%1, %0|%0, %1}"
-   [(set_attr "type" "sse")
-+   (set_attr "atom_sse_attr" "rcp")
-    (set_attr "mode" "SF")])
- (define_expand "sqrtv8sf2"
-@@ -832,6 +840,7 @@
-   "TARGET_SSE"
-   "%vsqrtps\t{%1, %0|%0, %1}"
-   [(set_attr "type" "sse")
-+   (set_attr "atom_sse_attr" "sqrt")
-    (set_attr "prefix" "maybe_vex")
-    (set_attr "mode" "V4SF")])
-@@ -876,6 +885,7 @@
-   "SSE_VEC_FLOAT_MODE_P (<MODE>mode)"
-   "sqrts<ssemodesuffixf2c>\t{%1, %0|%0, %1}"
-   [(set_attr "type" "sse")
-+   (set_attr "atom_sse_attr" "sqrt")
-    (set_attr "mode" "<ssescalarmode>")])
- (define_expand "rsqrtv8sf2"
-@@ -1039,7 +1049,7 @@
-        (const_int 1)))]
-   "SSE_VEC_FLOAT_MODE_P (<MODE>mode)"
-   "<maxminfprefix>s<ssemodesuffixf2c>\t{%2, %0|%0, %2}"
--  [(set_attr "type" "sse")
-+  [(set_attr "type" "sseadd")
-    (set_attr "mode" "<ssescalarmode>")])
- ;; These versions of the min/max patterns implement exactly the operations
-@@ -1175,6 +1185,7 @@
-   "TARGET_SSE3"
-   "addsubpd\t{%2, %0|%0, %2}"
-   [(set_attr "type" "sseadd")
-+   (set_attr "atom_unit" "complex")
-    (set_attr "mode" "V2DF")])
- (define_insn "avx_h<plusminus_insn>v4df3"
-@@ -1298,6 +1309,7 @@
-   "TARGET_SSE3"
-   "h<plusminus_mnemonic>ps\t{%2, %0|%0, %2}"
-   [(set_attr "type" "sseadd")
-+   (set_attr "atom_unit" "complex")
-    (set_attr "prefix_rep" "1")
-    (set_attr "mode" "V4SF")])
-@@ -5066,6 +5078,7 @@
-   "TARGET_SSE2 && ix86_binary_operator_ok (MULT, V8HImode, operands)"
-   "pmaddwd\t{%2, %0|%0, %2}"
-   [(set_attr "type" "sseiadd")
-+   (set_attr "atom_unit" "simul")
-    (set_attr "prefix_data16" "1")
-    (set_attr "mode" "TI")])
-@@ -7025,6 +7038,7 @@
-    movq\t{%H1, %0|%0, %H1}
-    mov{q}\t{%H1, %0|%0, %H1}"
-   [(set_attr "type" "ssemov,sseishft,ssemov,imov")
-+   (set_attr "atom_unit" "*,sishuf,*,*")
-    (set_attr "memory" "*,none,*,*")
-    (set_attr "mode" "V2SF,TI,TI,DI")])
-@@ -7057,6 +7071,7 @@
-    psrldq\t{$8, %0|%0, 8}
-    movq\t{%H1, %0|%0, %H1}"
-   [(set_attr "type" "ssemov,sseishft,ssemov")
-+   (set_attr "atom_unit" "*,sishuf,*")
-    (set_attr "memory" "*,none,*")
-    (set_attr "mode" "V2SF,TI,TI")])
-@@ -7614,6 +7629,7 @@
-   "TARGET_SSE2"
-   "psadbw\t{%2, %0|%0, %2}"
-   [(set_attr "type" "sseiadd")
-+   (set_attr "atom_unit" "simul")
-    (set_attr "prefix_data16" "1")
-    (set_attr "mode" "TI")])
-@@ -7635,7 +7651,7 @@
-         UNSPEC_MOVMSK))]
-   "SSE_VEC_FLOAT_MODE_P (<MODE>mode)"
-   "%vmovmskp<ssemodesuffixf2c>\t{%1, %0|%0, %1}"
--  [(set_attr "type" "ssecvt")
-+  [(set_attr "type" "ssemov")
-    (set_attr "prefix" "maybe_vex")
-    (set_attr "mode" "<MODE>")])
-@@ -7645,7 +7661,7 @@
-                  UNSPEC_MOVMSK))]
-   "TARGET_SSE2"
-   "%vpmovmskb\t{%1, %0|%0, %1}"
--  [(set_attr "type" "ssecvt")
-+  [(set_attr "type" "ssemov")
-    (set_attr "prefix_data16" "1")
-    (set_attr "prefix" "maybe_vex")
-    (set_attr "mode" "SI")])
-@@ -7668,7 +7684,7 @@
-   "TARGET_SSE2 && !TARGET_64BIT"
-   ;; @@@ check ordering of operands in intel/nonintel syntax
-   "%vmaskmovdqu\t{%2, %1|%1, %2}"
--  [(set_attr "type" "ssecvt")
-+  [(set_attr "type" "ssemov")
-    (set_attr "prefix_data16" "1")
-    (set_attr "prefix" "maybe_vex")
-    (set_attr "mode" "TI")])
-@@ -7682,7 +7698,7 @@
-   "TARGET_SSE2 && TARGET_64BIT"
-   ;; @@@ check ordering of operands in intel/nonintel syntax
-   "%vmaskmovdqu\t{%2, %1|%1, %2}"
--  [(set_attr "type" "ssecvt")
-+  [(set_attr "type" "ssemov")
-    (set_attr "prefix_data16" "1")
-    (set_attr "prefix" "maybe_vex")
-    (set_attr "mode" "TI")])
-@@ -7693,6 +7709,7 @@
-   "TARGET_SSE"
-   "%vldmxcsr\t%0"
-   [(set_attr "type" "sse")
-+   (set_attr "atom_sse_attr" "mxcsr")
-    (set_attr "prefix" "maybe_vex")
-    (set_attr "memory" "load")])
-@@ -7702,6 +7719,7 @@
-   "TARGET_SSE"
-   "%vstmxcsr\t%0"
-   [(set_attr "type" "sse")
-+   (set_attr "atom_sse_attr" "mxcsr")
-    (set_attr "prefix" "maybe_vex")
-    (set_attr "memory" "store")])
-@@ -7720,6 +7738,7 @@
-   "TARGET_SSE || TARGET_3DNOW_A"
-   "sfence"
-   [(set_attr "type" "sse")
-+   (set_attr "atom_sse_attr" "fence")
-    (set_attr "memory" "unknown")])
- (define_insn "sse2_clflush"
-@@ -7728,6 +7747,7 @@
-   "TARGET_SSE2"
-   "clflush\t%a0"
-   [(set_attr "type" "sse")
-+   (set_attr "atom_sse_attr" "fence")
-    (set_attr "memory" "unknown")])
- (define_expand "sse2_mfence"
-@@ -7745,6 +7765,7 @@
-   "TARGET_64BIT || TARGET_SSE2"
-   "mfence"
-   [(set_attr "type" "sse")
-+   (set_attr "atom_sse_attr" "fence")
-    (set_attr "memory" "unknown")])
- (define_expand "sse2_lfence"
-@@ -7762,6 +7783,7 @@
-   "TARGET_SSE2"
-   "lfence"
-   [(set_attr "type" "sse")
-+   (set_attr "atom_sse_attr" "lfence")
-    (set_attr "memory" "unknown")])
- (define_insn "sse3_mwait"
-@@ -7885,6 +7907,7 @@
-   "TARGET_SSSE3"
-   "phaddw\t{%2, %0|%0, %2}"
-   [(set_attr "type" "sseiadd")
-+   (set_attr "atom_unit" "complex")
-    (set_attr "prefix_data16" "1")
-    (set_attr "prefix_extra" "1")
-    (set_attr "mode" "TI")])
-@@ -7913,6 +7936,7 @@
-   "TARGET_SSSE3"
-   "phaddw\t{%2, %0|%0, %2}"
-   [(set_attr "type" "sseiadd")
-+   (set_attr "atom_unit" "complex")
-    (set_attr "prefix_extra" "1")
-    (set_attr "mode" "DI")])
-@@ -7967,6 +7991,7 @@
-   "TARGET_SSSE3"
-   "phaddd\t{%2, %0|%0, %2}"
-   [(set_attr "type" "sseiadd")
-+   (set_attr "atom_unit" "complex")
-    (set_attr "prefix_data16" "1")
-    (set_attr "prefix_extra" "1")
-    (set_attr "mode" "TI")])
-@@ -7987,6 +8012,7 @@
-   "TARGET_SSSE3"
-   "phaddd\t{%2, %0|%0, %2}"
-   [(set_attr "type" "sseiadd")
-+   (set_attr "atom_unit" "complex")
-    (set_attr "prefix_extra" "1")
-    (set_attr "mode" "DI")])
-@@ -8073,6 +8099,7 @@
-   "TARGET_SSSE3"
-   "phaddsw\t{%2, %0|%0, %2}"
-   [(set_attr "type" "sseiadd")
-+   (set_attr "atom_unit" "complex")
-    (set_attr "prefix_data16" "1")
-    (set_attr "prefix_extra" "1")
-    (set_attr "mode" "TI")])
-@@ -8101,6 +8128,7 @@
-   "TARGET_SSSE3"
-   "phaddsw\t{%2, %0|%0, %2}"
-   [(set_attr "type" "sseiadd")
-+   (set_attr "atom_unit" "complex")
-    (set_attr "prefix_extra" "1")
-    (set_attr "mode" "DI")])
-@@ -8187,6 +8215,7 @@
-   "TARGET_SSSE3"
-   "phsubw\t{%2, %0|%0, %2}"
-   [(set_attr "type" "sseiadd")
-+   (set_attr "atom_unit" "complex")
-    (set_attr "prefix_data16" "1")
-    (set_attr "prefix_extra" "1")
-    (set_attr "mode" "TI")])
-@@ -8215,6 +8244,7 @@
-   "TARGET_SSSE3"
-   "phsubw\t{%2, %0|%0, %2}"
-   [(set_attr "type" "sseiadd")
-+   (set_attr "atom_unit" "complex")
-    (set_attr "prefix_extra" "1")
-    (set_attr "mode" "DI")])
-@@ -8269,6 +8299,7 @@
-   "TARGET_SSSE3"
-   "phsubd\t{%2, %0|%0, %2}"
-   [(set_attr "type" "sseiadd")
-+   (set_attr "atom_unit" "complex")
-    (set_attr "prefix_data16" "1")
-    (set_attr "prefix_extra" "1")
-    (set_attr "mode" "TI")])
-@@ -8289,6 +8320,7 @@
-   "TARGET_SSSE3"
-   "phsubd\t{%2, %0|%0, %2}"
-   [(set_attr "type" "sseiadd")
-+   (set_attr "atom_unit" "complex")
-    (set_attr "prefix_extra" "1")
-    (set_attr "mode" "DI")])
-@@ -8375,6 +8407,7 @@
-   "TARGET_SSSE3"
-   "phsubsw\t{%2, %0|%0, %2}"
-   [(set_attr "type" "sseiadd")
-+   (set_attr "atom_unit" "complex")
-    (set_attr "prefix_data16" "1")
-    (set_attr "prefix_extra" "1")
-    (set_attr "mode" "TI")])
-@@ -8403,6 +8436,7 @@
-   "TARGET_SSSE3"
-   "phsubsw\t{%2, %0|%0, %2}"
-   [(set_attr "type" "sseiadd")
-+   (set_attr "atom_unit" "complex")
-    (set_attr "prefix_extra" "1")
-    (set_attr "mode" "DI")])
-@@ -8509,6 +8543,7 @@
-   "TARGET_SSSE3"
-   "pmaddubsw\t{%2, %0|%0, %2}"
-   [(set_attr "type" "sseiadd")
-+   (set_attr "atom_unit" "simul")
-    (set_attr "prefix_data16" "1")
-    (set_attr "prefix_extra" "1")
-    (set_attr "mode" "TI")])
-@@ -8547,6 +8582,7 @@
-   "TARGET_SSSE3"
-   "pmaddubsw\t{%2, %0|%0, %2}"
-   [(set_attr "type" "sseiadd")
-+   (set_attr "atom_unit" "simul")
-    (set_attr "prefix_extra" "1")
-    (set_attr "mode" "DI")])
-@@ -8754,6 +8790,7 @@
-   return "palignr\t{%3, %2, %0|%0, %2, %3}";
- }
-   [(set_attr "type" "sseishft")
-+   (set_attr "atom_unit" "sishuf")
-    (set_attr "prefix_data16" "1")
-    (set_attr "prefix_extra" "1")
-    (set_attr "mode" "TI")])
-@@ -8770,6 +8807,7 @@
-   return "palignr\t{%3, %2, %0|%0, %2, %3}";
- }
-   [(set_attr "type" "sseishft")
-+   (set_attr "atom_unit" "sishuf")
-    (set_attr "prefix_extra" "1")
-    (set_attr "mode" "DI")])
-@@ -8956,7 +8994,7 @@
-                    UNSPEC_MOVNTDQA))]
-   "TARGET_SSE4_1"
-   "%vmovntdqa\t{%1, %0|%0, %1}"
--  [(set_attr "type" "ssecvt")
-+  [(set_attr "type" "ssemov")
-    (set_attr "prefix_extra" "1")
-    (set_attr "prefix" "maybe_vex")
-    (set_attr "mode" "TI")])
-Index: gcc/config/i386/i386.opt
-===================================================================
---- gcc/config/i386/i386.opt   (.../tags/gcc_4_4_0_release)    (revision 146537)
-+++ gcc/config/i386/i386.opt   (.../branches/ix86/gcc-4_4-branch)      (revision 146537)
-@@ -228,6 +228,10 @@
- Target RejectNegative Joined Var(ix86_tune_string)
- Schedule code for given CPU
-+mabi=
-+Target RejectNegative Joined Var(ix86_abi_string)
-+Generate code that conforms to the given ABI
-+
- mveclibabi=
- Target RejectNegative Joined Var(ix86_veclibabi_string)
- Vector library ABI to use
-Index: gcc/config/i386/i386-c.c
-===================================================================
---- gcc/config/i386/i386-c.c   (.../tags/gcc_4_4_0_release)    (revision 146537)
-+++ gcc/config/i386/i386-c.c   (.../branches/ix86/gcc-4_4-branch)      (revision 146537)
-@@ -119,6 +119,10 @@
-       def_or_undef (parse_in, "__core2");
-       def_or_undef (parse_in, "__core2__");
-       break;
-+    case PROCESSOR_ATOM:
-+      def_or_undef (parse_in, "__atom");
-+      def_or_undef (parse_in, "__atom__");
-+      break;
-     /* use PROCESSOR_max to not set/unset the arch macro.  */
-     case PROCESSOR_max:
-       break;
-@@ -187,6 +191,9 @@
-     case PROCESSOR_CORE2:
-       def_or_undef (parse_in, "__tune_core2__");
-       break;
-+    case PROCESSOR_ATOM:
-+      def_or_undef (parse_in, "__tune_atom__");
-+      break;
-     case PROCESSOR_GENERIC32:
-     case PROCESSOR_GENERIC64:
-       break;
-Index: gcc/config/i386/mingw32.h
-===================================================================
---- gcc/config/i386/mingw32.h  (.../tags/gcc_4_4_0_release)    (revision 146537)
-+++ gcc/config/i386/mingw32.h  (.../branches/ix86/gcc-4_4-branch)      (revision 146537)
-@@ -38,7 +38,7 @@
-       builtin_define_std ("WINNT");                           \
-       builtin_define_with_int_value ("_INTEGRAL_MAX_BITS",    \
-                                    TYPE_PRECISION (intmax_type_node));\
--      if (TARGET_64BIT && DEFAULT_ABI == MS_ABI)                      \
-+      if (TARGET_64BIT && ix86_abi == MS_ABI)                 \
-       {                                                       \
-         builtin_define ("__MINGW64__");                       \
-         builtin_define_std ("WIN64");                         \
-Index: gcc/config/i386/i386-protos.h
-===================================================================
---- gcc/config/i386/i386-protos.h      (.../tags/gcc_4_4_0_release)    (revision 146537)
-+++ gcc/config/i386/i386-protos.h      (.../branches/ix86/gcc-4_4-branch)      (revision 146537)
-@@ -85,6 +85,9 @@
- extern void ix86_expand_binary_operator (enum rtx_code,
-                                        enum machine_mode, rtx[]);
- extern int ix86_binary_operator_ok (enum rtx_code, enum machine_mode, rtx[]);
-+extern bool ix86_lea_for_add_ok (enum rtx_code, rtx, rtx[]);
-+extern bool ix86_dep_by_shift_count (const_rtx set_insn, const_rtx use_insn);
-+extern bool ix86_agi_dependent (rtx set_insn, rtx use_insn);
- extern void ix86_expand_unary_operator (enum rtx_code, enum machine_mode,
-                                       rtx[]);
- extern rtx ix86_build_const_vector (enum machine_mode, bool, rtx);
-@@ -139,9 +142,8 @@
- extern bool ix86_sol10_return_in_memory (const_tree,const_tree);
- extern rtx ix86_force_to_memory (enum machine_mode, rtx);
- extern void ix86_free_from_memory (enum machine_mode);
--extern int ix86_cfun_abi (void);
--extern int ix86_function_abi (const_tree);
--extern int ix86_function_type_abi (const_tree);
-+extern enum calling_abi ix86_cfun_abi (void);
-+extern enum calling_abi ix86_function_type_abi (const_tree);
- extern void ix86_call_abi_override (const_tree);
- extern tree ix86_fn_abi_va_list (tree);
- extern tree ix86_canonical_va_list_type (tree);
-Index: gcc/config/i386/i386.c
-===================================================================
---- gcc/config/i386/i386.c     (.../tags/gcc_4_4_0_release)    (revision 146537)
-+++ gcc/config/i386/i386.c     (.../branches/ix86/gcc-4_4-branch)      (revision 146537)
-@@ -1036,6 +1036,79 @@
-   1,                                    /* cond_not_taken_branch_cost.  */
- };
-+static const
-+struct processor_costs atom_cost = {
-+  COSTS_N_INSNS (1),                  /* cost of an add instruction */
-+  COSTS_N_INSNS (1) + 1,              /* cost of a lea instruction */
-+  COSTS_N_INSNS (1),                  /* variable shift costs */
-+  COSTS_N_INSNS (1),                  /* constant shift costs */
-+  {COSTS_N_INSNS (3),                 /* cost of starting multiply for QI */
-+   COSTS_N_INSNS (4),                 /*                               HI */
-+   COSTS_N_INSNS (3),                 /*                               SI */
-+   COSTS_N_INSNS (4),                 /*                               DI */
-+   COSTS_N_INSNS (2)},                        /*                               other */
-+  0,                                  /* cost of multiply per each bit set */
-+  {COSTS_N_INSNS (18),                        /* cost of a divide/mod for QI */
-+   COSTS_N_INSNS (26),                        /*                          HI */
-+   COSTS_N_INSNS (42),                        /*                          SI */
-+   COSTS_N_INSNS (74),                        /*                          DI */
-+   COSTS_N_INSNS (74)},                       /*                          other */
-+  COSTS_N_INSNS (1),                  /* cost of movsx */
-+  COSTS_N_INSNS (1),                  /* cost of movzx */
-+  8,                                  /* "large" insn */
-+  17,                                 /* MOVE_RATIO */
-+  2,                                  /* cost for loading QImode using movzbl */
-+  {4, 4, 4},                          /* cost of loading integer registers
-+                                         in QImode, HImode and SImode.
-+                                         Relative to reg-reg move (2).  */
-+  {4, 4, 4},                          /* cost of storing integer registers */
-+  4,                                  /* cost of reg,reg fld/fst */
-+  {12, 12, 12},                               /* cost of loading fp registers
-+                                         in SFmode, DFmode and XFmode */
-+  {6, 6, 8},                          /* cost of storing fp registers
-+                                         in SFmode, DFmode and XFmode */
-+  2,                                  /* cost of moving MMX register */
-+  {8, 8},                             /* cost of loading MMX registers
-+                                         in SImode and DImode */
-+  {8, 8},                             /* cost of storing MMX registers
-+                                         in SImode and DImode */
-+  2,                                  /* cost of moving SSE register */
-+  {8, 8, 8},                          /* cost of loading SSE registers
-+                                         in SImode, DImode and TImode */
-+  {8, 8, 8},                          /* cost of storing SSE registers
-+                                         in SImode, DImode and TImode */
-+  5,                                  /* MMX or SSE register to integer */
-+  32,                                 /* size of l1 cache.  */
-+  256,                                        /* size of l2 cache.  */
-+  64,                                 /* size of prefetch block */
-+  6,                                  /* number of parallel prefetches */
-+  3,                                  /* Branch cost */
-+  COSTS_N_INSNS (8),                  /* cost of FADD and FSUB insns.  */
-+  COSTS_N_INSNS (8),                  /* cost of FMUL instruction.  */
-+  COSTS_N_INSNS (20),                 /* cost of FDIV instruction.  */
-+  COSTS_N_INSNS (8),                  /* cost of FABS instruction.  */
-+  COSTS_N_INSNS (8),                  /* cost of FCHS instruction.  */
-+  COSTS_N_INSNS (40),                 /* cost of FSQRT instruction.  */
-+  {{libcall, {{11, loop}, {-1, rep_prefix_4_byte}}},
-+   {libcall, {{32, loop}, {64, rep_prefix_4_byte},
-+          {8192, rep_prefix_8_byte}, {-1, libcall}}}},
-+  {{libcall, {{8, loop}, {15, unrolled_loop},
-+          {2048, rep_prefix_4_byte}, {-1, libcall}}},
-+   {libcall, {{24, loop}, {32, unrolled_loop},
-+          {8192, rep_prefix_8_byte}, {-1, libcall}}}},
-+  1,                                    /* scalar_stmt_cost.  */
-+  1,                                    /* scalar load_cost.  */
-+  1,                                    /* scalar_store_cost.  */
-+  1,                                    /* vec_stmt_cost.  */
-+  1,                                    /* vec_to_scalar_cost.  */
-+  1,                                    /* scalar_to_vec_cost.  */
-+  1,                                    /* vec_align_load_cost.  */
-+  2,                                    /* vec_unalign_load_cost.  */
-+  1,                                    /* vec_store_cost.  */
-+  3,                                    /* cond_taken_branch_cost.  */
-+  1,                                    /* cond_not_taken_branch_cost.  */
-+};
-+
- /* Generic64 should produce code tuned for Nocona and K8.  */
- static const
- struct processor_costs generic64_cost = {
-@@ -1194,6 +1267,7 @@
- #define m_PENT4  (1<<PROCESSOR_PENTIUM4)
- #define m_NOCONA  (1<<PROCESSOR_NOCONA)
- #define m_CORE2  (1<<PROCESSOR_CORE2)
-+#define m_ATOM  (1<<PROCESSOR_ATOM)
- #define m_GEODE  (1<<PROCESSOR_GEODE)
- #define m_K6  (1<<PROCESSOR_K6)
-@@ -1231,10 +1305,11 @@
-   m_486 | m_PENT,
-   /* X86_TUNE_UNROLL_STRLEN */
--  m_486 | m_PENT | m_PPRO | m_AMD_MULTIPLE | m_K6 | m_CORE2 | m_GENERIC,
-+  m_486 | m_PENT | m_ATOM | m_PPRO | m_AMD_MULTIPLE | m_K6
-+  | m_CORE2 | m_GENERIC,
-   /* X86_TUNE_DEEP_BRANCH_PREDICTION */
--  m_PPRO | m_K6_GEODE | m_AMD_MULTIPLE | m_PENT4 | m_GENERIC,
-+  m_ATOM | m_PPRO | m_K6_GEODE | m_AMD_MULTIPLE | m_PENT4 | m_GENERIC,
-   /* X86_TUNE_BRANCH_PREDICTION_HINTS: Branch hints were put in P4 based
-      on simulation result. But after P4 was made, no performance benefit
-@@ -1246,12 +1321,12 @@
-   ~m_386,
-   /* X86_TUNE_USE_SAHF */
--  m_PPRO | m_K6_GEODE | m_K8 | m_AMDFAM10 | m_PENT4
-+  m_ATOM | m_PPRO | m_K6_GEODE | m_K8 | m_AMDFAM10 | m_PENT4
-   | m_NOCONA | m_CORE2 | m_GENERIC,
-   /* X86_TUNE_MOVX: Enable to zero extend integer registers to avoid
-      partial dependencies.  */
--  m_AMD_MULTIPLE | m_PPRO | m_PENT4 | m_NOCONA
-+  m_AMD_MULTIPLE | m_ATOM | m_PPRO | m_PENT4 | m_NOCONA
-   | m_CORE2 | m_GENERIC | m_GEODE /* m_386 | m_K6 */,
-   /* X86_TUNE_PARTIAL_REG_STALL: We probably ought to watch for partial
-@@ -1271,13 +1346,13 @@
-   m_386 | m_486 | m_K6_GEODE,
-   /* X86_TUNE_USE_SIMODE_FIOP */
--  ~(m_PPRO | m_AMD_MULTIPLE | m_PENT | m_CORE2 | m_GENERIC),
-+  ~(m_PPRO | m_AMD_MULTIPLE | m_PENT | m_ATOM | m_CORE2 | m_GENERIC),
-   /* X86_TUNE_USE_MOV0 */
-   m_K6,
-   /* X86_TUNE_USE_CLTD */
--  ~(m_PENT | m_K6 | m_CORE2 | m_GENERIC),
-+  ~(m_PENT | m_ATOM | m_K6 | m_CORE2 | m_GENERIC),
-   /* X86_TUNE_USE_XCHGB: Use xchgb %rh,%rl instead of rolw/rorw $8,rx.  */
-   m_PENT4,
-@@ -1292,8 +1367,8 @@
-   ~(m_PENT | m_PPRO),
-   /* X86_TUNE_PROMOTE_QIMODE */
--  m_K6_GEODE | m_PENT | m_386 | m_486 | m_AMD_MULTIPLE | m_CORE2
--  | m_GENERIC /* | m_PENT4 ? */,
-+  m_K6_GEODE | m_PENT | m_ATOM | m_386 | m_486 | m_AMD_MULTIPLE
-+  | m_CORE2 | m_GENERIC /* | m_PENT4 ? */,
-   /* X86_TUNE_FAST_PREFIX */
-   ~(m_PENT | m_486 | m_386),
-@@ -1317,26 +1392,28 @@
-   m_PPRO,
-   /* X86_TUNE_ADD_ESP_4: Enable if add/sub is preferred over 1/2 push/pop.  */
--  m_AMD_MULTIPLE | m_K6_GEODE | m_PENT4 | m_NOCONA | m_CORE2 | m_GENERIC,
-+  m_ATOM | m_AMD_MULTIPLE | m_K6_GEODE | m_PENT4 | m_NOCONA
-+  | m_CORE2 | m_GENERIC,
-   /* X86_TUNE_ADD_ESP_8 */
--  m_AMD_MULTIPLE | m_PPRO | m_K6_GEODE | m_386
-+  m_AMD_MULTIPLE | m_ATOM | m_PPRO | m_K6_GEODE | m_386
-   | m_486 | m_PENT4 | m_NOCONA | m_CORE2 | m_GENERIC,
-   /* X86_TUNE_SUB_ESP_4 */
--  m_AMD_MULTIPLE | m_PPRO | m_PENT4 | m_NOCONA | m_CORE2 | m_GENERIC,
-+  m_AMD_MULTIPLE | m_ATOM | m_PPRO | m_PENT4 | m_NOCONA | m_CORE2
-+  | m_GENERIC,
-   /* X86_TUNE_SUB_ESP_8 */
--  m_AMD_MULTIPLE | m_PPRO | m_386 | m_486
-+  m_AMD_MULTIPLE | m_ATOM | m_PPRO | m_386 | m_486
-   | m_PENT4 | m_NOCONA | m_CORE2 | m_GENERIC,
-   /* X86_TUNE_INTEGER_DFMODE_MOVES: Enable if integer moves are preferred
-      for DFmode copies */
--  ~(m_AMD_MULTIPLE | m_PENT4 | m_NOCONA | m_PPRO | m_CORE2
-+  ~(m_AMD_MULTIPLE | m_ATOM | m_PENT4 | m_NOCONA | m_PPRO | m_CORE2
-     | m_GENERIC | m_GEODE),
-   /* X86_TUNE_PARTIAL_REG_DEPENDENCY */
--  m_AMD_MULTIPLE | m_PENT4 | m_NOCONA | m_CORE2 | m_GENERIC,
-+  m_AMD_MULTIPLE | m_ATOM | m_PENT4 | m_NOCONA | m_CORE2 | m_GENERIC,
-   /* X86_TUNE_SSE_PARTIAL_REG_DEPENDENCY: In the Generic model we have a
-      conflict here in between PPro/Pentium4 based chips that thread 128bit
-@@ -1347,7 +1424,8 @@
-      shows that disabling this option on P4 brings over 20% SPECfp regression,
-      while enabling it on K8 brings roughly 2.4% regression that can be partly
-      masked by careful scheduling of moves.  */
--  m_PENT4 | m_NOCONA | m_PPRO | m_CORE2 | m_GENERIC | m_AMDFAM10,
-+  m_ATOM | m_PENT4 | m_NOCONA | m_PPRO | m_CORE2 | m_GENERIC
-+  | m_AMDFAM10,
-   /* X86_TUNE_SSE_UNALIGNED_MOVE_OPTIMAL */
-   m_AMDFAM10,
-@@ -1365,13 +1443,13 @@
-   m_PPRO | m_PENT4 | m_NOCONA,
-   /* X86_TUNE_MEMORY_MISMATCH_STALL */
--  m_AMD_MULTIPLE | m_PENT4 | m_NOCONA | m_CORE2 | m_GENERIC,
-+  m_AMD_MULTIPLE | m_ATOM | m_PENT4 | m_NOCONA | m_CORE2 | m_GENERIC,
-   /* X86_TUNE_PROLOGUE_USING_MOVE */
--  m_ATHLON_K8 | m_PPRO | m_CORE2 | m_GENERIC,
-+  m_ATHLON_K8 | m_ATOM | m_PPRO | m_CORE2 | m_GENERIC,
-   /* X86_TUNE_EPILOGUE_USING_MOVE */
--  m_ATHLON_K8 | m_PPRO | m_CORE2 | m_GENERIC,
-+  m_ATHLON_K8 | m_ATOM | m_PPRO | m_CORE2 | m_GENERIC,
-   /* X86_TUNE_SHIFT1 */
-   ~m_486,
-@@ -1380,29 +1458,32 @@
-   m_AMD_MULTIPLE,
-   /* X86_TUNE_INTER_UNIT_MOVES */
--  ~(m_AMD_MULTIPLE | m_GENERIC),
-+  ~(m_AMD_MULTIPLE | m_ATOM | m_GENERIC),
-   /* X86_TUNE_INTER_UNIT_CONVERSIONS */
-   ~(m_AMDFAM10),
-   /* X86_TUNE_FOUR_JUMP_LIMIT: Some CPU cores are not able to predict more
-      than 4 branch instructions in the 16 byte window.  */
--  m_PPRO | m_AMD_MULTIPLE | m_PENT4 | m_NOCONA | m_CORE2 | m_GENERIC,
-+  m_ATOM | m_PPRO | m_AMD_MULTIPLE | m_PENT4 | m_NOCONA | m_CORE2
-+  | m_GENERIC,
-   /* X86_TUNE_SCHEDULE */
--  m_PPRO | m_AMD_MULTIPLE | m_K6_GEODE | m_PENT | m_CORE2 | m_GENERIC,
-+  m_PPRO | m_AMD_MULTIPLE | m_K6_GEODE | m_PENT | m_ATOM | m_CORE2
-+  | m_GENERIC,
-   /* X86_TUNE_USE_BT */
--  m_AMD_MULTIPLE | m_CORE2 | m_GENERIC,
-+  m_AMD_MULTIPLE | m_ATOM | m_CORE2 | m_GENERIC,
-   /* X86_TUNE_USE_INCDEC */
--  ~(m_PENT4 | m_NOCONA | m_GENERIC),
-+  ~(m_PENT4 | m_NOCONA | m_GENERIC | m_ATOM),
-   /* X86_TUNE_PAD_RETURNS */
-   m_AMD_MULTIPLE | m_CORE2 | m_GENERIC,
-   /* X86_TUNE_EXT_80387_CONSTANTS */
--  m_K6_GEODE | m_ATHLON_K8 | m_PENT4 | m_NOCONA | m_PPRO | m_CORE2 | m_GENERIC,
-+  m_K6_GEODE | m_ATHLON_K8 | m_ATOM | m_PENT4 | m_NOCONA | m_PPRO
-+  | m_CORE2 | m_GENERIC,
-   /* X86_TUNE_SHORTEN_X87_SSE */
-   ~m_K8,
-@@ -1447,6 +1528,10 @@
-      with a subsequent conditional jump instruction into a single
-      compare-and-branch uop.  */
-   m_CORE2,
-+
-+  /* X86_TUNE_OPT_AGU: Optimize for Address Generation Unit. This flag
-+     will impact LEA instruction selection. */
-+  m_ATOM,
- };
- /* Feature tests against the various architecture variations.  */
-@@ -1472,10 +1557,11 @@
- };
- static const unsigned int x86_accumulate_outgoing_args
--  = m_AMD_MULTIPLE | m_PENT4 | m_NOCONA | m_PPRO | m_CORE2 | m_GENERIC;
-+  = m_AMD_MULTIPLE | m_ATOM | m_PENT4 | m_NOCONA | m_PPRO | m_CORE2
-+    | m_GENERIC;
- static const unsigned int x86_arch_always_fancy_math_387
--  = m_PENT | m_PPRO | m_AMD_MULTIPLE | m_PENT4
-+  = m_PENT | m_ATOM | m_PPRO | m_AMD_MULTIPLE | m_PENT4
-     | m_NOCONA | m_CORE2 | m_GENERIC;
- static enum stringop_alg stringop_alg = no_stringop;
-@@ -1743,6 +1829,9 @@
- /* Alignment for incoming stack boundary in bits.  */
- unsigned int ix86_incoming_stack_boundary;
-+/* The abi used by target.  */
-+enum calling_abi ix86_abi;
-+
- /* Values 1-5: see jump.c */
- int ix86_branch_cost;
-@@ -1819,6 +1908,8 @@
- static bool ix86_can_inline_p (tree, tree);
- static void ix86_set_current_function (tree);
-+static enum calling_abi ix86_function_abi (const_tree);
-+
\f
- /* The svr4 ABI for the i386 says that records and unions are returned
-    in memory.  */
-@@ -1953,7 +2044,8 @@
-   {&core2_cost, 16, 10, 16, 10, 16},
-   {&generic32_cost, 16, 7, 16, 7, 16},
-   {&generic64_cost, 16, 10, 16, 10, 16},
--  {&amdfam10_cost, 32, 24, 32, 7, 32}
-+  {&amdfam10_cost, 32, 24, 32, 7, 32},
-+  {&atom_cost, 16, 7, 16, 7, 16}
- };
- static const char *const cpu_names[TARGET_CPU_DEFAULT_max] =
-@@ -1971,6 +2063,7 @@
-   "prescott",
-   "nocona",
-   "core2",
-+  "atom",
-   "geode",
-   "k6",
-   "k6-2",
-@@ -2529,6 +2622,9 @@
-       {"core2", PROCESSOR_CORE2, CPU_CORE2,
-       PTA_64BIT | PTA_MMX | PTA_SSE | PTA_SSE2 | PTA_SSE3
-       | PTA_SSSE3 | PTA_CX16},
-+      {"atom", PROCESSOR_ATOM, CPU_ATOM,
-+      PTA_64BIT | PTA_MMX | PTA_SSE | PTA_SSE2 | PTA_SSE3
-+      | PTA_SSSE3 | PTA_CX16},
-       {"geode", PROCESSOR_GEODE, CPU_GEODE,
-       PTA_MMX | PTA_3DNOW | PTA_3DNOW_A |PTA_PREFETCH_SSE},
-       {"k6", PROCESSOR_K6, CPU_K6, PTA_MMX},
-@@ -2716,6 +2812,20 @@
-     error ("bad value (%s) for %sarch=%s %s",
-          ix86_arch_string, prefix, suffix, sw);
-+  /* Validate -mabi= value.  */
-+  if (ix86_abi_string)
-+    {
-+      if (strcmp (ix86_abi_string, "sysv") == 0)
-+      ix86_abi = SYSV_ABI;
-+      else if (strcmp (ix86_abi_string, "ms") == 0)
-+      ix86_abi = MS_ABI;
-+      else
-+      error ("unknown ABI (%s) for %sabi=%s %s",
-+             ix86_abi_string, prefix, suffix, sw);
-+    }
-+  else
-+    ix86_abi = DEFAULT_ABI;
-+
-   if (ix86_cmodel_string != 0)
-     {
-       if (!strcmp (ix86_cmodel_string, "small"))
-@@ -4515,14 +4625,14 @@
-      default ABI.  */
-   /* RAX is used as hidden argument to va_arg functions.  */
--  if (DEFAULT_ABI == SYSV_ABI && regno == AX_REG)
-+  if (ix86_abi == SYSV_ABI && regno == AX_REG)
-     return true;
--  if (DEFAULT_ABI == MS_ABI)
-+  if (ix86_abi == MS_ABI)
-     parm_regs = x86_64_ms_abi_int_parameter_registers;
-   else
-     parm_regs = x86_64_int_parameter_registers;
--  for (i = 0; i < (DEFAULT_ABI == MS_ABI ? X64_REGPARM_MAX
-+  for (i = 0; i < (ix86_abi == MS_ABI ? X64_REGPARM_MAX
-                                        : X86_64_REGPARM_MAX); i++)
-     if (regno == parm_regs[i])
-       return true;
-@@ -4550,7 +4660,7 @@
- int
- ix86_reg_parm_stack_space (const_tree fndecl)
- {
--  int call_abi = SYSV_ABI;
-+  enum calling_abi call_abi = SYSV_ABI;
-   if (fndecl != NULL_TREE && TREE_CODE (fndecl) == FUNCTION_DECL)
-     call_abi = ix86_function_abi (fndecl);
-   else
-@@ -4562,37 +4672,39 @@
- /* Returns value SYSV_ABI, MS_ABI dependent on fntype, specifying the
-    call abi used.  */
--int
-+enum calling_abi
- ix86_function_type_abi (const_tree fntype)
- {
-   if (TARGET_64BIT && fntype != NULL)
-     {
--      int abi;
--      if (DEFAULT_ABI == SYSV_ABI)
--        abi = lookup_attribute ("ms_abi", TYPE_ATTRIBUTES (fntype)) ? MS_ABI : SYSV_ABI;
--      else
--        abi = lookup_attribute ("sysv_abi", TYPE_ATTRIBUTES (fntype)) ? SYSV_ABI : MS_ABI;
--
-+      enum calling_abi abi = ix86_abi;
-+      if (abi == SYSV_ABI)
-+      {
-+        if (lookup_attribute ("ms_abi", TYPE_ATTRIBUTES (fntype)))
-+          abi = MS_ABI;
-+      }
-+      else if (lookup_attribute ("sysv_abi", TYPE_ATTRIBUTES (fntype)))
-+      abi = SYSV_ABI;
-       return abi;
-     }
--  return DEFAULT_ABI;
-+  return ix86_abi;
- }
--int
-+static enum calling_abi
- ix86_function_abi (const_tree fndecl)
- {
-   if (! fndecl)
--    return DEFAULT_ABI;
-+    return ix86_abi;
-   return ix86_function_type_abi (TREE_TYPE (fndecl));
- }
- /* Returns value SYSV_ABI, MS_ABI dependent on cfun, specifying the
-    call abi used.  */
--int
-+enum calling_abi
- ix86_cfun_abi (void)
- {
-   if (! cfun || ! TARGET_64BIT)
--    return DEFAULT_ABI;
-+    return ix86_abi;
-   return cfun->machine->call_abi;
- }
-@@ -4606,7 +4718,7 @@
- ix86_call_abi_override (const_tree fndecl)
- {
-   if (fndecl == NULL_TREE)
--    cfun->machine->call_abi = DEFAULT_ABI;
-+    cfun->machine->call_abi = ix86_abi;
-   else
-     cfun->machine->call_abi = ix86_function_type_abi (TREE_TYPE (fndecl));
- }
-@@ -4646,8 +4758,8 @@
-   cum->nregs = ix86_regparm;
-   if (TARGET_64BIT)
-     {
--      if (cum->call_abi != DEFAULT_ABI)
--        cum->nregs = DEFAULT_ABI != SYSV_ABI ? X86_64_REGPARM_MAX
-+      if (cum->call_abi != ix86_abi)
-+        cum->nregs = ix86_abi != SYSV_ABI ? X86_64_REGPARM_MAX
-                                            : X64_REGPARM_MAX;
-     }
-   if (TARGET_SSE)
-@@ -4655,8 +4767,8 @@
-       cum->sse_nregs = SSE_REGPARM_MAX;
-       if (TARGET_64BIT)
-         {
--          if (cum->call_abi != DEFAULT_ABI)
--            cum->sse_nregs = DEFAULT_ABI != SYSV_ABI ? X86_64_SSE_REGPARM_MAX
-+          if (cum->call_abi != ix86_abi)
-+            cum->sse_nregs = ix86_abi != SYSV_ABI ? X86_64_SSE_REGPARM_MAX
-                                                    : X64_SSE_REGPARM_MAX;
-         }
-     }
-@@ -5619,7 +5731,7 @@
-   if (type)
-     mode = type_natural_mode (type, NULL);
--  if (TARGET_64BIT && (cum ? cum->call_abi : DEFAULT_ABI) == MS_ABI)
-+  if (TARGET_64BIT && (cum ? cum->call_abi : ix86_abi) == MS_ABI)
-     function_arg_advance_ms_64 (cum, bytes, words);
-   else if (TARGET_64BIT)
-     function_arg_advance_64 (cum, mode, type, words, named);
-@@ -5765,9 +5877,9 @@
-   if (mode == VOIDmode)
-     return GEN_INT (cum->maybe_vaarg
-                   ? (cum->sse_nregs < 0
--                     ? (cum->call_abi == DEFAULT_ABI
-+                     ? (cum->call_abi == ix86_abi
-                         ? SSE_REGPARM_MAX
--                        : (DEFAULT_ABI != SYSV_ABI ? X86_64_SSE_REGPARM_MAX
-+                        : (ix86_abi != SYSV_ABI ? X86_64_SSE_REGPARM_MAX
-                                                    : X64_SSE_REGPARM_MAX))
-              : cum->sse_regno)
-                   : -1);
-@@ -5861,7 +5973,7 @@
-   if (type && TREE_CODE (type) == VECTOR_TYPE)
-     mode = type_natural_mode (type, cum);
--  if (TARGET_64BIT && (cum ? cum->call_abi : DEFAULT_ABI) == MS_ABI)
-+  if (TARGET_64BIT && (cum ? cum->call_abi : ix86_abi) == MS_ABI)
-     return function_arg_ms_64 (cum, mode, omode, named, bytes);
-   else if (TARGET_64BIT)
-     return function_arg_64 (cum, mode, omode, type, named);
-@@ -5881,7 +5993,7 @@
-                       const_tree type, bool named ATTRIBUTE_UNUSED)
- {
-   /* See Windows x64 Software Convention.  */
--  if (TARGET_64BIT && (cum ? cum->call_abi : DEFAULT_ABI) == MS_ABI)
-+  if (TARGET_64BIT && (cum ? cum->call_abi : ix86_abi) == MS_ABI)
-     {
-       int msize = (int) GET_MODE_SIZE (mode);
-       if (type)
-@@ -6021,7 +6133,7 @@
-       /* TODO: The function should depend on current function ABI but
-        builtins.c would need updating then. Therefore we use the
-        default ABI.  */
--      if (TARGET_64BIT && DEFAULT_ABI == MS_ABI)
-+      if (TARGET_64BIT && ix86_abi == MS_ABI)
-       return false;
-       return TARGET_FLOAT_RETURNS_IN_80387;
-@@ -6417,13 +6529,13 @@
- static tree
- ix86_build_builtin_va_list (void)
- {
--  tree ret = ix86_build_builtin_va_list_abi (DEFAULT_ABI);
-+  tree ret = ix86_build_builtin_va_list_abi (ix86_abi);
-   /* Initialize abi specific va_list builtin types.  */
-   if (TARGET_64BIT)
-     {
-       tree t;
--      if (DEFAULT_ABI == MS_ABI)
-+      if (ix86_abi == MS_ABI)
-         {
-           t = ix86_build_builtin_va_list_abi (SYSV_ABI);
-           if (TREE_CODE (t) != RECORD_TYPE)
-@@ -6437,7 +6549,7 @@
-             t = build_variant_type_copy (t);
-           sysv_va_list_type_node = t;
-         }
--      if (DEFAULT_ABI != MS_ABI)
-+      if (ix86_abi != MS_ABI)
-         {
-           t = ix86_build_builtin_va_list_abi (MS_ABI);
-           if (TREE_CODE (t) != RECORD_TYPE)
-@@ -6470,8 +6582,8 @@
-   int i;
-   int regparm = ix86_regparm;
--  if (cum->call_abi != DEFAULT_ABI)
--    regparm = DEFAULT_ABI != SYSV_ABI ? X86_64_REGPARM_MAX : X64_REGPARM_MAX;
-+  if (cum->call_abi != ix86_abi)
-+    regparm = ix86_abi != SYSV_ABI ? X86_64_REGPARM_MAX : X64_REGPARM_MAX;
-   /* GPR size of varargs save area.  */
-   if (cfun->va_list_gpr_size)
-@@ -6624,7 +6736,7 @@
-     return true;
-   canonic = ix86_canonical_va_list_type (type);
-   return (canonic == ms_va_list_type_node
--          || (DEFAULT_ABI == MS_ABI && canonic == va_list_type_node));
-+          || (ix86_abi == MS_ABI && canonic == va_list_type_node));
- }
- /* Implement va_start.  */
-@@ -12903,6 +13015,316 @@
-     emit_move_insn (operands[0], dst);
- }
-+#define LEA_SEARCH_THRESHOLD 12
-+
-+/* Search backward for non-agu definition of register number REGNO1
-+   or register number REGNO2 in INSN's basic block until 
-+   1. Pass LEA_SEARCH_THRESHOLD instructions, or
-+   2. Reach BB boundary, or
-+   3. Reach agu definition.
-+   Returns the distance between the non-agu definition point and INSN.
-+   If no definition point, returns -1.  */
-+
-+static int
-+distance_non_agu_define (unsigned int regno1, unsigned int regno2,
-+                       rtx insn)
-+{
-+  basic_block bb = BLOCK_FOR_INSN (insn);
-+  int distance = 0;
-+  df_ref *def_rec;
-+  enum attr_type insn_type;
-+
-+  if (insn != BB_HEAD (bb))
-+    {
-+      rtx prev = PREV_INSN (insn);
-+      while (prev && distance < LEA_SEARCH_THRESHOLD)
-+      {
-+        if (INSN_P (prev))
-+          {
-+            distance++;
-+              for (def_rec = DF_INSN_DEFS (prev); *def_rec; def_rec++)
-+                if (DF_REF_TYPE (*def_rec) == DF_REF_REG_DEF
-+                    && !DF_REF_IS_ARTIFICIAL (*def_rec)
-+                    && (regno1 == DF_REF_REGNO (*def_rec)
-+                      || regno2 == DF_REF_REGNO (*def_rec)))
-+                {
-+                  insn_type = get_attr_type (prev);
-+                  if (insn_type != TYPE_LEA)
-+                    goto done;
-+                }
-+          }
-+        if (prev == BB_HEAD (bb))
-+          break;
-+        prev = PREV_INSN (prev);
-+      }
-+    }
-+  
-+  if (distance < LEA_SEARCH_THRESHOLD)
-+    {
-+      edge e;
-+      edge_iterator ei;
-+      bool simple_loop = false;
-+  
-+      FOR_EACH_EDGE (e, ei, bb->preds)
-+      if (e->src == bb)
-+        {
-+          simple_loop = true;
-+          break;
-+        }
-+  
-+      if (simple_loop)
-+      {
-+        rtx prev = BB_END (bb);
-+        while (prev
-+               && prev != insn
-+               && distance < LEA_SEARCH_THRESHOLD)
-+          {
-+            if (INSN_P (prev))
-+              {
-+                distance++;
-+                for (def_rec = DF_INSN_DEFS (prev); *def_rec; def_rec++)
-+                  if (DF_REF_TYPE (*def_rec) == DF_REF_REG_DEF
-+                      && !DF_REF_IS_ARTIFICIAL (*def_rec)
-+                      && (regno1 == DF_REF_REGNO (*def_rec)
-+                          || regno2 == DF_REF_REGNO (*def_rec)))
-+                    {
-+                      insn_type = get_attr_type (prev);
-+                      if (insn_type != TYPE_LEA)
-+                        goto done;
-+                    }
-+              }
-+            prev = PREV_INSN (prev);
-+          }
-+      }
-+    }
-+
-+  distance = -1;
-+
-+done:
-+  /* get_attr_type may modify recog data.  We want to make sure
-+     that recog data is valid for instruction INSN, on which
-+     distance_non_agu_define is called.  INSN is unchanged here.  */
-+  extract_insn_cached (insn);
-+  return distance;
-+}
-+
-+/* Return the distance between INSN and the next insn that uses 
-+   register number REGNO0 in memory address.  Return -1 if no such
-+   a use is found within LEA_SEARCH_THRESHOLD or REGNO0 is set.  */
-+
-+static int
-+distance_agu_use (unsigned int regno0, rtx insn)
-+{
-+  basic_block bb = BLOCK_FOR_INSN (insn);
-+  int distance = 0;
-+  df_ref *def_rec;
-+  df_ref *use_rec;
-+
-+  if (insn != BB_END (bb))
-+    {
-+      rtx next = NEXT_INSN (insn);
-+      while (next && distance < LEA_SEARCH_THRESHOLD)
-+      {
-+        if (INSN_P (next))
-+          {
-+            distance++;
-+
-+            for (use_rec = DF_INSN_USES (next); *use_rec; use_rec++)
-+              if ((DF_REF_TYPE (*use_rec) == DF_REF_REG_MEM_LOAD
-+                   || DF_REF_TYPE (*use_rec) == DF_REF_REG_MEM_STORE)
-+                  && regno0 == DF_REF_REGNO (*use_rec))
-+                {
-+                  /* Return DISTANCE if OP0 is used in memory
-+                     address in NEXT.  */
-+                  return distance;
-+                }
-+
-+            for (def_rec = DF_INSN_DEFS (next); *def_rec; def_rec++)
-+              if (DF_REF_TYPE (*def_rec) == DF_REF_REG_DEF
-+                  && !DF_REF_IS_ARTIFICIAL (*def_rec)
-+                  && regno0 == DF_REF_REGNO (*def_rec))
-+                {
-+                  /* Return -1 if OP0 is set in NEXT.  */
-+                  return -1;
-+                }
-+          }
-+        if (next == BB_END (bb))
-+          break;
-+        next = NEXT_INSN (next);
-+      }
-+    }
-+
-+  if (distance < LEA_SEARCH_THRESHOLD)
-+    {
-+      edge e;
-+      edge_iterator ei;
-+      bool simple_loop = false;
-+  
-+      FOR_EACH_EDGE (e, ei, bb->succs)
-+        if (e->dest == bb)
-+        {
-+          simple_loop = true;
-+          break;
-+        }
-+  
-+      if (simple_loop)
-+      {
-+        rtx next = BB_HEAD (bb);
-+        while (next
-+               && next != insn
-+               && distance < LEA_SEARCH_THRESHOLD)
-+          {
-+            if (INSN_P (next))
-+              {
-+                distance++;
-+
-+                for (use_rec = DF_INSN_USES (next); *use_rec; use_rec++)
-+                  if ((DF_REF_TYPE (*use_rec) == DF_REF_REG_MEM_LOAD
-+                       || DF_REF_TYPE (*use_rec) == DF_REF_REG_MEM_STORE)
-+                      && regno0 == DF_REF_REGNO (*use_rec))
-+                    {
-+                      /* Return DISTANCE if OP0 is used in memory
-+                         address in NEXT.  */
-+                      return distance;
-+                    }
-+
-+                for (def_rec = DF_INSN_DEFS (next); *def_rec; def_rec++)
-+                  if (DF_REF_TYPE (*def_rec) == DF_REF_REG_DEF
-+                      && !DF_REF_IS_ARTIFICIAL (*def_rec)
-+                      && regno0 == DF_REF_REGNO (*def_rec))
-+                    {
-+                      /* Return -1 if OP0 is set in NEXT.  */
-+                      return -1;
-+                    }
-+
-+              }
-+            next = NEXT_INSN (next);
-+          }
-+      }
-+    }  
-+
-+  return -1;
-+}
-+
-+/* Define this macro to tune LEA priority vs ADD, it take effect when
-+   there is a dilemma of choicing LEA or ADD
-+   Negative value: ADD is more preferred than LEA
-+   Zero: Netrual
-+   Positive value: LEA is more preferred than ADD*/
-+#define IX86_LEA_PRIORITY 2
-+
-+/* Return true if it is ok to optimize an ADD operation to LEA
-+   operation to avoid flag register consumation.  For the processors
-+   like ATOM, if the destination register of LEA holds an actual
-+   address which will be used soon, LEA is better and otherwise ADD
-+   is better.  */
-+
-+bool
-+ix86_lea_for_add_ok (enum rtx_code code ATTRIBUTE_UNUSED,
-+                     rtx insn, rtx operands[])
-+{
-+  unsigned int regno0 = true_regnum (operands[0]);
-+  unsigned int regno1 = true_regnum (operands[1]);
-+  unsigned int regno2;
-+
-+  if (!TARGET_OPT_AGU || optimize_function_for_size_p (cfun))
-+    return regno0 != regno1;
-+
-+  regno2 = true_regnum (operands[2]);
-+
-+  /* If a = b + c, (a!=b && a!=c), must use lea form. */
-+  if (regno0 != regno1 && regno0 != regno2)
-+    return true;
-+  else    
-+    {
-+      int dist_define, dist_use;
-+      dist_define = distance_non_agu_define (regno1, regno2, insn);
-+      if (dist_define <= 0)
-+        return true;
-+
-+      /* If this insn has both backward non-agu dependence and forward
-+         agu dependence, the one with short distance take effect. */
-+      dist_use = distance_agu_use (regno0, insn);
-+      if (dist_use <= 0
-+        || (dist_define + IX86_LEA_PRIORITY) < dist_use)
-+        return false;
-+
-+      return true;
-+    }
-+}
-+
-+/* Return true if destination reg of SET_BODY is shift count of
-+   USE_BODY.  */
-+
-+static bool
-+ix86_dep_by_shift_count_body (const_rtx set_body, const_rtx use_body)
-+{
-+  rtx set_dest;
-+  rtx shift_rtx;
-+  int i;
-+
-+  /* Retrieve destination of SET_BODY.  */
-+  switch (GET_CODE (set_body))
-+    {
-+    case SET:
-+      set_dest = SET_DEST (set_body);
-+      if (!set_dest || !REG_P (set_dest))
-+      return false;
-+      break;
-+    case PARALLEL:
-+      for (i = XVECLEN (set_body, 0) - 1; i >= 0; i--)
-+      if (ix86_dep_by_shift_count_body (XVECEXP (set_body, 0, i),
-+                                        use_body))
-+        return true;
-+    default:
-+      return false;
-+      break;
-+    }
-+
-+  /* Retrieve shift count of USE_BODY.  */
-+  switch (GET_CODE (use_body))
-+    {
-+    case SET:
-+      shift_rtx = XEXP (use_body, 1);
-+      break;
-+    case PARALLEL:
-+      for (i = XVECLEN (use_body, 0) - 1; i >= 0; i--)
-+      if (ix86_dep_by_shift_count_body (set_body,
-+                                        XVECEXP (use_body, 0, i)))
-+        return true;
-+    default:
-+      return false;
-+      break;
-+    }
-+
-+  if (shift_rtx 
-+      && (GET_CODE (shift_rtx) == ASHIFT
-+        || GET_CODE (shift_rtx) == LSHIFTRT
-+        || GET_CODE (shift_rtx) == ASHIFTRT
-+        || GET_CODE (shift_rtx) == ROTATE
-+        || GET_CODE (shift_rtx) == ROTATERT))
-+    {
-+      rtx shift_count = XEXP (shift_rtx, 1);
-+
-+      /* Return true if shift count is dest of SET_BODY.  */
-+      if (REG_P (shift_count)
-+        && true_regnum (set_dest) == true_regnum (shift_count))
-+      return true;
-+    }
-+
-+  return false;
-+}
-+
-+/* Return true if destination reg of SET_INSN is shift count of
-+   USE_INSN.  */
-+
-+bool
-+ix86_dep_by_shift_count (const_rtx set_insn, const_rtx use_insn)
-+{
-+  return ix86_dep_by_shift_count_body (PATTERN (set_insn),
-+                                     PATTERN (use_insn));
-+}
-+
- /* Return TRUE or FALSE depending on whether the unary operator meets the
-    appropriate constraints.  */
-@@ -18761,7 +19183,7 @@
-   f = GGC_CNEW (struct machine_function);
-   f->use_fast_prologue_epilogue_nregs = -1;
-   f->tls_descriptor_call_expanded_p = 0;
--  f->call_abi = DEFAULT_ABI;
-+  f->call_abi = ix86_abi;
-   return f;
- }
-@@ -19022,6 +19444,7 @@
-   switch (ix86_tune)
-     {
-     case PROCESSOR_PENTIUM:
-+    case PROCESSOR_ATOM:
-     case PROCESSOR_K6:
-       return 2;
-@@ -19088,41 +19511,21 @@
-   return 1;
- }
--/* A subroutine of ix86_adjust_cost -- return true iff INSN has a memory
--   address with operands set by DEP_INSN.  */
-+/* Return true iff USE_INSN has a memory address with operands set by
-+   SET_INSN.  */
--static int
--ix86_agi_dependent (rtx insn, rtx dep_insn, enum attr_type insn_type)
-+bool
-+ix86_agi_dependent (rtx set_insn, rtx use_insn)
- {
--  rtx addr;
--
--  if (insn_type == TYPE_LEA
--      && TARGET_PENTIUM)
--    {
--      addr = PATTERN (insn);
--
--      if (GET_CODE (addr) == PARALLEL)
--      addr = XVECEXP (addr, 0, 0);
--
--      gcc_assert (GET_CODE (addr) == SET);
--
--      addr = SET_SRC (addr);
--    }
--  else
--    {
--      int i;
--      extract_insn_cached (insn);
--      for (i = recog_data.n_operands - 1; i >= 0; --i)
--      if (MEM_P (recog_data.operand[i]))
--        {
--          addr = XEXP (recog_data.operand[i], 0);
--          goto found;
--        }
--      return 0;
--    found:;
--    }
--
--  return modified_in_p (addr, dep_insn);
-+  int i;
-+  extract_insn_cached (use_insn);
-+  for (i = recog_data.n_operands - 1; i >= 0; --i)
-+    if (MEM_P (recog_data.operand[i]))
-+      {
-+      rtx addr = XEXP (recog_data.operand[i], 0);
-+      return modified_in_p (addr, set_insn) != 0;
-+      }
-+  return false;
- }
- static int
-@@ -19150,7 +19553,20 @@
-     {
-     case PROCESSOR_PENTIUM:
-       /* Address Generation Interlock adds a cycle of latency.  */
--      if (ix86_agi_dependent (insn, dep_insn, insn_type))
-+      if (insn_type == TYPE_LEA)
-+      {
-+        rtx addr = PATTERN (insn);
-+
-+        if (GET_CODE (addr) == PARALLEL)
-+          addr = XVECEXP (addr, 0, 0);
-+
-+        gcc_assert (GET_CODE (addr) == SET);
-+
-+        addr = SET_SRC (addr);
-+        if (modified_in_p (addr, dep_insn))
-+          cost += 1;
-+      }
-+      else if (ix86_agi_dependent (dep_insn, insn))
-       cost += 1;
-       /* ??? Compares pair with jump/setcc.  */
-@@ -19160,7 +19576,7 @@
-       /* Floating point stores require value to be ready one cycle earlier.  */
-       if (insn_type == TYPE_FMOV
-         && get_attr_memory (insn) == MEMORY_STORE
--        && !ix86_agi_dependent (insn, dep_insn, insn_type))
-+        && !ix86_agi_dependent (dep_insn, insn))
-       cost += 1;
-       break;
-@@ -19183,7 +19599,7 @@
-        in parallel with previous instruction in case
-        previous instruction is not needed to compute the address.  */
-       if ((memory == MEMORY_LOAD || memory == MEMORY_BOTH)
--        && !ix86_agi_dependent (insn, dep_insn, insn_type))
-+        && !ix86_agi_dependent (dep_insn, insn))
-       {
-         /* Claim moves to take one cycle, as core can issue one load
-            at time and the next load can start cycle later.  */
-@@ -19212,7 +19628,7 @@
-        in parallel with previous instruction in case
-        previous instruction is not needed to compute the address.  */
-       if ((memory == MEMORY_LOAD || memory == MEMORY_BOTH)
--        && !ix86_agi_dependent (insn, dep_insn, insn_type))
-+        && !ix86_agi_dependent (dep_insn, insn))
-       {
-         /* Claim moves to take one cycle, as core can issue one load
-            at time and the next load can start cycle later.  */
-@@ -19229,6 +19645,7 @@
-     case PROCESSOR_ATHLON:
-     case PROCESSOR_K8:
-     case PROCESSOR_AMDFAM10:
-+    case PROCESSOR_ATOM:
-     case PROCESSOR_GENERIC32:
-     case PROCESSOR_GENERIC64:
-       memory = get_attr_memory (insn);
-@@ -19237,7 +19654,7 @@
-        in parallel with previous instruction in case
-        previous instruction is not needed to compute the address.  */
-       if ((memory == MEMORY_LOAD || memory == MEMORY_BOTH)
--        && !ix86_agi_dependent (insn, dep_insn, insn_type))
-+        && !ix86_agi_dependent (dep_insn, insn))
-       {
-         enum attr_unit unit = get_attr_unit (insn);
-         int loadcost = 3;
-@@ -29480,14 +29897,11 @@
- tree
- ix86_fn_abi_va_list (tree fndecl)
- {
--  int abi;
--
-   if (!TARGET_64BIT)
-     return va_list_type_node;
-   gcc_assert (fndecl != NULL_TREE);
--  abi = ix86_function_abi ((const_tree) fndecl);
--  if (abi == MS_ABI)
-+  if (ix86_function_abi ((const_tree) fndecl) == MS_ABI)
-     return ms_va_list_type_node;
-   else
-     return sysv_va_list_type_node;
-
-Property changes on: libstdc++-v3/testsuite/27_io/basic_ofstream/cons/char/1.cc
-___________________________________________________________________
-Deleted: svn:mergeinfo
-
-
-Property changes on: libstdc++-v3/testsuite/27_io/basic_ofstream/pthread2.cc
-___________________________________________________________________
-Deleted: svn:mergeinfo
-
-
-Property changes on: libstdc++-v3/testsuite/27_io/basic_fstream/open/char/1.cc
-___________________________________________________________________
-Deleted: svn:mergeinfo
-
-
-Property changes on: libstdc++-v3/testsuite/27_io/basic_fstream/cons/1.cc
-___________________________________________________________________
-Deleted: svn:mergeinfo
-
-
-Property changes on: libstdc++-v3/testsuite/27_io/basic_ostringstream/pthread3.cc
-___________________________________________________________________
-Deleted: svn:mergeinfo
-
-
-Property changes on: libstdc++-v3/testsuite/18_support/pthread_guard.cc
-___________________________________________________________________
-Deleted: svn:mergeinfo
-
-
-Property changes on: libstdc++-v3/testsuite/21_strings/char_traits/requirements/explicit_instantiation/wchar_t/1.cc
-___________________________________________________________________
-Deleted: svn:mergeinfo
-
-
-Property changes on: libstdc++-v3/testsuite/21_strings/char_traits/requirements/explicit_instantiation/char/1.cc
-___________________________________________________________________
-Deleted: svn:mergeinfo
-
-
-Property changes on: libstdc++-v3/testsuite/21_strings/basic_string/pthread18185.cc
-___________________________________________________________________
-Deleted: svn:mergeinfo
-
-
-Property changes on: libstdc++-v3/testsuite/21_strings/basic_string/pthread4.cc
-___________________________________________________________________
-Deleted: svn:mergeinfo
-
-
-Property changes on: libstdc++-v3/testsuite/30_threads/thread/members
-___________________________________________________________________
-Deleted: svn:mergeinfo
-
-
-Property changes on: libstdc++-v3/testsuite/30_threads/thread/swap
-___________________________________________________________________
-Deleted: svn:mergeinfo
-
-
-Property changes on: libstdc++-v3/testsuite/30_threads/condition_variable/members
-___________________________________________________________________
-Deleted: svn:mergeinfo
-
-
-Property changes on: libstdc++-v3/testsuite/30_threads/this_thread
-___________________________________________________________________
-Deleted: svn:mergeinfo
-
-
-Property changes on: libstdc++-v3/testsuite/ext/rope/pthread7-rope.cc
-___________________________________________________________________
-Deleted: svn:mergeinfo
-
-
-Property changes on: libstdc++-v3/testsuite/tr1/6_containers/unordered_multimap/requirements/typedefs.cc
-___________________________________________________________________
-Deleted: svn:mergeinfo
-
-
-Property changes on: libstdc++-v3/testsuite/tr1/6_containers/unordered_set/requirements/typedefs.cc
-___________________________________________________________________
-Deleted: svn:mergeinfo
-
-
-Property changes on: libstdc++-v3/testsuite/tr1/6_containers/unordered_map/requirements/typedefs.cc
-___________________________________________________________________
-Deleted: svn:mergeinfo
-
-
-Property changes on: libstdc++-v3/testsuite/tr1/6_containers/unordered_multiset/requirements/typedefs.cc
-___________________________________________________________________
-Deleted: svn:mergeinfo
-
-
-Property changes on: libstdc++-v3/testsuite/23_containers/unordered_map/requirements/typedefs.cc
-___________________________________________________________________
-Deleted: svn:mergeinfo
-
-
-Property changes on: libstdc++-v3/testsuite/23_containers/unordered_multimap/requirements/typedefs.cc
-___________________________________________________________________
-Deleted: svn:mergeinfo
-
-
-Property changes on: libstdc++-v3/testsuite/23_containers/unordered_set/requirements/typedefs.cc
-___________________________________________________________________
-Deleted: svn:mergeinfo
-
-
-Property changes on: libstdc++-v3/testsuite/23_containers/headers/forward_list/synopsis.cc
-___________________________________________________________________
-Deleted: svn:mergeinfo
-
-
-Property changes on: libstdc++-v3/testsuite/23_containers/list/pthread5.cc
-___________________________________________________________________
-Deleted: svn:mergeinfo
-
-
-Property changes on: libstdc++-v3/testsuite/23_containers/list/pthread1.cc
-___________________________________________________________________
-Deleted: svn:mergeinfo
-
-
-Property changes on: libstdc++-v3/testsuite/23_containers/unordered_multiset/requirements/typedefs.cc
-___________________________________________________________________
-Deleted: svn:mergeinfo
-
-
-Property changes on: libstdc++-v3/testsuite/23_containers/map/pthread6.cc
-___________________________________________________________________
-Deleted: svn:mergeinfo
-
-
-Property changes on: libstdc++-v3/testsuite/20_util/unique_ptr/assign/assign_neg.cc
-___________________________________________________________________
-Deleted: svn:mergeinfo
-
-
-Property changes on: libstdc++-v3/testsuite/20_util/ratio/cons/cons_overflow_neg.cc
-___________________________________________________________________
-Deleted: svn:mergeinfo
-
-
-Property changes on: libstdc++-v3/testsuite/20_util/ratio/operations/ops_overflow_neg.cc
-___________________________________________________________________
-Deleted: svn:mergeinfo
-
-
-Property changes on: libstdc++-v3/testsuite/20_util/shared_ptr/cons/unique_ptr_deleter_ref_1.cc
-___________________________________________________________________
-Deleted: svn:mergeinfo
-
-
-Property changes on: libjava/classpath
-___________________________________________________________________
-Deleted: svn:mergeinfo
-   Reverse-merged /branches/CLASSPATH/libjava/classpath:r144110
-
-
-Property changes on: .
-___________________________________________________________________
-Added: svn:mergeinfo
-   Merged /branches/gcc-4_4-branch:r145147-146513
-   Merged /trunk:r145624
-
index 23a67a010b14699686943574663ad585ce286933..42d4a838629d5833ac727ecc0d5393d07639a9c3 100644 (file)
--- a/gcc.spec
+++ b/gcc.spec
@@ -66,7 +66,7 @@ Summary(pl.UTF-8):    Kolekcja kompilatorów GNU: kompilator C i pliki współdziel
 Summary(pt_BR.UTF-8):  Coleção dos compiladores GNU: o compilador C e arquivos compartilhados
 Name:          gcc
 Version:       %{major_ver}.%{minor_ver}
-Release:       6
+Release:       7
 Epoch:         6
 License:       GPL v3+
 Group:         Development/Languages
@@ -78,9 +78,6 @@ Source2:      ftp://sourceware.org/pub/java/ecj-latest.jar
 # Source2-md5: fd299f26c02268878b5d6c0e86f57c43
 # svn diff svn://gcc.gnu.org/svn/gcc//tags/gcc_4_4_0_release svn://gcc.gnu.org/svn/gcc/branches/gcc-4_4-branch > gcc-branch.diff
 Patch100:      %{name}-branch.diff
-# svn diff svn://gcc.gnu.org/svn/gcc/branches/gcc-4_4-branch@??? svn://gcc.gnu.org/svn/gcc/branches/ix86/gcc-4_4-branch > gcc-ix86-branch.diff
-# The goal of this ix86-branch is to add support for newer ix86 processors such as AMD's Shanghai and Intel's Atom to GCC 4.4.x.
-Patch101:      %{name}-ix86-branch.diff
 Patch0:                %{name}-info.patch
 Patch1:                %{name}-nolocalefiles.patch
 Patch2:                %{name}-nodebug.patch
@@ -1379,7 +1376,6 @@ Statyczne biblioteki Obiektowego C.
 %prep
 %setup -q
 %patch100 -p0
-%patch101 -p0
 %patch0 -p1
 %patch1 -p1
 %patch2 -p1
This page took 0.795449 seconds and 4 git commands to generate.