]> git.pld-linux.org Git - packages/crossavr-gcc.git/blobdiff - 302-gcc-avrtiny10.patch
crossavr-gcc: Synchronized with official AVR toolchain 3.4.0.663.
[packages/crossavr-gcc.git] / 302-gcc-avrtiny10.patch
similarity index 94%
rename from 302-gcc-4.5.1-avrtiny10.patch
rename to 302-gcc-avrtiny10.patch
index 3fc0ae187391c406d1396060386b9d809bb17730..98ed7ff17b1cd6ea5f96fe90ec7c638a8f195df6 100644 (file)
@@ -1,7 +1,7 @@
 diff -Naurp gcc/config/avr/avr.c gcc/config/avr/avr.c
---- gcc/config/avr/avr.c       2011-09-02 11:45:05.000000000 +0300
-+++ gcc/config/avr/avr.c       2011-09-02 11:46:03.000000000 +0300
-@@ -232,8 +232,8 @@ avr_override_options (void)
+--- gcc/config/avr/avr.c       2011-10-27 17:00:24.000000000 +0530
++++ gcc/config/avr/avr.c       2011-10-27 17:47:15.000000000 +0530
+@@ -274,8 +274,8 @@ avr_option_override (void)
    avr_current_arch = &avr_arch_types[avr_current_device->arch];
    avr_extra_arch_macro = avr_current_device->macro;
  
@@ -12,7 +12,7 @@ diff -Naurp gcc/config/avr/avr.c gcc/config/avr/avr.c
  
    init_machine_status = avr_init_machine_status;
  }
-@@ -1641,7 +1641,7 @@ avr_simplify_comparison_p (enum machine_
+@@ -1771,7 +1771,7 @@ avr_simplify_comparison_p (enum machine_
  int
  function_arg_regno_p(int r)
  {
@@ -21,7 +21,7 @@ diff -Naurp gcc/config/avr/avr.c gcc/config/avr/avr.c
  }
  
  /* Initializing the variable cum for the state at the beginning
-@@ -1651,7 +1651,11 @@ void
+@@ -1781,7 +1781,11 @@ void
  init_cumulative_args (CUMULATIVE_ARGS *cum, tree fntype, rtx libname,
                      tree fndecl ATTRIBUTE_UNUSED)
  {
@@ -31,9 +31,9 @@ diff -Naurp gcc/config/avr/avr.c gcc/config/avr/avr.c
    cum->nregs = 18;
 +
    cum->regno = FIRST_CUM_REG;
-   if (!libname && fntype)
-     {
-@@ -1675,9 +1679,8 @@ avr_num_arg_regs (enum machine_mode mode
+   if (!libname && stdarg_p (fntype))
+     cum->nregs = 0;
+@@ -1799,9 +1803,8 @@ avr_num_arg_regs (enum machine_mode mode
    else
      size = GET_MODE_SIZE (mode);
  
@@ -44,7 +44,7 @@ diff -Naurp gcc/config/avr/avr.c gcc/config/avr/avr.c
    return (size + 1) & ~1;
  }
  
-@@ -2009,10 +2012,20 @@ out_movqi_r_mr (rtx insn, rtx op[], int 
+@@ -2133,10 +2136,20 @@ out_movqi_r_mr (rtx insn, rtx op[], int 
            fatal_insn ("incorrect insn:",insn);
  
          if (disp <= 63 + MAX_LD_OFFSET (GET_MODE (src)))
@@ -66,7 +66,7 @@ diff -Naurp gcc/config/avr/avr.c gcc/config/avr/avr.c
          return *l = 5, (AS2 (subi,r28,lo8(-%o1)) CR_TAB
                          AS2 (sbci,r29,hi8(-%o1)) CR_TAB
                          AS2 (ld,%0,Y)            CR_TAB
-@@ -2025,15 +2038,38 @@ out_movqi_r_mr (rtx insn, rtx op[], int 
+@@ -2149,15 +2162,38 @@ out_movqi_r_mr (rtx insn, rtx op[], int 
             it but I have this situation with extremal optimizing options.  */
          if (reg_overlap_mentioned_p (dest, XEXP (x,0))
              || reg_unused_after (insn, XEXP (x,0)))
@@ -108,7 +108,7 @@ diff -Naurp gcc/config/avr/avr.c gcc/config/avr/avr.c
      }
    *l = 1;
    return AS2 (ld,%0,%1);
-@@ -2073,14 +2109,34 @@ out_movhi_r_mr (rtx insn, rtx op[], int 
+@@ -2197,14 +2233,34 @@ out_movhi_r_mr (rtx insn, rtx op[], int 
                      AS2 (ld,%B0,X));
            }
          *l  = 3;
@@ -145,7 +145,7 @@ diff -Naurp gcc/config/avr/avr.c gcc/config/avr/avr.c
                  AS2 (ldd,%B0,%1+1));
        }
      }
-@@ -2095,12 +2151,30 @@ out_movhi_r_mr (rtx insn, rtx op[], int 
+@@ -2219,12 +2275,30 @@ out_movhi_r_mr (rtx insn, rtx op[], int 
            fatal_insn ("incorrect insn:",insn);
          
          if (disp <= 63 + MAX_LD_OFFSET (GET_MODE (src)))
@@ -178,7 +178,7 @@ diff -Naurp gcc/config/avr/avr.c gcc/config/avr/avr.c
                          AS2 (sbci,r29,hi8(-%o1)) CR_TAB
                          AS2 (ld,%A0,Y)           CR_TAB
                          AS2 (ldd,%B0,Y+1)        CR_TAB
-@@ -2115,12 +2189,23 @@ out_movhi_r_mr (rtx insn, rtx op[], int 
+@@ -2239,12 +2313,23 @@ out_movhi_r_mr (rtx insn, rtx op[], int 
          
          *l = 4;
          if (reg_base == reg_dest)
@@ -204,7 +204,7 @@ diff -Naurp gcc/config/avr/avr.c gcc/config/avr/avr.c
                  AS2 (ld,%A0,X+)    CR_TAB
                  AS2 (ld,%B0,X)     CR_TAB
                  AS2 (sbiw,r26,%o1+1));
-@@ -2129,14 +2214,54 @@ out_movhi_r_mr (rtx insn, rtx op[], int 
+@@ -2253,14 +2338,54 @@ out_movhi_r_mr (rtx insn, rtx op[], int 
        if (reg_base == reg_dest)
        {
          *l = 3;
@@ -262,7 +262,7 @@ diff -Naurp gcc/config/avr/avr.c gcc/config/avr/avr.c
      }
    else if (GET_CODE (base) == PRE_DEC) /* (--R) */
      {
-@@ -2148,7 +2273,13 @@ out_movhi_r_mr (rtx insn, rtx op[], int 
+@@ -2272,7 +2397,13 @@ out_movhi_r_mr (rtx insn, rtx op[], int 
            if (REGNO (XEXP (base, 0)) == REG_X)
              {
                *l = 4;
@@ -277,7 +277,7 @@ diff -Naurp gcc/config/avr/avr.c gcc/config/avr/avr.c
                        AS2 (ld,%A0,X+)   CR_TAB
                        AS2 (ld,%B0,X)    CR_TAB
                        AS2 (sbiw,r26,1));
-@@ -2156,7 +2287,16 @@ out_movhi_r_mr (rtx insn, rtx op[], int 
+@@ -2280,7 +2411,16 @@ out_movhi_r_mr (rtx insn, rtx op[], int 
            else
              {
                *l = 3;
@@ -295,7 +295,7 @@ diff -Naurp gcc/config/avr/avr.c gcc/config/avr/avr.c
                        AS2 (ld,%A0,%p1)  CR_TAB
                        AS2 (ldd,%B0,%p1+1));
              }
-@@ -2212,13 +2352,23 @@ out_movsi_r_mr (rtx insn, rtx op[], int 
+@@ -2336,13 +2476,23 @@ out_movsi_r_mr (rtx insn, rtx op[], int 
          {
            if (reg_dest == REG_X)
            /* "ld r26,-X" is undefined */
@@ -320,7 +320,7 @@ diff -Naurp gcc/config/avr/avr.c gcc/config/avr/avr.c
            else if (reg_dest == REG_X - 2)
              return *l=5, (AS2 (ld,%A0,X+)  CR_TAB
                            AS2 (ld,%B0,X+) CR_TAB
-@@ -2231,7 +2381,13 @@ out_movsi_r_mr (rtx insn, rtx op[], int 
+@@ -2355,7 +2505,13 @@ out_movsi_r_mr (rtx insn, rtx op[], int 
                             AS2 (ld,%C0,X+) CR_TAB
                             AS2 (ld,%D0,X));
            else
@@ -335,7 +335,7 @@ diff -Naurp gcc/config/avr/avr.c gcc/config/avr/avr.c
                             AS2 (ld,%B0,X+) CR_TAB
                             AS2 (ld,%C0,X+) CR_TAB
                             AS2 (ld,%D0,X)  CR_TAB
-@@ -2240,22 +2396,97 @@ out_movsi_r_mr (rtx insn, rtx op[], int 
+@@ -2364,22 +2520,97 @@ out_movsi_r_mr (rtx insn, rtx op[], int 
        else
          {
            if (reg_dest == reg_base)
@@ -436,7 +436,7 @@ diff -Naurp gcc/config/avr/avr.c gcc/config/avr/avr.c
          }
      }
    else if (GET_CODE (base) == PLUS) /* (R + i) */
-@@ -2268,14 +2499,36 @@ out_movsi_r_mr (rtx insn, rtx op[], int 
+@@ -2392,14 +2623,36 @@ out_movsi_r_mr (rtx insn, rtx op[], int 
            fatal_insn ("incorrect insn:",insn);
  
          if (disp <= 63 + MAX_LD_OFFSET (GET_MODE (src)))
@@ -475,7 +475,7 @@ diff -Naurp gcc/config/avr/avr.c gcc/config/avr/avr.c
                          AS2 (sbci,r29,hi8(-%o1)) CR_TAB
                          AS2 (ld,%A0,Y)           CR_TAB
                          AS2 (ldd,%B0,Y+1)        CR_TAB
-@@ -2293,7 +2546,16 @@ out_movsi_r_mr (rtx insn, rtx op[], int 
+@@ -2417,7 +2670,16 @@ out_movsi_r_mr (rtx insn, rtx op[], int 
            {
              *l = 7;
              /* "ld r26,-X" is undefined */
@@ -493,7 +493,7 @@ diff -Naurp gcc/config/avr/avr.c gcc/config/avr/avr.c
                      AS2 (ld,r29,X)          CR_TAB
                      AS2 (ld,r28,-X)         CR_TAB
                      AS2 (ld,__tmp_reg__,-X) CR_TAB
-@@ -2303,14 +2565,29 @@ out_movsi_r_mr (rtx insn, rtx op[], int 
+@@ -2427,14 +2689,29 @@ out_movsi_r_mr (rtx insn, rtx op[], int 
            }
          *l = 6;
          if (reg_dest == REG_X - 2)
@@ -525,7 +525,7 @@ diff -Naurp gcc/config/avr/avr.c gcc/config/avr/avr.c
                  AS2 (ld,%A0,X+)    CR_TAB
                  AS2 (ld,%B0,X+)    CR_TAB
                  AS2 (ld,%C0,X+)    CR_TAB
-@@ -2318,18 +2595,99 @@ out_movsi_r_mr (rtx insn, rtx op[], int 
+@@ -2442,18 +2719,99 @@ out_movsi_r_mr (rtx insn, rtx op[], int 
                  AS2 (sbiw,r26,%o1+3));
        }
        if (reg_dest == reg_base)
@@ -628,7 +628,7 @@ diff -Naurp gcc/config/avr/avr.c gcc/config/avr/avr.c
                      AS2 (ldd,%B0,%B1) CR_TAB
                      AS2 (ldd,%C0,%C1) CR_TAB
                      AS2 (ldd,%D0,%D1));
-@@ -2380,14 +2738,30 @@ out_movsi_mr_r (rtx insn, rtx op[], int 
+@@ -2504,14 +2862,30 @@ out_movsi_mr_r (rtx insn, rtx op[], int 
              {
              /* "st X+,r26" is undefined */
                if (reg_unused_after (insn, base))
@@ -661,7 +661,7 @@ diff -Naurp gcc/config/avr/avr.c gcc/config/avr/avr.c
                              AS2 (st,X,r26)            CR_TAB
                              AS2 (adiw,r26,1)          CR_TAB
                              AS2 (st,X+,__tmp_reg__)   CR_TAB
-@@ -2406,7 +2780,16 @@ out_movsi_mr_r (rtx insn, rtx op[], int 
+@@ -2530,7 +2904,16 @@ out_movsi_mr_r (rtx insn, rtx op[], int 
                                AS2 (st,%0,__tmp_reg__)   CR_TAB
                                AS1 (clr,__zero_reg__));
                else
@@ -679,7 +679,7 @@ diff -Naurp gcc/config/avr/avr.c gcc/config/avr/avr.c
                                AS2 (mov,__tmp_reg__,%D1) CR_TAB
                                AS2 (st,%0+,%A1) CR_TAB
                                AS2 (st,%0+,%B1) CR_TAB
-@@ -2415,18 +2798,44 @@ out_movsi_mr_r (rtx insn, rtx op[], int 
+@@ -2539,18 +2922,44 @@ out_movsi_mr_r (rtx insn, rtx op[], int 
                                AS1 (clr,__zero_reg__)     CR_TAB
                                AS2 (sbiw,r26,3));
              }
@@ -726,7 +726,7 @@ diff -Naurp gcc/config/avr/avr.c gcc/config/avr/avr.c
    else if (GET_CODE (base) == PLUS) /* (R + i) */
      {
        int disp = INTVAL (XEXP (base, 1));
-@@ -2437,14 +2846,35 @@ out_movsi_mr_r (rtx insn, rtx op[], int 
+@@ -2561,14 +2970,35 @@ out_movsi_mr_r (rtx insn, rtx op[], int 
            fatal_insn ("incorrect insn:",insn);
  
          if (disp <= 63 + MAX_LD_OFFSET (GET_MODE (dest)))
@@ -765,7 +765,7 @@ diff -Naurp gcc/config/avr/avr.c gcc/config/avr/avr.c
                          AS2 (sbci,r29,hi8(-%o0)) CR_TAB
                          AS2 (st,Y,%A1)           CR_TAB
                          AS2 (std,Y+1,%B1)        CR_TAB
-@@ -2459,7 +2889,18 @@ out_movsi_mr_r (rtx insn, rtx op[], int 
+@@ -2583,7 +3013,18 @@ out_movsi_mr_r (rtx insn, rtx op[], int 
          if (reg_src == REG_X)
            {
              *l = 9;
@@ -785,7 +785,7 @@ diff -Naurp gcc/config/avr/avr.c gcc/config/avr/avr.c
                      AS2 (mov,__zero_reg__,r27) CR_TAB
                      AS2 (adiw,r26,%o0)         CR_TAB
                      AS2 (st,X+,__tmp_reg__)    CR_TAB
-@@ -2472,7 +2913,18 @@ out_movsi_mr_r (rtx insn, rtx op[], int 
+@@ -2596,7 +3037,18 @@ out_movsi_mr_r (rtx insn, rtx op[], int 
          else if (reg_src == REG_X - 2)
            {
              *l = 9;
@@ -805,7 +805,7 @@ diff -Naurp gcc/config/avr/avr.c gcc/config/avr/avr.c
                      AS2 (mov,__zero_reg__,r27) CR_TAB
                      AS2 (adiw,r26,%o0)         CR_TAB
                      AS2 (st,X+,r24)            CR_TAB
-@@ -2483,14 +2935,46 @@ out_movsi_mr_r (rtx insn, rtx op[], int 
+@@ -2607,14 +3059,46 @@ out_movsi_mr_r (rtx insn, rtx op[], int 
                      AS2 (sbiw,r26,%o0+3));
            }
          *l = 6;
@@ -854,7 +854,7 @@ diff -Naurp gcc/config/avr/avr.c gcc/config/avr/avr.c
                    AS2 (std,%B0,%B1) CR_TAB
                    AS2 (std,%C0,%C1) CR_TAB
                    AS2 (std,%D0,%D1));
-@@ -2707,7 +3191,16 @@ out_movqi_mr_r (rtx insn, rtx op[], int 
+@@ -2831,7 +3315,16 @@ out_movqi_mr_r (rtx insn, rtx op[], int 
            fatal_insn ("incorrect insn:",insn);
  
          if (disp <= 63 + MAX_LD_OFFSET (GET_MODE (dest)))
@@ -872,7 +872,7 @@ diff -Naurp gcc/config/avr/avr.c gcc/config/avr/avr.c
                            AS2 (std,Y+63,%1)     CR_TAB
                            AS2 (sbiw,r28,%o0-63));
  
-@@ -2722,11 +3215,21 @@ out_movqi_mr_r (rtx insn, rtx op[], int 
+@@ -2846,11 +3339,21 @@ out_movqi_mr_r (rtx insn, rtx op[], int 
          if (reg_overlap_mentioned_p (src, XEXP (x, 0)))
            {
              if (reg_unused_after (insn, XEXP (x,0)))
@@ -896,7 +896,7 @@ diff -Naurp gcc/config/avr/avr.c gcc/config/avr/avr.c
                              AS2 (adiw,r26,%o0)       CR_TAB
                              AS2 (st,X,__tmp_reg__)   CR_TAB
                              AS2 (sbiw,r26,%o0));
-@@ -2734,16 +3237,38 @@ out_movqi_mr_r (rtx insn, rtx op[], int 
+@@ -2858,16 +3361,38 @@ out_movqi_mr_r (rtx insn, rtx op[], int 
          else
            {
              if (reg_unused_after (insn, XEXP (x,0)))
@@ -938,7 +938,7 @@ diff -Naurp gcc/config/avr/avr.c gcc/config/avr/avr.c
      }
    *l = 1;
    return AS2 (st,%0,%1);
-@@ -2792,20 +3317,39 @@ out_movhi_mr_r (rtx insn, rtx op[], int 
+@@ -2916,20 +3441,39 @@ out_movhi_mr_r (rtx insn, rtx op[], int 
              {
                /* "st X+,r26" and "st -X,r26" are undefined.  */
                if (!mem_volatile_p && reg_unused_after (insn, src))
@@ -981,7 +981,7 @@ diff -Naurp gcc/config/avr/avr.c gcc/config/avr/avr.c
                                  AS2 (st,X,r26)            CR_TAB
                                  AS2 (adiw,r26,1)          CR_TAB
                                  AS2 (st,X,__tmp_reg__)    CR_TAB
-@@ -2820,11 +3364,19 @@ out_movhi_mr_r (rtx insn, rtx op[], int 
+@@ -2944,11 +3488,19 @@ out_movhi_mr_r (rtx insn, rtx op[], int 
                else
                {
                    if (!AVR_XMEGA)
@@ -1003,7 +1003,7 @@ diff -Naurp gcc/config/avr/avr.c gcc/config/avr/avr.c
                                    AS2 (st,X,%B1) CR_TAB
                                    AS2 (sbiw,r26,1));
                }
-@@ -2833,13 +3385,41 @@ out_movhi_mr_r (rtx insn, rtx op[], int 
+@@ -2957,13 +3509,41 @@ out_movhi_mr_r (rtx insn, rtx op[], int 
        else
          {
          if (!AVR_XMEGA)
@@ -1047,7 +1047,7 @@ diff -Naurp gcc/config/avr/avr.c gcc/config/avr/avr.c
    else if (GET_CODE (base) == PLUS)
      {
        int disp = INTVAL (XEXP (base, 1));
-@@ -2852,12 +3432,30 @@ out_movhi_mr_r (rtx insn, rtx op[], int 
+@@ -2976,12 +3556,30 @@ out_movhi_mr_r (rtx insn, rtx op[], int 
            if (!AVR_XMEGA)
              {
          if (disp <= 63 + MAX_LD_OFFSET (GET_MODE (dest)))
@@ -1080,7 +1080,7 @@ diff -Naurp gcc/config/avr/avr.c gcc/config/avr/avr.c
                          AS2 (sbci,r29,hi8(-%o0)) CR_TAB
                          AS2 (std,Y+1,%B1)        CR_TAB
                          AS2 (st,Y,%A1)           CR_TAB
-@@ -2867,12 +3465,30 @@ out_movhi_mr_r (rtx insn, rtx op[], int 
+@@ -2991,12 +3589,30 @@ out_movhi_mr_r (rtx insn, rtx op[], int 
          else
            {
              if (disp <= 63 + MAX_LD_OFFSET (GET_MODE (dest)))
@@ -1113,7 +1113,7 @@ diff -Naurp gcc/config/avr/avr.c gcc/config/avr/avr.c
                              AS2 (sbci,r29,hi8(-%o0)) CR_TAB
                              AS2 (st,Y,%A1)           CR_TAB
                              AS2 (std,Y+1,%B1)        CR_TAB
-@@ -2888,7 +3504,16 @@ out_movhi_mr_r (rtx insn, rtx op[], int 
+@@ -3012,7 +3628,16 @@ out_movhi_mr_r (rtx insn, rtx op[], int 
              if (!AVR_XMEGA)
                {
              *l = 7;
@@ -1131,7 +1131,7 @@ diff -Naurp gcc/config/avr/avr.c gcc/config/avr/avr.c
                      AS2 (mov,__zero_reg__,r27) CR_TAB
                        AS2 (adiw,r26,%o0+1)       CR_TAB
                      AS2 (st,X,__zero_reg__)    CR_TAB
-@@ -2899,19 +3524,35 @@ out_movhi_mr_r (rtx insn, rtx op[], int 
+@@ -3023,19 +3648,35 @@ out_movhi_mr_r (rtx insn, rtx op[], int 
              else
                {
                  *l = 7;
@@ -1171,7 +1171,7 @@ diff -Naurp gcc/config/avr/avr.c gcc/config/avr/avr.c
                    AS2 (st,X,%B1)       CR_TAB
                    AS2 (st,-X,%A1)      CR_TAB
                    AS2 (sbiw,r26,%o0));
-@@ -2919,7 +3560,13 @@ out_movhi_mr_r (rtx insn, rtx op[], int 
+@@ -3043,7 +3684,13 @@ out_movhi_mr_r (rtx insn, rtx op[], int 
          else
            {
              *l = 4;
@@ -1186,7 +1186,7 @@ diff -Naurp gcc/config/avr/avr.c gcc/config/avr/avr.c
                      AS2 (st,X+,%A1)    CR_TAB
                      AS2 (st,X,%B1)     CR_TAB
                      AS2 (sbiw,r26,%o0+1));
-@@ -2927,11 +3574,49 @@ out_movhi_mr_r (rtx insn, rtx op[], int 
+@@ -3051,11 +3698,49 @@ out_movhi_mr_r (rtx insn, rtx op[], int 
        }
        
        if (!AVR_XMEGA)
@@ -1238,7 +1238,7 @@ diff -Naurp gcc/config/avr/avr.c gcc/config/avr/avr.c
      }
    else if (GET_CODE (base) == PRE_DEC) /* (--R) */
      {
-@@ -2951,15 +3636,30 @@ out_movhi_mr_r (rtx insn, rtx op[], int 
+@@ -3075,15 +3760,30 @@ out_movhi_mr_r (rtx insn, rtx op[], int 
            if (REGNO (XEXP (base, 0)) == REG_X)
              {
                *l = 4;
@@ -1271,7 +1271,7 @@ diff -Naurp gcc/config/avr/avr.c gcc/config/avr/avr.c
                        AS2 (st,%p0,%A1)    CR_TAB
                        AS2 (adiw,%r0,2));
              }
-@@ -3049,7 +3749,9 @@ out_tsthi (rtx insn, rtx op, int *l)
+@@ -3173,7 +3873,9 @@ out_tsthi (rtx insn, rtx op, int *l)
    if (test_hard_reg_class (ADDW_REGS, op))
      {
        if (l) *l = 1;
@@ -1282,7 +1282,7 @@ diff -Naurp gcc/config/avr/avr.c gcc/config/avr/avr.c
      }
    if (l) *l = 2;
    return (AS2 (cp,%A0,__zero_reg__) CR_TAB
-@@ -3070,7 +3772,11 @@ out_tstsi (rtx insn, rtx op, int *l)
+@@ -3194,7 +3896,11 @@ out_tstsi (rtx insn, rtx op, int *l)
    if (test_hard_reg_class (ADDW_REGS, op))
      {
        if (l) *l = 3;
@@ -1295,7 +1295,7 @@ diff -Naurp gcc/config/avr/avr.c gcc/config/avr/avr.c
                AS2 (cpc,%C0,__zero_reg__) CR_TAB
                AS2 (cpc,%D0,__zero_reg__));
      }
-@@ -5392,10 +6098,12 @@ avr_file_start (void)
+@@ -5571,10 +6277,12 @@ avr_file_start (void)
  /*  fprintf (asm_out_file, "\t.arch %s\n", avr_mcu_name);*/
    fputs ("__SREG__ = 0x3f\n"
         "__SP_H__ = 0x3e\n"
@@ -1312,8 +1312,8 @@ diff -Naurp gcc/config/avr/avr.c gcc/config/avr/avr.c
  
    /* FIXME: output these only if there is anything in the .data / .bss
 diff -Naurp gcc/config/avr/avr-c.c gcc/config/avr/avr-c.c
---- gcc/config/avr/avr-c.c     2011-09-02 11:45:05.000000000 +0300
-+++ gcc/config/avr/avr-c.c     2011-09-02 11:46:03.000000000 +0300
+--- gcc/config/avr/avr-c.c     2011-10-27 17:00:24.000000000 +0530
++++ gcc/config/avr/avr-c.c     2011-10-27 17:47:15.000000000 +0530
 @@ -94,5 +94,9 @@ avr_cpu_cpp_builtins (struct cpp_reader 
        cpp_define (pfile, "__AVR_HAVE_RAMPD__");
      }
@@ -1325,10 +1325,10 @@ diff -Naurp gcc/config/avr/avr-c.c gcc/config/avr/avr-c.c
  }
  
 diff -Naurp gcc/config/avr/avr-devices.c gcc/config/avr/avr-devices.c
---- gcc/config/avr/avr-devices.c       2011-09-02 11:45:05.000000000 +0300
-+++ gcc/config/avr/avr-devices.c       2011-09-02 11:46:03.000000000 +0300
+--- gcc/config/avr/avr-devices.c       2011-10-27 17:00:24.000000000 +0530
++++ gcc/config/avr/avr-devices.c       2011-10-27 17:47:15.000000000 +0530
 @@ -26,24 +26,25 @@
- /* List of all known AVR MCU architectyres.  */
+ /* List of all known AVR MCU architectures.  */
  
  const struct base_arch_s avr_arch_types[] = {
 -  { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x0060, NULL,               "avr2" },  /* unknown device specified */
@@ -1371,7 +1371,7 @@ diff -Naurp gcc/config/avr/avr-devices.c gcc/config/avr/avr-devices.c
  };
  
  /* List of all known AVR MCU types - if updated, it has to be kept
-@@ -228,6 +229,14 @@ const struct mcu_type_s avr_mcu_types[] 
+@@ -255,6 +256,14 @@ const struct mcu_type_s avr_mcu_types[] 
    { "avrxmega7",    ARCH_AVRXMEGA7, NULL,                           0, 0x2000, "x128a1" },
    { "atxmega128a1", ARCH_AVRXMEGA7, "__AVR_ATxmega128A1__",         0, 0x2000, "x128a1" },
    { "atxmega128a1u", ARCH_AVRXMEGA7, "__AVR_ATxmega128A1U__",       0, 0x2000, "x128a1u" },
@@ -1387,8 +1387,8 @@ diff -Naurp gcc/config/avr/avr-devices.c gcc/config/avr/avr-devices.c
    { "avr1",                 ARCH_AVR1, NULL,                        0, 0x0060, "s1200" },
    { "at90s1200",            ARCH_AVR1, "__AVR_AT90S1200__",         0, 0x0060, "s1200" },
 diff -Naurp gcc/config/avr/avr.h gcc/config/avr/avr.h
---- gcc/config/avr/avr.h       2011-09-02 11:45:05.000000000 +0300
-+++ gcc/config/avr/avr.h       2011-09-02 11:46:03.000000000 +0300
+--- gcc/config/avr/avr.h       2011-10-27 17:00:24.000000000 +0530
++++ gcc/config/avr/avr.h       2011-10-27 17:47:15.000000000 +0530
 @@ -51,6 +51,9 @@ struct base_arch_s {
    /* Core have RAMPX, RAMPY and RAMPD registers.  */
    int have_rampx_y_d;
@@ -1417,15 +1417,15 @@ diff -Naurp gcc/config/avr/avr.h gcc/config/avr/avr.h
  #define AVR_HAVE_RAMPX_Y_D (avr_current_arch->have_rampx_y_d)
  
  #define AVR_2_BYTE_PC (!AVR_HAVE_EIJMP_EICALL)
-@@ -249,7 +254,6 @@ extern GTY(()) section *progmem_section;
+@@ -245,7 +250,6 @@ extern GTY(()) section *progmem_section;
  
- #define ORDER_REGS_FOR_LOCAL_ALLOC order_regs_for_local_alloc ()
+ #define ADJUST_REG_ALLOC_ORDER order_regs_for_local_alloc ()
  
 -
  #define HARD_REGNO_NREGS(REGNO, MODE) ((GET_MODE_SIZE (MODE) + UNITS_PER_WORD - 1) / UNITS_PER_WORD)
  
  #define HARD_REGNO_MODE_OK(REGNO, MODE) avr_hard_regno_mode_ok(REGNO, MODE)
-@@ -313,6 +317,41 @@ enum reg_class {
+@@ -309,6 +313,41 @@ enum reg_class {
    {0xffffffff,0x00000003}     /* ALL_REGS */                          \
  }
  
@@ -1468,19 +1468,19 @@ diff -Naurp gcc/config/avr/avr.h gcc/config/avr/avr.h
  
  /* The following macro defines cover classes for Integrated Register
 diff -Naurp gcc/config/avr/avr.md gcc/config/avr/avr.md
---- gcc/config/avr/avr.md      2011-09-02 11:45:05.000000000 +0300
-+++ gcc/config/avr/avr.md      2011-09-02 11:46:03.000000000 +0300
-@@ -186,6 +186,9 @@
-   DONE;
})
+--- gcc/config/avr/avr.md      2011-10-27 17:00:24.000000000 +0530
++++ gcc/config/avr/avr.md      2011-10-27 17:47:15.000000000 +0530
+@@ -417,6 +417,9 @@
+   [(set_attr "length" "8")
   (set_attr "cc" "none")])
  
 +(define_constants
 + [(TMP_REGNO_AVRTINY10        16)     ; temporary register r16
 +  (ZERO_REGNO_AVRTINY10       17)])   ; zero register r17
  
- (define_insn "*push<ALLQ:mode>"
-   [(set (mem:ALLQ (post_dec (reg:HI REG_SP)))
-@@ -479,7 +482,7 @@
+ (define_insn "*mov<ALLS:mode>"
+   [(set (match_operand:ALLS 0 "nonimmediate_operand" "=r,r,r,Qm,!d,r")
+@@ -476,7 +479,7 @@
    rtx addr1 = copy_to_mode_reg (Pmode, XEXP (operands[1], 0));
  
    /* Create rtx for tmp register - we use this as scratch.  */
@@ -1489,7 +1489,7 @@ diff -Naurp gcc/config/avr/avr.md gcc/config/avr/avr.md
  
    if (GET_CODE (operands[2]) != CONST_INT)
      FAIL;
-@@ -2900,7 +2903,7 @@
+@@ -2907,7 +2910,7 @@
                        UNSPEC_INDEX_JMP))
     (use (label_ref (match_operand 1 "" "")))
     (clobber (match_dup 0))]
@@ -1499,8 +1499,8 @@ diff -Naurp gcc/config/avr/avr.md gcc/config/avr/avr.md
        rol r31
        lpm
 diff -Naurp gcc/config/avr/libgcc-fixed.S gcc/config/avr/libgcc-fixed.S
---- gcc/config/avr/libgcc-fixed.S      2011-09-02 11:40:55.000000000 +0300
-+++ gcc/config/avr/libgcc-fixed.S      2011-09-02 11:46:03.000000000 +0300
+--- gcc/config/avr/libgcc-fixed.S      2011-10-27 17:00:03.000000000 +0530
++++ gcc/config/avr/libgcc-fixed.S      2011-10-27 17:47:15.000000000 +0530
 @@ -29,13 +29,17 @@ Boston, MA 02110-1301, USA.  */
  
  /* Fixed point library routines for avr.  */
@@ -1942,8 +1942,8 @@ diff -Naurp gcc/config/avr/libgcc-fixed.S gcc/config/avr/libgcc-fixed.S
          com     r_quoHH
          com     r_quoHL
 diff -Naurp gcc/config/avr/libgcc.S gcc/config/avr/libgcc.S
---- gcc/config/avr/libgcc.S    2011-09-02 11:45:05.000000000 +0300
-+++ gcc/config/avr/libgcc.S    2011-09-02 11:46:03.000000000 +0300
+--- gcc/config/avr/libgcc.S    2011-10-27 17:00:24.000000000 +0530
++++ gcc/config/avr/libgcc.S    2011-10-27 17:47:15.000000000 +0530
 @@ -22,8 +22,13 @@ a copy of the GCC Runtime Library Except
  see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
  <http://www.gnu.org/licenses/>.  */
@@ -1958,7 +1958,7 @@ diff -Naurp gcc/config/avr/libgcc.S gcc/config/avr/libgcc.S
  #define __SREG__ 0x3f
  #define __SP_H__ 0x3e
  #define __SP_L__ 0x3d
-@@ -140,7 +145,12 @@ __mulhi3_skip1:   
+@@ -141,7 +146,12 @@ __mulhi3_skip1:   
  
        lsr     r_arg1H         ; gets LSB of multiplier
        ror     r_arg1L
@@ -1971,7 +1971,7 @@ diff -Naurp gcc/config/avr/libgcc.S gcc/config/avr/libgcc.S
        brne    __mulhi3_loop   ; exit if multiplier = 0
  __mulhi3_exit:
        mov     r_arg1H,r_resH  ; result to return register
-@@ -304,7 +314,12 @@ __mulsi3_skip1:
+@@ -305,7 +315,12 @@ __mulsi3_skip1:
        ror     r_arg1H
        ror     r_arg1L
        brne    __mulsi3_loop
@@ -1984,7 +1984,7 @@ diff -Naurp gcc/config/avr/libgcc.S gcc/config/avr/libgcc.S
        cpc     r_arg1H,r_arg1L
        brne    __mulsi3_loop           ; exit if multiplier = 0
  __mulsi3_exit:
-@@ -610,6 +625,7 @@ __divmodsi4_neg1:
+@@ -611,6 +626,7 @@ __divmodsi4_neg1:
  /**********************************
   * This is a prologue subroutine
   **********************************/
@@ -1992,7 +1992,7 @@ diff -Naurp gcc/config/avr/libgcc.S gcc/config/avr/libgcc.S
  #if defined (L_prologue)
  
        .global __prologue_saves__
-@@ -663,7 +679,6 @@ __prologue_saves__:
+@@ -664,7 +680,6 @@ __prologue_saves__:
   * This is an epilogue subroutine
   */
  #if defined (L_epilogue)
@@ -2000,7 +2000,7 @@ diff -Naurp gcc/config/avr/libgcc.S gcc/config/avr/libgcc.S
        .global __epilogue_restores__
        .func   __epilogue_restores__
  __epilogue_restores__:
-@@ -704,6 +719,7 @@ __epilogue_restores__:
+@@ -705,6 +720,7 @@ __epilogue_restores__:
        ret
  .endfunc
  #endif /* defined (L_epilogue) */
@@ -2008,7 +2008,7 @@ diff -Naurp gcc/config/avr/libgcc.S gcc/config/avr/libgcc.S
  
  #ifdef L_exit
        .section .fini9,"ax",@progbits
-@@ -730,6 +746,7 @@ _cleanup:
+@@ -731,6 +747,7 @@ _cleanup:
  .endfunc
  #endif /* defined (L_cleanup) */
  
@@ -2016,7 +2016,7 @@ diff -Naurp gcc/config/avr/libgcc.S gcc/config/avr/libgcc.S
  #ifdef L_tablejump
        .global __tablejump2__
        .func   __tablejump2__
-@@ -762,7 +779,9 @@ __tablejump__:
+@@ -763,7 +780,9 @@ __tablejump__:
  #endif
        .endfunc
  #endif /* defined (L_tablejump) */
@@ -2026,7 +2026,7 @@ diff -Naurp gcc/config/avr/libgcc.S gcc/config/avr/libgcc.S
  #ifdef L_copy_data
        .section .init4,"ax",@progbits
        .global __do_copy_data
-@@ -824,6 +843,7 @@ __do_copy_data:
+@@ -825,6 +844,7 @@ __do_copy_data:
        brne    .L__do_copy_data_loop
  #endif /* !defined(__AVR_HAVE_ELPMX__) && !defined(__AVR_HAVE_ELPM__) */
  #endif /* L_copy_data */
@@ -2035,19 +2035,19 @@ diff -Naurp gcc/config/avr/libgcc.S gcc/config/avr/libgcc.S
  /* __do_clear_bss is only necessary if there is anything in .bss section.  */
  
 @@ -864,7 +884,12 @@ __do_global_ctors:
-       ldi     r20, hh8(__ctors_end)
+       ldi     r16, hh8(__ctors_end)
        rjmp    .L__do_global_ctors_start
  .L__do_global_ctors_loop:
-+#if defined (__AVR_TINY__)
-+      subi    r28, lo8(2)
-+      sbci    r29, hi8(2)
-+#else
++ #if defined (__AVR_TINY__)
++       subi    r28, lo8(2)
++       sbci    r29, hi8(2)
++ #else
        sbiw    r28, 2
-+#endif
-       sbc     r20, __zero_reg__
++ #endif
+       sbc     r16, __zero_reg__
        mov_h   r31, r29
        mov_l   r30, r28
-@@ -882,7 +907,12 @@ __do_global_ctors:
+@@ -883,7 +908,12 @@ __do_global_ctors:
        ldi     r29, hi8(__ctors_end)
        rjmp    .L__do_global_ctors_start
  .L__do_global_ctors_loop:
@@ -2061,19 +2061,19 @@ diff -Naurp gcc/config/avr/libgcc.S gcc/config/avr/libgcc.S
        mov_l   r30, r28
        XCALL   __tablejump__
 @@ -905,7 +935,12 @@ __do_global_dtors:
-       ldi     r20, hh8(__dtors_start)
+       ldi     r16, hh8(__dtors_start)
        rjmp    .L__do_global_dtors_start
  .L__do_global_dtors_loop:
-+#if defined (__AVR_TINY__)
-+    subi    r28, lo8(2)
-+    sbci    r29, hi8(2)
-+#else
++ #if defined (__AVR_TINY__)
++     subi    r28, lo8(2)
++     sbci    r29, hi8(2)
++ #else
        sbiw    r28, 2
-+#endif
-       sbc     r20, __zero_reg__
++ #endif
+       sbc     r16, __zero_reg__
        mov_h   r31, r29
        mov_l   r30, r28
-@@ -926,7 +961,12 @@ __do_global_dtors:
+@@ -927,7 +962,12 @@ __do_global_dtors:
        mov_h   r31, r29
        mov_l   r30, r28
        XCALL   __tablejump__
@@ -2086,7 +2086,7 @@ diff -Naurp gcc/config/avr/libgcc.S gcc/config/avr/libgcc.S
  .L__do_global_dtors_start:
        cpi     r28, lo8(__dtors_end)
        cpc     r29, r17
-@@ -934,6 +974,7 @@ __do_global_dtors:
+@@ -935,6 +975,7 @@ __do_global_dtors:
  #endif /* defined(__AVR_HAVE_RAMPZ__) */
  #endif /* L_dtors */
  
@@ -2094,7 +2094,7 @@ diff -Naurp gcc/config/avr/libgcc.S gcc/config/avr/libgcc.S
  #ifdef L_tablejump_elpm
        .global __tablejump_elpm__
        .func   __tablejump_elpm__
-@@ -963,5 +1004,6 @@ __tablejump_elpm__:
+@@ -965,5 +1006,6 @@ __tablejump_elpm__:
  #endif /* defined (__AVR_HAVE_ELPM__) */
        .endfunc
  #endif /* defined (L_tablejump_elpm) */
@@ -2102,8 +2102,8 @@ diff -Naurp gcc/config/avr/libgcc.S gcc/config/avr/libgcc.S
  
  #include "libgcc-fixed.S"
 diff -Naurp gcc/config/avr/t-avr gcc/config/avr/t-avr
---- gcc/config/avr/t-avr       2011-09-02 11:45:05.000000000 +0300
-+++ gcc/config/avr/t-avr       2011-09-02 11:46:03.000000000 +0300
+--- gcc/config/avr/t-avr       2011-10-27 17:00:24.000000000 +0530
++++ gcc/config/avr/t-avr       2011-10-27 17:47:15.000000000 +0530
 @@ -107,8 +107,8 @@ fp-bit.c: $(srcdir)/config/fp-bit.c $(sr
  
  FPBIT = fp-bit.c
@@ -2115,7 +2115,7 @@ diff -Naurp gcc/config/avr/t-avr gcc/config/avr/t-avr
  
  # The many avr2 matches are not listed here - this is the default.
  MULTILIB_MATCHES = \
-@@ -241,7 +241,13 @@ MULTILIB_MATCHES = \
+@@ -270,7 +270,13 @@ MULTILIB_MATCHES = \
        mmcu?avrxmega6=mmcu?atxmega256a3b \
        mmcu?avrxmega6=mmcu?atxmega256d3 \
        mmcu?avrxmega7=mmcu?atxmega128a1 \
This page took 0.149535 seconds and 4 git commands to generate.