]> git.pld-linux.org Git - packages/crossavr-gcc.git/commitdiff
crossavr-gcc: Synchronized with official AVR toolchain 3.4.0.663. auto/th/crossavr-gcc-4.6.2-1
authorPiotr Ziecik <kosmo@angel.net.pl>
Tue, 14 Aug 2012 18:59:54 +0000 (20:59 +0200)
committerPiotr Ziecik <kosmo@angel.net.pl>
Tue, 14 Aug 2012 18:59:54 +0000 (20:59 +0200)
54 files changed:
200-gcc-4.5.1-libiberty-Makefile.in.patch [deleted file]
200-gcc-libiberty-Makefile.in.patch [new file with mode: 0644]
300-gcc-fixedpoint-3-4-2010.patch [moved from 300-gcc-4.5.1-fixedpoint-3-4-2010.patch with 95% similarity]
301-gcc-xmega-v14.patch [moved from 301-gcc-4.5.1-xmega-v14.patch with 74% similarity]
302-gcc-avrtiny10.patch [moved from 302-gcc-4.5.1-avrtiny10.patch with 94% similarity]
303-gcc-osmain.patch [moved from 303-gcc-4.5.1-osmain.patch with 55% similarity]
304-gcc-builtins-v6.patch [moved from 304-gcc-4.5.1-builtins-v6.patch with 95% similarity]
305-gcc-avrtiny10-non-fixedpoint.patch [moved from 305-gcc-4.5.1-avrtiny10-non-fixedpoint.patch with 75% similarity]
306-gcc-option-list-devices.patch [moved from 306-gcc-4.5.1-option-list-devices.patch with 72% similarity]
400-gcc-4.5.1-new-devices.patch [deleted file]
400-gcc-new-devices.patch [new file with mode: 0644]
401-gcc-atmega32_5_50_90_pa.patch [moved from 401-gcc-4.5.1-atmega32_5_50_90_pa.patch with 87% similarity]
402-gcc-attiny1634.patch [moved from 402-gcc-4.5.1-attiny1634.patch with 73% similarity]
403-gcc-atmega48pa.patch [moved from 403-gcc-4.5.1-atmega48pa.patch with 75% similarity]
404-gcc-atxmega_16_32_a4u.patch [moved from 404-gcc-4.5.1-atxmega_16_32_a4u.patch with 76% similarity]
405-gcc-atxmega64_128_192_256a3u.patch [moved from 405-gcc-4.5.1-atxmega64_128_192_256a3u.patch with 83% similarity]
406-gcc-atmegarfr2_a2.patch [moved from 406-gcc-4.5.1-atmegarfr2_a2.patch with 78% similarity]
407-gcc-atmega165pa.patch [moved from 407-gcc-4.5.1-atmega165pa.patch with 62% similarity]
408-gcc-atxmega384c3.patch [moved from 408-gcc-4.5.1-atxmega384c3.patch with 83% similarity]
409-gcc-attiny80.patch [moved from 409-gcc-4.5.1-attiny80.patch with 76% similarity]
410-gcc-atxmega128a4u.patch [moved from 410-gcc-4.5.1-atxmega128a4u.patch with 76% similarity]
411-gcc-atxmega64d4.patch [moved from 411-gcc-4.5.1-atxmega64d4.patch with 73% similarity]
412-gcc-atmega164pa_168pa_32a_64a.patch [moved from 412-gcc-4.5.1-atmega164pa_168pa_32a_64a.patch with 82% similarity]
413-gcc-4.5.1-atxmega32x1.patch [deleted file]
413-gcc-atxmega64_128_b3.patch [moved from 414-gcc-4.5.1-atxmega64_128_b3.patch with 77% similarity]
414-gcc-atxmega64b1.patch [moved from 415-gcc-4.5.1-atxmega64b1.patch with 73% similarity]
415-gcc-atmega_8a_128a_1284.patch [moved from 416-gcc-4.5.1-atmega_8a_128a_1284.patch with 87% similarity]
416-gcc-atxmega64a4u.patch [moved from 417-gcc-4.5.1-atxmega64a4u.patch with 73% similarity]
417-gcc-atxmega128d4.patch [moved from 418-gcc-4.5.1-atxmega128d4.patch with 73% similarity]
418-gcc-atmxt336s.patch [moved from 419-gcc-4.5.1-atmxt336s.patch with 72% similarity]
419-gcc-atxmega16c4_32c4_128c3_256c3.patch [moved from 420-gcc-4.5.1-atxmega16c4_32c4_128c3_256c3.patch with 80% similarity]
420-gcc-atxmega384d3.patch [moved from 421-gcc-4.5.1-atxmega384d3.patch with 73% similarity]
421-gcc-atmega48hvf.patch [moved from 422-gcc-4.5.1-atmega48hvf.patch with 62% similarity]
422-gcc-atmega26hvg.patch [moved from 423-gcc-4.5.1-atmega26hvg.patch with 78% similarity]
423-gcc-atmxt224_224e.patch [moved from 424-gcc-4.5.1-atmxt224_224e.patch with 75% similarity]
424-gcc-atxmega192c3.patch [moved from 424-gcc-4.5.1-atxmega192c3.patch with 77% similarity]
425-gcc-atmxt112sl.patch [new file with mode: 0644]
426-gcc-atxmega64c3.patch [new file with mode: 0644]
427-gcc-ata6285_6286.patch [new file with mode: 0644]
428-gcc-attiny828.patch [new file with mode: 0644]
429-gcc-ata5790_5790n_5795.patch [new file with mode: 0644]
430-gcc-ata5272_ata5505.patch [new file with mode: 0644]
500-gcc-bug13473.patch [moved from 500-gcc-4.5.1-bug13473.patch with 65% similarity]
501-gcc-4.5.1-bug13579.patch [deleted file]
501-gcc-avrtiny10-bug-12510.patch [moved from 503-gcc-4.5.1-avrtiny10-bug-12510.patch with 87% similarity]
502-gcc-4.5.1-bug-18145-v4.patch [deleted file]
502-gcc-bug12915.patch [moved from 504-gcc-4.5.1-bug12915.patch with 67% similarity]
503-gcc-bug13789.patch [moved from 506-gcc-4.5.1-bug13789.patch with 78% similarity]
504-gcc-conditional-register.patch [new file with mode: 0644]
505-gcc-4.5.1-bug13932.patch [deleted file]
505-gcc-avrtc381-tiny.patch [new file with mode: 0644]
507-gcc-4.5.1-bug14415.patch [deleted file]
crossavr-gcc.spec
gcc-bug51969.patch [new file with mode: 0644]

diff --git a/200-gcc-4.5.1-libiberty-Makefile.in.patch b/200-gcc-4.5.1-libiberty-Makefile.in.patch
deleted file mode 100644 (file)
index d274878..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-diff -Naurp libiberty/Makefile.in libiberty/Makefile.in
---- libiberty/Makefile.in      2010-03-02 00:09:56.000000000 -0600
-+++ libiberty/Makefile.in      2011-01-18 17:27:57.000000000 -0600
-@@ -321,7 +321,8 @@ libiberty.html : $(srcdir)/libiberty.tex
- @MAINT@       echo stamp > stamp-functions
- INSTALL_DEST = @INSTALL_DEST@
--install: install_to_$(INSTALL_DEST) install-subdir
-+#install: install_to_$(INSTALL_DEST) install-subdir
-+install:
- # This is tricky.  Even though CC in the Makefile contains
- # multilib-specific flags, it's overridden by FLAGS_TO_PASS from the
diff --git a/200-gcc-libiberty-Makefile.in.patch b/200-gcc-libiberty-Makefile.in.patch
new file mode 100644 (file)
index 0000000..ff42fed
--- /dev/null
@@ -0,0 +1,13 @@
+diff -aurp libiberty/Makefile.in libiberty/Makefile.in
+--- libiberty/Makefile.in      2010-11-21 01:07:08.000000000 +0530
++++ libiberty/Makefile.in      2011-06-21 12:26:09.000000000 +0530
+@@ -340,7 +340,8 @@ libiberty.html : $(srcdir)/libiberty.tex
+ @MAINT@       echo stamp > stamp-functions
+ INSTALL_DEST = @INSTALL_DEST@
+-install: install_to_$(INSTALL_DEST) install-subdir
++#install: install_to_$(INSTALL_DEST) install-subdir
++install:
+ install-strip: install
+ .PHONY: install install-strip
similarity index 95%
rename from 300-gcc-4.5.1-fixedpoint-3-4-2010.patch
rename to 300-gcc-fixedpoint-3-4-2010.patch
index 41d7cca18e2a143d86d74b15d456903ae0fee298..04c52d31122c20e8e8407e12cdfcc599ec9890a4 100644 (file)
@@ -1,9 +1,9 @@
-diff -rupN gcc/config/avr/avr.c gcc/config/avr/avr.c
---- gcc/config/avr/avr.c       2010-04-02 14:54:46.000000000 -0500
-+++ gcc/config/avr/avr.c       2010-09-21 14:31:30.000000000 -0500
-@@ -192,6 +192,19 @@ static const struct attribute_spec avr_a
- #undef TARGET_CAN_ELIMINATE
- #define TARGET_CAN_ELIMINATE avr_can_eliminate
+diff -Naurp gcc/config/avr/avr.c gcc/config/avr/avr.c
+--- gcc/config/avr/avr.c       2011-10-27 16:45:17.000000000 +0530
++++ gcc/config/avr/avr.c       2011-10-27 16:55:55.000000000 +0530
+@@ -236,6 +236,19 @@ static const struct default_options avr_
+ #undef TARGET_EXCEPT_UNWIND_INFO
+ #define TARGET_EXCEPT_UNWIND_INFO sjlj_except_unwind_info
  
 +#undef TARGET_SCALAR_MODE_SUPPORTED_P
 +#define TARGET_SCALAR_MODE_SUPPORTED_P avr_scalar_mode_supported_p
  
 +#undef TARGET_SCALAR_MODE_SUPPORTED_P
 +#define TARGET_SCALAR_MODE_SUPPORTED_P avr_scalar_mode_supported_p
@@ -20,8 +20,8 @@ diff -rupN gcc/config/avr/avr.c gcc/config/avr/avr.c
 + 
  struct gcc_target targetm = TARGET_INITIALIZER;
  \f
 + 
  struct gcc_target targetm = TARGET_INITIALIZER;
  \f
- void
-@@ -1609,9 +1622,9 @@ output_movqi (rtx insn, rtx operands[], 
static void
+@@ -1767,9 +1780,9 @@ output_movqi (rtx insn, rtx operands[], 
  
    *l = 1;
    
  
    *l = 1;
    
@@ -33,7 +33,7 @@ diff -rupN gcc/config/avr/avr.c gcc/config/avr/avr.c
        {
          if (test_hard_reg_class (STACK_REG, dest))
            return AS2 (out,%0,%1);
        {
          if (test_hard_reg_class (STACK_REG, dest))
            return AS2 (out,%0,%1);
-@@ -1699,9 +1712,9 @@ output_movhi (rtx insn, rtx operands[], 
+@@ -1857,9 +1870,9 @@ output_movhi (rtx insn, rtx operands[], 
    if (!l)
      l = &dummy;
    
    if (!l)
      l = &dummy;
    
@@ -45,7 +45,7 @@ diff -rupN gcc/config/avr/avr.c gcc/config/avr/avr.c
        {
          if (test_hard_reg_class (STACK_REG, dest))
            {
        {
          if (test_hard_reg_class (STACK_REG, dest))
            {
-@@ -2424,6 +2437,14 @@ output_movsisf(rtx insn, rtx operands[],
+@@ -2582,6 +2595,14 @@ output_movsisf(rtx insn, rtx operands[],
        {
          if (test_hard_reg_class (LD_REGS, dest)) /* ldi d,i */
            {
        {
          if (test_hard_reg_class (LD_REGS, dest)) /* ldi d,i */
            {
@@ -60,7 +60,7 @@ diff -rupN gcc/config/avr/avr.c gcc/config/avr/avr.c
              *l = 4;
              return (AS2 (ldi,%A0,lo8(%1))  CR_TAB
                      AS2 (ldi,%B0,hi8(%1))  CR_TAB
              *l = 4;
              return (AS2 (ldi,%A0,lo8(%1))  CR_TAB
                      AS2 (ldi,%B0,hi8(%1))  CR_TAB
-@@ -4354,6 +4375,196 @@ avr_rotate_bytes (rtx operands[])
+@@ -4527,6 +4548,196 @@ avr_rotate_bytes (rtx operands[])
      return true;
  }
  
      return true;
  }
  
@@ -257,9 +257,9 @@ diff -rupN gcc/config/avr/avr.c gcc/config/avr/avr.c
  /* Modifies the length assigned to instruction INSN
   LEN is the initially computed length of the insn.  */
  
  /* Modifies the length assigned to instruction INSN
   LEN is the initially computed length of the insn.  */
  
-diff -rupN gcc/config/avr/avr-fixed.md gcc/config/avr/avr-fixed.md
---- gcc/config/avr/avr-fixed.md        1969-12-31 18:00:00.000000000 -0600
-+++ gcc/config/avr/avr-fixed.md        2010-09-21 14:31:30.000000000 -0500
+diff -Naurp gcc/config/avr/avr-fixed.md gcc/config/avr/avr-fixed.md
+--- gcc/config/avr/avr-fixed.md        1970-01-01 05:30:00.000000000 +0530
++++ gcc/config/avr/avr-fixed.md        2011-10-27 16:55:55.000000000 +0530
 @@ -0,0 +1,338 @@
 +;; -*- Mode: Scheme -*-
 +;;   This file contains instructions that support fixed-point operations
 @@ -0,0 +1,338 @@
 +;; -*- Mode: Scheme -*-
 +;;   This file contains instructions that support fixed-point operations
@@ -599,10 +599,10 @@ diff -rupN gcc/config/avr/avr-fixed.md gcc/config/avr/avr-fixed.md
 +      neg %0"
 +  [(set_attr "length" "2")
 +   (set_attr "cc" "clobber")])
 +      neg %0"
 +  [(set_attr "length" "2")
 +   (set_attr "cc" "clobber")])
-diff -rupN gcc/config/avr/avr.md gcc/config/avr/avr.md
---- gcc/config/avr/avr.md      2010-04-02 14:54:46.000000000 -0500
-+++ gcc/config/avr/avr.md      2010-09-21 14:33:24.000000000 -0500
-@@ -66,6 +66,15 @@
+diff -Naurp gcc/config/avr/avr.md gcc/config/avr/avr.md
+--- gcc/config/avr/avr.md      2011-10-27 16:45:17.000000000 +0530
++++ gcc/config/avr/avr.md      2011-10-27 16:55:55.000000000 +0530
+@@ -65,6 +65,15 @@
  (include "predicates.md")
  (include "constraints.md")
    
  (include "predicates.md")
  (include "constraints.md")
    
@@ -618,29 +618,29 @@ diff -rupN gcc/config/avr/avr.md gcc/config/avr/avr.md
  ;; Condition code settings.
  (define_attr "cc" "none,set_czn,set_zn,set_n,compare,clobber"
    (const_string "none"))
  ;; Condition code settings.
  (define_attr "cc" "none,set_czn,set_zn,set_n,compare,clobber"
    (const_string "none"))
-@@ -181,9 +190,9 @@
+@@ -179,28 +188,27 @@
+   DONE;
  })
  
  })
  
+-
 -(define_insn "*pushqi"
 -(define_insn "*pushqi"
--  [(set (mem:QI (post_dec (reg:HI REG_SP)))
+-  [(set (mem:QI (post_dec:HI (reg:HI REG_SP)))
 -        (match_operand:QI 0 "reg_or_0_operand" "r,L"))]
 +(define_insn "*push<ALLQ:mode>"
 -        (match_operand:QI 0 "reg_or_0_operand" "r,L"))]
 +(define_insn "*push<ALLQ:mode>"
-+  [(set (mem:ALLQ (post_dec (reg:HI REG_SP)))
-+        (match_operand:ALLQ 0 "reg_or_0_operand" "r,L"))]
++   [(set (mem:ALLQ (post_dec:HI (reg:HI REG_SP)))
++         (match_operand:ALLQ 0 "reg_or_0_operand" "r,L"))]
    ""
    "@
        push %0
    ""
    "@
        push %0
-@@ -191,18 +200,18 @@
+       push __zero_reg__"
    [(set_attr "length" "1,1")])
  
    [(set_attr "length" "1,1")])
  
 -(define_insn "*pushhi"
 -(define_insn "*pushhi"
--  [(set (mem:HI (post_dec (reg:HI REG_SP)))
+-  [(set (mem:HI (post_dec:HI (reg:HI REG_SP)))
 -        (match_operand:HI 0 "reg_or_0_operand" "r,L"))]
 +(define_insn "*push<ALLH:mode>"
 -        (match_operand:HI 0 "reg_or_0_operand" "r,L"))]
 +(define_insn "*push<ALLH:mode>"
-+  [(set (mem:ALLH (post_dec (reg:HI REG_SP)))
-+        (match_operand:ALLH 0 "reg_or_0_operand" "r,L"))]
++   [(set (mem:ALLH (post_dec:HI (reg:HI REG_SP)))
++         (match_operand:ALLH 0 "reg_or_0_operand" "r,L"))]
    ""
    "@
        push %B0\;push %A0
    ""
    "@
        push %B0\;push %A0
@@ -648,15 +648,15 @@ diff -rupN gcc/config/avr/avr.md gcc/config/avr/avr.md
    [(set_attr "length" "2,2")])
  
 -(define_insn "*pushsi"
    [(set_attr "length" "2,2")])
  
 -(define_insn "*pushsi"
--  [(set (mem:SI (post_dec (reg:HI REG_SP)))
+-  [(set (mem:SI (post_dec:HI (reg:HI REG_SP)))
 -        (match_operand:SI 0 "reg_or_0_operand" "r,L"))]
 +(define_insn "*push<ALLS:mode>"
 -        (match_operand:SI 0 "reg_or_0_operand" "r,L"))]
 +(define_insn "*push<ALLS:mode>"
-+  [(set (mem:ALLS (post_dec (reg:HI REG_SP)))
-+        (match_operand:ALLS 0 "reg_or_0_operand" "r,L"))]
++   [(set (mem:ALLS (post_dec:HI (reg:HI REG_SP)))
++         (match_operand:ALLS 0 "reg_or_0_operand" "r,L"))]
    ""
    "@
        push %D0\;push %C0\;push %B0\;push %A0
    ""
    "@
        push %D0\;push %C0\;push %B0\;push %A0
-@@ -228,21 +237,21 @@
+@@ -226,21 +234,21 @@
  ;; are call-saved registers, and most of LD_REGS are call-used registers,
  ;; so this may still be a win for registers live across function calls.
  
  ;; are call-saved registers, and most of LD_REGS are call-used registers,
  ;; so this may still be a win for registers live across function calls.
  
@@ -689,7 +689,7 @@ diff -rupN gcc/config/avr/avr.md gcc/config/avr/avr.md
    "* return output_movqi (insn, operands, NULL);"
    [(set_attr "length" "1,1,5,5,1,1,4")
     (set_attr "cc" "none,none,clobber,clobber,none,none,clobber")])
    "* return output_movqi (insn, operands, NULL);"
    [(set_attr "length" "1,1,5,5,1,1,4")
     (set_attr "cc" "none,none,clobber,clobber,none,none,clobber")])
-@@ -274,17 +283,17 @@
+@@ -272,17 +280,17 @@
  ;;============================================================================
  ;; move word (16 bit)
  
  ;;============================================================================
  ;; move word (16 bit)
  
@@ -713,7 +713,7 @@ diff -rupN gcc/config/avr/avr.md gcc/config/avr/avr.md
      }
  }")
  
      }
  }")
  
-@@ -339,20 +348,20 @@
+@@ -337,20 +345,20 @@
    [(set_attr "length" "4")
     (set_attr "cc" "none")])
  
    [(set_attr "length" "4")
     (set_attr "cc" "none")])
  
@@ -743,7 +743,7 @@ diff -rupN gcc/config/avr/avr.md gcc/config/avr/avr.md
    "(AVR_HAVE_MOVW
      && REGNO (operands[0]) == REGNO (operands[2]) - 1
      && REGNO (operands[1]) == REGNO (operands[3]) - 1)"
    "(AVR_HAVE_MOVW
      && REGNO (operands[0]) == REGNO (operands[2]) - 1
      && REGNO (operands[1]) == REGNO (operands[3]) - 1)"
-@@ -363,10 +372,10 @@
+@@ -361,10 +369,10 @@
    })
  
  (define_peephole2 ; movw_r
    })
  
  (define_peephole2 ; movw_r
@@ -758,7 +758,7 @@ diff -rupN gcc/config/avr/avr.md gcc/config/avr/avr.md
    "(AVR_HAVE_MOVW
      && REGNO (operands[2]) == REGNO (operands[0]) - 1
      && REGNO (operands[3]) == REGNO (operands[1]) - 1)"
    "(AVR_HAVE_MOVW
      && REGNO (operands[2]) == REGNO (operands[0]) - 1
      && REGNO (operands[3]) == REGNO (operands[1]) - 1)"
-@@ -379,26 +388,24 @@
+@@ -377,26 +385,24 @@
  ;;==========================================================================
  ;; move double word (32 bit)
  
  ;;==========================================================================
  ;; move double word (32 bit)
  
@@ -793,7 +793,7 @@ diff -rupN gcc/config/avr/avr.md gcc/config/avr/avr.md
     (match_dup 2)]
    "(operands[1] != const0_rtx
      && operands[1] != constm1_rtx)"
     (match_dup 2)]
    "(operands[1] != const0_rtx
      && operands[1] != constm1_rtx)"
-@@ -408,8 +415,8 @@
+@@ -406,8 +412,8 @@
  
  ;; '*' because it is not used in rtl generation.
  (define_insn "*reload_insi"
  
  ;; '*' because it is not used in rtl generation.
  (define_insn "*reload_insi"
@@ -804,7 +804,7 @@ diff -rupN gcc/config/avr/avr.md gcc/config/avr/avr.md
     (clobber (match_operand:QI 2 "register_operand" "=&d"))]
    "reload_completed"
    "* return output_reload_insisf (insn, operands, NULL);"
     (clobber (match_operand:QI 2 "register_operand" "=&d"))]
    "reload_completed"
    "* return output_reload_insisf (insn, operands, NULL);"
-@@ -417,11 +424,11 @@
+@@ -415,11 +421,11 @@
     (set_attr "cc" "none")])
  
  
     (set_attr "cc" "none")])
  
  
@@ -821,7 +821,7 @@ diff -rupN gcc/config/avr/avr.md gcc/config/avr/avr.md
    "* return output_movsisf (insn, operands, NULL);"
    [(set_attr "length" "4,4,8,9,4,10")
     (set_attr "cc" "none,set_zn,clobber,clobber,none,clobber")])
    "* return output_movsisf (insn, operands, NULL);"
    [(set_attr "length" "4,4,8,9,4,10")
     (set_attr "cc" "none,set_zn,clobber,clobber,none,clobber")])
-@@ -958,23 +965,54 @@
+@@ -956,23 +962,54 @@
    [(set_attr "type" "xcall")
     (set_attr "cc" "clobber")])
  
    [(set_attr "type" "xcall")
     (set_attr "cc" "clobber")])
  
@@ -884,7 +884,7 @@ diff -rupN gcc/config/avr/avr.md gcc/config/avr/avr.md
        movw %0,r0
        clr r1"
    [(set_attr "length" "3")
        movw %0,r0
        clr r1"
    [(set_attr "length" "3")
-@@ -1028,6 +1066,50 @@
+@@ -1026,6 +1063,50 @@
    [(set_attr "type" "xcall")
     (set_attr "cc" "clobber")])
  
    [(set_attr "type" "xcall")
     (set_attr "cc" "clobber")])
  
@@ -935,7 +935,7 @@ diff -rupN gcc/config/avr/avr.md gcc/config/avr/avr.md
  ;; Operand 2 (reg:SI 18) not clobbered on the enhanced core.
  ;; All call-used registers clobbered otherwise - normal library call.
  (define_expand "mulsi3"
  ;; Operand 2 (reg:SI 18) not clobbered on the enhanced core.
  ;; All call-used registers clobbered otherwise - normal library call.
  (define_expand "mulsi3"
-@@ -1572,9 +1654,9 @@
+@@ -1574,9 +1655,9 @@
  ;;<< << << << << << << << << << << << << << << << << << << << << << << << << <<
  ;; arithmetic shift left
  
  ;;<< << << << << << << << << << << << << << << << << << << << << << << << << <<
  ;; arithmetic shift left
  
@@ -948,7 +948,7 @@ diff -rupN gcc/config/avr/avr.md gcc/config/avr/avr.md
                   (match_operand:QI 2 "general_operand"  "")))]
    ""
    "")
                   (match_operand:QI 2 "general_operand"  "")))]
    ""
    "")
-@@ -1608,27 +1690,27 @@
+@@ -1610,27 +1691,27 @@
     (set (match_dup 0) (and:QI (match_dup 0) (const_int -64)))]
    "")
  
     (set (match_dup 0) (and:QI (match_dup 0) (const_int -64)))]
    "")
  
@@ -985,7 +985,7 @@ diff -rupN gcc/config/avr/avr.md gcc/config/avr/avr.md
                   (match_operand:QI 2 "general_operand"  "r,L,P,O,K,n,Qm")))]
    ""
    "* return ashlsi3_out (insn, operands, NULL);"
                   (match_operand:QI 2 "general_operand"  "r,L,P,O,K,n,Qm")))]
    ""
    "* return ashlsi3_out (insn, operands, NULL);"
-@@ -1674,17 +1756,17 @@
+@@ -1676,17 +1757,17 @@
  
  (define_peephole2
    [(match_scratch:QI 3 "d")
  
  (define_peephole2
    [(match_scratch:QI 3 "d")
@@ -1009,7 +1009,7 @@ diff -rupN gcc/config/avr/avr.md gcc/config/avr/avr.md
                   (match_operand:QI 2 "const_int_operand" "L,P,O,K,n")))
     (clobber (match_scratch:QI 3 "=X,X,X,X,&d"))]
    "reload_completed"
                   (match_operand:QI 2 "const_int_operand" "L,P,O,K,n")))
     (clobber (match_scratch:QI 3 "=X,X,X,X,&d"))]
    "reload_completed"
-@@ -1694,17 +1776,17 @@
+@@ -1696,17 +1777,17 @@
  
  (define_peephole2
    [(match_scratch:QI 3 "d")
  
  (define_peephole2
    [(match_scratch:QI 3 "d")
@@ -1033,7 +1033,7 @@ diff -rupN gcc/config/avr/avr.md gcc/config/avr/avr.md
                   (match_operand:QI 2 "const_int_operand" "L,P,O,n")))
     (clobber (match_scratch:QI 3 "=X,X,X,&d"))]
    "reload_completed"
                   (match_operand:QI 2 "const_int_operand" "L,P,O,n")))
     (clobber (match_scratch:QI 3 "=X,X,X,&d"))]
    "reload_completed"
-@@ -1715,27 +1797,27 @@
+@@ -1717,27 +1798,27 @@
  ;; >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >>
  ;; arithmetic shift right
  
  ;; >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >>
  ;; arithmetic shift right
  
@@ -1070,7 +1070,7 @@ diff -rupN gcc/config/avr/avr.md gcc/config/avr/avr.md
                     (match_operand:QI 2 "general_operand"  "r,L,P,O,K,n,Qm")))]
    ""
    "* return ashrsi3_out (insn, operands, NULL);"
                     (match_operand:QI 2 "general_operand"  "r,L,P,O,K,n,Qm")))]
    ""
    "* return ashrsi3_out (insn, operands, NULL);"
-@@ -1746,17 +1828,17 @@
+@@ -1748,17 +1829,17 @@
  
  (define_peephole2
    [(match_scratch:QI 3 "d")
  
  (define_peephole2
    [(match_scratch:QI 3 "d")
@@ -1093,7 +1093,7 @@ diff -rupN gcc/config/avr/avr.md gcc/config/avr/avr.md
                     (match_operand:QI 2 "const_int_operand" "L,P,O,K,n")))
     (clobber (match_scratch:QI 3 "=X,X,X,X,&d"))]
    "reload_completed"
                     (match_operand:QI 2 "const_int_operand" "L,P,O,K,n")))
     (clobber (match_scratch:QI 3 "=X,X,X,X,&d"))]
    "reload_completed"
-@@ -1766,17 +1848,17 @@
+@@ -1768,17 +1849,17 @@
  
  (define_peephole2
    [(match_scratch:QI 3 "d")
  
  (define_peephole2
    [(match_scratch:QI 3 "d")
@@ -1116,7 +1116,7 @@ diff -rupN gcc/config/avr/avr.md gcc/config/avr/avr.md
                     (match_operand:QI 2 "const_int_operand" "L,P,O,n")))
     (clobber (match_scratch:QI 3 "=X,X,X,&d"))]
    "reload_completed"
                     (match_operand:QI 2 "const_int_operand" "L,P,O,n")))
     (clobber (match_scratch:QI 3 "=X,X,X,&d"))]
    "reload_completed"
-@@ -1787,54 +1869,54 @@
+@@ -1789,54 +1870,54 @@
  ;; >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >>
  ;; logical shift right
  
  ;; >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >>
  ;; logical shift right
  
@@ -1195,7 +1195,7 @@ diff -rupN gcc/config/avr/avr.md gcc/config/avr/avr.md
                     (match_operand:QI 2 "general_operand"  "r,L,P,O,K,n,Qm")))]
    ""
    "* return lshrhi3_out (insn, operands, NULL);"
                     (match_operand:QI 2 "general_operand"  "r,L,P,O,K,n,Qm")))]
    ""
    "* return lshrhi3_out (insn, operands, NULL);"
-@@ -1889,17 +1971,17 @@
+@@ -1891,17 +1972,17 @@
  
  (define_peephole2
    [(match_scratch:QI 3 "d")
  
  (define_peephole2
    [(match_scratch:QI 3 "d")
@@ -1219,7 +1219,7 @@ diff -rupN gcc/config/avr/avr.md gcc/config/avr/avr.md
                     (match_operand:QI 2 "const_int_operand" "L,P,O,K,n")))
     (clobber (match_scratch:QI 3 "=X,X,X,X,&d"))]
    "reload_completed"
                     (match_operand:QI 2 "const_int_operand" "L,P,O,K,n")))
     (clobber (match_scratch:QI 3 "=X,X,X,X,&d"))]
    "reload_completed"
-@@ -1917,9 +1999,9 @@
+@@ -1919,9 +2000,9 @@
              (clobber (match_dup 3))])]
    "")
  
              (clobber (match_dup 3))])]
    "")
  
@@ -1232,7 +1232,7 @@ diff -rupN gcc/config/avr/avr.md gcc/config/avr/avr.md
                     (match_operand:QI 2 "const_int_operand" "L,P,O,n")))
     (clobber (match_scratch:QI 3 "=X,X,X,&d"))]
    "reload_completed"
                     (match_operand:QI 2 "const_int_operand" "L,P,O,n")))
     (clobber (match_scratch:QI 3 "=X,X,X,&d"))]
    "reload_completed"
-@@ -2163,27 +2245,27 @@
+@@ -2171,27 +2252,27 @@
  ;; compare
  
  ; Optimize negated tests into reverse compare if overflow is undefined.
  ;; compare
  
  ; Optimize negated tests into reverse compare if overflow is undefined.
@@ -1266,7 +1266,7 @@ diff -rupN gcc/config/avr/avr.md gcc/config/avr/avr.md
                 (const_int 0)))]
    "(!flag_wrapv && !flag_trapv && flag_strict_overflow)"
    "cp __zero_reg__,%A0
                 (const_int 0)))]
    "(!flag_wrapv && !flag_trapv && flag_strict_overflow)"
    "cp __zero_reg__,%A0
-@@ -2193,10 +2275,10 @@
+@@ -2201,10 +2282,10 @@
  
  ;; Leave here the clobber used by the cmphi pattern for simplicity, even
  ;; though it is unused, because this pattern is synthesized by avr_reorg.
  
  ;; Leave here the clobber used by the cmphi pattern for simplicity, even
  ;; though it is unused, because this pattern is synthesized by avr_reorg.
@@ -1279,7 +1279,7 @@ diff -rupN gcc/config/avr/avr.md gcc/config/avr/avr.md
     (clobber (match_scratch:QI 1 "=X"))]
    ""
    "cp __zero_reg__,%A0
     (clobber (match_scratch:QI 1 "=X"))]
    ""
    "cp __zero_reg__,%A0
-@@ -2204,9 +2286,9 @@
+@@ -2212,9 +2293,9 @@
  [(set_attr "cc" "compare")
   (set_attr "length" "2")])
  
  [(set_attr "cc" "compare")
   (set_attr "length" "2")])
  
@@ -1291,7 +1291,7 @@ diff -rupN gcc/config/avr/avr.md gcc/config/avr/avr.md
                 (const_int 0)))]
    "(!flag_wrapv && !flag_trapv && flag_strict_overflow)"
    "cp __zero_reg__,%A0
                 (const_int 0)))]
    "(!flag_wrapv && !flag_trapv && flag_strict_overflow)"
    "cp __zero_reg__,%A0
-@@ -2216,10 +2298,10 @@
+@@ -2224,10 +2305,10 @@
    [(set_attr "cc" "compare")
     (set_attr "length" "4")])
  
    [(set_attr "cc" "compare")
     (set_attr "length" "4")])
  
@@ -1304,7 +1304,7 @@ diff -rupN gcc/config/avr/avr.md gcc/config/avr/avr.md
     (clobber (match_scratch:QI 1 "=X"))]
    ""
    "cp __zero_reg__,%A0
     (clobber (match_scratch:QI 1 "=X"))]
    ""
    "cp __zero_reg__,%A0
-@@ -2230,10 +2312,10 @@
+@@ -2238,10 +2319,10 @@
     (set_attr "length" "4")])
  
  
     (set_attr "length" "4")])
  
  
@@ -1318,7 +1318,7 @@ diff -rupN gcc/config/avr/avr.md gcc/config/avr/avr.md
    ""
    "@
        tst %0
    ""
    "@
        tst %0
-@@ -2252,10 +2334,10 @@
+@@ -2260,10 +2341,10 @@
    [(set_attr "cc" "compare")
     (set_attr "length" "1")])
  
    [(set_attr "cc" "compare")
     (set_attr "length" "1")])
  
@@ -1332,7 +1332,7 @@ diff -rupN gcc/config/avr/avr.md gcc/config/avr/avr.md
     (clobber (match_scratch:QI 2 "=X,X,X,X,&d,&d,&d"))]
    ""
    "*{
     (clobber (match_scratch:QI 2 "=X,X,X,X,&d,&d,&d"))]
    ""
    "*{
-@@ -2300,10 +2382,10 @@
+@@ -2308,10 +2389,10 @@
     (set_attr "length" "1,2,2,2,3,3,4")])
  
  
     (set_attr "length" "1,2,2,2,3,3,4")])
  
  
@@ -1346,9 +1346,9 @@ diff -rupN gcc/config/avr/avr.md gcc/config/avr/avr.md
     (clobber (match_scratch:QI 2 "=X,X,X,&d,&d,&d"))]
    ""
    "*{
     (clobber (match_scratch:QI 2 "=X,X,X,&d,&d,&d"))]
    ""
    "*{
-diff -rupN gcc/config/avr/avr-modes.def gcc/config/avr/avr-modes.def
---- gcc/config/avr/avr-modes.def       1969-12-31 18:00:00.000000000 -0600
-+++ gcc/config/avr/avr-modes.def       2010-09-21 14:31:30.000000000 -0500
+diff -Naurp gcc/config/avr/avr-modes.def gcc/config/avr/avr-modes.def
+--- gcc/config/avr/avr-modes.def       1970-01-01 05:30:00.000000000 +0530
++++ gcc/config/avr/avr-modes.def       2011-10-27 16:55:55.000000000 +0530
 @@ -0,0 +1,34 @@
 +/* Definitions of target machine for GCC for AVR.
 +   Copyright (C) 2009 Free Software Foundation, Inc.
 @@ -0,0 +1,34 @@
 +/* Definitions of target machine for GCC for AVR.
 +   Copyright (C) 2009 Free Software Foundation, Inc.
@@ -1384,10 +1384,10 @@ diff -rupN gcc/config/avr/avr-modes.def gcc/config/avr/avr-modes.def
 +
 +ADJUST_IBIT (TA, 63);
 +ADJUST_FBIT (TA, 64);
 +
 +ADJUST_IBIT (TA, 63);
 +ADJUST_FBIT (TA, 64);
-diff -rupN gcc/config/avr/avr-protos.h gcc/config/avr/avr-protos.h
---- gcc/config/avr/avr-protos.h        2010-01-08 17:01:45.000000000 -0600
-+++ gcc/config/avr/avr-protos.h        2010-09-21 14:31:30.000000000 -0500
-@@ -84,6 +84,8 @@ extern const char *lshrhi3_out (rtx insn
+diff -Naurp gcc/config/avr/avr-protos.h gcc/config/avr/avr-protos.h
+--- gcc/config/avr/avr-protos.h        2011-10-27 16:45:17.000000000 +0530
++++ gcc/config/avr/avr-protos.h        2011-10-27 16:55:55.000000000 +0530
+@@ -75,6 +75,8 @@ extern const char *lshrhi3_out (rtx insn
  extern const char *lshrsi3_out (rtx insn, rtx operands[], int *len);
  extern bool avr_rotate_bytes (rtx operands[]);
  
  extern const char *lshrsi3_out (rtx insn, rtx operands[], int *len);
  extern bool avr_rotate_bytes (rtx operands[]);
  
@@ -1396,9 +1396,9 @@ diff -rupN gcc/config/avr/avr-protos.h gcc/config/avr/avr-protos.h
  extern void expand_prologue (void);
  extern void expand_epilogue (void);
  extern int avr_epilogue_uses (int regno);
  extern void expand_prologue (void);
  extern void expand_epilogue (void);
  extern int avr_epilogue_uses (int regno);
-diff -rupN gcc/config/avr/libgcc-fixed.S gcc/config/avr/libgcc-fixed.S
---- gcc/config/avr/libgcc-fixed.S      1969-12-31 18:00:00.000000000 -0600
-+++ gcc/config/avr/libgcc-fixed.S      2010-09-21 14:31:30.000000000 -0500
+diff -Naurp gcc/config/avr/libgcc-fixed.S gcc/config/avr/libgcc-fixed.S
+--- gcc/config/avr/libgcc-fixed.S      1970-01-01 05:30:00.000000000 +0530
++++ gcc/config/avr/libgcc-fixed.S      2011-10-27 16:55:55.000000000 +0530
 @@ -0,0 +1,1123 @@
 +/*  -*- Mode: Asm -*-  */
 +/* Copyright (C) 2009
 @@ -0,0 +1,1123 @@
 +/*  -*- Mode: Asm -*-  */
 +/* Copyright (C) 2009
@@ -2523,10 +2523,10 @@ diff -rupN gcc/config/avr/libgcc-fixed.S gcc/config/avr/libgcc-fixed.S
 +#undef        r_divHL
 +#undef        r_divHH
 +#undef        r_cnt
 +#undef        r_divHL
 +#undef        r_divHH
 +#undef        r_cnt
-diff -rupN gcc/config/avr/libgcc.S gcc/config/avr/libgcc.S
---- gcc/config/avr/libgcc.S    2009-05-23 02:16:07.000000000 -0500
-+++ gcc/config/avr/libgcc.S    2010-09-21 14:31:30.000000000 -0500
-@@ -162,6 +162,23 @@ __mulhi3_exit:
+diff -Naurp gcc/config/avr/libgcc.S gcc/config/avr/libgcc.S
+--- gcc/config/avr/libgcc.S    2011-10-27 16:45:17.000000000 +0530
++++ gcc/config/avr/libgcc.S    2011-10-27 16:55:55.000000000 +0530
+@@ -163,6 +163,23 @@ __mulhi3_exit:
        .global __mulhisi3
        .func   __mulhisi3
  __mulhisi3:
        .global __mulhisi3
        .func   __mulhisi3
  __mulhisi3:
@@ -2550,7 +2550,7 @@ diff -rupN gcc/config/avr/libgcc.S gcc/config/avr/libgcc.S
        mov_l   r18, r24
        mov_h   r19, r25
        clr     r24
        mov_l   r18, r24
        mov_h   r19, r25
        clr     r24
-@@ -173,6 +190,7 @@ __mulhisi3:
+@@ -174,6 +191,7 @@ __mulhisi3:
        dec     r20
        mov     r21, r20
        rjmp    __mulsi3
        dec     r20
        mov     r21, r20
        rjmp    __mulsi3
@@ -2558,7 +2558,7 @@ diff -rupN gcc/config/avr/libgcc.S gcc/config/avr/libgcc.S
        .endfunc
  #endif /* defined (L_mulhisi3) */
  
        .endfunc
  #endif /* defined (L_mulhisi3) */
  
-@@ -180,13 +198,31 @@ __mulhisi3:
+@@ -181,13 +199,31 @@ __mulhisi3:
        .global __umulhisi3
        .func   __umulhisi3
  __umulhisi3:
        .global __umulhisi3
        .func   __umulhisi3
  __umulhisi3:
@@ -2592,7 +2592,7 @@ diff -rupN gcc/config/avr/libgcc.S gcc/config/avr/libgcc.S
        .endfunc
  #endif /* defined (L_umulhisi3) */
  
        .endfunc
  #endif /* defined (L_umulhisi3) */
  
-@@ -199,7 +235,6 @@ __umulhisi3:
+@@ -200,7 +236,6 @@ __umulhisi3:
  #define       r_arg1HL r24
  #define       r_arg1HH r25            /* multiplier High */
  
  #define       r_arg1HL r24
  #define       r_arg1HH r25            /* multiplier High */
  
@@ -2600,7 +2600,7 @@ diff -rupN gcc/config/avr/libgcc.S gcc/config/avr/libgcc.S
  #define       r_arg2L  r18            /* multiplicand Low */
  #define       r_arg2H  r19    
  #define       r_arg2HL r20
  #define       r_arg2L  r18            /* multiplicand Low */
  #define       r_arg2H  r19    
  #define       r_arg2HL r20
-@@ -555,6 +590,23 @@ __divmodsi4_neg1:
+@@ -556,6 +591,23 @@ __divmodsi4_neg1:
        .endfunc
  #endif /* defined (L_divmodsi4) */
  
        .endfunc
  #endif /* defined (L_divmodsi4) */
  
@@ -2624,14 +2624,14 @@ diff -rupN gcc/config/avr/libgcc.S gcc/config/avr/libgcc.S
  /**********************************
   * This is a prologue subroutine
   **********************************/
  /**********************************
   * This is a prologue subroutine
   **********************************/
-@@ -897,3 +949,4 @@ __tablejump_elpm__:
+@@ -899,3 +951,4 @@ __tablejump_elpm__:
        .endfunc
  #endif /* defined (L_tablejump_elpm) */
  
 +#include "libgcc-fixed.S"
        .endfunc
  #endif /* defined (L_tablejump_elpm) */
  
 +#include "libgcc-fixed.S"
-diff -rupN gcc/config/avr/t-avr gcc/config/avr/t-avr
---- gcc/config/avr/t-avr       2009-12-24 14:32:38.000000000 -0600
-+++ gcc/config/avr/t-avr       2010-09-21 14:31:30.000000000 -0500
+diff -Naurp gcc/config/avr/t-avr gcc/config/avr/t-avr
+--- gcc/config/avr/t-avr       2011-10-27 16:45:17.000000000 +0530
++++ gcc/config/avr/t-avr       2011-10-27 16:55:55.000000000 +0530
 @@ -36,6 +36,8 @@ LIB1ASMSRC = avr/libgcc.S
  LIB1ASMFUNCS = \
        _mulqi3 \
 @@ -36,6 +36,8 @@ LIB1ASMSRC = avr/libgcc.S
  LIB1ASMFUNCS = \
        _mulqi3 \
@@ -2681,10 +2681,10 @@ diff -rupN gcc/config/avr/t-avr gcc/config/avr/t-avr
  # We do not have the DF type.
  # Most of the C functions in libgcc2 use almost all registers,
  # so use -mcall-prologues for smaller code size.
  # We do not have the DF type.
  # Most of the C functions in libgcc2 use almost all registers,
  # so use -mcall-prologues for smaller code size.
-diff -rupN gcc/cse.c gcc/cse.c
---- gcc/cse.c  2010-01-12 14:25:10.000000000 -0600
-+++ gcc/cse.c  2010-09-21 14:31:30.000000000 -0500
-@@ -3703,9 +3703,10 @@ fold_rtx (rtx x, rtx insn)
+diff -Naurp gcc/cse.c gcc/cse.c
+--- gcc/cse.c  2011-10-27 16:45:17.000000000 +0530
++++ gcc/cse.c  2011-10-27 16:55:55.000000000 +0530
+@@ -3702,9 +3702,10 @@ fold_rtx (rtx x, rtx insn)
                          && exact_log2 (- INTVAL (const_arg1)) >= 0)))
                break;
  
                          && exact_log2 (- INTVAL (const_arg1)) >= 0)))
                break;
  
@@ -2697,10 +2697,10 @@ diff -rupN gcc/cse.c gcc/cse.c
                  break;
  
              if (is_shift
                  break;
  
              if (is_shift
-diff -rupN gcc/dwarf2out.c gcc/dwarf2out.c
---- gcc/dwarf2out.c    2010-07-01 07:31:19.000000000 -0500
-+++ gcc/dwarf2out.c    2010-09-21 14:35:35.000000000 -0500
-@@ -12017,6 +12017,12 @@ base_type_die (tree type)
+diff -Naurp gcc/dwarf2out.c gcc/dwarf2out.c
+--- gcc/dwarf2out.c    2011-10-27 16:45:17.000000000 +0530
++++ gcc/dwarf2out.c    2011-10-27 16:55:55.000000000 +0530
+@@ -12790,6 +12790,12 @@ base_type_die (tree type)
  
    add_AT_unsigned (base_type_result, DW_AT_byte_size,
                   int_size_in_bytes (type));
  
    add_AT_unsigned (base_type_result, DW_AT_byte_size,
                   int_size_in_bytes (type));
@@ -2713,7 +2713,7 @@ diff -rupN gcc/dwarf2out.c gcc/dwarf2out.c
    add_AT_unsigned (base_type_result, DW_AT_encoding, encoding);
  
    return base_type_result;
    add_AT_unsigned (base_type_result, DW_AT_encoding, encoding);
  
    return base_type_result;
-@@ -15482,7 +15488,11 @@ add_const_value_attribute (dw_die_ref di
+@@ -16561,7 +16567,11 @@ add_const_value_attribute (dw_die_ref di
  
      case HIGH:
      case CONST_FIXED:
  
      case HIGH:
      case CONST_FIXED:
@@ -2726,10 +2726,10 @@ diff -rupN gcc/dwarf2out.c gcc/dwarf2out.c
  
      case MEM:
        if (GET_CODE (XEXP (rtl, 0)) == CONST_STRING
  
      case MEM:
        if (GET_CODE (XEXP (rtl, 0)) == CONST_STRING
-diff -rupN gcc/fold-const.c gcc/fold-const.c
---- gcc/fold-const.c   2010-04-06 05:36:57.000000000 -0500
-+++ gcc/fold-const.c   2010-09-21 14:31:30.000000000 -0500
-@@ -12305,6 +12305,11 @@ fold_binary_loc (location_t loc,
+diff -Naurp gcc/fold-const.c gcc/fold-const.c
+--- gcc/fold-const.c   2011-10-27 16:45:17.000000000 +0530
++++ gcc/fold-const.c   2011-10-27 16:55:55.000000000 +0530
+@@ -11782,6 +11782,11 @@ fold_binary_loc (location_t loc,
        if (TREE_CODE (arg1) == INTEGER_CST && tree_int_cst_sgn (arg1) < 0)
        return NULL_TREE;
  
        if (TREE_CODE (arg1) == INTEGER_CST && tree_int_cst_sgn (arg1) < 0)
        return NULL_TREE;
  
@@ -2741,10 +2741,10 @@ diff -rupN gcc/fold-const.c gcc/fold-const.c
        /* Turn (a OP c1) OP c2 into a OP (c1+c2).  */
        if (TREE_CODE (op0) == code && host_integerp (arg1, false)
          && TREE_INT_CST_LOW (arg1) < TYPE_PRECISION (type)
        /* Turn (a OP c1) OP c2 into a OP (c1+c2).  */
        if (TREE_CODE (op0) == code && host_integerp (arg1, false)
          && TREE_INT_CST_LOW (arg1) < TYPE_PRECISION (type)
-diff -rupN gcc/varasm.c gcc/varasm.c
---- gcc/varasm.c       2010-03-27 06:56:30.000000000 -0500
-+++ gcc/varasm.c       2010-09-21 14:31:30.000000000 -0500
-@@ -2709,7 +2709,7 @@ assemble_integer (rtx x, unsigned int si
+diff -Naurp gcc/varasm.c gcc/varasm.c
+--- gcc/varasm.c       2011-10-27 16:45:17.000000000 +0530
++++ gcc/varasm.c       2011-10-27 16:55:55.000000000 +0530
+@@ -2504,7 +2504,7 @@ assemble_integer (rtx x, unsigned int si
        else
        mclass = MODE_INT;
  
        else
        mclass = MODE_INT;
  
similarity index 74%
rename from 301-gcc-4.5.1-xmega-v14.patch
rename to 301-gcc-xmega-v14.patch
index 9d0deb86b0471a02c4a1baa66808f4def7c7a696..78095e5ba2268873156a1389d88802621a466def 100644 (file)
@@ -1,7 +1,7 @@
 diff -Naurp gcc/config/avr/avr.c gcc/config/avr/avr.c
 diff -Naurp gcc/config/avr/avr.c gcc/config/avr/avr.c
---- gcc/config/avr/avr.c       2011-09-02 11:40:55.000000000 +0300
-+++ gcc/config/avr/avr.c       2011-09-02 11:40:01.000000000 +0300
-@@ -52,6 +52,7 @@
+--- gcc/config/avr/avr.c       2011-10-27 16:55:55.000000000 +0530
++++ gcc/config/avr/avr.c       2011-10-27 17:00:24.000000000 +0530
+@@ -52,6 +52,7 @@ static void avr_option_override (void);
  static int avr_naked_function_p (tree);
  static int interrupt_function_p (tree);
  static int signal_function_p (tree);
  static int avr_naked_function_p (tree);
  static int interrupt_function_p (tree);
  static int signal_function_p (tree);
@@ -9,7 +9,7 @@ diff -Naurp gcc/config/avr/avr.c gcc/config/avr/avr.c
  static int avr_OS_task_function_p (tree);
  static int avr_OS_main_function_p (tree);
  static int avr_regs_to_save (HARD_REG_SET *);
  static int avr_OS_task_function_p (tree);
  static int avr_OS_main_function_p (tree);
  static int avr_regs_to_save (HARD_REG_SET *);
-@@ -122,6 +123,7 @@ static const struct attribute_spec avr_a
+@@ -131,6 +132,7 @@ static const struct attribute_spec avr_a
    { "progmem",   0, 0, false, false, false,  avr_handle_progmem_attribute },
    { "signal",    0, 0, true,  false, false,  avr_handle_fndecl_attribute },
    { "interrupt", 0, 0, true,  false, false,  avr_handle_fndecl_attribute },
    { "progmem",   0, 0, false, false, false,  avr_handle_progmem_attribute },
    { "signal",    0, 0, true,  false, false,  avr_handle_fndecl_attribute },
    { "interrupt", 0, 0, true,  false, false,  avr_handle_fndecl_attribute },
@@ -17,7 +17,7 @@ diff -Naurp gcc/config/avr/avr.c gcc/config/avr/avr.c
    { "naked",     0, 0, false, true,  true,   avr_handle_fntype_attribute },
    { "OS_task",   0, 0, false, true,  true,   avr_handle_fntype_attribute },
    { "OS_main",   0, 0, false, true,  true,   avr_handle_fntype_attribute },
    { "naked",     0, 0, false, true,  true,   avr_handle_fntype_attribute },
    { "OS_task",   0, 0, false, true,  true,   avr_handle_fntype_attribute },
    { "OS_main",   0, 0, false, true,  true,   avr_handle_fntype_attribute },
-@@ -314,6 +316,21 @@ signal_function_p (tree func)
+@@ -391,6 +393,21 @@ signal_function_p (tree func)
    return a != NULL_TREE;
  }
  
    return a != NULL_TREE;
  }
  
@@ -39,7 +39,7 @@ diff -Naurp gcc/config/avr/avr.c gcc/config/avr/avr.c
  /* Return nonzero if FUNC is a OS_task function.  */
  
  static int
  /* Return nonzero if FUNC is a OS_task function.  */
  
  static int
-@@ -543,6 +560,7 @@ expand_prologue (void)
+@@ -655,6 +672,7 @@ expand_prologue (void)
    cfun->machine->is_naked = avr_naked_function_p (current_function_decl);
    cfun->machine->is_interrupt = interrupt_function_p (current_function_decl);
    cfun->machine->is_signal = signal_function_p (current_function_decl);
    cfun->machine->is_naked = avr_naked_function_p (current_function_decl);
    cfun->machine->is_interrupt = interrupt_function_p (current_function_decl);
    cfun->machine->is_signal = signal_function_p (current_function_decl);
@@ -47,122 +47,84 @@ diff -Naurp gcc/config/avr/avr.c gcc/config/avr/avr.c
    cfun->machine->is_OS_task = avr_OS_task_function_p (current_function_decl);
    cfun->machine->is_OS_main = avr_OS_main_function_p (current_function_decl);
    cfun->machine->stack_usage = 0;
    cfun->machine->is_OS_task = avr_OS_task_function_p (current_function_decl);
    cfun->machine->is_OS_main = avr_OS_main_function_p (current_function_decl);
    cfun->machine->stack_usage = 0;
-@@ -583,18 +601,49 @@ expand_prologue (void)
+@@ -688,9 +706,40 @@ expand_prologue (void)
  
        /* Push SREG.  */
  
        /* Push SREG.  */
-       insn = emit_move_insn (tmp_reg_rtx, 
--                             gen_rtx_MEM (QImode, GEN_INT (SREG_ADDR)));
-+                             gen_rtx_MEM (QImode, GEN_INT (AVR_SREG_ADDR)));
-       RTX_FRAME_RELATED_P (insn) = 1;
-       insn = emit_move_insn (pushbyte, tmp_reg_rtx);
-       RTX_FRAME_RELATED_P (insn) = 1;
-       cfun->machine->stack_usage++;
+       /* ??? There's no dwarf2 column reserved for SREG.  */
+-      emit_move_insn (tmp_reg_rtx, gen_rtx_MEM (QImode, GEN_INT (SREG_ADDR)));
++      emit_move_insn (tmp_reg_rtx, gen_rtx_MEM (QImode, GEN_INT (AVR_SREG_ADDR)));
+       emit_push_byte (TMP_REGNO, false);
  
 +      /* Push RAMPD, RAMPX, RAMPY. */
  
 +      /* Push RAMPD, RAMPX, RAMPY. */
-+      if (AVR_HAVE_RAMPX_Y_D)
-+        {
-+          /* Push RAMPD. */
-+          insn = emit_move_insn (tmp_reg_rtx, 
-+                                 gen_rtx_MEM (QImode, GEN_INT (AVR_RAMPD_ADDR)));
-+          RTX_FRAME_RELATED_P (insn) = 1;
-+          insn = emit_move_insn (pushbyte, tmp_reg_rtx);
-+          RTX_FRAME_RELATED_P (insn) = 1;
++      /*
++       Clear RAMP? registers if used for data access in the interrupt/signal
++       context.  Do this after the zero register has been explictly cleared.
++      */
++       if (AVR_HAVE_RAMPX_Y_D)
++         {
++       /* Push RAMPD. */
++          emit_move_insn (tmp_reg_rtx,
++                          gen_rtx_MEM (QImode, GEN_INT (AVR_RAMPD_ADDR)));
++          emit_push_byte (TMP_REGNO, false);
 +
 +          /* Push RAMPX. */
 +          if (TEST_HARD_REG_BIT (set, REG_X) && TEST_HARD_REG_BIT (set, REG_X + 1))
 +            {
 +
 +          /* Push RAMPX. */
 +          if (TEST_HARD_REG_BIT (set, REG_X) && TEST_HARD_REG_BIT (set, REG_X + 1))
 +            {
-+              insn = emit_move_insn (tmp_reg_rtx, 
-+                                     gen_rtx_MEM (QImode, GEN_INT (AVR_RAMPX_ADDR)));
-+              RTX_FRAME_RELATED_P (insn) = 1;
-+              insn = emit_move_insn (pushbyte, tmp_reg_rtx);
-+              RTX_FRAME_RELATED_P (insn) = 1;
++              emit_move_insn (tmp_reg_rtx,
++                              gen_rtx_MEM (QImode, GEN_INT (AVR_RAMPX_ADDR)));
++              emit_push_byte (TMP_REGNO, false);
 +            }
 +
 +          /* Push RAMPY. */
 +          if (TEST_HARD_REG_BIT (set, REG_Y) && TEST_HARD_REG_BIT (set, REG_Y + 1))
 +            {
 +            }
 +
 +          /* Push RAMPY. */
 +          if (TEST_HARD_REG_BIT (set, REG_Y) && TEST_HARD_REG_BIT (set, REG_Y + 1))
 +            {
-+              insn = emit_move_insn (tmp_reg_rtx, 
-+                                     gen_rtx_MEM (QImode, GEN_INT (AVR_RAMPY_ADDR)));
-+      RTX_FRAME_RELATED_P (insn) = 1;
-+      insn = emit_move_insn (pushbyte, tmp_reg_rtx);
-+      RTX_FRAME_RELATED_P (insn) = 1;
++              emit_move_insn (tmp_reg_rtx,
++                              gen_rtx_MEM (QImode, GEN_INT (AVR_RAMPY_ADDR)));
++              emit_push_byte (TMP_REGNO, false);
 +            }
 +            }
-+        }
++
++         }
++
 +
        /* Push RAMPZ.  */
 +
        /* Push RAMPZ.  */
-       if(AVR_HAVE_RAMPZ 
-          && (TEST_HARD_REG_BIT (set, REG_Z) && TEST_HARD_REG_BIT (set, REG_Z + 1)))
+       /* ??? There's no dwarf2 column reserved for RAMPZ.  */
+       if (AVR_HAVE_RAMPZ 
+@@ -698,7 +747,7 @@ expand_prologue (void)
+           && TEST_HARD_REG_BIT (set, REG_Z + 1))
          {
          {
-           insn = emit_move_insn (tmp_reg_rtx, 
--                                 gen_rtx_MEM (QImode, GEN_INT (RAMPZ_ADDR)));
-+                                 gen_rtx_MEM (QImode, GEN_INT (AVR_RAMPZ_ADDR)));
-           RTX_FRAME_RELATED_P (insn) = 1;
-           insn = emit_move_insn (pushbyte, tmp_reg_rtx);
-           RTX_FRAME_RELATED_P (insn) = 1;
-@@ -607,6 +656,41 @@ expand_prologue (void)
+           emit_move_insn (tmp_reg_rtx,
+-                        gen_rtx_MEM (QImode, GEN_INT (RAMPZ_ADDR)));
++                        gen_rtx_MEM (QImode, GEN_INT (AVR_RAMPZ_ADDR)));
+         emit_push_byte (TMP_REGNO, false);
+         }
+       
+@@ -707,6 +756,8 @@ expand_prologue (void)
  
        /* Prevent any attempt to delete the setting of ZERO_REG!  */
        emit_use (zero_reg_rtx);
 +      
  
        /* Prevent any attempt to delete the setting of ZERO_REG!  */
        emit_use (zero_reg_rtx);
 +      
-+
-+       /*
-+       Clear RAMP? registers if used for data access in the interrupt/signal
-+       context.  Do this after the zero register has been explictly cleared.
-+       */
-+       if (AVR_HAVE_RAMPX_Y_D)
-+         {
-+           /* Set RAMPD to 0. */
-+           insn = emit_move_insn (gen_rtx_MEM (QImode, GEN_INT (AVR_RAMPD_ADDR)), const0_rtx);
-+           RTX_FRAME_RELATED_P (insn) = 1;
-+
-+           if (TEST_HARD_REG_BIT (set, REG_X) && TEST_HARD_REG_BIT (set, REG_X + 1))
-+             {
-+               /* Set RAMPX to 0. */
-+               insn = emit_move_insn (gen_rtx_MEM (QImode, GEN_INT (AVR_RAMPX_ADDR)), const0_rtx);
-+               RTX_FRAME_RELATED_P (insn) = 1;
-+             }
-+
-+           if (TEST_HARD_REG_BIT (set, REG_Y) && TEST_HARD_REG_BIT (set, REG_Y + 1))
-+             {
-+               /* Set RAMPY to 0. */
-+               insn = emit_move_insn (gen_rtx_MEM (QImode, GEN_INT (AVR_RAMPY_ADDR)), const0_rtx);
-+               RTX_FRAME_RELATED_P (insn) = 1;
-+             }
-+
-+           if(AVR_HAVE_RAMPZ
-+              && (TEST_HARD_REG_BIT (set, REG_Z) && TEST_HARD_REG_BIT (set, REG_Z + 1)))
-+             {
-+               /* Set RAMPZ to 0. */
-+               insn = emit_move_insn (gen_rtx_MEM (QImode, GEN_INT (AVR_RAMPZ_ADDR)), const0_rtx);
-+               RTX_FRAME_RELATED_P (insn) = 1;
-+             }
-+         }
 +
      }
    if (minimize && (frame_pointer_needed 
                   || (AVR_2_BYTE_PC && live_seq > 6)
 +
      }
    if (minimize && (frame_pointer_needed 
                   || (AVR_2_BYTE_PC && live_seq > 6)
-@@ -698,16 +782,16 @@ expand_prologue (void)
-                 insn = emit_move_insn (stack_pointer_rtx, frame_pointer_rtx);
-                 RTX_FRAME_RELATED_P (insn) = 1;
+@@ -829,14 +880,14 @@ expand_prologue (void)
+               {
+                 emit_move_insn (stack_pointer_rtx, frame_pointer_rtx);
                }
 -            else if (TARGET_NO_INTERRUPTS 
                }
 -            else if (TARGET_NO_INTERRUPTS 
--                     || cfun->machine->is_signal
--                     || cfun->machine->is_OS_main)
-+            else if ((!AVR_XMEGA && TARGET_NO_INTERRUPTS)
-+                     || (!AVR_XMEGA && cfun->machine->is_signal)
-+                     || (!AVR_XMEGA && cfun->machine->is_OS_main))
++            else if ((!AVR_XMEGA && TARGET_NO_INTERRUPTS )
+                      || cfun->machine->is_signal
+                      || cfun->machine->is_OS_main)
                {
                {
-                 insn = 
-                   emit_insn (gen_movhi_sp_r_irq_off (stack_pointer_rtx, 
-                                                      frame_pointer_rtx));
-                 RTX_FRAME_RELATED_P (insn) = 1;               
+                 emit_insn (gen_movhi_sp_r_irq_off (stack_pointer_rtx, 
+                                                    frame_pointer_rtx));
                }
 -            else if (cfun->machine->is_interrupt)
 +            else if (!AVR_XMEGA && cfun->machine->is_interrupt)
                {
                }
 -            else if (cfun->machine->is_interrupt)
 +            else if (!AVR_XMEGA && cfun->machine->is_interrupt)
                {
-                 insn = emit_insn (gen_movhi_sp_r_irq_on (stack_pointer_rtx, 
-                                                          frame_pointer_rtx));
-@@ -878,13 +962,13 @@ expand_epilogue (void)
+                 emit_insn (gen_movhi_sp_r_irq_on (stack_pointer_rtx, 
+                                                   frame_pointer_rtx));
+@@ -1018,13 +1069,13 @@ expand_epilogue (void)
                {
                  emit_move_insn (stack_pointer_rtx, frame_pointer_rtx);
                }
                {
                  emit_move_insn (stack_pointer_rtx, frame_pointer_rtx);
                }
@@ -179,49 +141,48 @@ diff -Naurp gcc/config/avr/avr.c gcc/config/avr/avr.c
                {
                  emit_insn (gen_movhi_sp_r_irq_on (stack_pointer_rtx, 
                                                    frame_pointer_rtx));
                {
                  emit_insn (gen_movhi_sp_r_irq_on (stack_pointer_rtx, 
                                                    frame_pointer_rtx));
-@@ -937,14 +1021,39 @@ expand_epilogue (void)
-              && (TEST_HARD_REG_BIT (set, REG_Z) && TEST_HARD_REG_BIT (set, REG_Z + 1)))
+@@ -1082,14 +1133,38 @@ expand_epilogue (void)
+             && TEST_HARD_REG_BIT (set, REG_Z + 1))
              {
              {
-             emit_insn (gen_popqi (tmp_reg_rtx));
--            emit_move_insn (gen_rtx_MEM(QImode, GEN_INT(RAMPZ_ADDR)), 
-+            emit_move_insn (gen_rtx_MEM(QImode, GEN_INT(AVR_RAMPZ_ADDR)), 
-+                            tmp_reg_rtx);
-+          }
-+
-+          /* Restore RAMPY, RAMPX, RAMPD using tmp reg as scratch. */
-+          if (AVR_HAVE_RAMPX_Y_D)
-+            {
-+              /* Pop RAMPY. */
-+              if (TEST_HARD_REG_BIT (set, REG_Y) && TEST_HARD_REG_BIT (set, REG_Y + 1))
-+                {
-+                  emit_insn (gen_popqi (tmp_reg_rtx));
-+                  emit_move_insn (gen_rtx_MEM (QImode, GEN_INT (AVR_RAMPY_ADDR)),
-+                                  tmp_reg_rtx);
-+                }
-+
-+              /* Pop RAMPX. */
-+              if (TEST_HARD_REG_BIT (set, REG_X) && TEST_HARD_REG_BIT (set, REG_X + 1))
-+                {
-+                  emit_insn (gen_popqi (tmp_reg_rtx));
-+                  emit_move_insn (gen_rtx_MEM (QImode, GEN_INT (AVR_RAMPX_ADDR)),
-+                                  tmp_reg_rtx);
-+                }
-+
-+              /* Pop RAMPD. */
-+              emit_insn (gen_popqi (tmp_reg_rtx));
-+              emit_move_insn (gen_rtx_MEM (QImode, GEN_INT (AVR_RAMPD_ADDR)),
+             emit_pop_byte (TMP_REGNO);
+-            emit_move_insn (gen_rtx_MEM (QImode, GEN_INT (RAMPZ_ADDR)), 
++            emit_move_insn (gen_rtx_MEM (QImode, GEN_INT (AVR_RAMPZ_ADDR)), 
                              tmp_reg_rtx);
            }
                              tmp_reg_rtx);
            }
++          /* Restore RAMPY, RAMPX, RAMPD using tmp reg as scratch. */
++           if (AVR_HAVE_RAMPX_Y_D)
++             {
++               /* Pop RAMPY. */
++               if (TEST_HARD_REG_BIT (set, REG_Y) && TEST_HARD_REG_BIT (set, REG_Y + 1))
++                 {
++                   emit_insn (gen_popqi (tmp_reg_rtx));
++                   emit_move_insn (gen_rtx_MEM (QImode, GEN_INT (AVR_RAMPY_ADDR)),
++                                   tmp_reg_rtx);
++                 }
++ 
++               /* Pop RAMPX. */
++               if (TEST_HARD_REG_BIT (set, REG_X) && TEST_HARD_REG_BIT (set, REG_X + 1))
++                 {
++                   emit_insn (gen_popqi (tmp_reg_rtx));
++                   emit_move_insn (gen_rtx_MEM (QImode, GEN_INT (AVR_RAMPX_ADDR)),
++                                   tmp_reg_rtx);
++                 }
++              /* Pop RAMPD. */
++                   emit_insn (gen_popqi (tmp_reg_rtx));
++                  emit_move_insn (gen_rtx_MEM (QImode, GEN_INT (AVR_RAMPD_ADDR)),
++                                 tmp_reg_rtx);
++
++              } 
  
            /* Restore SREG using tmp reg as scratch.  */
  
            /* Restore SREG using tmp reg as scratch.  */
-           emit_insn (gen_popqi (tmp_reg_rtx));
+           emit_pop_byte (TMP_REGNO);
        
        
--          emit_move_insn (gen_rtx_MEM(QImode, GEN_INT(SREG_ADDR)), 
-+          emit_move_insn (gen_rtx_MEM(QImode, GEN_INT(AVR_SREG_ADDR)), 
+-          emit_move_insn (gen_rtx_MEM (QImode, GEN_INT (SREG_ADDR)), 
++          emit_move_insn (gen_rtx_MEM (QImode, GEN_INT (AVR_SREG_ADDR)), 
                          tmp_reg_rtx);
  
            /* Restore tmp REG.  */
                          tmp_reg_rtx);
  
            /* Restore tmp REG.  */
-@@ -1722,9 +1831,17 @@ output_movhi (rtx insn, rtx operands[], 
+@@ -1880,9 +1955,17 @@ output_movhi (rtx insn, rtx operands[], 
                return *l = 1, AS2 (out,__SP_L__,%A1);
                /* Use simple load of stack pointer if no interrupts are 
                 used.  */
                return *l = 1, AS2 (out,__SP_L__,%A1);
                /* Use simple load of stack pointer if no interrupts are 
                 used.  */
@@ -240,7 +201,7 @@ diff -Naurp gcc/config/avr/avr.c gcc/config/avr/avr.c
              *l = 5;
              return (AS2 (in,__tmp_reg__,__SREG__)  CR_TAB
                      "cli"                          CR_TAB
              *l = 5;
              return (AS2 (in,__tmp_reg__,__SREG__)  CR_TAB
                      "cli"                          CR_TAB
-@@ -1732,6 +1849,7 @@ output_movhi (rtx insn, rtx operands[], 
+@@ -1890,6 +1973,7 @@ output_movhi (rtx insn, rtx operands[], 
                      AS2 (out,__SREG__,__tmp_reg__) CR_TAB
                      AS2 (out,__SP_L__,%A1));
            }
                      AS2 (out,__SREG__,__tmp_reg__) CR_TAB
                      AS2 (out,__SP_L__,%A1));
            }
@@ -248,7 +209,7 @@ diff -Naurp gcc/config/avr/avr.c gcc/config/avr/avr.c
          else if (test_hard_reg_class (STACK_REG, src))
            {
              *l = 2;   
          else if (test_hard_reg_class (STACK_REG, src))
            {
              *l = 2;   
-@@ -1865,7 +1983,7 @@ out_movqi_r_mr (rtx insn, rtx op[], int 
+@@ -2023,7 +2107,7 @@ out_movqi_r_mr (rtx insn, rtx op[], int 
    
    if (CONSTANT_ADDRESS_P (x))
      {
    
    if (CONSTANT_ADDRESS_P (x))
      {
@@ -257,7 +218,7 @@ diff -Naurp gcc/config/avr/avr.c gcc/config/avr/avr.c
        {
          *l = 1;
          return AS2 (in,%0,__SREG__);
        {
          *l = 1;
          return AS2 (in,%0,__SREG__);
-@@ -1873,7 +1991,8 @@ out_movqi_r_mr (rtx insn, rtx op[], int 
+@@ -2031,7 +2115,8 @@ out_movqi_r_mr (rtx insn, rtx op[], int 
        if (optimize > 0 && io_address_operand (x, QImode))
        {
          *l = 1;
        if (optimize > 0 && io_address_operand (x, QImode))
        {
          *l = 1;
@@ -267,7 +228,7 @@ diff -Naurp gcc/config/avr/avr.c gcc/config/avr/avr.c
        }
        *l = 2;
        return AS2 (lds,%0,%m1);
        }
        *l = 2;
        return AS2 (lds,%0,%m1);
-@@ -2061,8 +2180,9 @@ out_movhi_r_mr (rtx insn, rtx op[], int 
+@@ -2219,8 +2304,9 @@ out_movhi_r_mr (rtx insn, rtx op[], int 
        if (optimize > 0 && io_address_operand (base, HImode))
        {
          *l = 2;
        if (optimize > 0 && io_address_operand (base, HImode))
        {
          *l = 2;
@@ -279,7 +240,7 @@ diff -Naurp gcc/config/avr/avr.c gcc/config/avr/avr.c
        }
        *l = 4;
        return (AS2 (lds,%A0,%m1) CR_TAB
        }
        *l = 4;
        return (AS2 (lds,%A0,%m1) CR_TAB
-@@ -2561,7 +2681,7 @@ out_movqi_mr_r (rtx insn, rtx op[], int 
+@@ -2719,7 +2805,7 @@ out_movqi_mr_r (rtx insn, rtx op[], int 
    
    if (CONSTANT_ADDRESS_P (x))
      {
    
    if (CONSTANT_ADDRESS_P (x))
      {
@@ -288,7 +249,7 @@ diff -Naurp gcc/config/avr/avr.c gcc/config/avr/avr.c
        {
          *l = 1;
          return AS2 (out,__SREG__,%1);
        {
          *l = 1;
          return AS2 (out,__SREG__,%1);
-@@ -2569,7 +2689,8 @@ out_movqi_mr_r (rtx insn, rtx op[], int 
+@@ -2727,7 +2813,8 @@ out_movqi_mr_r (rtx insn, rtx op[], int 
        if (optimize > 0 && io_address_operand (x, QImode))
        {
          *l = 1;
        if (optimize > 0 && io_address_operand (x, QImode))
        {
          *l = 1;
@@ -298,7 +259,7 @@ diff -Naurp gcc/config/avr/avr.c gcc/config/avr/avr.c
        }
        *l = 2;
        return AS2 (sts,%m0,%1);
        }
        *l = 2;
        return AS2 (sts,%m0,%1);
-@@ -2648,9 +2769,18 @@ out_movhi_mr_r (rtx insn, rtx op[], int 
+@@ -2806,9 +2893,18 @@ out_movhi_mr_r (rtx insn, rtx op[], int 
        if (optimize > 0 && io_address_operand (base, HImode))
        {
          *l = 2;
        if (optimize > 0 && io_address_operand (base, HImode))
        {
          *l = 2;
@@ -319,7 +280,7 @@ diff -Naurp gcc/config/avr/avr.c gcc/config/avr/avr.c
        return *l = 4, (AS2 (sts,%m0+1,%B1) CR_TAB
                      AS2 (sts,%m0,%A1));
      }
        return *l = 4, (AS2 (sts,%m0+1,%B1) CR_TAB
                      AS2 (sts,%m0,%A1));
      }
-@@ -2667,11 +2797,20 @@ out_movhi_mr_r (rtx insn, rtx op[], int 
+@@ -2825,11 +2921,20 @@ out_movhi_mr_r (rtx insn, rtx op[], int 
                              AS2 (adiw,r26,1)          CR_TAB
                              AS2 (st,X,__tmp_reg__));
                else
                              AS2 (adiw,r26,1)          CR_TAB
                              AS2 (st,X,__tmp_reg__));
                else
@@ -340,7 +301,7 @@ diff -Naurp gcc/config/avr/avr.c gcc/config/avr/avr.c
              }
            else
              {
              }
            else
              {
-@@ -2679,14 +2818,27 @@ out_movhi_mr_r (rtx insn, rtx op[], int 
+@@ -2837,14 +2942,27 @@ out_movhi_mr_r (rtx insn, rtx op[], int 
                  return *l=2, (AS2 (st,X+,%A1) CR_TAB
                                AS2 (st,X,%B1));
                else
                  return *l=2, (AS2 (st,X+,%A1) CR_TAB
                                AS2 (st,X,%B1));
                else
@@ -368,7 +329,7 @@ diff -Naurp gcc/config/avr/avr.c gcc/config/avr/avr.c
      }
    else if (GET_CODE (base) == PLUS)
      {
      }
    else if (GET_CODE (base) == PLUS)
      {
-@@ -2697,6 +2849,8 @@ out_movhi_mr_r (rtx insn, rtx op[], int 
+@@ -2855,6 +2973,8 @@ out_movhi_mr_r (rtx insn, rtx op[], int 
          if (reg_base != REG_Y)
            fatal_insn ("incorrect insn:",insn);
  
          if (reg_base != REG_Y)
            fatal_insn ("incorrect insn:",insn);
  
@@ -377,7 +338,7 @@ diff -Naurp gcc/config/avr/avr.c gcc/config/avr/avr.c
          if (disp <= 63 + MAX_LD_OFFSET (GET_MODE (dest)))
            return *l = 4, (AS2 (adiw,r28,%o0-62) CR_TAB
                            AS2 (std,Y+63,%B1)    CR_TAB
          if (disp <= 63 + MAX_LD_OFFSET (GET_MODE (dest)))
            return *l = 4, (AS2 (adiw,r28,%o0-62) CR_TAB
                            AS2 (std,Y+63,%B1)    CR_TAB
-@@ -2710,11 +2864,29 @@ out_movhi_mr_r (rtx insn, rtx op[], int 
+@@ -2868,11 +2988,29 @@ out_movhi_mr_r (rtx insn, rtx op[], int 
                          AS2 (subi,r28,lo8(%o0))  CR_TAB
                          AS2 (sbci,r29,hi8(%o0)));
        }
                          AS2 (subi,r28,lo8(%o0))  CR_TAB
                          AS2 (sbci,r29,hi8(%o0)));
        }
@@ -407,7 +368,7 @@ diff -Naurp gcc/config/avr/avr.c gcc/config/avr/avr.c
              *l = 7;
              return (AS2 (mov,__tmp_reg__,r26)  CR_TAB
                      AS2 (mov,__zero_reg__,r27) CR_TAB
              *l = 7;
              return (AS2 (mov,__tmp_reg__,r26)  CR_TAB
                      AS2 (mov,__zero_reg__,r27) CR_TAB
-@@ -2724,21 +2896,57 @@ out_movhi_mr_r (rtx insn, rtx op[], int 
+@@ -2882,21 +3020,57 @@ out_movhi_mr_r (rtx insn, rtx op[], int 
                      AS1 (clr,__zero_reg__)     CR_TAB
                        AS2 (sbiw,r26,%o0));
            }
                      AS1 (clr,__zero_reg__)     CR_TAB
                        AS2 (sbiw,r26,%o0));
            }
@@ -466,7 +427,7 @@ diff -Naurp gcc/config/avr/avr.c gcc/config/avr/avr.c
          {
            if (REGNO (XEXP (base, 0)) == REG_X)
              {
          {
            if (REGNO (XEXP (base, 0)) == REG_X)
              {
-@@ -4874,6 +5082,16 @@ avr_asm_declare_function_name (FILE *fil
+@@ -5047,6 +5221,16 @@ avr_asm_declare_function_name (FILE *fil
          }
      }
  
          }
      }
  
@@ -483,7 +444,7 @@ diff -Naurp gcc/config/avr/avr.c gcc/config/avr/avr.c
    ASM_OUTPUT_TYPE_DIRECTIVE (file, name, "function");
    ASM_OUTPUT_LABEL (file, name);
  }
    ASM_OUTPUT_TYPE_DIRECTIVE (file, name, "function");
    ASM_OUTPUT_LABEL (file, name);
  }
-@@ -5174,7 +5392,8 @@ avr_file_start (void)
+@@ -5387,7 +5571,8 @@ avr_file_start (void)
  /*  fprintf (asm_out_file, "\t.arch %s\n", avr_mcu_name);*/
    fputs ("__SREG__ = 0x3f\n"
         "__SP_H__ = 0x3e\n"
  /*  fprintf (asm_out_file, "\t.arch %s\n", avr_mcu_name);*/
    fputs ("__SREG__ = 0x3f\n"
         "__SP_H__ = 0x3e\n"
@@ -493,7 +454,7 @@ diff -Naurp gcc/config/avr/avr.c gcc/config/avr/avr.c
    
    fputs ("__tmp_reg__ = 0\n" 
           "__zero_reg__ = 1\n", asm_out_file);
    
    fputs ("__tmp_reg__ = 0\n" 
           "__zero_reg__ = 1\n", asm_out_file);
-@@ -6273,16 +6492,17 @@ avr_out_sbxx_branch (rtx insn, rtx opera
+@@ -6527,16 +6712,17 @@ avr_out_sbxx_branch (rtx insn, rtx opera
  
    if (GET_CODE (operands[1]) == CONST_INT)
      {
  
    if (GET_CODE (operands[1]) == CONST_INT)
      {
@@ -516,8 +477,8 @@ diff -Naurp gcc/config/avr/avr.c gcc/config/avr/avr.c
            output_asm_insn (AS2 (sbrs,__tmp_reg__,%2), operands);
          else
 diff -Naurp gcc/config/avr/avr-c.c gcc/config/avr/avr-c.c
            output_asm_insn (AS2 (sbrs,__tmp_reg__,%2), operands);
          else
 diff -Naurp gcc/config/avr/avr-c.c gcc/config/avr/avr-c.c
---- gcc/config/avr/avr-c.c     2009-12-24 23:32:38.000000000 +0300
-+++ gcc/config/avr/avr-c.c     2011-09-02 11:40:01.000000000 +0300
+--- gcc/config/avr/avr-c.c     2011-10-27 16:55:06.000000000 +0530
++++ gcc/config/avr/avr-c.c     2011-10-27 17:00:24.000000000 +0530
 @@ -81,5 +81,18 @@ avr_cpu_cpp_builtins (struct cpp_reader 
  
    if (TARGET_NO_INTERRUPTS)
 @@ -81,5 +81,18 @@ avr_cpu_cpp_builtins (struct cpp_reader 
  
    if (TARGET_NO_INTERRUPTS)
@@ -538,8 +499,8 @@ 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
  }
  
 diff -Naurp gcc/config/avr/avr-devices.c gcc/config/avr/avr-devices.c
---- gcc/config/avr/avr-devices.c       2009-07-17 21:49:03.000000000 +0300
-+++ gcc/config/avr/avr-devices.c       2011-09-02 11:42:48.000000000 +0300
+--- gcc/config/avr/avr-devices.c       2011-10-27 16:55:06.000000000 +0530
++++ gcc/config/avr/avr-devices.c       2011-10-27 17:00:24.000000000 +0530
 @@ -36,7 +36,14 @@ const struct base_arch_s avr_arch_types[
    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0x0060, "__AVR_ARCH__=4",   "avr4" },
    { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0x0060, "__AVR_ARCH__=5",   "avr5" },
 @@ -36,7 +36,14 @@ const struct base_arch_s avr_arch_types[
    { 0, 1, 0, 1, 0, 0, 0, 0, 0, 0x0060, "__AVR_ARCH__=4",   "avr4" },
    { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0x0060, "__AVR_ARCH__=5",   "avr5" },
@@ -556,9 +517,9 @@ 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
  };
  
  /* List of all known AVR MCU types - if updated, it has to be kept
-@@ -189,6 +196,38 @@ const struct mcu_type_s avr_mcu_types[] 
+@@ -216,6 +223,38 @@ const struct mcu_type_s avr_mcu_types[] 
    { "avr6",                 ARCH_AVR6, NULL,                        0, 0x0200, "m2561" },
    { "avr6",                 ARCH_AVR6, NULL,                        0, 0x0200, "m2561" },
-   { "atmega2560",           ARCH_AVR6, "__AVR_ATmega2560__",        0, 0x0200, "m2561" },
+   { "atmega2560",           ARCH_AVR6, "__AVR_ATmega2560__",        0, 0x0200, "m2560" },
    { "atmega2561",           ARCH_AVR6, "__AVR_ATmega2561__",        0, 0x0200, "m2561" },
 +    /* Enhanced, == 256K.  */
 +    /* Xmega, <= 8K FLASH.  */
    { "atmega2561",           ARCH_AVR6, "__AVR_ATmega2561__",        0, 0x0200, "m2561" },
 +    /* Enhanced, == 256K.  */
 +    /* Xmega, <= 8K FLASH.  */
@@ -566,9 +527,9 @@ diff -Naurp gcc/config/avr/avr-devices.c gcc/config/avr/avr-devices.c
 +  { "avrxmega2",    ARCH_AVRXMEGA2, NULL,                           0, 0x2000, "x32a4" },
 +  { "atxmega16a4",  ARCH_AVRXMEGA2, "__AVR_ATxmega16A4__",          0, 0x2000, "x16a4" },
 +  { "atxmega16d4",  ARCH_AVRXMEGA2, "__AVR_ATxmega16D4__",          0, 0x2000, "x16d4" },
 +  { "avrxmega2",    ARCH_AVRXMEGA2, NULL,                           0, 0x2000, "x32a4" },
 +  { "atxmega16a4",  ARCH_AVRXMEGA2, "__AVR_ATxmega16A4__",          0, 0x2000, "x16a4" },
 +  { "atxmega16d4",  ARCH_AVRXMEGA2, "__AVR_ATxmega16D4__",          0, 0x2000, "x16d4" },
-+  { "atxmega16x1",  ARCH_AVRXMEGA2, "__AVR_ATxmega16X1__",          0, 0x2000, "x16x1" },
 +  { "atxmega32a4",  ARCH_AVRXMEGA2, "__AVR_ATxmega32A4__",          0, 0x2000, "x32a4" },
 +  { "atxmega32d4",  ARCH_AVRXMEGA2, "__AVR_ATxmega32D4__",          0, 0x2000, "x32d4" },
 +  { "atxmega32a4",  ARCH_AVRXMEGA2, "__AVR_ATxmega32A4__",          0, 0x2000, "x32a4" },
 +  { "atxmega32d4",  ARCH_AVRXMEGA2, "__AVR_ATxmega32D4__",          0, 0x2000, "x32d4" },
++  { "atxmega32x1",  ARCH_AVRXMEGA2, "__AVR_ATxmega32X1__",          0, 0x2000, "x32x1" },
 +    /* Xmega, > 8K, <= 64K FLASH, > 64K RAM.  */
 +    /* { "avrxmega3",    ARCH_AVRXMEGA3, NULL }, */
 +    /* Xmega, > 64K, <= 128K FLASH, <= 64K RAM.  */
 +    /* Xmega, > 8K, <= 64K FLASH, > 64K RAM.  */
 +    /* { "avrxmega3",    ARCH_AVRXMEGA3, NULL }, */
 +    /* Xmega, > 64K, <= 128K FLASH, <= 64K RAM.  */
@@ -596,8 +557,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
    { "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       2010-01-12 02:12:14.000000000 +0300
-+++ gcc/config/avr/avr.h       2011-09-02 11:40:01.000000000 +0300
+--- gcc/config/avr/avr.h       2011-10-27 16:55:06.000000000 +0530
++++ gcc/config/avr/avr.h       2011-10-27 17:00:24.000000000 +0530
 @@ -45,11 +45,11 @@ struct base_arch_s {
    /* Core have 'EICALL' and 'EIJMP' instructions.  */
    int have_eijmp_eicall;
 @@ -45,11 +45,11 @@ struct base_arch_s {
    /* Core have 'EICALL' and 'EIJMP' instructions.  */
    int have_eijmp_eicall;
@@ -648,8 +609,8 @@ diff -Naurp gcc/config/avr/avr.h gcc/config/avr/avr.h
 +#define AVR_SREG_ADDR (AVR_XMEGA ? 0x3F: 0x5F)
  #define TARGET_VERSION fprintf (stderr, " (GNU assembler syntax)");
  
 +#define AVR_SREG_ADDR (AVR_XMEGA ? 0x3F: 0x5F)
  #define TARGET_VERSION fprintf (stderr, " (GNU assembler syntax)");
  
- #define OVERRIDE_OPTIONS avr_override_options ()
-@@ -842,6 +857,10 @@ struct GTY(()) machine_function
+ #define BITS_BIG_ENDIAN 0
+@@ -822,6 +837,10 @@ struct GTY(()) machine_function
       as specified by the "signal" attribute.  */
    int is_signal;
    
       as specified by the "signal" attribute.  */
    int is_signal;
    
@@ -661,9 +622,9 @@ diff -Naurp gcc/config/avr/avr.h gcc/config/avr/avr.h
       as specified by the "OS_task" attribute.  */
    int is_OS_task;
 diff -Naurp gcc/config/avr/avr.md gcc/config/avr/avr.md
       as specified by the "OS_task" attribute.  */
    int is_OS_task;
 diff -Naurp gcc/config/avr/avr.md gcc/config/avr/avr.md
---- gcc/config/avr/avr.md      2011-09-02 11:40:55.000000000 +0300
-+++ gcc/config/avr/avr.md      2011-09-02 11:40:01.000000000 +0300
-@@ -49,9 +49,6 @@
+--- gcc/config/avr/avr.md      2011-10-27 16:55:55.000000000 +0530
++++ gcc/config/avr/avr.md      2011-10-27 17:00:24.000000000 +0530
+@@ -48,9 +48,6 @@
     (TMP_REGNO 0)      ; temporary register r0
     (ZERO_REGNO        1)      ; zero register r1
     
     (TMP_REGNO 0)      ; temporary register r0
     (ZERO_REGNO        1)      ; zero register r1
     
@@ -673,7 +634,7 @@ diff -Naurp gcc/config/avr/avr.md gcc/config/avr/avr.md
     (UNSPEC_STRLEN     0)
     (UNSPEC_INDEX_JMP  1)
     (UNSPEC_SEI                2)
     (UNSPEC_STRLEN     0)
     (UNSPEC_INDEX_JMP  1)
     (UNSPEC_SEI                2)
-@@ -2962,7 +2959,8 @@
+@@ -2969,7 +2966,8 @@
    "(optimize > 0)"
  {
    operands[2] = GEN_INT (exact_log2 (~INTVAL (operands[1]) & 0xff));
    "(optimize > 0)"
  {
    operands[2] = GEN_INT (exact_log2 (~INTVAL (operands[1]) & 0xff));
@@ -683,7 +644,7 @@ diff -Naurp gcc/config/avr/avr.md gcc/config/avr/avr.md
  }
    [(set_attr "length" "1")
     (set_attr "cc" "none")])
  }
    [(set_attr "length" "1")
     (set_attr "cc" "none")])
-@@ -2974,7 +2972,8 @@
+@@ -2981,7 +2979,8 @@
    "(optimize > 0)"
  {
    operands[2] = GEN_INT (exact_log2 (INTVAL (operands[1]) & 0xff));
    "(optimize > 0)"
  {
    operands[2] = GEN_INT (exact_log2 (INTVAL (operands[1]) & 0xff));
@@ -694,9 +655,9 @@ diff -Naurp gcc/config/avr/avr.md gcc/config/avr/avr.md
    [(set_attr "length" "1")
     (set_attr "cc" "none")])
 diff -Naurp gcc/config/avr/libgcc.S gcc/config/avr/libgcc.S
    [(set_attr "length" "1")
     (set_attr "cc" "none")])
 diff -Naurp gcc/config/avr/libgcc.S gcc/config/avr/libgcc.S
---- gcc/config/avr/libgcc.S    2011-09-02 11:40:55.000000000 +0300
-+++ gcc/config/avr/libgcc.S    2011-09-02 11:40:01.000000000 +0300
-@@ -637,11 +637,19 @@ __prologue_saves__:
+--- gcc/config/avr/libgcc.S    2011-10-27 16:55:55.000000000 +0530
++++ gcc/config/avr/libgcc.S    2011-10-27 17:00:24.000000000 +0530
+@@ -638,11 +638,19 @@ __prologue_saves__:
        in      r29,__SP_H__
        sub     r28,r26
        sbc     r29,r27
        in      r29,__SP_H__
        sub     r28,r26
        sbc     r29,r27
@@ -716,7 +677,7 @@ diff -Naurp gcc/config/avr/libgcc.S gcc/config/avr/libgcc.S
  #if defined (__AVR_HAVE_EIJMP_EICALL__)
        eijmp
  #else
  #if defined (__AVR_HAVE_EIJMP_EICALL__)
        eijmp
  #else
-@@ -679,11 +687,18 @@ __epilogue_restores__:
+@@ -680,11 +688,18 @@ __epilogue_restores__:
        ldd     r27,Y+1
        add     r28,r30
        adc     r29,__zero_reg__
        ldd     r27,Y+1
        add     r28,r30
        adc     r29,__zero_reg__
@@ -736,8 +697,8 @@ diff -Naurp gcc/config/avr/libgcc.S gcc/config/avr/libgcc.S
        mov_h   r29, r27
        ret
 diff -Naurp gcc/config/avr/predicates.md gcc/config/avr/predicates.md
        mov_h   r29, r27
        ret
 diff -Naurp gcc/config/avr/predicates.md gcc/config/avr/predicates.md
---- gcc/config/avr/predicates.md       2009-12-24 22:53:57.000000000 +0300
-+++ gcc/config/avr/predicates.md       2011-09-02 11:40:01.000000000 +0300
+--- gcc/config/avr/predicates.md       2011-10-27 16:55:06.000000000 +0530
++++ gcc/config/avr/predicates.md       2011-10-27 17:00:24.000000000 +0530
 @@ -45,17 +45,23 @@
  ;; Return true if OP is a valid address for lower half of I/O space.
  (define_predicate "low_io_address_operand"
 @@ -45,17 +45,23 @@
  ;; Return true if OP is a valid address for lower half of I/O space.
  (define_predicate "low_io_address_operand"
@@ -766,8 +727,8 @@ diff -Naurp gcc/config/avr/predicates.md gcc/config/avr/predicates.md
  ;; Return 1 if OP is the zero constant for MODE.
  (define_predicate "const0_operand"
 diff -Naurp gcc/config/avr/t-avr gcc/config/avr/t-avr
  ;; Return 1 if OP is the zero constant for MODE.
  (define_predicate "const0_operand"
 diff -Naurp gcc/config/avr/t-avr gcc/config/avr/t-avr
---- gcc/config/avr/t-avr       2011-09-02 11:40:55.000000000 +0300
-+++ gcc/config/avr/t-avr       2011-09-02 11:41:56.000000000 +0300
+--- gcc/config/avr/t-avr       2011-10-27 16:55:55.000000000 +0530
++++ gcc/config/avr/t-avr       2011-10-27 17:00:24.000000000 +0530
 @@ -107,8 +107,8 @@ fp-bit.c: $(srcdir)/config/fp-bit.c $(sr
  
  FPBIT = fp-bit.c
 @@ -107,8 +107,8 @@ fp-bit.c: $(srcdir)/config/fp-bit.c $(sr
  
  FPBIT = fp-bit.c
@@ -779,17 +740,17 @@ 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 = \
  
  # The many avr2 matches are not listed here - this is the default.
  MULTILIB_MATCHES = \
-@@ -223,7 +223,25 @@ MULTILIB_MATCHES = \
-       mmcu?avr51=mmcu?m3000s \
-       mmcu?avr51=mmcu?m3001b \
+@@ -252,7 +252,25 @@ MULTILIB_MATCHES = \
+       mmcu?avr51=mmcu?at90usb1286 \
+       mmcu?avr51=mmcu?at90usb1287 \
        mmcu?avr6=mmcu?atmega2560 \
 -      mmcu?avr6=mmcu?atmega2561
 +      mmcu?avr6=mmcu?atmega2561 \
 +      mmcu?avrxmega2=mmcu?atxmega16a4 \
 +      mmcu?avrxmega2=mmcu?atxmega16d4 \
        mmcu?avr6=mmcu?atmega2560 \
 -      mmcu?avr6=mmcu?atmega2561
 +      mmcu?avr6=mmcu?atmega2561 \
 +      mmcu?avrxmega2=mmcu?atxmega16a4 \
 +      mmcu?avrxmega2=mmcu?atxmega16d4 \
-+      mmcu?avrxmega2=mmcu?atxmega16x1 \
 +      mmcu?avrxmega2=mmcu?atxmega32d4 \
 +      mmcu?avrxmega2=mmcu?atxmega32a4 \
 +      mmcu?avrxmega2=mmcu?atxmega32d4 \
 +      mmcu?avrxmega2=mmcu?atxmega32a4 \
++      mmcu?avrxmega2=mmcu?atxmega32x1 \
 +      mmcu?avrxmega4=mmcu?atxmega64a3 \
 +      mmcu?avrxmega4=mmcu?atxmega64d3 \
 +      mmcu?avrxmega5=mmcu?atxmega64a1 \
 +      mmcu?avrxmega4=mmcu?atxmega64a3 \
 +      mmcu?avrxmega4=mmcu?atxmega64d3 \
 +      mmcu?avrxmega5=mmcu?atxmega64a1 \
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
 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;
  
    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;
  }
  
    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)
  {
  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
  }
  
  /* 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)
  {
  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;
    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);
  
    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;
  }
  
    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)))
            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
          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)))
             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);
      }
    *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;
                      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));
        }
      }
                  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)))
            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
                          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)
          
          *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));
                  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;
        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) */
      {
      }
    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;
            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));
                        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;
            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));
              }
                        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 */
          {
            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
            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
                             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
                             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)
        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) */
          }
      }
    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)))
            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
                          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 */
            {
              *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
                      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)
            }
          *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
                  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)
                  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));
                      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))
              {
              /* "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
                              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
                                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
                                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));
              }
                                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));
    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)))
            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
                          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;
          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
                      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;
          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
                      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;
                      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));
                    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)))
            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));
  
                            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)))
          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));
                              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)))
          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);
      }
    *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))
              {
                /* "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
                                  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)
                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));
                }
                                    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)
        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));
    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)))
            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
                          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)))
          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
                              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;
              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
                      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;
              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));
                    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;
          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));
                      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)
        }
        
        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) */
      {
      }
    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;
            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));
              }
                        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;
    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
      }
    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;
    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__));
      }
                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"
  /*  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
  
    /* 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__");
      }
 @@ -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
  }
  
 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 @@
 @@ -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 */
  
  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
  };
  
  /* 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" },
    { "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
    { "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;
 @@ -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)
  #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)
  
 -
  #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 */                          \
  }
  
    {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
  
  /* 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_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.  */
    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;
  
    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))]
                        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
        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.  */
 @@ -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
          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/>.  */
 @@ -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
  #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
  
        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
        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
        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:
        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
   **********************************/
  /**********************************
   * 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__
  #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)
   * 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__:
        .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) */
        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
  
  #ifdef L_exit
        .section .fini9,"ax",@progbits
-@@ -730,6 +746,7 @@ _cleanup:
+@@ -731,6 +747,7 @@ _cleanup:
  .endfunc
  #endif /* defined (L_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__
  #ifdef L_tablejump
        .global __tablejump2__
        .func   __tablejump2__
-@@ -762,7 +779,9 @@ __tablejump__:
+@@ -763,7 +780,9 @@ __tablejump__:
  #endif
        .endfunc
  #endif /* defined (L_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
  #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 */
        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:
  /* __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:
        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
        sbiw    r28, 2
-+#endif
-       sbc     r20, __zero_reg__
++ #endif
+       sbc     r16, __zero_reg__
        mov_h   r31, r29
        mov_l   r30, r28
        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:
        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:
        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:
        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
        sbiw    r28, 2
-+#endif
-       sbc     r20, __zero_reg__
++ #endif
+       sbc     r16, __zero_reg__
        mov_h   r31, r29
        mov_l   r30, r28
        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__
        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
  .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 */
  
  #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__
  #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) */
  #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
  
  #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
 @@ -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 = \
  
  # 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 \
        mmcu?avrxmega6=mmcu?atxmega256a3b \
        mmcu?avrxmega6=mmcu?atxmega256d3 \
        mmcu?avrxmega7=mmcu?atxmega128a1 \
similarity index 55%
rename from 303-gcc-4.5.1-osmain.patch
rename to 303-gcc-osmain.patch
index d42013db78e83fd54e04540faa1515b78f3cf409..e7d1dc54ff087ee5533fc8803a1f8bf036a23396 100644 (file)
@@ -1,17 +1,19 @@
 diff -Naurp gcc/config/avr/avr.c gcc/config/avr/avr.c
 diff -Naurp gcc/config/avr/avr.c gcc/config/avr/avr.c
---- gcc/config/avr/avr.c       2011-01-19 13:45:00.000000000 -0600
-+++ gcc/config/avr/avr.c       2011-01-19 13:45:47.000000000 -0600
-@@ -784,7 +784,8 @@ expand_prologue (void)
+--- gcc/config/avr/avr.c       2011-10-27 17:47:15.000000000 +0530
++++ gcc/config/avr/avr.c       2011-10-27 17:53:42.000000000 +0530
+@@ -881,8 +881,9 @@ expand_prologue (void)
+                 emit_move_insn (stack_pointer_rtx, frame_pointer_rtx);
                }
                }
-             else if ((!AVR_XMEGA && TARGET_NO_INTERRUPTS)
-                      || (!AVR_XMEGA && cfun->machine->is_signal)
--                     || (!AVR_XMEGA && cfun->machine->is_OS_main))
+             else if ((!AVR_XMEGA && TARGET_NO_INTERRUPTS )
+-                     || cfun->machine->is_signal
+-                     || cfun->machine->is_OS_main)
++                     || (!AVR_XMEGA && cfun->machine->is_signal)
 +                     || (!AVR_XMEGA && cfun->machine->is_OS_main)
 +                     || (AVR_XMEGA && cfun->machine->is_nmi))
                {
 +                     || (!AVR_XMEGA && cfun->machine->is_OS_main)
 +                     || (AVR_XMEGA && cfun->machine->is_nmi))
                {
-                 insn = 
-                   emit_insn (gen_movhi_sp_r_irq_off (stack_pointer_rtx, 
-@@ -963,7 +964,8 @@ expand_epilogue (void)
+                 emit_insn (gen_movhi_sp_r_irq_off (stack_pointer_rtx, 
+                                                    frame_pointer_rtx));
+@@ -1070,7 +1071,8 @@ expand_epilogue (void)
                  emit_move_insn (stack_pointer_rtx, frame_pointer_rtx);
                }
              else if ((!AVR_XMEGA && TARGET_NO_INTERRUPTS) 
                  emit_move_insn (stack_pointer_rtx, frame_pointer_rtx);
                }
              else if ((!AVR_XMEGA && TARGET_NO_INTERRUPTS) 
@@ -22,9 +24,9 @@ diff -Naurp gcc/config/avr/avr.c gcc/config/avr/avr.c
                  emit_insn (gen_movhi_sp_r_irq_off (stack_pointer_rtx, 
                                                     frame_pointer_rtx));
 diff -Naurp gcc/function.c gcc/function.c
                  emit_insn (gen_movhi_sp_r_irq_off (stack_pointer_rtx, 
                                                     frame_pointer_rtx));
 diff -Naurp gcc/function.c gcc/function.c
---- gcc/function.c     2010-02-26 09:58:57.000000000 -0600
-+++ gcc/function.c     2011-01-19 13:45:48.000000000 -0600
-@@ -4980,6 +4980,14 @@ contains (const_rtx insn, htab_t hash)
+--- gcc/function.c     2011-10-27 17:19:51.000000000 +0530
++++ gcc/function.c     2011-10-27 17:53:42.000000000 +0530
+@@ -5254,6 +5254,14 @@ contains (const_rtx insn, htab_t hash)
  }
  
  int
  }
  
  int
@@ -40,9 +42,9 @@ diff -Naurp gcc/function.c gcc/function.c
  {
    if (contains (insn, prologue_insn_hash))
 diff -Naurp gcc/rtl.h gcc/rtl.h
  {
    if (contains (insn, prologue_insn_hash))
 diff -Naurp gcc/rtl.h gcc/rtl.h
---- gcc/rtl.h  2010-03-16 05:50:42.000000000 -0500
-+++ gcc/rtl.h  2011-01-19 13:45:48.000000000 -0600
-@@ -2296,6 +2296,7 @@ extern void print_inline_rtx (FILE *, co
+--- gcc/rtl.h  2011-10-27 17:19:52.000000000 +0530
++++ gcc/rtl.h  2011-10-27 17:53:42.000000000 +0530
+@@ -2402,6 +2402,7 @@ extern void print_inline_rtx (FILE *, co
  
  /* In function.c */
  extern void reposition_prologue_and_epilogue_notes (void);
  
  /* In function.c */
  extern void reposition_prologue_and_epilogue_notes (void);
similarity index 95%
rename from 304-gcc-4.5.1-builtins-v6.patch
rename to 304-gcc-builtins-v6.patch
index 12ba1b0762f366cad055a1839240b35489e6c57e..ae1a6f0530555cc1460e64dae78a698de63dbaac 100644 (file)
@@ -1,7 +1,7 @@
 diff -Naurp gcc/config/avr/avr.c gcc/config/avr/avr.c
 diff -Naurp gcc/config/avr/avr.c gcc/config/avr/avr.c
---- gcc/config/avr/avr.c       2011-01-19 13:48:07.000000000 -0600
-+++ gcc/config/avr/avr.c       2011-01-19 13:49:37.000000000 -0600
-@@ -30,6 +30,7 @@
+--- gcc/config/avr/avr.c       2011-10-27 17:53:42.000000000 +0530
++++ gcc/config/avr/avr.c       2011-10-27 18:00:50.000000000 +0530
+@@ -29,6 +29,7 @@
  #include "insn-config.h"
  #include "conditions.h"
  #include "insn-attr.h"
  #include "insn-config.h"
  #include "conditions.h"
  #include "insn-attr.h"
@@ -9,7 +9,7 @@ diff -Naurp gcc/config/avr/avr.c gcc/config/avr/avr.c
  #include "flags.h"
  #include "reload.h"
  #include "tree.h"
  #include "flags.h"
  #include "reload.h"
  #include "tree.h"
-@@ -39,7 +40,9 @@
+@@ -38,7 +39,9 @@
  #include "obstack.h"
  #include "function.h"
  #include "recog.h"
  #include "obstack.h"
  #include "function.h"
  #include "recog.h"
@@ -19,7 +19,7 @@ diff -Naurp gcc/config/avr/avr.c gcc/config/avr/avr.c
  #include "tm_p.h"
  #include "target.h"
  #include "target-def.h"
  #include "tm_p.h"
  #include "target.h"
  #include "target-def.h"
-@@ -87,6 +90,8 @@ static bool avr_rtx_costs (rtx, int, int
+@@ -90,6 +93,8 @@ static bool avr_rtx_costs (rtx, int, int
  static int avr_address_cost (rtx, bool);
  static bool avr_return_in_memory (const_tree, const_tree);
  static struct machine_function * avr_init_machine_status (void);
  static int avr_address_cost (rtx, bool);
  static bool avr_return_in_memory (const_tree, const_tree);
  static struct machine_function * avr_init_machine_status (void);
@@ -28,7 +28,7 @@ diff -Naurp gcc/config/avr/avr.c gcc/config/avr/avr.c
  static rtx avr_builtin_setjmp_frame_value (void);
  static bool avr_hard_regno_scratch_ok (unsigned int);
  static unsigned int avr_case_values_threshold (void);
  static rtx avr_builtin_setjmp_frame_value (void);
  static bool avr_hard_regno_scratch_ok (unsigned int);
  static unsigned int avr_case_values_threshold (void);
-@@ -197,6 +202,13 @@ static const struct attribute_spec avr_a
+@@ -241,6 +246,13 @@ static const struct default_options avr_
  #undef TARGET_SCALAR_MODE_SUPPORTED_P
  #define TARGET_SCALAR_MODE_SUPPORTED_P avr_scalar_mode_supported_p
  
  #undef TARGET_SCALAR_MODE_SUPPORTED_P
  #define TARGET_SCALAR_MODE_SUPPORTED_P avr_scalar_mode_supported_p
  
@@ -42,7 +42,7 @@ diff -Naurp gcc/config/avr/avr.c gcc/config/avr/avr.c
   /* Implement TARGET_SCALAR_MODE_SUPPORTED_P.  */
   static bool
   avr_scalar_mode_supported_p (enum machine_mode mode)
   /* Implement TARGET_SCALAR_MODE_SUPPORTED_P.  */
   static bool
   avr_scalar_mode_supported_p (enum machine_mode mode)
-@@ -7286,4 +7298,237 @@ unsigned int avr_case_values_threshold (
+@@ -7506,4 +7518,237 @@ unsigned int avr_case_values_threshold (
    return (!AVR_HAVE_JMP_CALL || TARGET_CALL_PROLOGUES) ? 8 : 17;
  }
  
    return (!AVR_HAVE_JMP_CALL || TARGET_CALL_PROLOGUES) ? 8 : 17;
  }
  
@@ -281,9 +281,9 @@ diff -Naurp gcc/config/avr/avr.c gcc/config/avr/avr.c
 +
  #include "gt-avr.h"
 diff -Naurp gcc/config/avr/avr.md gcc/config/avr/avr.md
 +
  #include "gt-avr.h"
 diff -Naurp gcc/config/avr/avr.md gcc/config/avr/avr.md
---- gcc/config/avr/avr.md      2011-01-19 13:45:00.000000000 -0600
-+++ gcc/config/avr/avr.md      2011-01-19 13:49:37.000000000 -0600
-@@ -51,14 +51,29 @@
+--- gcc/config/avr/avr.md      2011-10-27 17:53:20.000000000 +0530
++++ gcc/config/avr/avr.md      2011-10-27 18:00:50.000000000 +0530
+@@ -50,14 +50,29 @@
     
     (UNSPEC_STRLEN     0)
     (UNSPEC_INDEX_JMP  1)
     
     (UNSPEC_STRLEN     0)
     (UNSPEC_INDEX_JMP  1)
@@ -316,7 +316,7 @@ diff -Naurp gcc/config/avr/avr.md gcc/config/avr/avr.md
  
  (include "predicates.md")
  (include "constraints.md")
  
  (include "predicates.md")
  (include "constraints.md")
-@@ -2813,13 +2828,6 @@
+@@ -2820,13 +2835,6 @@
                                        (const_int 1))
                          (const_int 3)])])
  
                                        (const_int 1))
                          (const_int 3)])])
  
@@ -330,7 +330,7 @@ diff -Naurp gcc/config/avr/avr.md gcc/config/avr/avr.md
  ; indirect jump
  
  (define_expand "indirect_jump"
  ; indirect jump
  
  (define_expand "indirect_jump"
-@@ -3221,7 +3229,7 @@
+@@ -3220,7 +3228,7 @@
  
  ;; Enable Interrupts
  (define_insn "enable_interrupt"
  
  ;; Enable Interrupts
  (define_insn "enable_interrupt"
@@ -339,7 +339,7 @@ diff -Naurp gcc/config/avr/avr.md gcc/config/avr/avr.md
    ""
    "sei"
    [(set_attr "length" "1")
    ""
    "sei"
    [(set_attr "length" "1")
-@@ -3230,7 +3238,7 @@
+@@ -3229,7 +3237,7 @@
  
  ;; Disable Interrupts
  (define_insn "disable_interrupt"
  
  ;; Disable Interrupts
  (define_insn "disable_interrupt"
@@ -348,7 +348,7 @@ diff -Naurp gcc/config/avr/avr.md gcc/config/avr/avr.md
    ""
    "cli"
    [(set_attr "length" "1")
    ""
    "cli"
    [(set_attr "length" "1")
-@@ -3330,3 +3338,219 @@
+@@ -3329,3 +3337,219 @@
      expand_epilogue (); 
      DONE;
    }")
      expand_epilogue (); 
      DONE;
    }")
@@ -569,8 +569,8 @@ diff -Naurp gcc/config/avr/avr.md gcc/config/avr/avr.md
 +   (set_attr "cc" "clobber")])
 +
 diff -Naurp gcc/config/avr/predicates.md gcc/config/avr/predicates.md
 +   (set_attr "cc" "clobber")])
 +
 diff -Naurp gcc/config/avr/predicates.md gcc/config/avr/predicates.md
---- gcc/config/avr/predicates.md       2011-01-19 13:03:59.000000000 -0600
-+++ gcc/config/avr/predicates.md       2011-01-19 13:49:37.000000000 -0600
+--- gcc/config/avr/predicates.md       2011-10-27 17:53:20.000000000 +0530
++++ gcc/config/avr/predicates.md       2011-10-27 18:00:50.000000000 +0530
 @@ -27,6 +27,11 @@
    (and (match_code "reg")
         (match_test "REGNO (op) >= 16 && REGNO (op) <= 31")))
 @@ -27,6 +27,11 @@
    (and (match_code "reg")
         (match_test "REGNO (op) >= 16 && REGNO (op) <= 31")))
similarity index 75%
rename from 305-gcc-4.5.1-avrtiny10-non-fixedpoint.patch
rename to 305-gcc-avrtiny10-non-fixedpoint.patch
index 9bceaa4d736fa8c99e4c6f3d4fe8930670bf4a96..442badf8664688485377c1709577490891ca5b6c 100644 (file)
@@ -1,7 +1,7 @@
 diff -Naurp gcc/config/avr/avr.c gcc/config/avr/avr.c
 diff -Naurp gcc/config/avr/avr.c gcc/config/avr/avr.c
---- gcc/config/avr/avr.c       2011-02-07 16:17:20.000000000 -0600
-+++ gcc/config/avr/avr.c       2011-02-07 16:12:53.000000000 -0600
-@@ -202,6 +202,9 @@ static const struct attribute_spec avr_a
+--- gcc/config/avr/avr.c       2011-10-27 18:00:50.000000000 +0530
++++ gcc/config/avr/avr.c       2011-10-27 18:05:35.000000000 +0530
+@@ -246,6 +246,9 @@ static const struct default_options avr_
  #undef TARGET_SCALAR_MODE_SUPPORTED_P
  #define TARGET_SCALAR_MODE_SUPPORTED_P avr_scalar_mode_supported_p
  
  #undef TARGET_SCALAR_MODE_SUPPORTED_P
  #define TARGET_SCALAR_MODE_SUPPORTED_P avr_scalar_mode_supported_p
  
@@ -11,7 +11,7 @@ diff -Naurp gcc/config/avr/avr.c gcc/config/avr/avr.c
  #undef TARGET_INIT_BUILTINS
  #define TARGET_INIT_BUILTINS avr_init_builtins
   
  #undef TARGET_INIT_BUILTINS
  #define TARGET_INIT_BUILTINS avr_init_builtins
   
-@@ -219,6 +222,17 @@ static const struct attribute_spec avr_a
+@@ -263,6 +266,17 @@ static const struct default_options avr_
     return default_scalar_mode_supported_p (mode);
   }
   
     return default_scalar_mode_supported_p (mode);
   }
   
@@ -28,10 +28,10 @@ diff -Naurp gcc/config/avr/avr.c gcc/config/avr/avr.c
 + 
  struct gcc_target targetm = TARGET_INITIALIZER;
  \f
 + 
  struct gcc_target targetm = TARGET_INITIALIZER;
  \f
- void
static void
 diff -Naurp gcc/config/fixed-bit.c gcc/config/fixed-bit.c
 diff -Naurp gcc/config/fixed-bit.c gcc/config/fixed-bit.c
---- gcc/config/fixed-bit.c     2009-04-09 10:00:19.000000000 -0500
-+++ gcc/config/fixed-bit.c     2011-02-07 16:12:53.000000000 -0600
+--- gcc/config/fixed-bit.c     2011-10-27 17:57:06.000000000 +0530
++++ gcc/config/fixed-bit.c     2011-10-27 18:05:35.000000000 +0530
 @@ -41,7 +41,7 @@ see the files COPYING3 and COPYING.RUNTI
     Floating-point: SF, DF
     Ex: If we define FROM_QQ and TO_SI, the conversion from QQ to SI is
 @@ -41,7 +41,7 @@ see the files COPYING3 and COPYING.RUNTI
     Floating-point: SF, DF
     Ex: If we define FROM_QQ and TO_SI, the conversion from QQ to SI is
similarity index 72%
rename from 306-gcc-4.5.1-option-list-devices.patch
rename to 306-gcc-option-list-devices.patch
index d6ffffca12f11a683e55c744b272225e2df50b93..f10f3a00fef4f1678fe941438302547b1289e328 100644 (file)
@@ -1,7 +1,7 @@
 diff -Naurp gcc/config/avr/avr.c gcc/config/avr/avr.c
 diff -Naurp gcc/config/avr/avr.c gcc/config/avr/avr.c
---- gcc/config/avr/avr.c       2011-02-11 14:56:08.000000000 -0600
-+++ gcc/config/avr/avr.c       2011-02-11 14:54:05.000000000 -0600
-@@ -211,6 +211,8 @@ static const struct attribute_spec avr_a
+--- gcc/config/avr/avr.c       2011-10-27 18:05:35.000000000 +0530
++++ gcc/config/avr/avr.c       2011-10-27 18:10:00.000000000 +0530
+@@ -255,6 +255,8 @@ static const struct default_options avr_
  #undef TARGET_EXPAND_BUILTIN
  #define TARGET_EXPAND_BUILTIN avr_expand_builtin
  
  #undef TARGET_EXPAND_BUILTIN
  #define TARGET_EXPAND_BUILTIN avr_expand_builtin
  
@@ -10,7 +10,7 @@ diff -Naurp gcc/config/avr/avr.c gcc/config/avr/avr.c
  
   /* Implement TARGET_SCALAR_MODE_SUPPORTED_P.  */
   static bool
  
   /* Implement TARGET_SCALAR_MODE_SUPPORTED_P.  */
   static bool
-@@ -232,7 +234,24 @@ static const struct attribute_spec avr_a
+@@ -276,7 +278,24 @@ static const struct default_options avr_
     return default_fixed_point_supported_p ();
   }
   
     return default_fixed_point_supported_p ();
   }
   
@@ -35,15 +35,16 @@ diff -Naurp gcc/config/avr/avr.c gcc/config/avr/avr.c
 +
  struct gcc_target targetm = TARGET_INITIALIZER;
  \f
 +
  struct gcc_target targetm = TARGET_INITIALIZER;
  \f
- void
static void
 diff -Naurp gcc/config/avr/avr.opt gcc/config/avr/avr.opt
 diff -Naurp gcc/config/avr/avr.opt gcc/config/avr/avr.opt
---- gcc/config/avr/avr.opt     2009-10-08 13:28:48.000000000 -0500
-+++ gcc/config/avr/avr.opt     2011-02-11 14:53:20.000000000 -0600
-@@ -58,3 +58,7 @@ Relax branches
+--- gcc/config/avr/avr.opt     2011-10-27 18:05:13.000000000 +0530
++++ gcc/config/avr/avr.opt     2011-10-27 18:10:00.000000000 +0530
+@@ -58,3 +58,8 @@ Relax branches
  mpmem-wrap-around
  Target Report
  mpmem-wrap-around
  Target Report
- Make the linker relaxation machine assume that a program counter wrap-around occures.
+ Make the linker relaxation machine assume that a program counter wrap-around occurs.
 +
 +mlist-devices
 +Target RejectNegative Var(avr_list_supported_parts)
 +Print the list of parts supported while printing --target-help
 +
 +mlist-devices
 +Target RejectNegative Var(avr_list_supported_parts)
 +Print the list of parts supported while printing --target-help
++
diff --git a/400-gcc-4.5.1-new-devices.patch b/400-gcc-4.5.1-new-devices.patch
deleted file mode 100644 (file)
index 85982a8..0000000
+++ /dev/null
@@ -1,328 +0,0 @@
-diff -Naurp gcc/config/avr/avr-devices.c gcc/config/avr/avr-devices.c
---- gcc/config/avr/avr-devices.c       2011-09-02 11:47:23.000000000 +0300
-+++ gcc/config/avr/avr-devices.c       2011-09-02 11:49:57.000000000 +0300
-@@ -75,15 +75,23 @@ const struct mcu_type_s avr_mcu_types[] 
-   { "attiny13",             ARCH_AVR25, "__AVR_ATtiny13__",         1, 0x0060, "tn13" },
-   { "attiny13a",            ARCH_AVR25, "__AVR_ATtiny13A__",        1, 0x0060, "tn13a" },
-   { "attiny2313",           ARCH_AVR25, "__AVR_ATtiny2313__",       1, 0x0060, "tn2313" },
-+  { "attiny2313a",          ARCH_AVR25, "__AVR_ATtiny2313A__",      1, 0x0060, "tn2313a" },
-   { "attiny24",             ARCH_AVR25, "__AVR_ATtiny24__",         1, 0x0060, "tn24" },
-+  { "attiny24a",            ARCH_AVR25, "__AVR_ATtiny24A__",        1, 0x0060, "tn24a" },
-+  { "attiny4313",           ARCH_AVR25, "__AVR_ATtiny4313__",       0, 0x0060, "tn4313" },
-   { "attiny44",             ARCH_AVR25, "__AVR_ATtiny44__",         0, 0x0060, "tn44" },
-+  { "attiny44a",            ARCH_AVR25, "__AVR_ATtiny44A__",        0, 0x0060, "tn44a" },
-   { "attiny84",             ARCH_AVR25, "__AVR_ATtiny84__",         0, 0x0060, "tn84" },
-+  { "attiny84a",            ARCH_AVR25, "__AVR_ATtiny84A__",        0, 0x0060, "tn84a" },
-   { "attiny25",             ARCH_AVR25, "__AVR_ATtiny25__",         1, 0x0060, "tn25" },
-   { "attiny45",             ARCH_AVR25, "__AVR_ATtiny45__",         0, 0x0060, "tn45" },
-   { "attiny85",             ARCH_AVR25, "__AVR_ATtiny85__",         0, 0x0060, "tn85" },
-   { "attiny261",            ARCH_AVR25, "__AVR_ATtiny261__",        1, 0x0060, "tn261" },
-+  { "attiny261a",           ARCH_AVR25, "__AVR_ATtiny261A__",       1, 0x0060, "tn261a" },
-   { "attiny461",            ARCH_AVR25, "__AVR_ATtiny461__",        0, 0x0060, "tn461" },
-+  { "attiny461a",           ARCH_AVR25, "__AVR_ATtiny461A__",       0, 0x0060, "tn461a" },
-   { "attiny861",            ARCH_AVR25, "__AVR_ATtiny861__",        0, 0x0060, "tn861" },
-+  { "attiny861a",           ARCH_AVR25, "__AVR_ATtiny861A__",       0, 0x0060, "tn861a" },
-   { "attiny43u",            ARCH_AVR25, "__AVR_ATtiny43U__",        0, 0x0060, "tn43u" },
-   { "attiny87",             ARCH_AVR25, "__AVR_ATtiny87__",         0, 0x0100, "tn87" },
-   { "attiny48",             ARCH_AVR25, "__AVR_ATtiny48__",         0, 0x0100, "tn48" },
-@@ -105,21 +113,19 @@ const struct mcu_type_s avr_mcu_types[] 
-   { "atmega16u2",           ARCH_AVR35, "__AVR_ATmega16U2__",       0, 0x0100, "m16u2" },
-   { "atmega32u2",           ARCH_AVR35, "__AVR_ATmega32U2__",       0, 0x0100, "m32u2" },
-   { "attiny167",            ARCH_AVR35, "__AVR_ATtiny167__",        0, 0x0100, "tn167" },
--  { "attiny327",            ARCH_AVR35, "__AVR_ATtiny327__",        0, 0x0100, "tn327" },
-     /* Enhanced, <= 8K.  */
-   { "avr4",                 ARCH_AVR4, NULL,                        0, 0x0060, "m8" },
-   { "atmega8",              ARCH_AVR4, "__AVR_ATmega8__",           0, 0x0060, "m8" },
-   { "atmega48",             ARCH_AVR4, "__AVR_ATmega48__",          0, 0x0100, "m48" },
-+  { "atmega48a",            ARCH_AVR4, "__AVR_ATmega48A__",         0, 0x0100, "m48a" },
-   { "atmega48p",            ARCH_AVR4, "__AVR_ATmega48P__",         0, 0x0100, "m48p" },
-   { "atmega88",             ARCH_AVR4, "__AVR_ATmega88__",          0, 0x0100, "m88" },
-+  { "atmega88a",            ARCH_AVR4, "__AVR_ATmega88A__",         0, 0x0100, "m88a" },
-   { "atmega88p",            ARCH_AVR4, "__AVR_ATmega88P__",         0, 0x0100, "m88p" },
-+  { "atmega88pa",           ARCH_AVR4, "__AVR_ATmega88PA__",        0, 0x0100, "m88pa" },
-   { "atmega8515",           ARCH_AVR4, "__AVR_ATmega8515__",        0, 0x0060, "m8515" },
-   { "atmega8535",           ARCH_AVR4, "__AVR_ATmega8535__",        0, 0x0060, "m8535" },
--  { "atmega8c1",            ARCH_AVR4, "__AVR_ATmega8C1__",         0, 0x0100, "m8c1" },
--  { "atmega8m1",            ARCH_AVR4, "__AVR_ATmega8M1__",         0, 0x0100, "m8m1" },
-   { "atmega8hva",           ARCH_AVR4, "__AVR_ATmega8HVA__",        0, 0x0100, "m8hva" },
--  { "atmega4hvd",           ARCH_AVR4, "__AVR_ATmega4HVD__",        0, 0x0100, "m4hvd" },
--  { "atmega8hvd",           ARCH_AVR4, "__AVR_ATmega8HVD__",        0, 0x0100, "m8hvd" },
-   { "at90pwm1",             ARCH_AVR4, "__AVR_AT90PWM1__",          0, 0x0100, "90pwm1" },
-   { "at90pwm2",             ARCH_AVR4, "__AVR_AT90PWM2__",          0, 0x0100, "90pwm2" },
-   { "at90pwm2b",            ARCH_AVR4, "__AVR_AT90PWM2B__",         0, 0x0100, "90pwm2b" },
-@@ -128,41 +134,78 @@ const struct mcu_type_s avr_mcu_types[] 
-   { "at90pwm81",            ARCH_AVR4, "__AVR_AT90PWM81__",         0, 0x0100, "90pwm81" },
-     /* Enhanced, > 8K, <= 64K.  */
-   { "avr5",                 ARCH_AVR5, NULL,                        0, 0x0060, "m16" },
-+  { "at90pwm161",           ARCH_AVR5, "__AVR_AT90PWM161__",        1, 0x0100, "90pwm161" },
-   { "atmega16",             ARCH_AVR5, "__AVR_ATmega16__",          0, 0x0060, "m16" },
-+  { "atmega16a",            ARCH_AVR5, "__AVR_ATmega16A__",         0, 0x0060, "m16a" },
-   { "atmega161",            ARCH_AVR5, "__AVR_ATmega161__",         0, 0x0060, "m161" },
-   { "atmega162",            ARCH_AVR5, "__AVR_ATmega162__",         0, 0x0100, "m162" },
-   { "atmega163",            ARCH_AVR5, "__AVR_ATmega163__",         0, 0x0060, "m163" },
-+  { "atmega164a",           ARCH_AVR5, "__AVR_ATmega164A__",        0, 0x0060, "m164a" },
-   { "atmega164p",           ARCH_AVR5, "__AVR_ATmega164P__",        0, 0x0100, "m164p" },
-   { "atmega165",            ARCH_AVR5, "__AVR_ATmega165__",         0, 0x0100, "m165" },
-+  { "atmega165a",           ARCH_AVR5, "__AVR_ATmega165A__",        0, 0x0100, "m165a" },
-   { "atmega165p",           ARCH_AVR5, "__AVR_ATmega165P__",        0, 0x0100, "m165p" },
-   { "atmega168",            ARCH_AVR5, "__AVR_ATmega168__",         0, 0x0100, "m168" },
-+  { "atmega168a",           ARCH_AVR5, "__AVR_ATmega168A__",        0, 0x0100, "m168a" },
-   { "atmega168p",           ARCH_AVR5, "__AVR_ATmega168P__",        0, 0x0100, "m168p" },
-   { "atmega169",            ARCH_AVR5, "__AVR_ATmega169__",         0, 0x0100, "m169" },
-+  { "atmega169a",           ARCH_AVR5, "__AVR_ATmega169A__",        0, 0x0100, "m169a" },
-   { "atmega169p",           ARCH_AVR5, "__AVR_ATmega169P__",        0, 0x0100, "m169p" },
-+  { "atmega169pa",          ARCH_AVR5, "__AVR_ATmega169PA__",       0, 0x0100, "m169pa" },
-+  { "atmega16hva",          ARCH_AVR5, "__AVR_ATmega16HVA__",       0, 0x0100, "m16hva" },
-+  { "atmega16hva2",         ARCH_AVR5, "__AVR_ATmega16HVA2__",      0, 0x0100, "m16hva2" },
-+  { "atmega16hvb",          ARCH_AVR5, "__AVR_ATmega16HVB__",       0, 0x0100, "m16hvb" },
-+  { "atmega16hvbrevb",      ARCH_AVR5, "__AVR_ATmega16HVBREVB__",   1, 0x0100, "m16hvbrevb" },
-+  { "atmega16m1",           ARCH_AVR5, "__AVR_ATmega16M1__",        0, 0x0100, "m16m1" },
-+  { "atmega16u4",           ARCH_AVR5, "__AVR_ATmega16U4__",        0, 0x0100, "m16u4" },
-   { "atmega32",             ARCH_AVR5, "__AVR_ATmega32__",          0, 0x0060, "m32" },
-   { "atmega323",            ARCH_AVR5, "__AVR_ATmega323__",         0, 0x0060, "m323" },
-+  { "atmega324a",           ARCH_AVR5, "__AVR_ATmega324A__",        0, 0x0060, "m324a" },
-   { "atmega324p",           ARCH_AVR5, "__AVR_ATmega324P__",        0, 0x0100, "m324p" },
-+  { "atmega324pa",          ARCH_AVR5, "__AVR_ATmega324PA__",       0, 0x0100, "m324pa" },
-   { "atmega325",            ARCH_AVR5, "__AVR_ATmega325__",         0, 0x0100, "m325" },
-+  { "atmega325a",           ARCH_AVR5, "__AVR_ATmega325A__",        0, 0x0100, "m325a" },
-   { "atmega325p",           ARCH_AVR5, "__AVR_ATmega325P__",        0, 0x0100, "m325p" },
-   { "atmega3250",           ARCH_AVR5, "__AVR_ATmega3250__",        0, 0x0100, "m3250" },
-+  { "atmega3250a",          ARCH_AVR5, "__AVR_ATmega3250A__",       0, 0x0100, "m3250a" },
-   { "atmega3250p",          ARCH_AVR5, "__AVR_ATmega3250P__",       0, 0x0100, "m3250p" },
-+  { "atmega328",            ARCH_AVR5, "__AVR_ATmega328__",         0, 0x0100, "m328" },
-   { "atmega328p",           ARCH_AVR5, "__AVR_ATmega328P__",        0, 0x0100, "m328p" },
-   { "atmega329",            ARCH_AVR5, "__AVR_ATmega329__",         0, 0x0100, "m329" },
-+  { "atmega329a",           ARCH_AVR5, "__AVR_ATmega329A__",        0, 0x0100, "m329a" },
-   { "atmega329p",           ARCH_AVR5, "__AVR_ATmega329P__",        0, 0x0100, "m329p" },
-+  { "atmega329pa",          ARCH_AVR5, "__AVR_ATmega329PA__",       0, 0x0100, "m329pa" },
-   { "atmega3290",           ARCH_AVR5, "__AVR_ATmega3290__",        0, 0x0100, "m3290" },
-+  { "atmega3290a",          ARCH_AVR5, "__AVR_ATmega3290A__",       0, 0x0100, "m3290a" },
-   { "atmega3290p",          ARCH_AVR5, "__AVR_ATmega3290P__",       0, 0x0100, "m3290p" },
-+  { "atmega32c1",           ARCH_AVR5, "__AVR_ATmega32C1__",        0, 0x0100, "m32c1" },
-+  { "atmega32m1",           ARCH_AVR5, "__AVR_ATmega32M1__",        0, 0x0100, "m32m1" },
-+  { "atmega32u4",           ARCH_AVR5, "__AVR_ATmega32U4__",        0, 0x0100, "m32u4" },
-+  { "atmega32u6",           ARCH_AVR5, "__AVR_ATmega32U6__",        0, 0x0100, "m32u6" },
-   { "atmega406",            ARCH_AVR5, "__AVR_ATmega406__",         0, 0x0100, "m406" },
-   { "atmega64",             ARCH_AVR5, "__AVR_ATmega64__",          0, 0x0100, "m64" },
-   { "atmega640",            ARCH_AVR5, "__AVR_ATmega640__",         0, 0x0200, "m640" },
-   { "atmega644",            ARCH_AVR5, "__AVR_ATmega644__",         0, 0x0100, "m644" },
-+  { "atmega644a",           ARCH_AVR5, "__AVR_ATmega644A__",        0, 0x0100, "m644a" },
-   { "atmega644p",           ARCH_AVR5, "__AVR_ATmega644P__",        0, 0x0100, "m644p" },
-+  { "atmega644pa",          ARCH_AVR5, "__AVR_ATmega644PA__",       0, 0x0100, "m644pa" },
-+  { "atmega645a",           ARCH_AVR5, "__AVR_ATmega645A__",        0, 0x0100, "m645a" },
-+  { "atmega645p",           ARCH_AVR5, "__AVR_ATmega645P__",        0, 0x0100, "m645p" },
-   { "atmega645",            ARCH_AVR5, "__AVR_ATmega645__",         0, 0x0100, "m645" },
-   { "atmega6450",           ARCH_AVR5, "__AVR_ATmega6450__",        0, 0x0100, "m6450" },
-+  { "atmega6450a",          ARCH_AVR5, "__AVR_ATmega6450A__",       0, 0x0100, "m6450a" },
-+  { "atmega6450p",          ARCH_AVR5, "__AVR_ATmega6450P__",       0, 0x0100, "m6450p" },
-   { "atmega649",            ARCH_AVR5, "__AVR_ATmega649__",         0, 0x0100, "m649" },
-+  { "atmega649a",           ARCH_AVR5, "__AVR_ATmega649A__",        0, 0x0100, "m649a" },
-+  { "atmega649p",           ARCH_AVR5, "__AVR_ATmega649P__",        0, 0x0100, "m649p" },
-   { "atmega6490",           ARCH_AVR5, "__AVR_ATmega6490__",        0, 0x0100, "m6490" },
--  { "atmega16hva",          ARCH_AVR5, "__AVR_ATmega16HVA__",       0, 0x0100, "m16hva" },
--  { "atmega16hvb",          ARCH_AVR5, "__AVR_ATmega16HVB__",       0, 0x0100, "m16hvb" },
--  { "atmega32hvb",          ARCH_AVR5, "__AVR_ATmega32HVB__",       0, 0x0100, "m23hvb" },
-+  { "atmega6490a",          ARCH_AVR5, "__AVR_ATmega6490A__",       0, 0x0100, "m6490a" },
-+  { "atmega6490p",          ARCH_AVR5, "__AVR_ATmega6490P__",       0, 0x0100, "m6490p" },
-+  { "atmega64c1",           ARCH_AVR5, "__AVR_ATmega64C1__",        0, 0x0100, "m64c1" },
-+  { "atmega64m1",           ARCH_AVR5, "__AVR_ATmega64M1__",        0, 0x0100, "m64m1" },
-+  { "atmega64hve",          ARCH_AVR5, "__AVR_ATmega64HVE__",       0, 0x0100, "m64hve" },
-+  { "atmega32hvb",          ARCH_AVR5, "__AVR_ATmega32HVB__",       0, 0x0100, "m32hvb" },
-+  { "atmega32hvbrevb",      ARCH_AVR5, "__AVR_ATmega32HVBREVB__",   1, 0x0100, "m32hvbrevb" },
-   { "at90can32",            ARCH_AVR5, "__AVR_AT90CAN32__",         0, 0x0100, "can32" },
-   { "at90can64",            ARCH_AVR5, "__AVR_AT90CAN64__",         0, 0x0100, "can64" },
-   { "at90pwm216",           ARCH_AVR5, "__AVR_AT90PWM216__",        0, 0x0100, "90pwm216" },
-@@ -180,6 +223,7 @@ const struct mcu_type_s avr_mcu_types[] 
-   { "at90usb646",           ARCH_AVR5, "__AVR_AT90USB646__",        0, 0x0100, "usb646" },
-   { "at90usb647",           ARCH_AVR5, "__AVR_AT90USB647__",        0, 0x0100, "usb647" },
-   { "at94k",                ARCH_AVR5, "__AVR_AT94K__",             0, 0x0060, "at94k" },
-+  { "m3000",                ARCH_AVR5, "__AVR_M3000__",             0, 0x1000, "m3000" },
-     /* Enhanced, == 128K.  */
-   { "avr51",                ARCH_AVR51, NULL,                       0, 0x0100, "m128" },
-   { "atmega128",            ARCH_AVR51, "__AVR_ATmega128__",        0, 0x0100, "m128" },
-@@ -190,9 +234,6 @@ const struct mcu_type_s avr_mcu_types[] 
-   { "at90can128",           ARCH_AVR51, "__AVR_AT90CAN128__",       0, 0x0100, "can128" },
-   { "at90usb1286",          ARCH_AVR51, "__AVR_AT90USB1286__",      0, 0x0100, "usb1286" },
-   { "at90usb1287",          ARCH_AVR51, "__AVR_AT90USB1287__",      0, 0x0100, "usb1286" },
--  { "m3000f",               ARCH_AVR51, "__AVR_M3000F__",           0, 0x1000, "m3000f" },
--  { "m3000s",               ARCH_AVR51, "__AVR_M3000S__",           0, 0x1000, "m3000f" },
--  { "m3001b",               ARCH_AVR51, "__AVR_M3001B__",           0, 0x1000, "m3000f" },
-     /* 3-Byte PC.  */
-   { "avr6",                 ARCH_AVR6, NULL,                        0, 0x0200, "m2561" },
-   { "atmega2560",           ARCH_AVR6, "__AVR_ATmega2560__",        0, 0x0200, "m2561" },
-@@ -219,11 +260,13 @@ const struct mcu_type_s avr_mcu_types[] 
-     /* Xmega, > 128K, <= 256K FLASH, <= 64K RAM.  */
-   { "avrxmega6",    ARCH_AVRXMEGA6, NULL,                           0, 0x2000, "x128a3" },
-   { "atxmega128a3", ARCH_AVRXMEGA6, "__AVR_ATxmega128A3__",         0, 0x2000, "x128a3" },
-+  { "atxmega128b1", ARCH_AVRXMEGA6, "__AVR_ATxmega128B1__",         0, 0x2000, "x128b1" },
-   { "atxmega128d3", ARCH_AVRXMEGA6, "__AVR_ATxmega128D3__",         0, 0x2000, "x128d3" },
-   { "atxmega192a3", ARCH_AVRXMEGA6, "__AVR_ATxmega192A3__",         0, 0x2000, "x192a3" },
-   { "atxmega192d3", ARCH_AVRXMEGA6, "__AVR_ATxmega192D3__",         0, 0x2000, "x192d3" },
-   { "atxmega256a3", ARCH_AVRXMEGA6, "__AVR_ATxmega256A3__",         0, 0x2000, "x256a3" },
-   { "atxmega256a3b",ARCH_AVRXMEGA6, "__AVR_ATxmega256A3B__",        0, 0x2000, "x256a3b" },
-+  { "atxmega256a3bu", ARCH_AVRXMEGA6, "__AVR_ATxmega256A3BU__",     0, 0x2000, "x256a3bu" },
-   { "atxmega256d3", ARCH_AVRXMEGA6, "__AVR_ATxmega256D3__",         0, 0x2000, "x256d3" },
-     /* Xmega, > 128K, <= 256K FLASH, > 64K RAM.  */
-   { "avrxmega7",    ARCH_AVRXMEGA7, NULL,                           0, 0x2000, "x128a1" },
-diff -Naurp gcc/config/avr/t-avr gcc/config/avr/t-avr
---- gcc/config/avr/t-avr       2011-09-02 11:47:23.000000000 +0300
-+++ gcc/config/avr/t-avr       2011-09-02 11:49:57.000000000 +0300
-@@ -116,16 +116,28 @@ MULTILIB_MATCHES = \
-       mmcu?avr25=mmcu?attiny13 \
-       mmcu?avr25=mmcu?attiny13a \
-       mmcu?avr25=mmcu?attiny2313 \
-+      mmcu?avr25=mmcu?attiny2313a \
-       mmcu?avr25=mmcu?attiny24 \
-+      mmcu?avr25=mmcu?attiny24a \
-       mmcu?avr25=mmcu?attiny44 \
-+      mmcu?avr25=mmcu?attiny44a \
-+      mmcu?avr25=mmcu?attiny45 \
-       mmcu?avr25=mmcu?attiny84 \
-+      mmcu?avr25=mmcu?attiny84a \
-       mmcu?avr25=mmcu?attiny25 \
-       mmcu?avr25=mmcu?attiny45 \
-       mmcu?avr25=mmcu?attiny85 \
-       mmcu?avr25=mmcu?attiny261 \
-+      mmcu?avr25=mmcu?attiny261a \
-+      mmcu?avr25=mmcu?attiny4313 \
-       mmcu?avr25=mmcu?attiny461 \
-+      mmcu?avr25=mmcu?attiny461a \
-       mmcu?avr25=mmcu?attiny861 \
-       mmcu?avr25=mmcu?attiny43u \
-+      mmcu?avr25=mmcu?attiny84 \
-+      mmcu?avr25=mmcu?attiny85 \
-+      mmcu?avr25=mmcu?attiny861 \
-+      mmcu?avr25=mmcu?attiny861a \
-       mmcu?avr25=mmcu?attiny87 \
-       mmcu?avr25=mmcu?attiny48 \
-       mmcu?avr25=mmcu?attiny88 \
-@@ -140,65 +152,90 @@ MULTILIB_MATCHES = \
-       mmcu?avr35=mmcu?atmega16u2 \
-       mmcu?avr35=mmcu?atmega32u2 \
-       mmcu?avr35=mmcu?attiny167 \
--      mmcu?avr35=mmcu?attiny327 \
-       mmcu?avr4=mmcu?atmega48 \
-+      mmcu?avr4=mmcu?atmega48a \
-       mmcu?avr4=mmcu?atmega48p \
-       mmcu?avr4=mmcu?atmega8 \
-       mmcu?avr4=mmcu?atmega8515 \
-       mmcu?avr4=mmcu?atmega8535 \
-       mmcu?avr4=mmcu?atmega88 \
-+      mmcu?avr4=mmcu?atmega88a \
-       mmcu?avr4=mmcu?atmega88p \
-+      mmcu?avr4=mmcu?atmega88pa \
-       mmcu?avr4=mmcu?atmega8hva \
--      mmcu?avr4=mmcu?atmega4hvd \
--      mmcu?avr4=mmcu?atmega8hvd \
--      mmcu?avr4=mmcu?atmega8c1 \
--      mmcu?avr4=mmcu?atmega8m1 \
-       mmcu?avr4=mmcu?at90pwm1 \
-       mmcu?avr4=mmcu?at90pwm2 \
-       mmcu?avr4=mmcu?at90pwm2b \
-       mmcu?avr4=mmcu?at90pwm3 \
-       mmcu?avr4=mmcu?at90pwm3b \
-       mmcu?avr4=mmcu?at90pwm81 \
-+      mmcu?avr5=mmcu?at90pwm161 \
-       mmcu?avr5=mmcu?atmega16 \
-+      mmcu?avr5=mmcu?atmega16a \
-       mmcu?avr5=mmcu?atmega161 \
-       mmcu?avr5=mmcu?atmega162 \
-       mmcu?avr5=mmcu?atmega163 \
-+      mmcu?avr5=mmcu?atmega164a \
-       mmcu?avr5=mmcu?atmega164p \
-       mmcu?avr5=mmcu?atmega165 \
-+      mmcu?avr5=mmcu?atmega165a \
-       mmcu?avr5=mmcu?atmega165p \
-       mmcu?avr5=mmcu?atmega168 \
-+      mmcu?avr5=mmcu?atmega168a \
-       mmcu?avr5=mmcu?atmega168p \
-       mmcu?avr5=mmcu?atmega169 \
-+      mmcu?avr5=mmcu?atmega169a \
-       mmcu?avr5=mmcu?atmega169p \
-+      mmcu?avr5=mmcu?atmega169pa \
-       mmcu?avr5=mmcu?atmega32 \
-       mmcu?avr5=mmcu?atmega323 \
-+      mmcu?avr5=mmcu?atmega324a \
-       mmcu?avr5=mmcu?atmega324p \
-+      mmcu?avr5=mmcu?atmega324pa \
-       mmcu?avr5=mmcu?atmega325 \
-+      mmcu?avr5=mmcu?atmega325a \
-       mmcu?avr5=mmcu?atmega325p \
-       mmcu?avr5=mmcu?atmega3250 \
-+      mmcu?avr5=mmcu?atmega3250a \
-       mmcu?avr5=mmcu?atmega3250p \
-+      mmcu?avr5=mmcu?atmega328 \
-       mmcu?avr5=mmcu?atmega328p \
-       mmcu?avr5=mmcu?atmega329 \
-+      mmcu?avr5=mmcu?atmega329a \
-       mmcu?avr5=mmcu?atmega329p \
-+      mmcu?avr5=mmcu?atmega329pa \
-       mmcu?avr5=mmcu?atmega3290 \
-+      mmcu?avr5=mmcu?atmega3290a \
-       mmcu?avr5=mmcu?atmega3290p \
-       mmcu?avr5=mmcu?atmega406 \
-       mmcu?avr5=mmcu?atmega64  \
-       mmcu?avr5=mmcu?atmega640 \
-       mmcu?avr5=mmcu?atmega644 \
-+      mmcu?avr5=mmcu?atmega644a \
-       mmcu?avr5=mmcu?atmega644p \
-+      mmcu?avr5=mmcu?atmega644pa \
-       mmcu?avr5=mmcu?atmega645 \
-+      mmcu?avr5=mmcu?atmega645a \
-+      mmcu?avr5=mmcu?atmega645p \
-       mmcu?avr5=mmcu?atmega6450 \
-+      mmcu?avr5=mmcu?atmega6450a \
-+      mmcu?avr5=mmcu?atmega6450p \
-       mmcu?avr5=mmcu?atmega649 \
-+      mmcu?avr5=mmcu?atmega649a \
-+      mmcu?avr5=mmcu?atmega649p \
-       mmcu?avr5=mmcu?atmega6490 \
-+      mmcu?avr5=mmcu?atmega6490a \
-+      mmcu?avr5=mmcu?atmega6490p \
-       mmcu?avr5=mmcu?atmega16hva \
-+      mmcu?avr5=mmcu?atmega16hva2 \
-       mmcu?avr5=mmcu?atmega16hvb \
-+      mmcu?avr5=mmcu?atmega16hvbrevb \
-       mmcu?avr5=mmcu?atmega32hvb \
-+      mmcu?avr5=mmcu?atmega32hvbrevb \
-       mmcu?avr5=mmcu?at90can32 \
-       mmcu?avr5=mmcu?at90can64 \
-       mmcu?avr5=mmcu?at90pwm216 \
-       mmcu?avr5=mmcu?at90pwm316 \
--      mmcu?avr5=mmcu?atmega16c1 \
-       mmcu?avr5=mmcu?atmega32c1 \
-       mmcu?avr5=mmcu?atmega64c1 \
-       mmcu?avr5=mmcu?atmega16m1 \
-@@ -207,6 +244,7 @@ MULTILIB_MATCHES = \
-       mmcu?avr5=mmcu?atmega16u4 \
-       mmcu?avr5=mmcu?atmega32u4 \
-       mmcu?avr5=mmcu?atmega32u6 \
-+      mmcu?avr5=mmcu?atmega64hve \
-       mmcu?avr5=mmcu?at90scr100 \
-       mmcu?avr5=mmcu?at90usb646 \
-       mmcu?avr5=mmcu?at90usb647 \
-@@ -219,9 +257,7 @@ MULTILIB_MATCHES = \
-       mmcu?avr51=mmcu?at90can128 \
-       mmcu?avr51=mmcu?at90usb1286 \
-       mmcu?avr51=mmcu?at90usb1287 \
--      mmcu?avr51=mmcu?m3000f \
--      mmcu?avr51=mmcu?m3000s \
--      mmcu?avr51=mmcu?m3001b \
-+      mmcu?avr51=mmcu?m3000 \
-       mmcu?avr6=mmcu?atmega2560 \
-       mmcu?avr6=mmcu?atmega2561 \
-       mmcu?avrxmega2=mmcu?atxmega16a4 \
-@@ -234,11 +270,13 @@ MULTILIB_MATCHES = \
-       mmcu?avrxmega5=mmcu?atxmega64a1 \
-       mmcu?avrxmega5=mmcu?atxmega64a1u \
-       mmcu?avrxmega6=mmcu?atxmega128a3 \
-+      mmcu?avrxmega6=mmcu?atxmega128b1 \
-       mmcu?avrxmega6=mmcu?atxmega128d3 \
-       mmcu?avrxmega6=mmcu?atxmega192a3 \
-       mmcu?avrxmega6=mmcu?atxmega192d3 \
-       mmcu?avrxmega6=mmcu?atxmega256a3 \
-       mmcu?avrxmega6=mmcu?atxmega256a3b \
-+      mmcu?avrxmega6=mmcu?atxmega256a3bu \
-       mmcu?avrxmega6=mmcu?atxmega256d3 \
-       mmcu?avrxmega7=mmcu?atxmega128a1 \
-       mmcu?avrxmega7=mmcu?atxmega128a1u \
diff --git a/400-gcc-new-devices.patch b/400-gcc-new-devices.patch
new file mode 100644 (file)
index 0000000..190c023
--- /dev/null
@@ -0,0 +1,127 @@
+diff -Naurp gcc/config/avr/avr-devices.c gcc/config/avr/avr-devices.c
+--- gcc/config/avr/avr-devices.c       2011-06-24 10:30:09.000000000 +0530
++++ gcc/config/avr/avr-devices.c       2011-06-24 10:29:33.000000000 +0530
+@@ -134,6 +134,8 @@ const struct mcu_type_s avr_mcu_types[] 
+   { "at90pwm81",            ARCH_AVR4, "__AVR_AT90PWM81__",         0, 0x0100, "90pwm81" },
+     /* Enhanced, > 8K, <= 64K.  */
+   { "avr5",                 ARCH_AVR5, NULL,                        0, 0x0060, "m16" },
++  { "at90pwm161",           ARCH_AVR5, "__AVR_AT90PWM161__",    1, 0x0100, "90pwm161" },
++
+   { "atmega16",             ARCH_AVR5, "__AVR_ATmega16__",          0, 0x0060, "m16" },
+   { "atmega16a",            ARCH_AVR5, "__AVR_ATmega16A__",         0, 0x0060, "m16a" },
+   { "atmega161",            ARCH_AVR5, "__AVR_ATmega161__",         0, 0x0060, "m161" },
+@@ -151,6 +153,11 @@ const struct mcu_type_s avr_mcu_types[] 
+   { "atmega169a",           ARCH_AVR5, "__AVR_ATmega169A__",        0, 0x0100, "m169a" },
+   { "atmega169p",           ARCH_AVR5, "__AVR_ATmega169P__",        0, 0x0100, "m169p" },
+   { "atmega169pa",          ARCH_AVR5, "__AVR_ATmega169PA__",       0, 0x0100, "m169pa" },
++  { "atmega16hva",          ARCH_AVR5, "__AVR_ATmega16HVA__",       0, 0x0100, "m16hva" },
++  { "atmega16hvb",          ARCH_AVR5, "__AVR_ATmega16HVB__",       0, 0x0100, "m16hvb" },
++  { "atmega16hvbrevb",      ARCH_AVR5, "__AVR_ATmega16HVBREVB__",   1, 0x0100, "m16hvbrevb" },
++  { "atmega16m1",           ARCH_AVR5, "__AVR_ATmega16M1__",        0, 0x0100, "m16m1" },
++  { "atmega16u4",           ARCH_AVR5, "__AVR_ATmega16U4__",        0, 0x0100, "m16u4" },
+   { "atmega32",             ARCH_AVR5, "__AVR_ATmega32__",          0, 0x0060, "m32" },
+   { "atmega323",            ARCH_AVR5, "__AVR_ATmega323__",         0, 0x0060, "m323" },
+   { "atmega324a",           ARCH_AVR5, "__AVR_ATmega324A__",        0, 0x0100, "m324a" },
+@@ -171,6 +178,10 @@ const struct mcu_type_s avr_mcu_types[] 
+   { "atmega3290",           ARCH_AVR5, "__AVR_ATmega3290__",        0, 0x0100, "m3290" },
+   { "atmega3290a",          ARCH_AVR5, "__AVR_ATmega3290A__",       0, 0x0100, "m3290a" },
+   { "atmega3290p",          ARCH_AVR5, "__AVR_ATmega3290P__",       0, 0x0100, "m3290p" },
++  { "atmega32c1",           ARCH_AVR5, "__AVR_ATmega32C1__",        0, 0x0100, "m32c1" },
++  { "atmega32m1",           ARCH_AVR5, "__AVR_ATmega32M1__",        0, 0x0100, "m32m1" },
++  { "atmega32u4",           ARCH_AVR5, "__AVR_ATmega32U4__",        0, 0x0100, "m32u4" },
++  { "atmega32u6",           ARCH_AVR5, "__AVR_ATmega32U6__",        0, 0x0100, "m32u6" },
+   { "atmega406",            ARCH_AVR5, "__AVR_ATmega406__",         0, 0x0100, "m406" },
+   { "atmega64",             ARCH_AVR5, "__AVR_ATmega64__",          0, 0x0100, "m64" },
+   { "atmega640",            ARCH_AVR5, "__AVR_ATmega640__",         0, 0x0200, "m640" },
+@@ -188,11 +199,14 @@ const struct mcu_type_s avr_mcu_types[] 
+   { "atmega649a",           ARCH_AVR5, "__AVR_ATmega649A__",        0, 0x0100, "m649a" },
+   { "atmega649p",           ARCH_AVR5, "__AVR_ATmega649P__",        0, 0x0100, "m649p" },
+   { "atmega6490",           ARCH_AVR5, "__AVR_ATmega6490__",        0, 0x0100, "m6490" },
+-  { "atmega16hva",          ARCH_AVR5, "__AVR_ATmega16HVA__",       0, 0x0100, "m16hva" },
+-  { "atmega16hva2",         ARCH_AVR5, "__AVR_ATmega16HVA2__",      0, 0x0100, "m16hva2" },
+-  { "atmega16hvb",          ARCH_AVR5, "__AVR_ATmega16HVB__",       0, 0x0100, "m16hvb" },
+-  { "atmega32hvb",          ARCH_AVR5, "__AVR_ATmega32HVB__",       0, 0x0100, "m32hvb" },
++  { "atmega6490a",          ARCH_AVR5, "__AVR_ATmega6490A__",       0, 0x0100, "m6490a" },
++  { "atmega6490p",          ARCH_AVR5, "__AVR_ATmega6490P__",       0, 0x0100, "m6490p" },
++  { "atmega64c1",           ARCH_AVR5, "__AVR_ATmega64C1__",        0, 0x0100, "m64c1" },
++  { "atmega64m1",           ARCH_AVR5, "__AVR_ATmega64M1__",        0, 0x0100, "m64m1" },
+   { "atmega64hve",          ARCH_AVR5, "__AVR_ATmega64HVE__",       0, 0x0100, "m64hve" },
++  { "atmega32hvb",          ARCH_AVR5, "__AVR_ATmega32HVB__",       0, 0x0100, "m32hvb" },
++  { "atmega32hvbrevb",      ARCH_AVR5, "__AVR_ATmega32HVBREVB__",   1, 0x0100, "m32hvbrevb" },
++  { "atmega16hva2",         ARCH_AVR5, "__AVR_ATmega16HVA2__",      0, 0x0100, "m16hva2" },
+   { "at90can32",            ARCH_AVR5, "__AVR_AT90CAN32__",         0, 0x0100, "can32" },
+   { "at90can64",            ARCH_AVR5, "__AVR_AT90CAN64__",         0, 0x0100, "can64" },
+   { "at90pwm216",           ARCH_AVR5, "__AVR_AT90PWM216__",        0, 0x0100, "90pwm216" },
+@@ -246,11 +260,13 @@ const struct mcu_type_s avr_mcu_types[] 
+     /* Xmega, > 128K, <= 256K FLASH, <= 64K RAM.  */
+   { "avrxmega6",    ARCH_AVRXMEGA6, NULL,                           0, 0x2000, "x128a3" },
+   { "atxmega128a3", ARCH_AVRXMEGA6, "__AVR_ATxmega128A3__",         0, 0x2000, "x128a3" },
++  { "atxmega128b1", ARCH_AVRXMEGA6, "__AVR_ATxmega128B1__",         0, 0x2000, "x128b1" },
+   { "atxmega128d3", ARCH_AVRXMEGA6, "__AVR_ATxmega128D3__",         0, 0x2000, "x128d3" },
+   { "atxmega192a3", ARCH_AVRXMEGA6, "__AVR_ATxmega192A3__",         0, 0x2000, "x192a3" },
+   { "atxmega192d3", ARCH_AVRXMEGA6, "__AVR_ATxmega192D3__",         0, 0x2000, "x192d3" },
+   { "atxmega256a3", ARCH_AVRXMEGA6, "__AVR_ATxmega256A3__",         0, 0x2000, "x256a3" },
+   { "atxmega256a3b",ARCH_AVRXMEGA6, "__AVR_ATxmega256A3B__",        0, 0x2000, "x256a3b" },
++  { "atxmega256a3bu", ARCH_AVRXMEGA6, "__AVR_ATxmega256A3BU__",     0, 0x2000, "x256a3bu" },
+   { "atxmega256d3", ARCH_AVRXMEGA6, "__AVR_ATxmega256D3__",         0, 0x2000, "x256d3" },
+     /* Xmega, > 128K, <= 256K FLASH, > 64K RAM.  */
+   { "avrxmega7",    ARCH_AVRXMEGA7, NULL,                           0, 0x2000, "x128a1" },
+diff -Naurp gcc/config/avr/t-avr gcc/config/avr/t-avr
+--- gcc/config/avr/t-avr       2011-06-24 10:30:09.000000000 +0530
++++ gcc/config/avr/t-avr       2011-06-24 10:29:06.000000000 +0530
+@@ -129,6 +129,7 @@ MULTILIB_MATCHES = \
+       mmcu?avr25=mmcu?attiny85 \
+       mmcu?avr25=mmcu?attiny261 \
+       mmcu?avr25=mmcu?attiny261a \
++        mmcu?avr25=mmcu?attiny4313 \
+       mmcu?avr25=mmcu?attiny461 \
+       mmcu?avr25=mmcu?attiny461a \
+       mmcu?avr25=mmcu?attiny861 \
+@@ -148,6 +149,7 @@ MULTILIB_MATCHES = \
+       mmcu?avr35=mmcu?atmega16u2 \
+       mmcu?avr35=mmcu?atmega32u2 \
+       mmcu?avr35=mmcu?attiny167 \
++      mmcu?avr35=mmcu?attiny327 \
+       mmcu?avr4=mmcu?atmega48 \
+       mmcu?avr4=mmcu?atmega48a \
+       mmcu?avr4=mmcu?atmega48p \
+@@ -165,6 +167,7 @@ MULTILIB_MATCHES = \
+       mmcu?avr4=mmcu?at90pwm3 \
+       mmcu?avr4=mmcu?at90pwm3b \
+       mmcu?avr4=mmcu?at90pwm81 \
++      mmcu?avr5=mmcu?at90pwm161 \
+       mmcu?avr5=mmcu?atmega16 \
+       mmcu?avr5=mmcu?atmega16a \
+       mmcu?avr5=mmcu?atmega161 \
+@@ -224,7 +227,9 @@ MULTILIB_MATCHES = \
+       mmcu?avr5=mmcu?atmega16hva \
+       mmcu?avr5=mmcu?atmega16hva2 \
+       mmcu?avr5=mmcu?atmega16hvb \
++      mmcu?avr5=mmcu?atmega16hvbrevb \
+       mmcu?avr5=mmcu?atmega32hvb \
++      mmcu?avr5=mmcu?atmega32hvbrevb \
+       mmcu?avr5=mmcu?atmega64hve \
+       mmcu?avr5=mmcu?at90can32 \
+       mmcu?avr5=mmcu?at90can64 \
+@@ -238,6 +243,7 @@ MULTILIB_MATCHES = \
+       mmcu?avr5=mmcu?atmega16u4 \
+       mmcu?avr5=mmcu?atmega32u4 \
+       mmcu?avr5=mmcu?atmega32u6 \
++      mmcu?avr5=mmcu?atmega64hve \
+       mmcu?avr5=mmcu?at90scr100 \
+       mmcu?avr5=mmcu?at90usb646 \
+       mmcu?avr5=mmcu?at90usb647 \
+@@ -263,11 +269,13 @@ MULTILIB_MATCHES = \
+       mmcu?avrxmega5=mmcu?atxmega64a1 \
+       mmcu?avrxmega5=mmcu?atxmega64a1u \
+       mmcu?avrxmega6=mmcu?atxmega128a3 \
++      mmcu?avrxmega6=mmcu?atxmega128b1 \
+       mmcu?avrxmega6=mmcu?atxmega128d3 \
+       mmcu?avrxmega6=mmcu?atxmega192a3 \
+       mmcu?avrxmega6=mmcu?atxmega192d3 \
+       mmcu?avrxmega6=mmcu?atxmega256a3 \
+       mmcu?avrxmega6=mmcu?atxmega256a3b \
++      mmcu?avrxmega6=mmcu?atxmega256a3bu \
+       mmcu?avrxmega6=mmcu?atxmega256d3 \
+       mmcu?avrxmega7=mmcu?atxmega128a1 \
+       mmcu?avrxmega7=mmcu?atxmega128a1u \
similarity index 87%
rename from 401-gcc-4.5.1-atmega32_5_50_90_pa.patch
rename to 401-gcc-atmega32_5_50_90_pa.patch
index 24fd9c2abb1eed03f5621fcfea5b0927946d4b6a..1ac09877b165aca1f84d97ba8f23ac0ff4177a99 100644 (file)
@@ -1,6 +1,6 @@
 diff -Naurp gcc/config/avr/avr-devices.c gcc/config/avr/avr-devices.c
 diff -Naurp gcc/config/avr/avr-devices.c gcc/config/avr/avr-devices.c
---- gcc/config/avr/avr-devices.c       2011-02-17 12:04:53.000000000 -0600
-+++ gcc/config/avr/avr-devices.c       2011-02-16 15:14:00.000000000 -0600
+--- gcc/config/avr/avr-devices.c       2011-06-24 10:34:16.000000000 +0530
++++ gcc/config/avr/avr-devices.c       2011-06-24 10:33:44.000000000 +0530
 @@ -166,9 +166,11 @@ const struct mcu_type_s avr_mcu_types[] 
    { "atmega325",            ARCH_AVR5, "__AVR_ATmega325__",         0, 0x0100, "m325" },
    { "atmega325a",           ARCH_AVR5, "__AVR_ATmega325A__",        0, 0x0100, "m325a" },
 @@ -166,9 +166,11 @@ const struct mcu_type_s avr_mcu_types[] 
    { "atmega325",            ARCH_AVR5, "__AVR_ATmega325__",         0, 0x0100, "m325" },
    { "atmega325a",           ARCH_AVR5, "__AVR_ATmega325A__",        0, 0x0100, "m325a" },
@@ -22,9 +22,9 @@ diff -Naurp gcc/config/avr/avr-devices.c gcc/config/avr/avr-devices.c
    { "atmega32m1",           ARCH_AVR5, "__AVR_ATmega32M1__",        0, 0x0100, "m32m1" },
    { "atmega32u4",           ARCH_AVR5, "__AVR_ATmega32U4__",        0, 0x0100, "m32u4" },
 diff -Naurp gcc/config/avr/t-avr gcc/config/avr/t-avr
    { "atmega32m1",           ARCH_AVR5, "__AVR_ATmega32M1__",        0, 0x0100, "m32m1" },
    { "atmega32u4",           ARCH_AVR5, "__AVR_ATmega32U4__",        0, 0x0100, "m32u4" },
 diff -Naurp gcc/config/avr/t-avr gcc/config/avr/t-avr
---- gcc/config/avr/t-avr       2011-02-17 12:04:53.000000000 -0600
-+++ gcc/config/avr/t-avr       2011-02-16 15:15:18.000000000 -0600
-@@ -195,9 +195,11 @@ MULTILIB_MATCHES = \
+--- gcc/config/avr/t-avr       2011-06-24 10:34:16.000000000 +0530
++++ gcc/config/avr/t-avr       2011-06-24 10:33:44.000000000 +0530
+@@ -193,9 +193,11 @@ MULTILIB_MATCHES = \
        mmcu?avr5=mmcu?atmega325 \
        mmcu?avr5=mmcu?atmega325a \
        mmcu?avr5=mmcu?atmega325p \
        mmcu?avr5=mmcu?atmega325 \
        mmcu?avr5=mmcu?atmega325a \
        mmcu?avr5=mmcu?atmega325p \
@@ -36,7 +36,7 @@ diff -Naurp gcc/config/avr/t-avr gcc/config/avr/t-avr
        mmcu?avr5=mmcu?atmega328 \
        mmcu?avr5=mmcu?atmega328p \
        mmcu?avr5=mmcu?atmega329 \
        mmcu?avr5=mmcu?atmega328 \
        mmcu?avr5=mmcu?atmega328p \
        mmcu?avr5=mmcu?atmega329 \
-@@ -207,6 +209,7 @@ MULTILIB_MATCHES = \
+@@ -205,6 +207,7 @@ MULTILIB_MATCHES = \
        mmcu?avr5=mmcu?atmega3290 \
        mmcu?avr5=mmcu?atmega3290a \
        mmcu?avr5=mmcu?atmega3290p \
        mmcu?avr5=mmcu?atmega3290 \
        mmcu?avr5=mmcu?atmega3290a \
        mmcu?avr5=mmcu?atmega3290p \
similarity index 73%
rename from 402-gcc-4.5.1-attiny1634.patch
rename to 402-gcc-attiny1634.patch
index 008a9bf8cfc03d54da53713ac04f2bae15242553..b052e42eeaafd05b9d1d8c355777dacc695a709c 100644 (file)
@@ -1,6 +1,6 @@
 diff -Naurp gcc/config/avr/avr-devices.c gcc/config/avr/avr-devices.c
 diff -Naurp gcc/config/avr/avr-devices.c gcc/config/avr/avr-devices.c
---- gcc/config/avr/avr-devices.c       2011-05-13 17:35:31.000000000 -0500
-+++ gcc/config/avr/avr-devices.c       2011-05-13 17:43:10.000000000 -0500
+--- gcc/config/avr/avr-devices.c       2011-06-21 19:07:27.000000000 +0530
++++ gcc/config/avr/avr-devices.c       2011-06-21 19:07:59.000000000 +0530
 @@ -113,6 +113,7 @@ const struct mcu_type_s avr_mcu_types[] 
    { "atmega16u2",           ARCH_AVR35, "__AVR_ATmega16U2__",       0, 0x0100, "m16u2" },
    { "atmega32u2",           ARCH_AVR35, "__AVR_ATmega32U2__",       0, 0x0100, "m32u2" },
 @@ -113,6 +113,7 @@ const struct mcu_type_s avr_mcu_types[] 
    { "atmega16u2",           ARCH_AVR35, "__AVR_ATmega16U2__",       0, 0x0100, "m16u2" },
    { "atmega32u2",           ARCH_AVR35, "__AVR_ATmega32U2__",       0, 0x0100, "m32u2" },
@@ -10,13 +10,13 @@ diff -Naurp gcc/config/avr/avr-devices.c gcc/config/avr/avr-devices.c
    { "avr4",                 ARCH_AVR4, NULL,                        0, 0x0060, "m8" },
    { "atmega8",              ARCH_AVR4, "__AVR_ATmega8__",           0, 0x0060, "m8" },
 diff -Naurp gcc/config/avr/t-avr gcc/config/avr/t-avr
    { "avr4",                 ARCH_AVR4, NULL,                        0, 0x0060, "m8" },
    { "atmega8",              ARCH_AVR4, "__AVR_ATmega8__",           0, 0x0060, "m8" },
 diff -Naurp gcc/config/avr/t-avr gcc/config/avr/t-avr
---- gcc/config/avr/t-avr       2011-05-13 17:35:31.000000000 -0500
-+++ gcc/config/avr/t-avr       2011-05-13 17:37:41.000000000 -0500
-@@ -152,6 +152,7 @@ MULTILIB_MATCHES = \
+--- gcc/config/avr/t-avr       2011-06-21 19:07:27.000000000 +0530
++++ gcc/config/avr/t-avr       2011-06-21 19:08:51.000000000 +0530
+@@ -149,6 +149,7 @@ MULTILIB_MATCHES = \
        mmcu?avr35=mmcu?atmega16u2 \
        mmcu?avr35=mmcu?atmega32u2 \
        mmcu?avr35=mmcu?attiny167 \
 +      mmcu?avr35=mmcu?attiny1634 \
        mmcu?avr35=mmcu?atmega16u2 \
        mmcu?avr35=mmcu?atmega32u2 \
        mmcu?avr35=mmcu?attiny167 \
 +      mmcu?avr35=mmcu?attiny1634 \
+       mmcu?avr35=mmcu?attiny327 \
        mmcu?avr4=mmcu?atmega48 \
        mmcu?avr4=mmcu?atmega48a \
        mmcu?avr4=mmcu?atmega48 \
        mmcu?avr4=mmcu?atmega48a \
-       mmcu?avr4=mmcu?atmega48p \
similarity index 75%
rename from 403-gcc-4.5.1-atmega48pa.patch
rename to 403-gcc-atmega48pa.patch
index 9dbc2de5eb0666759d64ef2597c7b735d20fb277..b162b64125b74556defb88fc18b537145f1f0e03 100644 (file)
@@ -1,6 +1,6 @@
 diff -Naurp gcc/config/avr/avr-devices.c gcc/config/avr/avr-devices.c
 diff -Naurp gcc/config/avr/avr-devices.c gcc/config/avr/avr-devices.c
---- gcc/config/avr/avr-devices.c       2011-06-20 12:23:54.000000000 +0530
-+++ gcc/config/avr/avr-devices.c       2011-06-20 12:11:26.000000000 +0530
+--- gcc/config/avr/avr-devices.c       2011-06-21 19:12:43.000000000 +0530
++++ gcc/config/avr/avr-devices.c       2011-06-21 19:13:11.000000000 +0530
 @@ -119,6 +119,7 @@ const struct mcu_type_s avr_mcu_types[] 
    { "atmega8",              ARCH_AVR4, "__AVR_ATmega8__",           0, 0x0060, "m8" },
    { "atmega48",             ARCH_AVR4, "__AVR_ATmega48__",          0, 0x0100, "m48" },
 @@ -119,6 +119,7 @@ const struct mcu_type_s avr_mcu_types[] 
    { "atmega8",              ARCH_AVR4, "__AVR_ATmega8__",           0, 0x0060, "m8" },
    { "atmega48",             ARCH_AVR4, "__AVR_ATmega48__",          0, 0x0100, "m48" },
@@ -10,10 +10,10 @@ diff -Naurp gcc/config/avr/avr-devices.c gcc/config/avr/avr-devices.c
    { "atmega88",             ARCH_AVR4, "__AVR_ATmega88__",          0, 0x0100, "m88" },
    { "atmega88a",            ARCH_AVR4, "__AVR_ATmega88A__",         0, 0x0100, "m88a" },
 diff -Naurp gcc/config/avr/t-avr gcc/config/avr/t-avr
    { "atmega88",             ARCH_AVR4, "__AVR_ATmega88__",          0, 0x0100, "m88" },
    { "atmega88a",            ARCH_AVR4, "__AVR_ATmega88A__",         0, 0x0100, "m88a" },
 diff -Naurp gcc/config/avr/t-avr gcc/config/avr/t-avr
---- gcc/config/avr/t-avr       2011-06-20 12:23:54.000000000 +0530
-+++ gcc/config/avr/t-avr       2011-06-20 12:11:26.000000000 +0530
-@@ -155,6 +155,7 @@ MULTILIB_MATCHES = \
-       mmcu?avr35=mmcu?attiny1634 \
+--- gcc/config/avr/t-avr       2011-06-21 19:12:43.000000000 +0530
++++ gcc/config/avr/t-avr       2011-06-21 19:13:11.000000000 +0530
+@@ -153,6 +153,7 @@ MULTILIB_MATCHES = \
+       mmcu?avr35=mmcu?attiny327 \
        mmcu?avr4=mmcu?atmega48 \
        mmcu?avr4=mmcu?atmega48a \
 +      mmcu?avr4=mmcu?atmega48pa \
        mmcu?avr4=mmcu?atmega48 \
        mmcu?avr4=mmcu?atmega48a \
 +      mmcu?avr4=mmcu?atmega48pa \
similarity index 76%
rename from 404-gcc-4.5.1-atxmega_16_32_a4u.patch
rename to 404-gcc-atxmega_16_32_a4u.patch
index 05a1874a36b3b29570613fa6db80851540b5398c..fcfb97b49cfdac46ba16c61f764d2175c0921363 100644 (file)
@@ -1,6 +1,6 @@
 diff -Naurp gcc/config/avr/avr-devices.c gcc/config/avr/avr-devices.c
 diff -Naurp gcc/config/avr/avr-devices.c gcc/config/avr/avr-devices.c
---- gcc/config/avr/avr-devices.c       2011-09-02 12:01:05.000000000 +0300
-+++ gcc/config/avr/avr-devices.c       2011-09-02 12:10:44.000000000 +0300
+--- gcc/config/avr/avr-devices.c       2011-06-24 10:37:25.000000000 +0530
++++ gcc/config/avr/avr-devices.c       2011-06-24 10:36:43.000000000 +0530
 @@ -55,7 +55,7 @@ const struct base_arch_s avr_arch_types[
      - avr-libc.  */
  
 @@ -55,7 +55,7 @@ const struct base_arch_s avr_arch_types[
      - avr-libc.  */
  
@@ -55,8 +55,8 @@ diff -Naurp gcc/config/avr/avr-devices.c gcc/config/avr/avr-devices.c
 +    /* Enhanced, > 8K, <= 64K + 2-byte PC +
 +       { MOVW/LPMX, JMP/CALL, MUL }.  */
    { "avr5",                 ARCH_AVR5, NULL,                        0, 0x0060, "m16" },
 +    /* Enhanced, > 8K, <= 64K + 2-byte PC +
 +       { MOVW/LPMX, JMP/CALL, MUL }.  */
    { "avr5",                 ARCH_AVR5, NULL,                        0, 0x0060, "m16" },
-   { "at90pwm161",           ARCH_AVR5, "__AVR_AT90PWM161__",        1, 0x0100, "90pwm161" },
-   { "atmega16",             ARCH_AVR5, "__AVR_ATmega16__",          0, 0x0060, "m16" },
+   { "at90pwm161",           ARCH_AVR5, "__AVR_AT90PWM161__",    1, 0x0100, "90pwm161" },
 @@ -229,7 +230,8 @@ const struct mcu_type_s avr_mcu_types[] 
    { "at90usb647",           ARCH_AVR5, "__AVR_AT90USB647__",        0, 0x0100, "usb647" },
    { "at94k",                ARCH_AVR5, "__AVR_AT94K__",             0, 0x0060, "at94k" },
 @@ -229,7 +230,8 @@ const struct mcu_type_s avr_mcu_types[] 
    { "at90usb647",           ARCH_AVR5, "__AVR_AT90USB647__",        0, 0x0100, "usb647" },
    { "at94k",                ARCH_AVR5, "__AVR_AT94K__",             0, 0x0060, "at94k" },
@@ -67,45 +67,27 @@ diff -Naurp gcc/config/avr/avr-devices.c gcc/config/avr/avr-devices.c
    { "avr51",                ARCH_AVR51, NULL,                       0, 0x0100, "m128" },
    { "atmega128",            ARCH_AVR51, "__AVR_ATmega128__",        0, 0x0100, "m128" },
    { "atmega1280",           ARCH_AVR51, "__AVR_ATmega1280__",       0, 0x0200, "m1280" },
    { "avr51",                ARCH_AVR51, NULL,                       0, 0x0100, "m128" },
    { "atmega128",            ARCH_AVR51, "__AVR_ATmega128__",        0, 0x0100, "m128" },
    { "atmega1280",           ARCH_AVR51, "__AVR_ATmega1280__",       0, 0x0200, "m1280" },
-@@ -239,30 +241,33 @@ const struct mcu_type_s avr_mcu_types[] 
+@@ -239,7 +241,8 @@ const struct mcu_type_s avr_mcu_types[] 
    { "at90can128",           ARCH_AVR51, "__AVR_AT90CAN128__",       0, 0x0100, "can128" },
    { "at90usb1286",          ARCH_AVR51, "__AVR_AT90USB1286__",      0, 0x0100, "usb1286" },
    { "at90usb1287",          ARCH_AVR51, "__AVR_AT90USB1287__",      0, 0x0100, "usb1286" },
 -    /* 3-Byte PC.  */
    { "at90can128",           ARCH_AVR51, "__AVR_AT90CAN128__",       0, 0x0100, "can128" },
    { "at90usb1286",          ARCH_AVR51, "__AVR_AT90USB1286__",      0, 0x0100, "usb1286" },
    { "at90usb1287",          ARCH_AVR51, "__AVR_AT90USB1287__",      0, 0x0100, "usb1286" },
 -    /* 3-Byte PC.  */
-+     /* Enhanced, ==256K + 3-Byte PC +
-+        { MOVW/LPMX, JMP/CALL, MUL, ELPM, ELPMX }.  */
++/* Enhanced, ==256K + 3-Byte PC +
++  { MOVW/LPMX, JMP/CALL, MUL, ELPM, ELPMX }.  */
    { "avr6",                 ARCH_AVR6, NULL,                        0, 0x0200, "m2561" },
    { "avr6",                 ARCH_AVR6, NULL,                        0, 0x0200, "m2561" },
-   { "atmega2560",           ARCH_AVR6, "__AVR_ATmega2560__",        0, 0x0200, "m2561" },
+   { "atmega2560",           ARCH_AVR6, "__AVR_ATmega2560__",        0, 0x0200, "m2560" },
    { "atmega2561",           ARCH_AVR6, "__AVR_ATmega2561__",        0, 0x0200, "m2561" },
    { "atmega2561",           ARCH_AVR6, "__AVR_ATmega2561__",        0, 0x0200, "m2561" },
-     /* Enhanced, == 256K.  */
-     /* Xmega, <= 8K FLASH.  */
--    /* Xmega, > 8K, <= 64K FLASH, <= 64K RAM.  */
-+    /* Xmega, > 8K, < 64K FLASH, <= 64K RAM.  */
+@@ -248,8 +251,10 @@ const struct mcu_type_s avr_mcu_types[] 
+     /* Xmega, > 8K, <= 64K FLASH, <= 64K RAM.  */
    { "avrxmega2",    ARCH_AVRXMEGA2, NULL,                           0, 0x2000, "x32a4" },
    { "atxmega16a4",  ARCH_AVRXMEGA2, "__AVR_ATxmega16A4__",          0, 0x2000, "x16a4" },
 +  { "atxmega16a4u",  ARCH_AVRXMEGA2, "__AVR_ATxmega16A4U__",        0, 0x2000, "x16a4u" },
    { "atxmega16d4",  ARCH_AVRXMEGA2, "__AVR_ATxmega16D4__",          0, 0x2000, "x16d4" },
    { "avrxmega2",    ARCH_AVRXMEGA2, NULL,                           0, 0x2000, "x32a4" },
    { "atxmega16a4",  ARCH_AVRXMEGA2, "__AVR_ATxmega16A4__",          0, 0x2000, "x16a4" },
 +  { "atxmega16a4u",  ARCH_AVRXMEGA2, "__AVR_ATxmega16A4U__",        0, 0x2000, "x16a4u" },
    { "atxmega16d4",  ARCH_AVRXMEGA2, "__AVR_ATxmega16D4__",          0, 0x2000, "x16d4" },
-   { "atxmega16x1",  ARCH_AVRXMEGA2, "__AVR_ATxmega16X1__",          0, 0x2000, "x16x1" },
    { "atxmega32a4",  ARCH_AVRXMEGA2, "__AVR_ATxmega32A4__",          0, 0x2000, "x32a4" },
    { "atxmega32a4",  ARCH_AVRXMEGA2, "__AVR_ATxmega32A4__",          0, 0x2000, "x32a4" },
-+  { "atxmega32a4u", ARCH_AVRXMEGA2, "__AVR_ATxmega32A4U__",         0, 0x2000, "x32a4u" },
++  { "atxmega32a4u",  ARCH_AVRXMEGA2, "__AVR_ATxmega32A4U__",        0, 0x2000, "x32a4u" },
    { "atxmega32d4",  ARCH_AVRXMEGA2, "__AVR_ATxmega32D4__",          0, 0x2000, "x32d4" },
    { "atxmega32d4",  ARCH_AVRXMEGA2, "__AVR_ATxmega32D4__",          0, 0x2000, "x32d4" },
+   { "atxmega32x1",  ARCH_AVRXMEGA2, "__AVR_ATxmega32X1__",          0, 0x2000, "x32x1" },
      /* Xmega, > 8K, <= 64K FLASH, > 64K RAM.  */
      /* Xmega, > 8K, <= 64K FLASH, > 64K RAM.  */
-     /* { "avrxmega3",    ARCH_AVRXMEGA3, NULL }, */
--    /* Xmega, > 64K, <= 128K FLASH, <= 64K RAM.  */
-+    /* Xmega, >= 64K, < 128K FLASH, <= 64K RAM.  */
-   { "avrxmega4",    ARCH_AVRXMEGA4, NULL,                           0, 0x2000, "x64d3" },
-   { "atxmega64a3",  ARCH_AVRXMEGA4, "__AVR_ATxmega64A3__",          0, 0x2000, "x64a3" },
-   { "atxmega64d3",  ARCH_AVRXMEGA4, "__AVR_ATxmega64D3__",          0, 0x2000, "x64d3" },
--    /* Xmega, > 64K, <= 128K FLASH, > 64K RAM.  */
-+    /* Xmega, >= 64K, < 128K FLASH, > 64K RAM.  */
-   { "avrxmega5",    ARCH_AVRXMEGA5, NULL,                           0, 0x2000, "x64a1" },
-   { "atxmega64a1",  ARCH_AVRXMEGA5, "__AVR_ATxmega64A1__",          0, 0x2000, "x64a1" },
-   { "atxmega64a1u",  ARCH_AVRXMEGA5, "__AVR_ATxmega64A1U__",        0, 0x2000, "x64a1u" },
--    /* Xmega, > 128K, <= 256K FLASH, <= 64K RAM.  */
-+    /* Xmega, >= 128K, <= 256K FLASH, <= 64K RAM.  */
-   { "avrxmega6",    ARCH_AVRXMEGA6, NULL,                           0, 0x2000, "x128a3" },
-   { "atxmega128a3", ARCH_AVRXMEGA6, "__AVR_ATxmega128A3__",         0, 0x2000, "x128a3" },
-   { "atxmega128b1", ARCH_AVRXMEGA6, "__AVR_ATxmega128B1__",         0, 0x2000, "x128b1" },
 @@ -273,7 +278,7 @@ const struct mcu_type_s avr_mcu_types[] 
    { "atxmega256a3b",ARCH_AVRXMEGA6, "__AVR_ATxmega256A3B__",        0, 0x2000, "x256a3b" },
    { "atxmega256a3bu", ARCH_AVRXMEGA6, "__AVR_ATxmega256A3BU__",     0, 0x2000, "x256a3bu" },
 @@ -273,7 +278,7 @@ const struct mcu_type_s avr_mcu_types[] 
    { "atxmega256a3b",ARCH_AVRXMEGA6, "__AVR_ATxmega256A3B__",        0, 0x2000, "x256a3b" },
    { "atxmega256a3bu", ARCH_AVRXMEGA6, "__AVR_ATxmega256A3BU__",     0, 0x2000, "x256a3bu" },
@@ -116,18 +98,17 @@ diff -Naurp gcc/config/avr/avr-devices.c gcc/config/avr/avr-devices.c
    { "atxmega128a1", ARCH_AVRXMEGA7, "__AVR_ATxmega128A1__",         0, 0x2000, "x128a1" },
    { "atxmega128a1u", ARCH_AVRXMEGA7, "__AVR_ATxmega128A1U__",       0, 0x2000, "x128a1u" },
 diff -Naurp gcc/config/avr/t-avr gcc/config/avr/t-avr
    { "atxmega128a1", ARCH_AVRXMEGA7, "__AVR_ATxmega128A1__",         0, 0x2000, "x128a1" },
    { "atxmega128a1u", ARCH_AVRXMEGA7, "__AVR_ATxmega128A1U__",       0, 0x2000, "x128a1u" },
 diff -Naurp gcc/config/avr/t-avr gcc/config/avr/t-avr
---- gcc/config/avr/t-avr       2011-09-02 12:01:05.000000000 +0300
-+++ gcc/config/avr/t-avr       2011-09-02 12:12:37.000000000 +0300
-@@ -266,10 +266,12 @@ MULTILIB_MATCHES = \
+--- gcc/config/avr/t-avr       2011-06-24 10:37:25.000000000 +0530
++++ gcc/config/avr/t-avr       2011-06-24 10:36:43.000000000 +0530
+@@ -265,9 +265,11 @@ MULTILIB_MATCHES = \
        mmcu?avr6=mmcu?atmega2560 \
        mmcu?avr6=mmcu?atmega2561 \
        mmcu?avrxmega2=mmcu?atxmega16a4 \
 +      mmcu?avrxmega2=mmcu?atxmega16a4u \
        mmcu?avrxmega2=mmcu?atxmega16d4 \
        mmcu?avr6=mmcu?atmega2560 \
        mmcu?avr6=mmcu?atmega2561 \
        mmcu?avrxmega2=mmcu?atxmega16a4 \
 +      mmcu?avrxmega2=mmcu?atxmega16a4u \
        mmcu?avrxmega2=mmcu?atxmega16d4 \
-       mmcu?avrxmega2=mmcu?atxmega16x1 \
        mmcu?avrxmega2=mmcu?atxmega32d4 \
        mmcu?avrxmega2=mmcu?atxmega32a4 \
 +      mmcu?avrxmega2=mmcu?atxmega32a4u \
        mmcu?avrxmega2=mmcu?atxmega32d4 \
        mmcu?avrxmega2=mmcu?atxmega32a4 \
 +      mmcu?avrxmega2=mmcu?atxmega32a4u \
+       mmcu?avrxmega2=mmcu?atxmega32x1 \
        mmcu?avrxmega4=mmcu?atxmega64a3 \
        mmcu?avrxmega4=mmcu?atxmega64d3 \
        mmcu?avrxmega4=mmcu?atxmega64a3 \
        mmcu?avrxmega4=mmcu?atxmega64d3 \
-       mmcu?avrxmega5=mmcu?atxmega64a1 \
similarity index 83%
rename from 405-gcc-4.5.1-atxmega64_128_192_256a3u.patch
rename to 405-gcc-atxmega64_128_192_256a3u.patch
index 086098fa02253dbc5506c7188266be59c5fe7200..1ad7da0ef3fded9db2ccf12a8b59b1e68e4820fb 100644 (file)
@@ -1,16 +1,16 @@
 diff -Naurp gcc/config/avr/avr-devices.c gcc/config/avr/avr-devices.c
 diff -Naurp gcc/config/avr/avr-devices.c gcc/config/avr/avr-devices.c
---- gcc/config/avr/avr-devices.c       2011-09-02 12:18:00.000000000 +0300
-+++ gcc/config/avr/avr-devices.c       2011-09-02 12:20:38.000000000 +0300
+--- gcc/config/avr/avr-devices.c       2011-06-24 10:38:47.000000000 +0530
++++ gcc/config/avr/avr-devices.c       2011-06-24 10:38:36.000000000 +0530
 @@ -262,6 +262,7 @@ const struct mcu_type_s avr_mcu_types[] 
 @@ -262,6 +262,7 @@ const struct mcu_type_s avr_mcu_types[] 
-     /* Xmega, >= 64K, < 128K FLASH, <= 64K RAM.  */
+     /* Xmega, > 64K, <= 128K FLASH, <= 64K RAM.  */
    { "avrxmega4",    ARCH_AVRXMEGA4, NULL,                           0, 0x2000, "x64d3" },
    { "atxmega64a3",  ARCH_AVRXMEGA4, "__AVR_ATxmega64A3__",          0, 0x2000, "x64a3" },
 +  { "atxmega64a3u", ARCH_AVRXMEGA4, "__AVR_ATxmega64A3U__",         0, 0x2000, "x64a3u"},
    { "atxmega64d3",  ARCH_AVRXMEGA4, "__AVR_ATxmega64D3__",          0, 0x2000, "x64d3" },
    { "avrxmega4",    ARCH_AVRXMEGA4, NULL,                           0, 0x2000, "x64d3" },
    { "atxmega64a3",  ARCH_AVRXMEGA4, "__AVR_ATxmega64A3__",          0, 0x2000, "x64a3" },
 +  { "atxmega64a3u", ARCH_AVRXMEGA4, "__AVR_ATxmega64A3U__",         0, 0x2000, "x64a3u"},
    { "atxmega64d3",  ARCH_AVRXMEGA4, "__AVR_ATxmega64D3__",          0, 0x2000, "x64d3" },
-     /* Xmega, >= 64K, < 128K FLASH, > 64K RAM.  */
+     /* Xmega, > 64K, <= 128K FLASH, > 64K RAM.  */
    { "avrxmega5",    ARCH_AVRXMEGA5, NULL,                           0, 0x2000, "x64a1" },
 @@ -270,11 +271,14 @@ const struct mcu_type_s avr_mcu_types[] 
    { "avrxmega5",    ARCH_AVRXMEGA5, NULL,                           0, 0x2000, "x64a1" },
 @@ -270,11 +271,14 @@ const struct mcu_type_s avr_mcu_types[] 
-     /* Xmega, >= 128K, <= 256K FLASH, <= 64K RAM.  */
+     /* Xmega, > 128K, <= 256K FLASH, <= 64K RAM.  */
    { "avrxmega6",    ARCH_AVRXMEGA6, NULL,                           0, 0x2000, "x128a3" },
    { "atxmega128a3", ARCH_AVRXMEGA6, "__AVR_ATxmega128A3__",         0, 0x2000, "x128a3" },
 +  { "atxmega128a3u",ARCH_AVRXMEGA6, "__AVR_ATxmega128A3U__",        0, 0x2000, "x128a3u"},
    { "avrxmega6",    ARCH_AVRXMEGA6, NULL,                           0, 0x2000, "x128a3" },
    { "atxmega128a3", ARCH_AVRXMEGA6, "__AVR_ATxmega128A3__",         0, 0x2000, "x128a3" },
 +  { "atxmega128a3u",ARCH_AVRXMEGA6, "__AVR_ATxmega128A3U__",        0, 0x2000, "x128a3u"},
@@ -25,11 +25,11 @@ diff -Naurp gcc/config/avr/avr-devices.c gcc/config/avr/avr-devices.c
    { "atxmega256a3bu", ARCH_AVRXMEGA6, "__AVR_ATxmega256A3BU__",     0, 0x2000, "x256a3bu" },
    { "atxmega256d3", ARCH_AVRXMEGA6, "__AVR_ATxmega256D3__",         0, 0x2000, "x256d3" },
 diff -Naurp gcc/config/avr/t-avr gcc/config/avr/t-avr
    { "atxmega256a3bu", ARCH_AVRXMEGA6, "__AVR_ATxmega256A3BU__",     0, 0x2000, "x256a3bu" },
    { "atxmega256d3", ARCH_AVRXMEGA6, "__AVR_ATxmega256D3__",         0, 0x2000, "x256d3" },
 diff -Naurp gcc/config/avr/t-avr gcc/config/avr/t-avr
---- gcc/config/avr/t-avr       2011-09-02 12:18:00.000000000 +0300
-+++ gcc/config/avr/t-avr       2011-09-02 12:20:38.000000000 +0300
-@@ -273,15 +273,19 @@ MULTILIB_MATCHES = \
-       mmcu?avrxmega2=mmcu?atxmega32a4 \
+--- gcc/config/avr/t-avr       2011-06-24 10:38:47.000000000 +0530
++++ gcc/config/avr/t-avr       2011-06-24 10:38:36.000000000 +0530
+@@ -272,15 +272,19 @@ MULTILIB_MATCHES = \
        mmcu?avrxmega2=mmcu?atxmega32a4u \
        mmcu?avrxmega2=mmcu?atxmega32a4u \
+       mmcu?avrxmega2=mmcu?atxmega32x1 \
        mmcu?avrxmega4=mmcu?atxmega64a3 \
 +      mmcu?avrxmega4=mmcu?atxmega64a3u \
        mmcu?avrxmega4=mmcu?atxmega64d3 \
        mmcu?avrxmega4=mmcu?atxmega64a3 \
 +      mmcu?avrxmega4=mmcu?atxmega64a3u \
        mmcu?avrxmega4=mmcu?atxmega64d3 \
similarity index 78%
rename from 406-gcc-4.5.1-atmegarfr2_a2.patch
rename to 406-gcc-atmegarfr2_a2.patch
index d16617fdcbeeea3c4e5feeb8fc1d060bbfc8330a..40644a629d85f585718a6caf6f19fbc6b940177b 100644 (file)
@@ -1,6 +1,6 @@
 diff -Naurp gcc/config/avr/avr-devices.c gcc/config/avr/avr-devices.c
 diff -Naurp gcc/config/avr/avr-devices.c gcc/config/avr/avr-devices.c
---- gcc/config/avr/avr-devices.c       2011-06-24 16:02:11.000000000 +0530
-+++ gcc/config/avr/avr-devices.c       2011-06-24 15:45:54.000000000 +0530
+--- gcc/config/avr/avr-devices.c       2011-08-12 11:47:21.000000000 +0300
++++ gcc/config/avr/avr-devices.c       2011-08-12 11:42:24.000000000 +0300
 @@ -210,6 +210,8 @@ const struct mcu_type_s avr_mcu_types[] 
    { "atmega64c1",           ARCH_AVR5, "__AVR_ATmega64C1__",        0, 0x0100, "m64c1" },
    { "atmega64m1",           ARCH_AVR5, "__AVR_ATmega64M1__",        0, 0x0100, "m64m1" },
 @@ -210,6 +210,8 @@ const struct mcu_type_s avr_mcu_types[] 
    { "atmega64c1",           ARCH_AVR5, "__AVR_ATmega64C1__",        0, 0x0100, "m64c1" },
    { "atmega64m1",           ARCH_AVR5, "__AVR_ATmega64M1__",        0, 0x0100, "m64m1" },
@@ -9,7 +9,7 @@ diff -Naurp gcc/config/avr/avr-devices.c gcc/config/avr/avr-devices.c
 +  { "atmega64rfr2",         ARCH_AVR5, "__AVR_ATmega64RFR2__",      0, 0x0200, "m64rfr2"},
    { "atmega32hvb",          ARCH_AVR5, "__AVR_ATmega32HVB__",       0, 0x0100, "m32hvb" },
    { "atmega32hvbrevb",      ARCH_AVR5, "__AVR_ATmega32HVBREVB__",   1, 0x0100, "m32hvbrevb" },
 +  { "atmega64rfr2",         ARCH_AVR5, "__AVR_ATmega64RFR2__",      0, 0x0200, "m64rfr2"},
    { "atmega32hvb",          ARCH_AVR5, "__AVR_ATmega32HVB__",       0, 0x0100, "m32hvb" },
    { "atmega32hvbrevb",      ARCH_AVR5, "__AVR_ATmega32HVBREVB__",   1, 0x0100, "m32hvbrevb" },
-   { "at90can32",            ARCH_AVR5, "__AVR_AT90CAN32__",         0, 0x0100, "can32" },
+   { "atmega16hva2",         ARCH_AVR5, "__AVR_ATmega16HVA2__",      0, 0x0100, "m16hva2" },
 @@ -238,14 +240,18 @@ const struct mcu_type_s avr_mcu_types[] 
    { "atmega1281",           ARCH_AVR51, "__AVR_ATmega1281__",       0, 0x0200, "m1281" },
    { "atmega1284p",          ARCH_AVR51, "__AVR_ATmega1284P__",      0, 0x0100, "m1284p" },
 @@ -238,14 +240,18 @@ const struct mcu_type_s avr_mcu_types[] 
    { "atmega1281",           ARCH_AVR51, "__AVR_ATmega1281__",       0, 0x0200, "m1281" },
    { "atmega1284p",          ARCH_AVR51, "__AVR_ATmega1284P__",      0, 0x0100, "m1284p" },
@@ -19,21 +19,21 @@ diff -Naurp gcc/config/avr/avr-devices.c gcc/config/avr/avr-devices.c
    { "at90can128",           ARCH_AVR51, "__AVR_AT90CAN128__",       0, 0x0100, "can128" },
    { "at90usb1286",          ARCH_AVR51, "__AVR_AT90USB1286__",      0, 0x0100, "usb1286" },
    { "at90usb1287",          ARCH_AVR51, "__AVR_AT90USB1287__",      0, 0x0100, "usb1286" },
    { "at90can128",           ARCH_AVR51, "__AVR_AT90CAN128__",       0, 0x0100, "can128" },
    { "at90usb1286",          ARCH_AVR51, "__AVR_AT90USB1286__",      0, 0x0100, "usb1286" },
    { "at90usb1287",          ARCH_AVR51, "__AVR_AT90USB1287__",      0, 0x0100, "usb1286" },
     /* Enhanced, ==256K + 3-Byte PC +
--        { MOVW/LPMX, JMP/CALL, MUL, ELPM, ELPMX }.  */
-+        { MOVW/LPMX, JMP/CALL, MUL, ELPM, ELPMX, EIJMP/EICALL }.  */
+ /* Enhanced, ==256K + 3-Byte PC +
+-  { MOVW/LPMX, JMP/CALL, MUL, ELPM, ELPMX }.  */
++       { MOVW/LPMX, JMP/CALL, MUL, ELPM, ELPMX, EIJMP/EICALL }.  */
    { "avr6",                 ARCH_AVR6, NULL,                        0, 0x0200, "m2561" },
    { "avr6",                 ARCH_AVR6, NULL,                        0, 0x0200, "m2561" },
-   { "atmega2560",           ARCH_AVR6, "__AVR_ATmega2560__",        0, 0x0200, "m2561" },
+   { "atmega2560",           ARCH_AVR6, "__AVR_ATmega2560__",        0, 0x0200, "m2560" },
    { "atmega2561",           ARCH_AVR6, "__AVR_ATmega2561__",        0, 0x0200, "m2561" },
 +  { "atmega256rfa2",        ARCH_AVR6, "__AVR_ATmega256RFA2__",     0, 0x0200, "m256rfa2" },
 +  { "atmega256rfr2",        ARCH_AVR6, "__AVR_ATmega256RFR2__",     0, 0x0200, "m256rfr2" },
      /* Enhanced, == 256K.  */
      /* Xmega, <= 8K FLASH.  */
    { "atmega2561",           ARCH_AVR6, "__AVR_ATmega2561__",        0, 0x0200, "m2561" },
 +  { "atmega256rfa2",        ARCH_AVR6, "__AVR_ATmega256RFA2__",     0, 0x0200, "m256rfa2" },
 +  { "atmega256rfr2",        ARCH_AVR6, "__AVR_ATmega256RFR2__",     0, 0x0200, "m256rfr2" },
      /* Enhanced, == 256K.  */
      /* Xmega, <= 8K FLASH.  */
-     /* Xmega, > 8K, < 64K FLASH, <= 64K RAM.  */
+     /* Xmega, > 8K, <= 64K FLASH, <= 64K RAM.  */
 diff -Naurp gcc/config/avr/t-avr gcc/config/avr/t-avr
 diff -Naurp gcc/config/avr/t-avr gcc/config/avr/t-avr
---- gcc/config/avr/t-avr       2011-06-24 16:02:11.000000000 +0530
-+++ gcc/config/avr/t-avr       2011-06-24 15:56:46.000000000 +0530
-@@ -213,6 +213,8 @@ MULTILIB_MATCHES = \
+--- gcc/config/avr/t-avr       2011-08-12 11:47:21.000000000 +0300
++++ gcc/config/avr/t-avr       2011-08-12 11:45:16.000000000 +0300
+@@ -211,6 +211,8 @@ MULTILIB_MATCHES = \
        mmcu?avr5=mmcu?atmega3290p \
        mmcu?avr5=mmcu?atmega3290pa \
        mmcu?avr5=mmcu?atmega406 \
        mmcu?avr5=mmcu?atmega3290p \
        mmcu?avr5=mmcu?atmega3290pa \
        mmcu?avr5=mmcu?atmega406 \
@@ -42,7 +42,7 @@ diff -Naurp gcc/config/avr/t-avr gcc/config/avr/t-avr
        mmcu?avr5=mmcu?atmega64  \
        mmcu?avr5=mmcu?atmega640 \
        mmcu?avr5=mmcu?atmega644 \
        mmcu?avr5=mmcu?atmega64  \
        mmcu?avr5=mmcu?atmega640 \
        mmcu?avr5=mmcu?atmega644 \
-@@ -259,10 +261,14 @@ MULTILIB_MATCHES = \
+@@ -259,9 +261,13 @@ MULTILIB_MATCHES = \
        mmcu?avr51=mmcu?atmega1281 \
        mmcu?avr51=mmcu?atmega1284p \
        mmcu?avr51=mmcu?atmega128rfa1 \
        mmcu?avr51=mmcu?atmega1281 \
        mmcu?avr51=mmcu?atmega1284p \
        mmcu?avr51=mmcu?atmega128rfa1 \
@@ -51,8 +51,7 @@ diff -Naurp gcc/config/avr/t-avr gcc/config/avr/t-avr
        mmcu?avr51=mmcu?at90can128 \
        mmcu?avr51=mmcu?at90usb1286 \
        mmcu?avr51=mmcu?at90usb1287 \
        mmcu?avr51=mmcu?at90can128 \
        mmcu?avr51=mmcu?at90usb1286 \
        mmcu?avr51=mmcu?at90usb1287 \
-       mmcu?avr51=mmcu?m3000 \
-+      mmcu?avr6=mmcu?atmega256rfa2 \
++      mmcu?avr6=mmcu?atmega256rfa2 \
 +      mmcu?avr6=mmcu?atmega256rfr2 \
        mmcu?avr6=mmcu?atmega2560 \
        mmcu?avr6=mmcu?atmega2561 \
 +      mmcu?avr6=mmcu?atmega256rfr2 \
        mmcu?avr6=mmcu?atmega2560 \
        mmcu?avr6=mmcu?atmega2561 \
similarity index 62%
rename from 407-gcc-4.5.1-atmega165pa.patch
rename to 407-gcc-atmega165pa.patch
index 5a73ff2e9e0acf565356677b35335f4634c1b7cd..ca1a4be730cb4902f0f49ee8bea2d53ba7c5fca5 100644 (file)
@@ -1,7 +1,7 @@
-diff -Naurp ./gcc/config/avr/avr-devices.c ./gcc/config/avr/avr-devices.c
---- ./gcc/config/avr/avr-devices.c     2011-06-21 12:25:28.000000000 +0530
-+++ ./gcc/config/avr/avr-devices.c     2011-06-21 12:30:08.000000000 +0530
-@@ -148,6 +148,7 @@ const struct mcu_type_s avr_mcu_types[] 
+diff -Naurp gcc/config/avr/avr-devices.c gcc/config/avr/avr-devices.c
+--- gcc/config/avr/avr-devices.c       2011-08-12 11:50:23.000000000 +0300
++++ gcc/config/avr/avr-devices.c       2011-08-12 11:50:43.000000000 +0300
+@@ -149,6 +149,7 @@ const struct mcu_type_s avr_mcu_types[] 
    { "atmega165",            ARCH_AVR5, "__AVR_ATmega165__",         0, 0x0100, "m165" },
    { "atmega165a",           ARCH_AVR5, "__AVR_ATmega165A__",        0, 0x0100, "m165a" },
    { "atmega165p",           ARCH_AVR5, "__AVR_ATmega165P__",        0, 0x0100, "m165p" },
    { "atmega165",            ARCH_AVR5, "__AVR_ATmega165__",         0, 0x0100, "m165" },
    { "atmega165a",           ARCH_AVR5, "__AVR_ATmega165A__",        0, 0x0100, "m165a" },
    { "atmega165p",           ARCH_AVR5, "__AVR_ATmega165P__",        0, 0x0100, "m165p" },
@@ -9,10 +9,10 @@ diff -Naurp ./gcc/config/avr/avr-devices.c ./gcc/config/avr/avr-devices.c
    { "atmega168",            ARCH_AVR5, "__AVR_ATmega168__",         0, 0x0100, "m168" },
    { "atmega168a",           ARCH_AVR5, "__AVR_ATmega168A__",        0, 0x0100, "m168a" },
    { "atmega168p",           ARCH_AVR5, "__AVR_ATmega168P__",        0, 0x0100, "m168p" },
    { "atmega168",            ARCH_AVR5, "__AVR_ATmega168__",         0, 0x0100, "m168" },
    { "atmega168a",           ARCH_AVR5, "__AVR_ATmega168A__",        0, 0x0100, "m168a" },
    { "atmega168p",           ARCH_AVR5, "__AVR_ATmega168P__",        0, 0x0100, "m168p" },
-diff -Naurp ./gcc/config/avr/t-avr ./gcc/config/avr/t-avr
---- ./gcc/config/avr/t-avr     2011-06-21 12:25:28.000000000 +0530
-+++ ./gcc/config/avr/t-avr     2011-06-21 12:31:55.000000000 +0530
-@@ -182,6 +182,7 @@ MULTILIB_MATCHES = \
+diff -Naurp gcc/config/avr/t-avr gcc/config/avr/t-avr
+--- gcc/config/avr/t-avr       2011-08-12 11:50:23.000000000 +0300
++++ gcc/config/avr/t-avr       2011-08-12 11:50:43.000000000 +0300
+@@ -180,6 +180,7 @@ MULTILIB_MATCHES = \
        mmcu?avr5=mmcu?atmega165 \
        mmcu?avr5=mmcu?atmega165a \
        mmcu?avr5=mmcu?atmega165p \
        mmcu?avr5=mmcu?atmega165 \
        mmcu?avr5=mmcu?atmega165a \
        mmcu?avr5=mmcu?atmega165p \
similarity index 83%
rename from 408-gcc-4.5.1-atxmega384c3.patch
rename to 408-gcc-atxmega384c3.patch
index ddf840e44c343292796aaa4bea78eefdeccab818..ec9977a405215eb7272145f723f0eb44ce5ca378 100644 (file)
@@ -1,11 +1,11 @@
 diff -Naurp gcc/config/avr/avr-devices.c gcc/config/avr/avr-devices.c
 diff -Naurp gcc/config/avr/avr-devices.c gcc/config/avr/avr-devices.c
---- gcc/config/avr/avr-devices.c       2011-09-02 12:26:35.000000000 +0300
-+++ gcc/config/avr/avr-devices.c       2011-09-02 12:26:12.000000000 +0300
+--- gcc/config/avr/avr-devices.c       2011-10-28 11:14:59.000000000 +0530
++++ gcc/config/avr/avr-devices.c       2011-10-28 11:44:14.000000000 +0530
 @@ -275,7 +275,7 @@ const struct mcu_type_s avr_mcu_types[] 
    { "avrxmega5",    ARCH_AVRXMEGA5, NULL,                           0, 0x2000, "x64a1" },
    { "atxmega64a1",  ARCH_AVRXMEGA5, "__AVR_ATxmega64A1__",          0, 0x2000, "x64a1" },
    { "atxmega64a1u",  ARCH_AVRXMEGA5, "__AVR_ATxmega64A1U__",        0, 0x2000, "x64a1u" },
 @@ -275,7 +275,7 @@ const struct mcu_type_s avr_mcu_types[] 
    { "avrxmega5",    ARCH_AVRXMEGA5, NULL,                           0, 0x2000, "x64a1" },
    { "atxmega64a1",  ARCH_AVRXMEGA5, "__AVR_ATxmega64A1__",          0, 0x2000, "x64a1" },
    { "atxmega64a1u",  ARCH_AVRXMEGA5, "__AVR_ATxmega64A1U__",        0, 0x2000, "x64a1u" },
--    /* Xmega, >= 128K, <= 256K FLASH, <= 64K RAM.  */
+-    /* Xmega, > 128K, <= 256K FLASH, <= 64K RAM.  */
 +    /* Xmega, >= 128K FLASH, <= 64K RAM.  */
    { "avrxmega6",    ARCH_AVRXMEGA6, NULL,                           0, 0x2000, "x128a3" },
    { "atxmega128a3", ARCH_AVRXMEGA6, "__AVR_ATxmega128A3__",         0, 0x2000, "x128a3" },
 +    /* Xmega, >= 128K FLASH, <= 64K RAM.  */
    { "avrxmega6",    ARCH_AVRXMEGA6, NULL,                           0, 0x2000, "x128a3" },
    { "atxmega128a3", ARCH_AVRXMEGA6, "__AVR_ATxmega128A3__",         0, 0x2000, "x128a3" },
@@ -21,9 +21,9 @@ diff -Naurp gcc/config/avr/avr-devices.c gcc/config/avr/avr-devices.c
    { "atxmega128a1", ARCH_AVRXMEGA7, "__AVR_ATxmega128A1__",         0, 0x2000, "x128a1" },
    { "atxmega128a1u", ARCH_AVRXMEGA7, "__AVR_ATxmega128A1U__",       0, 0x2000, "x128a1u" },
 diff -Naurp gcc/config/avr/t-avr gcc/config/avr/t-avr
    { "atxmega128a1", ARCH_AVRXMEGA7, "__AVR_ATxmega128A1__",         0, 0x2000, "x128a1" },
    { "atxmega128a1u", ARCH_AVRXMEGA7, "__AVR_ATxmega128A1U__",       0, 0x2000, "x128a1u" },
 diff -Naurp gcc/config/avr/t-avr gcc/config/avr/t-avr
---- gcc/config/avr/t-avr       2011-09-02 12:26:35.000000000 +0300
-+++ gcc/config/avr/t-avr       2011-09-02 12:26:12.000000000 +0300
-@@ -296,6 +296,7 @@ MULTILIB_MATCHES = \
+--- gcc/config/avr/t-avr       2011-10-28 11:14:59.000000000 +0530
++++ gcc/config/avr/t-avr       2011-10-28 11:40:24.000000000 +0530
+@@ -295,6 +295,7 @@ MULTILIB_MATCHES = \
        mmcu?avrxmega6=mmcu?atxmega256a3b \
        mmcu?avrxmega6=mmcu?atxmega256a3bu \
        mmcu?avrxmega6=mmcu?atxmega256d3 \
        mmcu?avrxmega6=mmcu?atxmega256a3b \
        mmcu?avrxmega6=mmcu?atxmega256a3bu \
        mmcu?avrxmega6=mmcu?atxmega256d3 \
similarity index 76%
rename from 409-gcc-4.5.1-attiny80.patch
rename to 409-gcc-attiny80.patch
index 6dfd99554aba6b6f39aebf1ab876edc992871a3e..c109b09e8e74009c468ab5c93ff967aae920c1fa 100644 (file)
@@ -1,6 +1,6 @@
 diff -Naurp gcc/config/avr/avr-devices.c gcc/config/avr/avr-devices.c
 diff -Naurp gcc/config/avr/avr-devices.c gcc/config/avr/avr-devices.c
---- gcc/config/avr/avr-devices.c       2011-06-10 16:21:40.000000000 -0500
-+++ gcc/config/avr/avr-devices.c       2011-06-16 11:39:07.000000000 -0500
+--- gcc/config/avr/avr-devices.c       2011-10-28 11:44:14.000000000 +0530
++++ gcc/config/avr/avr-devices.c       2011-10-28 11:55:44.000000000 +0530
 @@ -96,6 +96,7 @@ const struct mcu_type_s avr_mcu_types[] 
    { "attiny87",             ARCH_AVR25, "__AVR_ATtiny87__",         0, 0x0100, "tn87" },
    { "attiny48",             ARCH_AVR25, "__AVR_ATtiny48__",         0, 0x0100, "tn48" },
 @@ -96,6 +96,7 @@ const struct mcu_type_s avr_mcu_types[] 
    { "attiny87",             ARCH_AVR25, "__AVR_ATtiny87__",         0, 0x0100, "tn87" },
    { "attiny48",             ARCH_AVR25, "__AVR_ATtiny48__",         0, 0x0100, "tn48" },
@@ -10,9 +10,9 @@ diff -Naurp gcc/config/avr/avr-devices.c gcc/config/avr/avr-devices.c
      /* Classic, > 8K, <= 64K +2-byte PC + { JMP/CALL }.  */
    { "avr3",                 ARCH_AVR3, NULL,                        0, 0x0060, "43355" },
 diff -Naurp gcc/config/avr/t-avr gcc/config/avr/t-avr
      /* Classic, > 8K, <= 64K +2-byte PC + { JMP/CALL }.  */
    { "avr3",                 ARCH_AVR3, NULL,                        0, 0x0060, "43355" },
 diff -Naurp gcc/config/avr/t-avr gcc/config/avr/t-avr
---- gcc/config/avr/t-avr       2011-06-10 16:21:40.000000000 -0500
-+++ gcc/config/avr/t-avr       2011-06-16 11:39:55.000000000 -0500
-@@ -141,6 +141,7 @@ MULTILIB_MATCHES = \
+--- gcc/config/avr/t-avr       2011-10-28 11:40:24.000000000 +0530
++++ gcc/config/avr/t-avr       2011-10-28 11:55:44.000000000 +0530
+@@ -138,6 +138,7 @@ MULTILIB_MATCHES = \
        mmcu?avr25=mmcu?attiny87 \
        mmcu?avr25=mmcu?attiny48 \
        mmcu?avr25=mmcu?attiny88 \
        mmcu?avr25=mmcu?attiny87 \
        mmcu?avr25=mmcu?attiny48 \
        mmcu?avr25=mmcu?attiny88 \
similarity index 76%
rename from 410-gcc-4.5.1-atxmega128a4u.patch
rename to 410-gcc-atxmega128a4u.patch
index 30e444607068742b57333a7ddd2995c823bcdd3d..0f5be09db3fd1fb3281206b270f3d508d3f6c987 100644 (file)
@@ -1,6 +1,6 @@
 diff -Naurp gcc/config/avr/avr-devices.c gcc/config/avr/avr-devices.c
 diff -Naurp gcc/config/avr/avr-devices.c gcc/config/avr/avr-devices.c
---- gcc/config/avr/avr-devices.c       2011-09-02 12:31:10.000000000 +0300
-+++ gcc/config/avr/avr-devices.c       2011-09-02 12:30:51.000000000 +0300
+--- gcc/config/avr/avr-devices.c       2011-10-28 11:55:44.000000000 +0530
++++ gcc/config/avr/avr-devices.c       2011-10-28 12:00:41.000000000 +0530
 @@ -295,6 +295,7 @@ const struct mcu_type_s avr_mcu_types[] 
    { "avrxmega7",    ARCH_AVRXMEGA7, NULL,                           0, 0x2000, "x128a1" },
    { "atxmega128a1", ARCH_AVRXMEGA7, "__AVR_ATxmega128A1__",         0, 0x2000, "x128a1" },
 @@ -295,6 +295,7 @@ const struct mcu_type_s avr_mcu_types[] 
    { "avrxmega7",    ARCH_AVRXMEGA7, NULL,                           0, 0x2000, "x128a1" },
    { "atxmega128a1", ARCH_AVRXMEGA7, "__AVR_ATxmega128A1__",         0, 0x2000, "x128a1" },
@@ -10,9 +10,9 @@ diff -Naurp gcc/config/avr/avr-devices.c gcc/config/avr/avr-devices.c
    { "avrtiny10",   ARCH_AVRTINY10, NULL,                            0, 0x0040, "tn10" },
    { "attiny4",     ARCH_AVRTINY10, "__AVR_ATtiny4__",               0, 0x0040, "tn4" },
 diff -Naurp gcc/config/avr/t-avr gcc/config/avr/t-avr
    { "avrtiny10",   ARCH_AVRTINY10, NULL,                            0, 0x0040, "tn10" },
    { "attiny4",     ARCH_AVRTINY10, "__AVR_ATtiny4__",               0, 0x0040, "tn4" },
 diff -Naurp gcc/config/avr/t-avr gcc/config/avr/t-avr
---- gcc/config/avr/t-avr       2011-09-02 12:31:10.000000000 +0300
-+++ gcc/config/avr/t-avr       2011-09-02 12:30:51.000000000 +0300
-@@ -300,6 +300,7 @@ MULTILIB_MATCHES = \
+--- gcc/config/avr/t-avr       2011-10-28 11:55:44.000000000 +0530
++++ gcc/config/avr/t-avr       2011-10-28 12:00:41.000000000 +0530
+@@ -299,6 +299,7 @@ MULTILIB_MATCHES = \
        mmcu?avrxmega6=mmcu?atxmega384c3 \
        mmcu?avrxmega7=mmcu?atxmega128a1 \
        mmcu?avrxmega7=mmcu?atxmega128a1u \
        mmcu?avrxmega6=mmcu?atxmega384c3 \
        mmcu?avrxmega7=mmcu?atxmega128a1 \
        mmcu?avrxmega7=mmcu?atxmega128a1u \
similarity index 73%
rename from 411-gcc-4.5.1-atxmega64d4.patch
rename to 411-gcc-atxmega64d4.patch
index e08b68b2b56e0c4ff2847b9178a8841886b8f843..320397d786b9ba2333ed926634c96181126b81ae 100644 (file)
@@ -1,18 +1,18 @@
 diff -Naurp gcc/config/avr/avr-devices.c gcc/config/avr/avr-devices.c
 diff -Naurp gcc/config/avr/avr-devices.c gcc/config/avr/avr-devices.c
---- gcc/config/avr/avr-devices.c       2011-09-02 12:37:07.000000000 +0300
-+++ gcc/config/avr/avr-devices.c       2011-09-02 12:37:47.000000000 +0300
+--- gcc/config/avr/avr-devices.c       2011-10-28 12:00:41.000000000 +0530
++++ gcc/config/avr/avr-devices.c       2011-10-28 12:06:09.000000000 +0530
 @@ -272,6 +272,7 @@ const struct mcu_type_s avr_mcu_types[] 
    { "atxmega64a3",  ARCH_AVRXMEGA4, "__AVR_ATxmega64A3__",          0, 0x2000, "x64a3" },
    { "atxmega64a3u", ARCH_AVRXMEGA4, "__AVR_ATxmega64A3U__",         0, 0x2000, "x64a3u"},
    { "atxmega64d3",  ARCH_AVRXMEGA4, "__AVR_ATxmega64D3__",          0, 0x2000, "x64d3" },
 +  { "atxmega64d4",  ARCH_AVRXMEGA4, "__AVR_ATxmega64D4__",          0, 0x2000, "x64d4" },
 @@ -272,6 +272,7 @@ const struct mcu_type_s avr_mcu_types[] 
    { "atxmega64a3",  ARCH_AVRXMEGA4, "__AVR_ATxmega64A3__",          0, 0x2000, "x64a3" },
    { "atxmega64a3u", ARCH_AVRXMEGA4, "__AVR_ATxmega64A3U__",         0, 0x2000, "x64a3u"},
    { "atxmega64d3",  ARCH_AVRXMEGA4, "__AVR_ATxmega64D3__",          0, 0x2000, "x64d3" },
 +  { "atxmega64d4",  ARCH_AVRXMEGA4, "__AVR_ATxmega64D4__",          0, 0x2000, "x64d4" },
-     /* Xmega, >= 64K, < 128K FLASH, > 64K RAM.  */
+     /* Xmega, > 64K, <= 128K FLASH, > 64K RAM.  */
    { "avrxmega5",    ARCH_AVRXMEGA5, NULL,                           0, 0x2000, "x64a1" },
    { "atxmega64a1",  ARCH_AVRXMEGA5, "__AVR_ATxmega64A1__",          0, 0x2000, "x64a1" },
 diff -Naurp gcc/config/avr/t-avr gcc/config/avr/t-avr
    { "avrxmega5",    ARCH_AVRXMEGA5, NULL,                           0, 0x2000, "x64a1" },
    { "atxmega64a1",  ARCH_AVRXMEGA5, "__AVR_ATxmega64A1__",          0, 0x2000, "x64a1" },
 diff -Naurp gcc/config/avr/t-avr gcc/config/avr/t-avr
---- gcc/config/avr/t-avr       2011-09-02 12:37:07.000000000 +0300
-+++ gcc/config/avr/t-avr       2011-09-02 12:37:47.000000000 +0300
-@@ -283,6 +283,7 @@ MULTILIB_MATCHES = \
+--- gcc/config/avr/t-avr       2011-10-28 12:00:41.000000000 +0530
++++ gcc/config/avr/t-avr       2011-10-28 12:04:00.000000000 +0530
+@@ -282,6 +282,7 @@ MULTILIB_MATCHES = \
        mmcu?avrxmega4=mmcu?atxmega64a3 \
        mmcu?avrxmega4=mmcu?atxmega64a3u \
        mmcu?avrxmega4=mmcu?atxmega64d3 \
        mmcu?avrxmega4=mmcu?atxmega64a3 \
        mmcu?avrxmega4=mmcu?atxmega64a3u \
        mmcu?avrxmega4=mmcu?atxmega64d3 \
similarity index 82%
rename from 412-gcc-4.5.1-atmega164pa_168pa_32a_64a.patch
rename to 412-gcc-atmega164pa_168pa_32a_64a.patch
index c0004b5bafb0e8565eb81ce7f20e2ce034c5c6a9..0a08fe80545439c7b30ed4c415a791d2e6582d81 100644 (file)
@@ -1,15 +1,15 @@
-diff -Naurp ./gcc/config/avr/avr-devices.c ./gcc/config/avr/avr-devices.c
---- ./gcc/config/avr/avr-devices.c     2011-08-30 14:41:43.000000000 +0300
-+++ ./gcc/config/avr/avr-devices.c     2011-08-30 14:45:00.000000000 +0300
-@@ -146,6 +146,7 @@ const struct mcu_type_s avr_mcu_types[] 
+diff -Naurp gcc/config/avr/avr-devices.c gcc/config/avr/avr-devices.c
+--- gcc/config/avr/avr-devices.c       2011-10-28 12:06:09.000000000 +0530
++++ gcc/config/avr/avr-devices.c       2011-10-28 12:15:49.000000000 +0530
+@@ -147,6 +147,7 @@ const struct mcu_type_s avr_mcu_types[] 
    { "atmega163",            ARCH_AVR5, "__AVR_ATmega163__",         0, 0x0060, "m163" },
    { "atmega163",            ARCH_AVR5, "__AVR_ATmega163__",         0, 0x0060, "m163" },
-   { "atmega164a",           ARCH_AVR5, "__AVR_ATmega164A__",        0, 0x0060, "m164a" },
+   { "atmega164a",           ARCH_AVR5, "__AVR_ATmega164A__",        0, 0x0100, "m164a" },
    { "atmega164p",           ARCH_AVR5, "__AVR_ATmega164P__",        0, 0x0100, "m164p" },
 +  { "atmega164pa",          ARCH_AVR5, "__AVR_ATmega164PA__",       0, 0x0100, "m164pa" },
    { "atmega165",            ARCH_AVR5, "__AVR_ATmega165__",         0, 0x0100, "m165" },
    { "atmega165a",           ARCH_AVR5, "__AVR_ATmega165A__",        0, 0x0100, "m165a" },
    { "atmega165p",           ARCH_AVR5, "__AVR_ATmega165P__",        0, 0x0100, "m165p" },
    { "atmega164p",           ARCH_AVR5, "__AVR_ATmega164P__",        0, 0x0100, "m164p" },
 +  { "atmega164pa",          ARCH_AVR5, "__AVR_ATmega164PA__",       0, 0x0100, "m164pa" },
    { "atmega165",            ARCH_AVR5, "__AVR_ATmega165__",         0, 0x0100, "m165" },
    { "atmega165a",           ARCH_AVR5, "__AVR_ATmega165A__",        0, 0x0100, "m165a" },
    { "atmega165p",           ARCH_AVR5, "__AVR_ATmega165P__",        0, 0x0100, "m165p" },
-@@ -153,6 +154,7 @@ const struct mcu_type_s avr_mcu_types[] 
+@@ -154,6 +155,7 @@ const struct mcu_type_s avr_mcu_types[] 
    { "atmega168",            ARCH_AVR5, "__AVR_ATmega168__",         0, 0x0100, "m168" },
    { "atmega168a",           ARCH_AVR5, "__AVR_ATmega168A__",        0, 0x0100, "m168a" },
    { "atmega168p",           ARCH_AVR5, "__AVR_ATmega168P__",        0, 0x0100, "m168p" },
    { "atmega168",            ARCH_AVR5, "__AVR_ATmega168__",         0, 0x0100, "m168" },
    { "atmega168a",           ARCH_AVR5, "__AVR_ATmega168A__",        0, 0x0100, "m168a" },
    { "atmega168p",           ARCH_AVR5, "__AVR_ATmega168P__",        0, 0x0100, "m168p" },
@@ -23,7 +23,7 @@ diff -Naurp ./gcc/config/avr/avr-devices.c ./gcc/config/avr/avr-devices.c
    { "atmega32",             ARCH_AVR5, "__AVR_ATmega32__",          0, 0x0060, "m32" },
 +  { "atmega32a",            ARCH_AVR5, "__AVR_ATmega32A__",         0, 0x0060, "m32a" },
    { "atmega323",            ARCH_AVR5, "__AVR_ATmega323__",         0, 0x0060, "m323" },
    { "atmega32",             ARCH_AVR5, "__AVR_ATmega32__",          0, 0x0060, "m32" },
 +  { "atmega32a",            ARCH_AVR5, "__AVR_ATmega32A__",         0, 0x0060, "m32a" },
    { "atmega323",            ARCH_AVR5, "__AVR_ATmega323__",         0, 0x0060, "m323" },
-   { "atmega324a",           ARCH_AVR5, "__AVR_ATmega324A__",        0, 0x0060, "m324a" },
+   { "atmega324a",           ARCH_AVR5, "__AVR_ATmega324A__",        0, 0x0100, "m324a" },
    { "atmega324p",           ARCH_AVR5, "__AVR_ATmega324P__",        0, 0x0100, "m324p" },
 @@ -192,6 +195,7 @@ const struct mcu_type_s avr_mcu_types[] 
    { "atmega32u6",           ARCH_AVR5, "__AVR_ATmega32U6__",        0, 0x0100, "m32u6" },
    { "atmega324p",           ARCH_AVR5, "__AVR_ATmega324P__",        0, 0x0100, "m324p" },
 @@ -192,6 +195,7 @@ const struct mcu_type_s avr_mcu_types[] 
    { "atmega32u6",           ARCH_AVR5, "__AVR_ATmega32U6__",        0, 0x0100, "m32u6" },
@@ -33,10 +33,10 @@ diff -Naurp ./gcc/config/avr/avr-devices.c ./gcc/config/avr/avr-devices.c
    { "atmega640",            ARCH_AVR5, "__AVR_ATmega640__",         0, 0x0200, "m640" },
    { "atmega644",            ARCH_AVR5, "__AVR_ATmega644__",         0, 0x0100, "m644" },
    { "atmega644a",           ARCH_AVR5, "__AVR_ATmega644A__",        0, 0x0100, "m644a" },
    { "atmega640",            ARCH_AVR5, "__AVR_ATmega640__",         0, 0x0200, "m640" },
    { "atmega644",            ARCH_AVR5, "__AVR_ATmega644__",         0, 0x0100, "m644" },
    { "atmega644a",           ARCH_AVR5, "__AVR_ATmega644A__",        0, 0x0100, "m644a" },
-diff -Naurp ./gcc/config/avr/t-avr ./gcc/config/avr/t-avr
---- ./gcc/config/avr/t-avr     2011-08-30 14:41:43.000000000 +0300
-+++ ./gcc/config/avr/t-avr     2011-08-30 14:45:00.000000000 +0300
-@@ -180,6 +180,7 @@ MULTILIB_MATCHES = \
+diff -Naurp gcc/config/avr/t-avr gcc/config/avr/t-avr
+--- gcc/config/avr/t-avr       2011-10-28 12:04:00.000000000 +0530
++++ gcc/config/avr/t-avr       2011-10-28 12:15:49.000000000 +0530
+@@ -178,6 +178,7 @@ MULTILIB_MATCHES = \
        mmcu?avr5=mmcu?atmega163 \
        mmcu?avr5=mmcu?atmega164a \
        mmcu?avr5=mmcu?atmega164p \
        mmcu?avr5=mmcu?atmega163 \
        mmcu?avr5=mmcu?atmega164a \
        mmcu?avr5=mmcu?atmega164p \
@@ -44,7 +44,7 @@ diff -Naurp ./gcc/config/avr/t-avr ./gcc/config/avr/t-avr
        mmcu?avr5=mmcu?atmega165 \
        mmcu?avr5=mmcu?atmega165a \
        mmcu?avr5=mmcu?atmega165p \
        mmcu?avr5=mmcu?atmega165 \
        mmcu?avr5=mmcu?atmega165a \
        mmcu?avr5=mmcu?atmega165p \
-@@ -187,11 +188,13 @@ MULTILIB_MATCHES = \
+@@ -185,11 +186,13 @@ MULTILIB_MATCHES = \
        mmcu?avr5=mmcu?atmega168 \
        mmcu?avr5=mmcu?atmega168a \
        mmcu?avr5=mmcu?atmega168p \
        mmcu?avr5=mmcu?atmega168 \
        mmcu?avr5=mmcu?atmega168a \
        mmcu?avr5=mmcu?atmega168p \
@@ -58,7 +58,7 @@ diff -Naurp ./gcc/config/avr/t-avr ./gcc/config/avr/t-avr
        mmcu?avr5=mmcu?atmega323 \
        mmcu?avr5=mmcu?atmega324a \
        mmcu?avr5=mmcu?atmega324p \
        mmcu?avr5=mmcu?atmega323 \
        mmcu?avr5=mmcu?atmega324a \
        mmcu?avr5=mmcu?atmega324p \
-@@ -218,6 +221,7 @@ MULTILIB_MATCHES = \
+@@ -216,6 +219,7 @@ MULTILIB_MATCHES = \
        mmcu?avr5=mmcu?atmega64rfa2 \
        mmcu?avr5=mmcu?atmega64rfr2 \
        mmcu?avr5=mmcu?atmega64  \
        mmcu?avr5=mmcu?atmega64rfa2 \
        mmcu?avr5=mmcu?atmega64rfr2 \
        mmcu?avr5=mmcu?atmega64  \
diff --git a/413-gcc-4.5.1-atxmega32x1.patch b/413-gcc-4.5.1-atxmega32x1.patch
deleted file mode 100644 (file)
index b7234aa..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-diff -Naurp gcc/config/avr/avr-devices.c gcc/config/avr/avr-devices.c
---- gcc/config/avr/avr-devices.c       2011-09-02 12:44:50.000000000 +0300
-+++ gcc/config/avr/avr-devices.c       2011-09-02 12:55:09.000000000 +0300
-@@ -269,6 +269,7 @@ const struct mcu_type_s avr_mcu_types[] 
-   { "atxmega32a4",  ARCH_AVRXMEGA2, "__AVR_ATxmega32A4__",          0, 0x2000, "x32a4" },
-   { "atxmega32a4u", ARCH_AVRXMEGA2, "__AVR_ATxmega32A4U__",         0, 0x2000, "x32a4u" },
-   { "atxmega32d4",  ARCH_AVRXMEGA2, "__AVR_ATxmega32D4__",          0, 0x2000, "x32d4" },
-+  { "atxmega32x1",  ARCH_AVRXMEGA2, "__AVR_ATxmega32X1__",          0, 0x2000, "x32x1" },
-     /* Xmega, > 8K, <= 64K FLASH, > 64K RAM.  */
-     /* { "avrxmega3",    ARCH_AVRXMEGA3, NULL }, */
-     /* Xmega, >= 64K, < 128K FLASH, <= 64K RAM.  */
-diff -Naurp gcc/config/avr/t-avr gcc/config/avr/t-avr
---- gcc/config/avr/t-avr       2011-09-02 12:43:34.000000000 +0300
-+++ gcc/config/avr/t-avr       2011-09-02 12:55:52.000000000 +0300
-@@ -284,6 +284,7 @@ MULTILIB_MATCHES = \
-       mmcu?avrxmega2=mmcu?atxmega32d4 \
-       mmcu?avrxmega2=mmcu?atxmega32a4 \
-       mmcu?avrxmega2=mmcu?atxmega32a4u \
-+      mmcu?avrxmega2=mmcu?atxmega32x1 \
-       mmcu?avrxmega4=mmcu?atxmega64a3 \
-       mmcu?avrxmega4=mmcu?atxmega64a3u \
-       mmcu?avrxmega4=mmcu?atxmega64d3 \
similarity index 77%
rename from 414-gcc-4.5.1-atxmega64_128_b3.patch
rename to 413-gcc-atxmega64_128_b3.patch
index c38c134f4a97b13b862718c760ffa215969ec6d4..3f3bb548b43f47262ec8660f988621fe75b67b7a 100644 (file)
@@ -1,15 +1,15 @@
 diff -Naurp gcc/config/avr/avr-devices.c gcc/config/avr/avr-devices.c
 diff -Naurp gcc/config/avr/avr-devices.c gcc/config/avr/avr-devices.c
---- gcc/config/avr/avr-devices.c       2011-09-05 14:52:39.000000000 +0300
-+++ gcc/config/avr/avr-devices.c       2011-09-05 14:55:31.000000000 +0300
-@@ -276,6 +276,7 @@ const struct mcu_type_s avr_mcu_types[] 
+--- gcc/config/avr/avr-devices.c       2011-10-28 12:15:49.000000000 +0530
++++ gcc/config/avr/avr-devices.c       2011-10-28 14:31:05.000000000 +0530
+@@ -275,6 +275,7 @@ const struct mcu_type_s avr_mcu_types[] 
    { "avrxmega4",    ARCH_AVRXMEGA4, NULL,                           0, 0x2000, "x64d3" },
    { "atxmega64a3",  ARCH_AVRXMEGA4, "__AVR_ATxmega64A3__",          0, 0x2000, "x64a3" },
    { "atxmega64a3u", ARCH_AVRXMEGA4, "__AVR_ATxmega64A3U__",         0, 0x2000, "x64a3u"},
 +  { "atxmega64b3",  ARCH_AVRXMEGA4, "__AVR_ATxmega64B3__",          0, 0x2000, "x64b3"},
    { "atxmega64d3",  ARCH_AVRXMEGA4, "__AVR_ATxmega64D3__",          0, 0x2000, "x64d3" },
    { "atxmega64d4",  ARCH_AVRXMEGA4, "__AVR_ATxmega64D4__",          0, 0x2000, "x64d4" },
    { "avrxmega4",    ARCH_AVRXMEGA4, NULL,                           0, 0x2000, "x64d3" },
    { "atxmega64a3",  ARCH_AVRXMEGA4, "__AVR_ATxmega64A3__",          0, 0x2000, "x64a3" },
    { "atxmega64a3u", ARCH_AVRXMEGA4, "__AVR_ATxmega64A3U__",         0, 0x2000, "x64a3u"},
 +  { "atxmega64b3",  ARCH_AVRXMEGA4, "__AVR_ATxmega64B3__",          0, 0x2000, "x64b3"},
    { "atxmega64d3",  ARCH_AVRXMEGA4, "__AVR_ATxmega64D3__",          0, 0x2000, "x64d3" },
    { "atxmega64d4",  ARCH_AVRXMEGA4, "__AVR_ATxmega64D4__",          0, 0x2000, "x64d4" },
-     /* Xmega, >= 64K, < 128K FLASH, > 64K RAM.  */
-@@ -287,6 +288,7 @@ const struct mcu_type_s avr_mcu_types[] 
+     /* Xmega, > 64K, <= 128K FLASH, > 64K RAM.  */
+@@ -286,6 +287,7 @@ const struct mcu_type_s avr_mcu_types[] 
    { "atxmega128a3", ARCH_AVRXMEGA6, "__AVR_ATxmega128A3__",         0, 0x2000, "x128a3" },
    { "atxmega128a3u",ARCH_AVRXMEGA6, "__AVR_ATxmega128A3U__",        0, 0x2000, "x128a3u"},
    { "atxmega128b1", ARCH_AVRXMEGA6, "__AVR_ATxmega128B1__",         0, 0x2000, "x128b1" },
    { "atxmega128a3", ARCH_AVRXMEGA6, "__AVR_ATxmega128A3__",         0, 0x2000, "x128a3" },
    { "atxmega128a3u",ARCH_AVRXMEGA6, "__AVR_ATxmega128A3U__",        0, 0x2000, "x128a3u"},
    { "atxmega128b1", ARCH_AVRXMEGA6, "__AVR_ATxmega128B1__",         0, 0x2000, "x128b1" },
@@ -18,9 +18,9 @@ diff -Naurp gcc/config/avr/avr-devices.c gcc/config/avr/avr-devices.c
    { "atxmega192a3", ARCH_AVRXMEGA6, "__AVR_ATxmega192A3__",         0, 0x2000, "x192a3" },
    { "atxmega192a3u",ARCH_AVRXMEGA6, "__AVR_ATxmega192A3U__",        0, 0x2000, "x192a3u"},
 diff -Naurp gcc/config/avr/t-avr gcc/config/avr/t-avr
    { "atxmega192a3", ARCH_AVRXMEGA6, "__AVR_ATxmega192A3__",         0, 0x2000, "x192a3" },
    { "atxmega192a3u",ARCH_AVRXMEGA6, "__AVR_ATxmega192A3U__",        0, 0x2000, "x192a3u"},
 diff -Naurp gcc/config/avr/t-avr gcc/config/avr/t-avr
---- gcc/config/avr/t-avr       2011-09-05 14:52:39.000000000 +0300
-+++ gcc/config/avr/t-avr       2011-09-05 14:56:06.000000000 +0300
-@@ -287,6 +287,7 @@ MULTILIB_MATCHES = \
+--- gcc/config/avr/t-avr       2011-10-28 12:15:49.000000000 +0530
++++ gcc/config/avr/t-avr       2011-10-28 14:31:05.000000000 +0530
+@@ -285,6 +285,7 @@ MULTILIB_MATCHES = \
        mmcu?avrxmega2=mmcu?atxmega32x1 \
        mmcu?avrxmega4=mmcu?atxmega64a3 \
        mmcu?avrxmega4=mmcu?atxmega64a3u \
        mmcu?avrxmega2=mmcu?atxmega32x1 \
        mmcu?avrxmega4=mmcu?atxmega64a3 \
        mmcu?avrxmega4=mmcu?atxmega64a3u \
@@ -28,7 +28,7 @@ diff -Naurp gcc/config/avr/t-avr gcc/config/avr/t-avr
        mmcu?avrxmega4=mmcu?atxmega64d3 \
        mmcu?avrxmega4=mmcu?atxmega64d4 \
        mmcu?avrxmega5=mmcu?atxmega64a1 \
        mmcu?avrxmega4=mmcu?atxmega64d3 \
        mmcu?avrxmega4=mmcu?atxmega64d4 \
        mmcu?avrxmega5=mmcu?atxmega64a1 \
-@@ -294,6 +295,7 @@ MULTILIB_MATCHES = \
+@@ -292,6 +293,7 @@ MULTILIB_MATCHES = \
        mmcu?avrxmega6=mmcu?atxmega128a3 \
        mmcu?avrxmega6=mmcu?atxmega128a3u \
        mmcu?avrxmega6=mmcu?atxmega128b1 \
        mmcu?avrxmega6=mmcu?atxmega128a3 \
        mmcu?avrxmega6=mmcu?atxmega128a3u \
        mmcu?avrxmega6=mmcu?atxmega128b1 \
similarity index 73%
rename from 415-gcc-4.5.1-atxmega64b1.patch
rename to 414-gcc-atxmega64b1.patch
index 3f56aaf58db227e7cda723d9e39d4c51c67ace89..8a65026b88bd62c97949eafcb172f275efd3488c 100644 (file)
@@ -1,7 +1,7 @@
 diff -Naurp gcc/config/avr/avr-devices.c gcc/config/avr/avr-devices.c
 diff -Naurp gcc/config/avr/avr-devices.c gcc/config/avr/avr-devices.c
---- gcc/config/avr/avr-devices.c       2011-09-07 18:19:24.000000000 +0300
-+++ gcc/config/avr/avr-devices.c       2011-09-07 18:22:51.000000000 +0300
-@@ -276,6 +276,7 @@ const struct mcu_type_s avr_mcu_types[] 
+--- gcc/config/avr/avr-devices.c       2011-10-28 14:31:05.000000000 +0530
++++ gcc/config/avr/avr-devices.c       2011-10-28 14:34:49.000000000 +0530
+@@ -275,6 +275,7 @@ const struct mcu_type_s avr_mcu_types[] 
    { "avrxmega4",    ARCH_AVRXMEGA4, NULL,                           0, 0x2000, "x64d3" },
    { "atxmega64a3",  ARCH_AVRXMEGA4, "__AVR_ATxmega64A3__",          0, 0x2000, "x64a3" },
    { "atxmega64a3u", ARCH_AVRXMEGA4, "__AVR_ATxmega64A3U__",         0, 0x2000, "x64a3u"},
    { "avrxmega4",    ARCH_AVRXMEGA4, NULL,                           0, 0x2000, "x64d3" },
    { "atxmega64a3",  ARCH_AVRXMEGA4, "__AVR_ATxmega64A3__",          0, 0x2000, "x64a3" },
    { "atxmega64a3u", ARCH_AVRXMEGA4, "__AVR_ATxmega64A3U__",         0, 0x2000, "x64a3u"},
@@ -10,9 +10,9 @@ diff -Naurp gcc/config/avr/avr-devices.c gcc/config/avr/avr-devices.c
    { "atxmega64d3",  ARCH_AVRXMEGA4, "__AVR_ATxmega64D3__",          0, 0x2000, "x64d3" },
    { "atxmega64d4",  ARCH_AVRXMEGA4, "__AVR_ATxmega64D4__",          0, 0x2000, "x64d4" },
 diff -Naurp gcc/config/avr/t-avr gcc/config/avr/t-avr
    { "atxmega64d3",  ARCH_AVRXMEGA4, "__AVR_ATxmega64D3__",          0, 0x2000, "x64d3" },
    { "atxmega64d4",  ARCH_AVRXMEGA4, "__AVR_ATxmega64D4__",          0, 0x2000, "x64d4" },
 diff -Naurp gcc/config/avr/t-avr gcc/config/avr/t-avr
---- gcc/config/avr/t-avr       2011-09-07 18:19:24.000000000 +0300
-+++ gcc/config/avr/t-avr       2011-09-07 18:23:45.000000000 +0300
-@@ -287,6 +287,7 @@ MULTILIB_MATCHES = \
+--- gcc/config/avr/t-avr       2011-10-28 14:31:05.000000000 +0530
++++ gcc/config/avr/t-avr       2011-10-28 14:34:49.000000000 +0530
+@@ -285,6 +285,7 @@ MULTILIB_MATCHES = \
        mmcu?avrxmega2=mmcu?atxmega32x1 \
        mmcu?avrxmega4=mmcu?atxmega64a3 \
        mmcu?avrxmega4=mmcu?atxmega64a3u \
        mmcu?avrxmega2=mmcu?atxmega32x1 \
        mmcu?avrxmega4=mmcu?atxmega64a3 \
        mmcu?avrxmega4=mmcu?atxmega64a3u \
similarity index 87%
rename from 416-gcc-4.5.1-atmega_8a_128a_1284.patch
rename to 415-gcc-atmega_8a_128a_1284.patch
index 80680b7b22740b511440ee78d5192b5fe7817db2..98c9d40d43620990a6fa33f238674fcd43655f9c 100644 (file)
@@ -1,6 +1,6 @@
 diff -Naurp gcc/config/avr/avr-devices.c gcc/config/avr/avr-devices.c
 diff -Naurp gcc/config/avr/avr-devices.c gcc/config/avr/avr-devices.c
---- gcc/config/avr/avr-devices.c       2011-09-08 17:29:28.000000000 +0300
-+++ gcc/config/avr/avr-devices.c       2011-09-08 17:34:31.000000000 +0300
+--- gcc/config/avr/avr-devices.c       2011-10-28 14:34:49.000000000 +0530
++++ gcc/config/avr/avr-devices.c       2011-10-28 14:39:27.000000000 +0530
 @@ -118,6 +118,7 @@ const struct mcu_type_s avr_mcu_types[] 
      /* Enhanced, <= 8K + 2-byte PC + { MOVW/LPMX, MUL }.  */
    { "avr4",                 ARCH_AVR4, NULL,                        0, 0x0060, "m8" },
 @@ -118,6 +118,7 @@ const struct mcu_type_s avr_mcu_types[] 
      /* Enhanced, <= 8K + 2-byte PC + { MOVW/LPMX, MUL }.  */
    { "avr4",                 ARCH_AVR4, NULL,                        0, 0x0060, "m8" },
@@ -21,9 +21,9 @@ diff -Naurp gcc/config/avr/avr-devices.c gcc/config/avr/avr-devices.c
    { "atmega128rfa1",        ARCH_AVR51, "__AVR_ATmega128RFA1__",    0, 0x0200, "m128rfa1" },
    { "atmega128rfa2",        ARCH_AVR51, "__AVR_ATmega128RFA2__",    0, 0x0200, "m128rfa2" },
 diff -Naurp gcc/config/avr/t-avr gcc/config/avr/t-avr
    { "atmega128rfa1",        ARCH_AVR51, "__AVR_ATmega128RFA1__",    0, 0x0200, "m128rfa1" },
    { "atmega128rfa2",        ARCH_AVR51, "__AVR_ATmega128RFA2__",    0, 0x0200, "m128rfa2" },
 diff -Naurp gcc/config/avr/t-avr gcc/config/avr/t-avr
---- gcc/config/avr/t-avr       2011-09-08 17:29:28.000000000 +0300
-+++ gcc/config/avr/t-avr       2011-09-08 17:37:19.000000000 +0300
-@@ -159,6 +159,7 @@ MULTILIB_MATCHES = \
+--- gcc/config/avr/t-avr       2011-10-28 14:55:08.000000000 +0530
++++ gcc/config/avr/t-avr       2011-10-28 14:52:10.000000000 +0530
+@@ -157,6 +157,7 @@ MULTILIB_MATCHES = \
        mmcu?avr4=mmcu?atmega48pa \
        mmcu?avr4=mmcu?atmega48p \
        mmcu?avr4=mmcu?atmega8 \
        mmcu?avr4=mmcu?atmega48pa \
        mmcu?avr4=mmcu?atmega48p \
        mmcu?avr4=mmcu?atmega8 \
@@ -32,8 +32,8 @@ diff -Naurp gcc/config/avr/t-avr gcc/config/avr/t-avr
        mmcu?avr4=mmcu?atmega8535 \
        mmcu?avr4=mmcu?atmega88 \
 @@ -263,8 +264,10 @@ MULTILIB_MATCHES = \
        mmcu?avr4=mmcu?atmega8535 \
        mmcu?avr4=mmcu?atmega88 \
 @@ -263,8 +264,10 @@ MULTILIB_MATCHES = \
-       mmcu?avr5=mmcu?at90usb647 \
        mmcu?avr5=mmcu?at94k \
        mmcu?avr5=mmcu?at94k \
+       mmcu?avr5=mmcu?m3000 \
        mmcu?avr51=mmcu?atmega128 \
 +      mmcu?avr51=mmcu?atmega128a \
        mmcu?avr51=mmcu?atmega1280 \
        mmcu?avr51=mmcu?atmega128 \
 +      mmcu?avr51=mmcu?atmega128a \
        mmcu?avr51=mmcu?atmega1280 \
similarity index 73%
rename from 417-gcc-4.5.1-atxmega64a4u.patch
rename to 416-gcc-atxmega64a4u.patch
index 004fc3aa6b66666ee151bf59c692bee4500b118a..03dde6b8b0486269b4334b190407d0396be24621 100644 (file)
@@ -1,7 +1,7 @@
 diff -Naurp gcc/config/avr/avr-devices.c gcc/config/avr/avr-devices.c
 diff -Naurp gcc/config/avr/avr-devices.c gcc/config/avr/avr-devices.c
---- gcc/config/avr/avr-devices.c       2011-09-12 14:07:28.000000000 +0300
-+++ gcc/config/avr/avr-devices.c       2011-09-12 14:29:05.000000000 +0300
-@@ -279,6 +279,7 @@ const struct mcu_type_s avr_mcu_types[] 
+--- gcc/config/avr/avr-devices.c       2011-10-28 14:39:27.000000000 +0530
++++ gcc/config/avr/avr-devices.c       2011-10-28 14:59:12.000000000 +0530
+@@ -278,6 +278,7 @@ const struct mcu_type_s avr_mcu_types[] 
    { "avrxmega4",    ARCH_AVRXMEGA4, NULL,                           0, 0x2000, "x64d3" },
    { "atxmega64a3",  ARCH_AVRXMEGA4, "__AVR_ATxmega64A3__",          0, 0x2000, "x64a3" },
    { "atxmega64a3u", ARCH_AVRXMEGA4, "__AVR_ATxmega64A3U__",         0, 0x2000, "x64a3u"},
    { "avrxmega4",    ARCH_AVRXMEGA4, NULL,                           0, 0x2000, "x64d3" },
    { "atxmega64a3",  ARCH_AVRXMEGA4, "__AVR_ATxmega64A3__",          0, 0x2000, "x64a3" },
    { "atxmega64a3u", ARCH_AVRXMEGA4, "__AVR_ATxmega64A3U__",         0, 0x2000, "x64a3u"},
@@ -10,9 +10,9 @@ diff -Naurp gcc/config/avr/avr-devices.c gcc/config/avr/avr-devices.c
    { "atxmega64b3",  ARCH_AVRXMEGA4, "__AVR_ATxmega64B3__",          0, 0x2000, "x64b3"},
    { "atxmega64d3",  ARCH_AVRXMEGA4, "__AVR_ATxmega64D3__",          0, 0x2000, "x64d3" },
 diff -Naurp gcc/config/avr/t-avr gcc/config/avr/t-avr
    { "atxmega64b3",  ARCH_AVRXMEGA4, "__AVR_ATxmega64B3__",          0, 0x2000, "x64b3"},
    { "atxmega64d3",  ARCH_AVRXMEGA4, "__AVR_ATxmega64D3__",          0, 0x2000, "x64d3" },
 diff -Naurp gcc/config/avr/t-avr gcc/config/avr/t-avr
---- gcc/config/avr/t-avr       2011-09-12 14:07:28.000000000 +0300
-+++ gcc/config/avr/t-avr       2011-09-12 14:29:05.000000000 +0300
-@@ -290,6 +290,7 @@ MULTILIB_MATCHES = \
+--- gcc/config/avr/t-avr       2011-10-28 14:52:10.000000000 +0530
++++ gcc/config/avr/t-avr       2011-10-28 14:59:12.000000000 +0530
+@@ -288,6 +288,7 @@ MULTILIB_MATCHES = \
        mmcu?avrxmega2=mmcu?atxmega32x1 \
        mmcu?avrxmega4=mmcu?atxmega64a3 \
        mmcu?avrxmega4=mmcu?atxmega64a3u \
        mmcu?avrxmega2=mmcu?atxmega32x1 \
        mmcu?avrxmega4=mmcu?atxmega64a3 \
        mmcu?avrxmega4=mmcu?atxmega64a3u \
similarity index 73%
rename from 418-gcc-4.5.1-atxmega128d4.patch
rename to 417-gcc-atxmega128d4.patch
index b962bcf526dd19dadc88968698df4847d86cf4e9..af9222bffdec32a6f1ec9c462c523d6c8244c25f 100644 (file)
@@ -1,7 +1,7 @@
 diff -Naurp gcc/config/avr/avr-devices.c gcc/config/avr/avr-devices.c
 diff -Naurp gcc/config/avr/avr-devices.c gcc/config/avr/avr-devices.c
---- gcc/config/avr/avr-devices.c       2011-09-15 11:58:29.000000000 +0300
-+++ gcc/config/avr/avr-devices.c       2011-09-15 12:01:45.000000000 +0300
-@@ -295,6 +295,7 @@ const struct mcu_type_s avr_mcu_types[] 
+--- gcc/config/avr/avr-devices.c       2011-10-28 14:59:12.000000000 +0530
++++ gcc/config/avr/avr-devices.c       2011-10-28 15:04:23.000000000 +0530
+@@ -294,6 +294,7 @@ const struct mcu_type_s avr_mcu_types[] 
    { "atxmega128b1", ARCH_AVRXMEGA6, "__AVR_ATxmega128B1__",         0, 0x2000, "x128b1" },
    { "atxmega128b3", ARCH_AVRXMEGA6, "__AVR_ATxmega128B3__",         0, 0x2000, "x128b3" },
    { "atxmega128d3", ARCH_AVRXMEGA6, "__AVR_ATxmega128D3__",         0, 0x2000, "x128d3" },
    { "atxmega128b1", ARCH_AVRXMEGA6, "__AVR_ATxmega128B1__",         0, 0x2000, "x128b1" },
    { "atxmega128b3", ARCH_AVRXMEGA6, "__AVR_ATxmega128B3__",         0, 0x2000, "x128b3" },
    { "atxmega128d3", ARCH_AVRXMEGA6, "__AVR_ATxmega128D3__",         0, 0x2000, "x128d3" },
@@ -10,9 +10,9 @@ diff -Naurp gcc/config/avr/avr-devices.c gcc/config/avr/avr-devices.c
    { "atxmega192a3u",ARCH_AVRXMEGA6, "__AVR_ATxmega192A3U__",        0, 0x2000, "x192a3u"},
    { "atxmega192d3", ARCH_AVRXMEGA6, "__AVR_ATxmega192D3__",         0, 0x2000, "x192d3" },
 diff -Naurp gcc/config/avr/t-avr gcc/config/avr/t-avr
    { "atxmega192a3u",ARCH_AVRXMEGA6, "__AVR_ATxmega192A3U__",        0, 0x2000, "x192a3u"},
    { "atxmega192d3", ARCH_AVRXMEGA6, "__AVR_ATxmega192D3__",         0, 0x2000, "x192d3" },
 diff -Naurp gcc/config/avr/t-avr gcc/config/avr/t-avr
---- gcc/config/avr/t-avr       2011-09-15 11:58:29.000000000 +0300
-+++ gcc/config/avr/t-avr       2011-09-15 12:01:45.000000000 +0300
-@@ -302,6 +302,7 @@ MULTILIB_MATCHES = \
+--- gcc/config/avr/t-avr       2011-10-28 14:59:12.000000000 +0530
++++ gcc/config/avr/t-avr       2011-10-28 15:04:23.000000000 +0530
+@@ -300,6 +300,7 @@ MULTILIB_MATCHES = \
        mmcu?avrxmega6=mmcu?atxmega128b1 \
        mmcu?avrxmega6=mmcu?atxmega128b3 \
        mmcu?avrxmega6=mmcu?atxmega128d3 \
        mmcu?avrxmega6=mmcu?atxmega128b1 \
        mmcu?avrxmega6=mmcu?atxmega128b3 \
        mmcu?avrxmega6=mmcu?atxmega128d3 \
similarity index 72%
rename from 419-gcc-4.5.1-atmxt336s.patch
rename to 418-gcc-atmxt336s.patch
index f53f50fff0520231f81061059ab4ceca03aabd4c..e9067206f9bad3946c60058a62f94dcc7bbac70b 100644 (file)
@@ -1,18 +1,18 @@
 diff -Naurp gcc/config/avr/avr-devices.c gcc/config/avr/avr-devices.c
 diff -Naurp gcc/config/avr/avr-devices.c gcc/config/avr/avr-devices.c
---- gcc/config/avr/avr-devices.c       2011-09-14 14:49:30.000000000 +0300
-+++ gcc/config/avr/avr-devices.c       2011-09-14 15:26:55.000000000 +0300
+--- gcc/config/avr/avr-devices.c       2011-10-28 15:04:23.000000000 +0530
++++ gcc/config/avr/avr-devices.c       2011-10-28 15:06:36.000000000 +0530
 @@ -265,6 +265,7 @@ const struct mcu_type_s avr_mcu_types[] 
      /* Xmega, <= 8K FLASH.  */
 @@ -265,6 +265,7 @@ const struct mcu_type_s avr_mcu_types[] 
      /* Xmega, <= 8K FLASH.  */
-     /* Xmega, > 8K, < 64K FLASH, <= 64K RAM.  */
+     /* Xmega, > 8K, <= 64K FLASH, <= 64K RAM.  */
    { "avrxmega2",    ARCH_AVRXMEGA2, NULL,                           0, 0x2000, "x32a4" },
 +  { "atmxt336s",    ARCH_AVRXMEGA2, "__AVR_ATMXT336S__",            0, 0x2000, "mxt336s"},
    { "atxmega16a4",  ARCH_AVRXMEGA2, "__AVR_ATxmega16A4__",          0, 0x2000, "x16a4" },
    { "atxmega16a4u",  ARCH_AVRXMEGA2, "__AVR_ATxmega16A4U__",        0, 0x2000, "x16a4u" },
    { "atxmega16d4",  ARCH_AVRXMEGA2, "__AVR_ATxmega16D4__",          0, 0x2000, "x16d4" },
 diff -Naurp gcc/config/avr/t-avr gcc/config/avr/t-avr
    { "avrxmega2",    ARCH_AVRXMEGA2, NULL,                           0, 0x2000, "x32a4" },
 +  { "atmxt336s",    ARCH_AVRXMEGA2, "__AVR_ATMXT336S__",            0, 0x2000, "mxt336s"},
    { "atxmega16a4",  ARCH_AVRXMEGA2, "__AVR_ATxmega16A4__",          0, 0x2000, "x16a4" },
    { "atxmega16a4u",  ARCH_AVRXMEGA2, "__AVR_ATxmega16A4U__",        0, 0x2000, "x16a4u" },
    { "atxmega16d4",  ARCH_AVRXMEGA2, "__AVR_ATxmega16D4__",          0, 0x2000, "x16d4" },
 diff -Naurp gcc/config/avr/t-avr gcc/config/avr/t-avr
---- gcc/config/avr/t-avr       2011-09-14 14:49:30.000000000 +0300
-+++ gcc/config/avr/t-avr       2011-09-14 15:30:42.000000000 +0300
-@@ -280,6 +280,7 @@ MULTILIB_MATCHES = \
+--- gcc/config/avr/t-avr       2011-10-28 15:04:23.000000000 +0530
++++ gcc/config/avr/t-avr       2011-10-28 15:06:36.000000000 +0530
+@@ -279,6 +279,7 @@ MULTILIB_MATCHES = \
        mmcu?avr6=mmcu?atmega256rfr2 \
        mmcu?avr6=mmcu?atmega2560 \
        mmcu?avr6=mmcu?atmega2561 \
        mmcu?avr6=mmcu?atmega256rfr2 \
        mmcu?avr6=mmcu?atmega2560 \
        mmcu?avr6=mmcu?atmega2561 \
similarity index 80%
rename from 420-gcc-4.5.1-atxmega16c4_32c4_128c3_256c3.patch
rename to 419-gcc-atxmega16c4_32c4_128c3_256c3.patch
index ed66af626079d314da68a36bce74fcc7962f503b..46bc2d9a6f1ac0f516b8680b63c39de9d65a8c47 100644 (file)
@@ -1,20 +1,19 @@
 diff -Naurp gcc/config/avr/avr-devices.c gcc/config/avr/avr-devices.c
 diff -Naurp gcc/config/avr/avr-devices.c gcc/config/avr/avr-devices.c
---- gcc/config/avr/avr-devices.c       2011-11-02 16:39:32.000000000 +0530
-+++ gcc/config/avr/avr-devices.c       2011-11-02 16:37:08.000000000 +0530
-@@ -268,10 +268,12 @@ const struct mcu_type_s avr_mcu_types[] 
+--- gcc/config/avr/avr-devices.c       2011-11-08 17:00:35.000000000 +0530
++++ gcc/config/avr/avr-devices.c       2011-11-08 17:04:10.000000000 +0530
+@@ -268,9 +268,11 @@ const struct mcu_type_s avr_mcu_types[] 
    { "atmxt336s",    ARCH_AVRXMEGA2, "__AVR_ATMXT336S__",            0, 0x2000, "mxt336s"},
    { "atxmega16a4",  ARCH_AVRXMEGA2, "__AVR_ATxmega16A4__",          0, 0x2000, "x16a4" },
    { "atxmega16a4u",  ARCH_AVRXMEGA2, "__AVR_ATxmega16A4U__",        0, 0x2000, "x16a4u" },
 +  { "atxmega16c4",  ARCH_AVRXMEGA2, "__AVR_ATxmega16C4__",          0, 0x2000, "x16c4" },
    { "atxmega16d4",  ARCH_AVRXMEGA2, "__AVR_ATxmega16D4__",          0, 0x2000, "x16d4" },
    { "atmxt336s",    ARCH_AVRXMEGA2, "__AVR_ATMXT336S__",            0, 0x2000, "mxt336s"},
    { "atxmega16a4",  ARCH_AVRXMEGA2, "__AVR_ATxmega16A4__",          0, 0x2000, "x16a4" },
    { "atxmega16a4u",  ARCH_AVRXMEGA2, "__AVR_ATxmega16A4U__",        0, 0x2000, "x16a4u" },
 +  { "atxmega16c4",  ARCH_AVRXMEGA2, "__AVR_ATxmega16C4__",          0, 0x2000, "x16c4" },
    { "atxmega16d4",  ARCH_AVRXMEGA2, "__AVR_ATxmega16D4__",          0, 0x2000, "x16d4" },
-   { "atxmega16x1",  ARCH_AVRXMEGA2, "__AVR_ATxmega16X1__",          0, 0x2000, "x16x1" },
    { "atxmega32a4",  ARCH_AVRXMEGA2, "__AVR_ATxmega32A4__",          0, 0x2000, "x32a4" },
    { "atxmega32a4",  ARCH_AVRXMEGA2, "__AVR_ATxmega32A4__",          0, 0x2000, "x32a4" },
-   { "atxmega32a4u", ARCH_AVRXMEGA2, "__AVR_ATxmega32A4U__",         0, 0x2000, "x32a4u" },
+   { "atxmega32a4u",  ARCH_AVRXMEGA2, "__AVR_ATxmega32A4U__",        0, 0x2000, "x32a4u" },
 +  { "atxmega32c4",  ARCH_AVRXMEGA2, "__AVR_ATxmega32C4__",          0, 0x2000, "x32c4" },
    { "atxmega32d4",  ARCH_AVRXMEGA2, "__AVR_ATxmega32D4__",          0, 0x2000, "x32d4" },
    { "atxmega32x1",  ARCH_AVRXMEGA2, "__AVR_ATxmega32X1__",          0, 0x2000, "x32x1" },
      /* Xmega, > 8K, <= 64K FLASH, > 64K RAM.  */
 +  { "atxmega32c4",  ARCH_AVRXMEGA2, "__AVR_ATxmega32C4__",          0, 0x2000, "x32c4" },
    { "atxmega32d4",  ARCH_AVRXMEGA2, "__AVR_ATxmega32D4__",          0, 0x2000, "x32d4" },
    { "atxmega32x1",  ARCH_AVRXMEGA2, "__AVR_ATxmega32X1__",          0, 0x2000, "x32x1" },
      /* Xmega, > 8K, <= 64K FLASH, > 64K RAM.  */
-@@ -295,6 +297,7 @@ const struct mcu_type_s avr_mcu_types[] 
+@@ -294,6 +296,7 @@ const struct mcu_type_s avr_mcu_types[] 
    { "atxmega128a3u",ARCH_AVRXMEGA6, "__AVR_ATxmega128A3U__",        0, 0x2000, "x128a3u"},
    { "atxmega128b1", ARCH_AVRXMEGA6, "__AVR_ATxmega128B1__",         0, 0x2000, "x128b1" },
    { "atxmega128b3", ARCH_AVRXMEGA6, "__AVR_ATxmega128B3__",         0, 0x2000, "x128b3" },
    { "atxmega128a3u",ARCH_AVRXMEGA6, "__AVR_ATxmega128A3U__",        0, 0x2000, "x128a3u"},
    { "atxmega128b1", ARCH_AVRXMEGA6, "__AVR_ATxmega128B1__",         0, 0x2000, "x128b1" },
    { "atxmega128b3", ARCH_AVRXMEGA6, "__AVR_ATxmega128B3__",         0, 0x2000, "x128b3" },
@@ -22,7 +21,7 @@ diff -Naurp gcc/config/avr/avr-devices.c gcc/config/avr/avr-devices.c
    { "atxmega128d3", ARCH_AVRXMEGA6, "__AVR_ATxmega128D3__",         0, 0x2000, "x128d3" },
    { "atxmega128d4", ARCH_AVRXMEGA6, "__AVR_ATxmega128D4__",         0, 0x2000, "x128d4" },
    { "atxmega192a3", ARCH_AVRXMEGA6, "__AVR_ATxmega192A3__",         0, 0x2000, "x192a3" },
    { "atxmega128d3", ARCH_AVRXMEGA6, "__AVR_ATxmega128D3__",         0, 0x2000, "x128d3" },
    { "atxmega128d4", ARCH_AVRXMEGA6, "__AVR_ATxmega128D4__",         0, 0x2000, "x128d4" },
    { "atxmega192a3", ARCH_AVRXMEGA6, "__AVR_ATxmega192A3__",         0, 0x2000, "x192a3" },
-@@ -304,6 +307,7 @@ const struct mcu_type_s avr_mcu_types[] 
+@@ -303,6 +306,7 @@ const struct mcu_type_s avr_mcu_types[] 
    { "atxmega256a3u",ARCH_AVRXMEGA6, "__AVR_ATxmega256A3U__",        0, 0x2000, "x256a3u"},
    { "atxmega256a3b",ARCH_AVRXMEGA6, "__AVR_ATxmega256A3B__",        0, 0x2000, "x256a3b" },
    { "atxmega256a3bu", ARCH_AVRXMEGA6, "__AVR_ATxmega256A3BU__",     0, 0x2000, "x256a3bu" },
    { "atxmega256a3u",ARCH_AVRXMEGA6, "__AVR_ATxmega256A3U__",        0, 0x2000, "x256a3u"},
    { "atxmega256a3b",ARCH_AVRXMEGA6, "__AVR_ATxmega256A3B__",        0, 0x2000, "x256a3b" },
    { "atxmega256a3bu", ARCH_AVRXMEGA6, "__AVR_ATxmega256A3BU__",     0, 0x2000, "x256a3bu" },
@@ -31,20 +30,19 @@ diff -Naurp gcc/config/avr/avr-devices.c gcc/config/avr/avr-devices.c
    { "atxmega384c3", ARCH_AVRXMEGA6, "__AVR_ATxmega384C3__",         0, 0x2000, "x384c3" },
      /* Xmega, >= 128K FLASH, > 64K RAM.  */
 diff -Naurp gcc/config/avr/t-avr gcc/config/avr/t-avr
    { "atxmega384c3", ARCH_AVRXMEGA6, "__AVR_ATxmega384C3__",         0, 0x2000, "x384c3" },
      /* Xmega, >= 128K FLASH, > 64K RAM.  */
 diff -Naurp gcc/config/avr/t-avr gcc/config/avr/t-avr
---- gcc/config/avr/t-avr       2011-11-02 16:39:32.000000000 +0530
-+++ gcc/config/avr/t-avr       2011-11-02 16:37:08.000000000 +0530
-@@ -283,8 +283,10 @@ MULTILIB_MATCHES = \
+--- gcc/config/avr/t-avr       2011-11-08 17:00:35.000000000 +0530
++++ gcc/config/avr/t-avr       2011-11-08 17:02:00.000000000 +0530
+@@ -282,7 +282,9 @@ MULTILIB_MATCHES = \
        mmcu?avrxmega2=mmcu?atmxt336s \
        mmcu?avrxmega2=mmcu?atxmega16a4 \
        mmcu?avrxmega2=mmcu?atxmega16a4u \
 +      mmcu?avrxmega2=mmcu?atxmega16c4 \
        mmcu?avrxmega2=mmcu?atxmega16d4 \
        mmcu?avrxmega2=mmcu?atmxt336s \
        mmcu?avrxmega2=mmcu?atxmega16a4 \
        mmcu?avrxmega2=mmcu?atxmega16a4u \
 +      mmcu?avrxmega2=mmcu?atxmega16c4 \
        mmcu?avrxmega2=mmcu?atxmega16d4 \
-       mmcu?avrxmega2=mmcu?atxmega16x1 \
 +      mmcu?avrxmega2=mmcu?atxmega32c4 \
        mmcu?avrxmega2=mmcu?atxmega32d4 \
        mmcu?avrxmega2=mmcu?atxmega32a4 \
        mmcu?avrxmega2=mmcu?atxmega32a4u \
 +      mmcu?avrxmega2=mmcu?atxmega32c4 \
        mmcu?avrxmega2=mmcu?atxmega32d4 \
        mmcu?avrxmega2=mmcu?atxmega32a4 \
        mmcu?avrxmega2=mmcu?atxmega32a4u \
-@@ -302,6 +304,7 @@ MULTILIB_MATCHES = \
+@@ -300,6 +302,7 @@ MULTILIB_MATCHES = \
        mmcu?avrxmega6=mmcu?atxmega128a3u \
        mmcu?avrxmega6=mmcu?atxmega128b1 \
        mmcu?avrxmega6=mmcu?atxmega128b3 \
        mmcu?avrxmega6=mmcu?atxmega128a3u \
        mmcu?avrxmega6=mmcu?atxmega128b1 \
        mmcu?avrxmega6=mmcu?atxmega128b3 \
@@ -52,7 +50,7 @@ diff -Naurp gcc/config/avr/t-avr gcc/config/avr/t-avr
        mmcu?avrxmega6=mmcu?atxmega128d3 \
        mmcu?avrxmega6=mmcu?atxmega128d4 \
        mmcu?avrxmega6=mmcu?atxmega192a3 \
        mmcu?avrxmega6=mmcu?atxmega128d3 \
        mmcu?avrxmega6=mmcu?atxmega128d4 \
        mmcu?avrxmega6=mmcu?atxmega192a3 \
-@@ -311,6 +314,7 @@ MULTILIB_MATCHES = \
+@@ -309,6 +312,7 @@ MULTILIB_MATCHES = \
        mmcu?avrxmega6=mmcu?atxmega256a3u \
        mmcu?avrxmega6=mmcu?atxmega256a3b \
        mmcu?avrxmega6=mmcu?atxmega256a3bu \
        mmcu?avrxmega6=mmcu?atxmega256a3u \
        mmcu?avrxmega6=mmcu?atxmega256a3b \
        mmcu?avrxmega6=mmcu?atxmega256a3bu \
similarity index 73%
rename from 421-gcc-4.5.1-atxmega384d3.patch
rename to 420-gcc-atxmega384d3.patch
index d1b8b5e77612c4f7dc234b26923f41f0c354b3fc..6e51f557080b20abc30693eb9cb3c994173c3e96 100644 (file)
@@ -1,7 +1,7 @@
 diff -Naurp gcc/config/avr/avr-devices.c gcc/config/avr/avr-devices.c
 diff -Naurp gcc/config/avr/avr-devices.c gcc/config/avr/avr-devices.c
---- gcc/config/avr/avr-devices.c       2011-11-08 15:04:32.000000000 +0530
-+++ gcc/config/avr/avr-devices.c       2011-11-08 15:06:12.000000000 +0530
-@@ -310,6 +310,7 @@ const struct mcu_type_s avr_mcu_types[] 
+--- gcc/config/avr/avr-devices.c       2011-11-08 17:37:12.000000000 +0530
++++ gcc/config/avr/avr-devices.c       2011-11-08 17:38:18.000000000 +0530
+@@ -309,6 +309,7 @@ const struct mcu_type_s avr_mcu_types[] 
    { "atxmega256c3", ARCH_AVRXMEGA6, "__AVR_ATxmega256C3__",         0, 0x2000, "x256c3" },
    { "atxmega256d3", ARCH_AVRXMEGA6, "__AVR_ATxmega256D3__",         0, 0x2000, "x256d3" },
    { "atxmega384c3", ARCH_AVRXMEGA6, "__AVR_ATxmega384C3__",         0, 0x2000, "x384c3" },
    { "atxmega256c3", ARCH_AVRXMEGA6, "__AVR_ATxmega256C3__",         0, 0x2000, "x256c3" },
    { "atxmega256d3", ARCH_AVRXMEGA6, "__AVR_ATxmega256D3__",         0, 0x2000, "x256d3" },
    { "atxmega384c3", ARCH_AVRXMEGA6, "__AVR_ATxmega384C3__",         0, 0x2000, "x384c3" },
@@ -10,9 +10,9 @@ diff -Naurp gcc/config/avr/avr-devices.c gcc/config/avr/avr-devices.c
    { "avrxmega7",    ARCH_AVRXMEGA7, NULL,                           0, 0x2000, "x128a1" },
    { "atxmega128a1", ARCH_AVRXMEGA7, "__AVR_ATxmega128A1__",         0, 0x2000, "x128a1" },
 diff -Naurp gcc/config/avr/t-avr gcc/config/avr/t-avr
    { "avrxmega7",    ARCH_AVRXMEGA7, NULL,                           0, 0x2000, "x128a1" },
    { "atxmega128a1", ARCH_AVRXMEGA7, "__AVR_ATxmega128A1__",         0, 0x2000, "x128a1" },
 diff -Naurp gcc/config/avr/t-avr gcc/config/avr/t-avr
---- gcc/config/avr/t-avr       2011-11-08 15:04:32.000000000 +0530
-+++ gcc/config/avr/t-avr       2011-11-08 15:06:12.000000000 +0530
-@@ -317,6 +317,7 @@ MULTILIB_MATCHES = \
+--- gcc/config/avr/t-avr       2011-11-08 17:37:12.000000000 +0530
++++ gcc/config/avr/t-avr       2011-11-08 17:38:18.000000000 +0530
+@@ -315,6 +315,7 @@ MULTILIB_MATCHES = \
        mmcu?avrxmega6=mmcu?atxmega256c3 \
        mmcu?avrxmega6=mmcu?atxmega256d3 \
        mmcu?avrxmega6=mmcu?atxmega384c3 \
        mmcu?avrxmega6=mmcu?atxmega256c3 \
        mmcu?avrxmega6=mmcu?atxmega256d3 \
        mmcu?avrxmega6=mmcu?atxmega384c3 \
similarity index 62%
rename from 422-gcc-4.5.1-atmega48hvf.patch
rename to 421-gcc-atmega48hvf.patch
index 23f8e080b0424e6ca68d6c9507612da269adbda2..9ba627ea1148d6e63bee3ea8f9e5d2455a71890f 100644 (file)
@@ -1,21 +1,21 @@
 diff -Naurp gcc/config/avr/avr-devices.c gcc/config/avr/avr-devices.c
 diff -Naurp gcc/config/avr/avr-devices.c gcc/config/avr/avr-devices.c
---- gcc/config/avr/avr-devices.c       2011-11-16 13:15:05.000000000 +0530
-+++ gcc/config/avr/avr-devices.c       2011-11-16 18:19:13.000000000 +0530
-@@ -221,6 +221,7 @@ const struct mcu_type_s avr_mcu_types[] 
-   { "atmega64rfr2",         ARCH_AVR5, "__AVR_ATmega64RFR2__",      0, 0x0200, "m64rfr2"},
+--- gcc/config/avr/avr-devices.c       2011-11-16 18:28:11.000000000 +0530
++++ gcc/config/avr/avr-devices.c       2011-11-16 18:33:39.000000000 +0530
+@@ -222,6 +222,7 @@ const struct mcu_type_s avr_mcu_types[] 
    { "atmega32hvb",          ARCH_AVR5, "__AVR_ATmega32HVB__",       0, 0x0100, "m32hvb" },
    { "atmega32hvbrevb",      ARCH_AVR5, "__AVR_ATmega32HVBREVB__",   1, 0x0100, "m32hvbrevb" },
    { "atmega32hvb",          ARCH_AVR5, "__AVR_ATmega32HVB__",       0, 0x0100, "m32hvb" },
    { "atmega32hvbrevb",      ARCH_AVR5, "__AVR_ATmega32HVBREVB__",   1, 0x0100, "m32hvbrevb" },
-+  { "atmega48hvf",          ARCH_AVR5, "__AVR_ATmega48HVF__",       0, 0x0100, "m48hvf" }, 
+   { "atmega16hva2",         ARCH_AVR5, "__AVR_ATmega16HVA2__",      0, 0x0100, "m16hva2" },
++  { "atmega48hvf",          ARCH_AVR5, "__AVR_ATmega48HVF__",       0, 0x0100, "m48hvf" },
    { "at90can32",            ARCH_AVR5, "__AVR_AT90CAN32__",         0, 0x0100, "can32" },
    { "at90can64",            ARCH_AVR5, "__AVR_AT90CAN64__",         0, 0x0100, "can64" },
    { "at90pwm216",           ARCH_AVR5, "__AVR_AT90PWM216__",        0, 0x0100, "90pwm216" },
 diff -Naurp gcc/config/avr/t-avr gcc/config/avr/t-avr
    { "at90can32",            ARCH_AVR5, "__AVR_AT90CAN32__",         0, 0x0100, "can32" },
    { "at90can64",            ARCH_AVR5, "__AVR_AT90CAN64__",         0, 0x0100, "can64" },
    { "at90pwm216",           ARCH_AVR5, "__AVR_AT90PWM216__",        0, 0x0100, "90pwm216" },
 diff -Naurp gcc/config/avr/t-avr gcc/config/avr/t-avr
---- gcc/config/avr/t-avr       2011-11-16 13:15:05.000000000 +0530
-+++ gcc/config/avr/t-avr       2011-11-16 18:25:27.000000000 +0530
-@@ -246,6 +246,7 @@ MULTILIB_MATCHES = \
-       mmcu?avr5=mmcu?atmega16hvbrevb \
+--- gcc/config/avr/t-avr       2011-11-16 18:28:11.000000000 +0530
++++ gcc/config/avr/t-avr       2011-11-16 18:34:34.000000000 +0530
+@@ -245,6 +245,7 @@ MULTILIB_MATCHES = \
        mmcu?avr5=mmcu?atmega32hvb \
        mmcu?avr5=mmcu?atmega32hvbrevb \
        mmcu?avr5=mmcu?atmega32hvb \
        mmcu?avr5=mmcu?atmega32hvbrevb \
+       mmcu?avr5=mmcu?atmega64hve \
 +      mmcu?avr5=mmcu?atmega48hvf \
        mmcu?avr5=mmcu?at90can32 \
        mmcu?avr5=mmcu?at90can64 \
 +      mmcu?avr5=mmcu?atmega48hvf \
        mmcu?avr5=mmcu?at90can32 \
        mmcu?avr5=mmcu?at90can64 \
similarity index 78%
rename from 423-gcc-4.5.1-atmega26hvg.patch
rename to 422-gcc-atmega26hvg.patch
index 72f0987ffdcea33de88c36fb50ab474848b64bd6..1df4accbb9e66b0941eee63c6fc036dc860199eb 100644 (file)
@@ -1,6 +1,6 @@
 diff -Naurp gcc/config/avr/avr-devices.c gcc/config/avr/avr-devices.c
 diff -Naurp gcc/config/avr/avr-devices.c gcc/config/avr/avr-devices.c
---- gcc/config/avr/avr-devices.c       2011-12-08 14:27:35.000000000 +0530
-+++ gcc/config/avr/avr-devices.c       2011-12-08 14:44:38.000000000 +0530
+--- gcc/config/avr/avr-devices.c       2011-12-08 14:24:48.000000000 +0530
++++ gcc/config/avr/avr-devices.c       2011-12-08 14:38:53.000000000 +0530
 @@ -166,6 +166,7 @@ const struct mcu_type_s avr_mcu_types[] 
    { "atmega16hvbrevb",      ARCH_AVR5, "__AVR_ATmega16HVBREVB__",   1, 0x0100, "m16hvbrevb" },
    { "atmega16m1",           ARCH_AVR5, "__AVR_ATmega16M1__",        0, 0x0100, "m16m1" },
 @@ -166,6 +166,7 @@ const struct mcu_type_s avr_mcu_types[] 
    { "atmega16hvbrevb",      ARCH_AVR5, "__AVR_ATmega16HVBREVB__",   1, 0x0100, "m16hvbrevb" },
    { "atmega16m1",           ARCH_AVR5, "__AVR_ATmega16M1__",        0, 0x0100, "m16m1" },
@@ -10,9 +10,9 @@ diff -Naurp gcc/config/avr/avr-devices.c gcc/config/avr/avr-devices.c
    { "atmega32a",            ARCH_AVR5, "__AVR_ATmega32A__",         0, 0x0060, "m32a" },
    { "atmega323",            ARCH_AVR5, "__AVR_ATmega323__",         0, 0x0060, "m323" },
 diff -Naurp gcc/config/avr/t-avr gcc/config/avr/t-avr
    { "atmega32a",            ARCH_AVR5, "__AVR_ATmega32A__",         0, 0x0060, "m32a" },
    { "atmega323",            ARCH_AVR5, "__AVR_ATmega323__",         0, 0x0060, "m323" },
 diff -Naurp gcc/config/avr/t-avr gcc/config/avr/t-avr
---- gcc/config/avr/t-avr       2011-12-08 14:27:35.000000000 +0530
-+++ gcc/config/avr/t-avr       2011-12-08 14:44:38.000000000 +0530
-@@ -194,6 +194,7 @@ MULTILIB_MATCHES = \
+--- gcc/config/avr/t-avr       2011-12-08 14:24:48.000000000 +0530
++++ gcc/config/avr/t-avr       2011-12-08 14:41:10.000000000 +0530
+@@ -192,6 +192,7 @@ MULTILIB_MATCHES = \
        mmcu?avr5=mmcu?atmega169a \
        mmcu?avr5=mmcu?atmega169p \
        mmcu?avr5=mmcu?atmega169pa \
        mmcu?avr5=mmcu?atmega169a \
        mmcu?avr5=mmcu?atmega169p \
        mmcu?avr5=mmcu?atmega169pa \
similarity index 75%
rename from 424-gcc-4.5.1-atmxt224_224e.patch
rename to 423-gcc-atmxt224_224e.patch
index dfcf4e9a7e18d532a5d79707e56005455c577dd1..5d1f0418783a1a64cdeca59c926bf5f9aba49a49 100644 (file)
@@ -1,9 +1,9 @@
 diff -Naurp gcc/config/avr/avr-devices.c gcc/config/avr/avr-devices.c
 diff -Naurp gcc/config/avr/avr-devices.c gcc/config/avr/avr-devices.c
---- gcc/config/avr/avr-devices.c       2012-01-18 11:00:21.000000000 +0530
-+++ gcc/config/avr/avr-devices.c       2012-01-18 11:35:04.000000000 +0530
+--- gcc/config/avr/avr-devices.c       2012-02-10 20:08:47.000000000 +0530
++++ gcc/config/avr/avr-devices.c       2012-02-10 20:16:45.000000000 +0530
 @@ -267,6 +267,8 @@ const struct mcu_type_s avr_mcu_types[] 
      /* Xmega, <= 8K FLASH.  */
 @@ -267,6 +267,8 @@ const struct mcu_type_s avr_mcu_types[] 
      /* Xmega, <= 8K FLASH.  */
-     /* Xmega, > 8K, < 64K FLASH, <= 64K RAM.  */
+     /* Xmega, > 8K, <= 64K FLASH, <= 64K RAM.  */
    { "avrxmega2",    ARCH_AVRXMEGA2, NULL,                           0, 0x2000, "x32a4" },
 +  { "atmxt224",     ARCH_AVRXMEGA2, "__AVR_ATMXT224__",             0, 0x2000, "mxt224"},
 +  { "atmxt224e",    ARCH_AVRXMEGA2, "__AVR_ATMXT224E__",            0, 0x2000, "mxt224e"},
    { "avrxmega2",    ARCH_AVRXMEGA2, NULL,                           0, 0x2000, "x32a4" },
 +  { "atmxt224",     ARCH_AVRXMEGA2, "__AVR_ATMXT224__",             0, 0x2000, "mxt224"},
 +  { "atmxt224e",    ARCH_AVRXMEGA2, "__AVR_ATMXT224E__",            0, 0x2000, "mxt224e"},
@@ -11,9 +11,9 @@ diff -Naurp gcc/config/avr/avr-devices.c gcc/config/avr/avr-devices.c
    { "atxmega16a4",  ARCH_AVRXMEGA2, "__AVR_ATxmega16A4__",          0, 0x2000, "x16a4" },
    { "atxmega16a4u",  ARCH_AVRXMEGA2, "__AVR_ATxmega16A4U__",        0, 0x2000, "x16a4u" },
 diff -Naurp gcc/config/avr/t-avr gcc/config/avr/t-avr
    { "atxmega16a4",  ARCH_AVRXMEGA2, "__AVR_ATxmega16A4__",          0, 0x2000, "x16a4" },
    { "atxmega16a4u",  ARCH_AVRXMEGA2, "__AVR_ATxmega16A4U__",        0, 0x2000, "x16a4u" },
 diff -Naurp gcc/config/avr/t-avr gcc/config/avr/t-avr
---- gcc/config/avr/t-avr       2012-01-18 11:00:21.000000000 +0530
-+++ gcc/config/avr/t-avr       2012-01-18 11:36:27.000000000 +0530
-@@ -282,6 +282,8 @@ MULTILIB_MATCHES = \
+--- gcc/config/avr/t-avr       2012-02-10 20:08:47.000000000 +0530
++++ gcc/config/avr/t-avr       2012-02-10 20:16:45.000000000 +0530
+@@ -281,6 +281,8 @@ MULTILIB_MATCHES = \
        mmcu?avr6=mmcu?atmega256rfr2 \
        mmcu?avr6=mmcu?atmega2560 \
        mmcu?avr6=mmcu?atmega2561 \
        mmcu?avr6=mmcu?atmega256rfr2 \
        mmcu?avr6=mmcu?atmega2560 \
        mmcu?avr6=mmcu?atmega2561 \
similarity index 77%
rename from 424-gcc-4.5.1-atxmega192c3.patch
rename to 424-gcc-atxmega192c3.patch
index 4fe51cd81225b07bb23663027877f776620bbec3..5fe2f79ce871c7e133e8efd6f078e05edd21c2aa 100644 (file)
@@ -1,7 +1,7 @@
 diff -Naurp gcc/config/avr/avr-devices.c gcc/config/avr/avr-devices.c
 diff -Naurp gcc/config/avr/avr-devices.c gcc/config/avr/avr-devices.c
---- gcc/config/avr/avr-devices.c       2012-01-18 19:44:57.000000000 +0530
-+++ gcc/config/avr/avr-devices.c       2012-01-18 18:48:36.000000000 +0530
-@@ -304,6 +304,7 @@ const struct mcu_type_s avr_mcu_types[] 
+--- gcc/config/avr/avr-devices.c       2012-02-10 20:20:51.000000000 +0530
++++ gcc/config/avr/avr-devices.c       2012-02-10 20:21:25.000000000 +0530
+@@ -305,6 +305,7 @@ const struct mcu_type_s avr_mcu_types[] 
    { "atxmega128d4", ARCH_AVRXMEGA6, "__AVR_ATxmega128D4__",         0, 0x2000, "x128d4" },
    { "atxmega192a3", ARCH_AVRXMEGA6, "__AVR_ATxmega192A3__",         0, 0x2000, "x192a3" },
    { "atxmega192a3u",ARCH_AVRXMEGA6, "__AVR_ATxmega192A3U__",        0, 0x2000, "x192a3u"},
    { "atxmega128d4", ARCH_AVRXMEGA6, "__AVR_ATxmega128D4__",         0, 0x2000, "x128d4" },
    { "atxmega192a3", ARCH_AVRXMEGA6, "__AVR_ATxmega192A3__",         0, 0x2000, "x192a3" },
    { "atxmega192a3u",ARCH_AVRXMEGA6, "__AVR_ATxmega192A3U__",        0, 0x2000, "x192a3u"},
@@ -10,8 +10,8 @@ diff -Naurp gcc/config/avr/avr-devices.c gcc/config/avr/avr-devices.c
    { "atxmega256a3", ARCH_AVRXMEGA6, "__AVR_ATxmega256A3__",         0, 0x2000, "x256a3" },
    { "atxmega256a3u",ARCH_AVRXMEGA6, "__AVR_ATxmega256A3U__",        0, 0x2000, "x256a3u"},
 diff -Naurp gcc/config/avr/t-avr gcc/config/avr/t-avr
    { "atxmega256a3", ARCH_AVRXMEGA6, "__AVR_ATxmega256A3__",         0, 0x2000, "x256a3" },
    { "atxmega256a3u",ARCH_AVRXMEGA6, "__AVR_ATxmega256A3U__",        0, 0x2000, "x256a3u"},
 diff -Naurp gcc/config/avr/t-avr gcc/config/avr/t-avr
---- gcc/config/avr/t-avr       2012-01-18 19:44:57.000000000 +0530
-+++ gcc/config/avr/t-avr       2012-01-18 18:50:16.000000000 +0530
+--- gcc/config/avr/t-avr       2012-02-10 20:20:51.000000000 +0530
++++ gcc/config/avr/t-avr       2012-02-10 20:21:25.000000000 +0530
 @@ -311,6 +311,7 @@ MULTILIB_MATCHES = \
        mmcu?avrxmega6=mmcu?atxmega128d4 \
        mmcu?avrxmega6=mmcu?atxmega192a3 \
 @@ -311,6 +311,7 @@ MULTILIB_MATCHES = \
        mmcu?avrxmega6=mmcu?atxmega128d4 \
        mmcu?avrxmega6=mmcu?atxmega192a3 \
diff --git a/425-gcc-atmxt112sl.patch b/425-gcc-atmxt112sl.patch
new file mode 100644 (file)
index 0000000..7881478
--- /dev/null
@@ -0,0 +1,22 @@
+diff -Naurp gcc/config/avr/avr-devices.c gcc/config/avr/avr-devices.c
+--- gcc/config/avr/avr-devices.c       2012-02-10 20:23:45.000000000 +0530
++++ gcc/config/avr/avr-devices.c       2012-02-10 20:24:34.000000000 +0530
+@@ -267,6 +267,7 @@ const struct mcu_type_s avr_mcu_types[] 
+     /* Xmega, <= 8K FLASH.  */
+     /* Xmega, > 8K, <= 64K FLASH, <= 64K RAM.  */
+   { "avrxmega2",    ARCH_AVRXMEGA2, NULL,                           0, 0x2000, "x32a4" },
++  { "atmxt112sl",   ARCH_AVRXMEGA2, "__AVR_ATMXT112SL__",           0, 0x2000, "mxt112sl"},
+   { "atmxt224",     ARCH_AVRXMEGA2, "__AVR_ATMXT224__",             0, 0x2000, "mxt224"},
+   { "atmxt224e",    ARCH_AVRXMEGA2, "__AVR_ATMXT224E__",            0, 0x2000, "mxt224e"},
+   { "atmxt336s",    ARCH_AVRXMEGA2, "__AVR_ATMXT336S__",            0, 0x2000, "mxt336s"},
+diff -Naurp gcc/config/avr/t-avr gcc/config/avr/t-avr
+--- gcc/config/avr/t-avr       2012-02-10 20:23:45.000000000 +0530
++++ gcc/config/avr/t-avr       2012-02-10 20:24:34.000000000 +0530
+@@ -281,6 +281,7 @@ MULTILIB_MATCHES = \
+       mmcu?avr6=mmcu?atmega256rfr2 \
+       mmcu?avr6=mmcu?atmega2560 \
+       mmcu?avr6=mmcu?atmega2561 \
++      mmcu?avrxmega2=mmcu?atmxt112sl \
+       mmcu?avrxmega2=mmcu?atmxt224 \
+       mmcu?avrxmega2=mmcu?atmxt224e \
+       mmcu?avrxmega2=mmcu?atmxt336s \
diff --git a/426-gcc-atxmega64c3.patch b/426-gcc-atxmega64c3.patch
new file mode 100644 (file)
index 0000000..6810501
--- /dev/null
@@ -0,0 +1,22 @@
+diff -Naurp gcc/config/avr/avr-devices.c gcc/config/avr/avr-devices.c
+--- gcc/config/avr/avr-devices.c       2012-02-10 20:28:58.000000000 +0530
++++ gcc/config/avr/avr-devices.c       2012-02-10 20:29:40.000000000 +0530
+@@ -289,6 +289,7 @@ const struct mcu_type_s avr_mcu_types[] 
+   { "atxmega64a4u", ARCH_AVRXMEGA4, "__AVR_ATxmega64A4U__",         0, 0x2000, "x64a4u"},
+   { "atxmega64b1",  ARCH_AVRXMEGA4, "__AVR_ATxmega64B1__",          0, 0x2000, "x64b1" },
+   { "atxmega64b3",  ARCH_AVRXMEGA4, "__AVR_ATxmega64B3__",          0, 0x2000, "x64b3"},
++  { "atxmega64c3",  ARCH_AVRXMEGA4, "__AVR_ATxmega64C3__",          0, 0x2000, "x64c3"},
+   { "atxmega64d3",  ARCH_AVRXMEGA4, "__AVR_ATxmega64D3__",          0, 0x2000, "x64d3" },
+   { "atxmega64d4",  ARCH_AVRXMEGA4, "__AVR_ATxmega64D4__",          0, 0x2000, "x64d4" },
+     /* Xmega, > 64K, <= 128K FLASH, > 64K RAM.  */
+diff -Naurp gcc/config/avr/t-avr gcc/config/avr/t-avr
+--- gcc/config/avr/t-avr       2012-02-10 20:28:58.000000000 +0530
++++ gcc/config/avr/t-avr       2012-02-10 20:29:40.000000000 +0530
+@@ -299,6 +299,7 @@ MULTILIB_MATCHES = \
+       mmcu?avrxmega4=mmcu?atxmega64a4u \
+       mmcu?avrxmega4=mmcu?atxmega64b1 \
+       mmcu?avrxmega4=mmcu?atxmega64b3 \
++      mmcu?avrxmega4=mmcu?atxmega64c3 \
+       mmcu?avrxmega4=mmcu?atxmega64d3 \
+       mmcu?avrxmega4=mmcu?atxmega64d4 \
+       mmcu?avrxmega5=mmcu?atxmega64a1 \
diff --git a/427-gcc-ata6285_6286.patch b/427-gcc-ata6285_6286.patch
new file mode 100644 (file)
index 0000000..857d206
--- /dev/null
@@ -0,0 +1,24 @@
+diff -Naurp gcc/config/avr/avr-devices.c gcc/config/avr/avr-devices.c
+--- gcc/config/avr/avr-devices.c       2012-02-15 14:00:53.000000000 +0530
++++ gcc/config/avr/avr-devices.c       2012-02-17 11:04:27.000000000 +0530
+@@ -117,6 +117,8 @@ const struct mcu_type_s avr_mcu_types[] 
+   { "attiny1634",           ARCH_AVR35, "__AVR_ATtiny1634__",       0, 0x0100, "tn1634" },
+     /* Enhanced, <= 8K + 2-byte PC + { MOVW/LPMX, MUL }.  */
+   { "avr4",                 ARCH_AVR4, NULL,                        0, 0x0060, "m8" },
++  { "ata6285",              ARCH_AVR4, "__AVR_ATA6285__",           0, 0x0100, "a6285" },
++  { "ata6286",              ARCH_AVR4, "__AVR_ATA6286__",           0, 0x0100, "a6286" },
+   { "atmega8",              ARCH_AVR4, "__AVR_ATmega8__",           0, 0x0060, "m8" },
+   { "atmega8a",             ARCH_AVR4, "__AVR_ATmega8A__",          0, 0x0060, "m8a" },
+   { "atmega48",             ARCH_AVR4, "__AVR_ATmega48__",          0, 0x0100, "m48" },
+diff -Naurp gcc/config/avr/t-avr gcc/config/avr/t-avr
+--- gcc/config/avr/t-avr       2012-02-15 14:00:53.000000000 +0530
++++ gcc/config/avr/t-avr       2012-02-17 11:30:56.000000000 +0530
+@@ -152,6 +152,8 @@ MULTILIB_MATCHES = \
+       mmcu?avr35=mmcu?attiny167 \
+       mmcu?avr35=mmcu?attiny1634 \
+       mmcu?avr35=mmcu?attiny327 \
++      mmcu?avr4=mmcu?ata6285 \
++      mmcu?avr4=mmcu?ata6286 \
+       mmcu?avr4=mmcu?atmega48 \
+       mmcu?avr4=mmcu?atmega48a \
+       mmcu?avr4=mmcu?atmega48pa \
diff --git a/428-gcc-attiny828.patch b/428-gcc-attiny828.patch
new file mode 100644 (file)
index 0000000..907fa03
--- /dev/null
@@ -0,0 +1,22 @@
+diff -Naurp gcc/config/avr/avr-devices.c gcc/config/avr/avr-devices.c
+--- gcc/config/avr/avr-devices.c       2012-02-23 15:24:34.000000000 +0530
++++ gcc/config/avr/avr-devices.c       2012-02-23 15:28:51.000000000 +0530
+@@ -97,6 +97,7 @@ const struct mcu_type_s avr_mcu_types[] 
+   { "attiny48",             ARCH_AVR25, "__AVR_ATtiny48__",         0, 0x0100, "tn48" },
+   { "attiny88",             ARCH_AVR25, "__AVR_ATtiny88__",         0, 0x0100, "tn88" },
+   { "attiny80",             ARCH_AVR25, "__AVR_ATtiny80__",         0, 0x0100, "tn80" },
++  { "attiny828",            ARCH_AVR25, "__AVR_ATtiny828__",        0, 0x0100, "tn828" },
+   { "at86rf401",            ARCH_AVR25, "__AVR_AT86RF401__",        1, 0x0060, "86401" },
+     /* Classic, > 8K, <= 64K +2-byte PC + { JMP/CALL }.  */
+   { "avr3",                 ARCH_AVR3, NULL,                        0, 0x0060, "43355" },
+diff -Naurp gcc/config/avr/t-avr gcc/config/avr/t-avr
+--- gcc/config/avr/t-avr       2012-02-23 15:24:34.000000000 +0530
++++ gcc/config/avr/t-avr       2012-02-23 15:29:11.000000000 +0530
+@@ -139,6 +139,7 @@ MULTILIB_MATCHES = \
+       mmcu?avr25=mmcu?attiny48 \
+       mmcu?avr25=mmcu?attiny88 \
+       mmcu?avr25=mmcu?attiny80 \
++      mmcu?avr25=mmcu?attiny828 \
+       mmcu?avr25=mmcu?at86rf401 \
+       mmcu?avr3=mmcu?at43usb355 \
+       mmcu?avr3=mmcu?at76c711 \
diff --git a/429-gcc-ata5790_5790n_5795.patch b/429-gcc-ata5790_5790n_5795.patch
new file mode 100644 (file)
index 0000000..ac4e275
--- /dev/null
@@ -0,0 +1,26 @@
+diff -Naurp gcc/config/avr/avr-devices.c gcc/config/avr/avr-devices.c
+--- gcc/config/avr/avr-devices.c       2012-02-27 09:26:40.000000000 +0530
++++ gcc/config/avr/avr-devices.c       2012-02-27 09:27:37.000000000 +0530
+@@ -144,6 +144,9 @@ const struct mcu_type_s avr_mcu_types[] 
+   { "avr5",                 ARCH_AVR5, NULL,                        0, 0x0060, "m16" },
+   { "at90pwm161",           ARCH_AVR5, "__AVR_AT90PWM161__",    1, 0x0100, "90pwm161" },
++  { "ata5790",              ARCH_AVR5, "__AVR_ATA5790__",           0, 0x0100, "a5790"}, 
++  { "ata5790n",             ARCH_AVR5, "__AVR_ATA5790N__",          0, 0x0100, "a5790n"}, 
++  { "ata5795",              ARCH_AVR5, "__AVR_ATA5795__",           0, 0x0100, "a5795"}, 
+   { "atmega16",             ARCH_AVR5, "__AVR_ATmega16__",          0, 0x0060, "m16" },
+   { "atmega16a",            ARCH_AVR5, "__AVR_ATmega16A__",         0, 0x0060, "m16a" },
+   { "atmega161",            ARCH_AVR5, "__AVR_ATmega161__",         0, 0x0060, "m161" },
+diff -Naurp gcc/config/avr/t-avr gcc/config/avr/t-avr
+--- gcc/config/avr/t-avr       2012-02-27 09:26:40.000000000 +0530
++++ gcc/config/avr/t-avr       2012-02-27 09:27:37.000000000 +0530
+@@ -175,6 +175,9 @@ MULTILIB_MATCHES = \
+       mmcu?avr4=mmcu?at90pwm3b \
+       mmcu?avr4=mmcu?at90pwm81 \
+       mmcu?avr5=mmcu?at90pwm161 \
++      mmcu?avr5=mmcu?ata5790 \
++      mmcu?avr5=mmcu?ata5790n \
++      mmcu?avr5=mmcu?ata5795 \
+       mmcu?avr5=mmcu?atmega16 \
+       mmcu?avr5=mmcu?atmega16a \
+       mmcu?avr5=mmcu?atmega161 \
diff --git a/430-gcc-ata5272_ata5505.patch b/430-gcc-ata5272_ata5505.patch
new file mode 100644 (file)
index 0000000..b7deac1
--- /dev/null
@@ -0,0 +1,38 @@
+diff -Naurp gcc/config/avr/avr-devices.c gcc/config/avr/avr-devices.c
+--- gcc/config/avr/avr-devices.c       2012-03-27 20:49:18.000000000 +0530
++++ gcc/config/avr/avr-devices.c       2012-03-30 13:49:00.000000000 +0530
+@@ -72,6 +72,7 @@ const struct mcu_type_s avr_mcu_types[] 
+     /* Classic, <= 8K + 2-byte PC + { MOVW/LPMX }.  */
+   { "avr25",                ARCH_AVR25, NULL,                       0, 0x0060, "tn85" },
+   { "ata6289",              ARCH_AVR25, "__AVR_ATA6289__",          0, 0x0100, "a6289" },
++  { "ata5272",              ARCH_AVR25, "__AVR_ATA5272__",          0, 0x0100, "a5272" },
+   { "attiny13",             ARCH_AVR25, "__AVR_ATtiny13__",         1, 0x0060, "tn13" },
+   { "attiny13a",            ARCH_AVR25, "__AVR_ATtiny13A__",        1, 0x0060, "tn13a" },
+   { "attiny2313",           ARCH_AVR25, "__AVR_ATtiny2313__",       1, 0x0060, "tn2313" },
+@@ -109,6 +110,7 @@ const struct mcu_type_s avr_mcu_types[] 
+   { "at43usb320",           ARCH_AVR31, "__AVR_AT43USB320__",       0, 0x0060, "43320" },
+     /* Classic, >=16K, <=64K + 2-byte PC + { MOVW/LPMX + JMP/CALL }.  */
+   { "avr35",                ARCH_AVR35, NULL,                       0, 0x0100, "usb162" },
++  { "ata5505",              ARCH_AVR35, "__AVR_ATA5505__",          0, 0x0100, "a5505" },
+   { "at90usb82",            ARCH_AVR35, "__AVR_AT90USB82__",        0, 0x0100, "usb82" },
+   { "at90usb162",           ARCH_AVR35, "__AVR_AT90USB162__",       0, 0x0100, "usb162" },
+   { "atmega8u2",            ARCH_AVR35, "__AVR_ATmega8U2__",        0, 0x0100, "m8u2" },
+diff -Naurp gcc/config/avr/t-avr gcc/config/avr/t-avr
+--- gcc/config/avr/t-avr       2012-03-27 20:49:18.000000000 +0530
++++ gcc/config/avr/t-avr       2012-03-30 13:56:27.000000000 +0530
+@@ -112,6 +112,7 @@ MULTILIB_DIRNAMES = avr2 avr25 avr3 avr3
+ # The many avr2 matches are not listed here - this is the default.
+ MULTILIB_MATCHES = \
++      mmcu?avr25=mmcu?ata5272 \
+       mmcu?avr25=mmcu?ata6289 \
+       mmcu?avr25=mmcu?attiny13 \
+       mmcu?avr25=mmcu?attiny13a \
+@@ -147,6 +148,7 @@ MULTILIB_MATCHES = \
+       mmcu?avr31=mmcu?at43usb320 \
+       mmcu?avr35=mmcu?at90usb82 \
+       mmcu?avr35=mmcu?at90usb162 \
++      mmcu?avr35=mmcu?ata5505 \
+       mmcu?avr35=mmcu?atmega8u2 \
+       mmcu?avr35=mmcu?atmega16u2 \
+       mmcu?avr35=mmcu?atmega32u2 \
similarity index 65%
rename from 500-gcc-4.5.1-bug13473.patch
rename to 500-gcc-bug13473.patch
index 6a81bda85cbd188cc50b0b5dde085f52682579ce..daec7358b95b5100f842d124c878d73423fb5803 100644 (file)
@@ -1,7 +1,7 @@
 diff -Naurp gcc/config/avr/avr.c gcc/config/avr/avr.c
 diff -Naurp gcc/config/avr/avr.c gcc/config/avr/avr.c
---- gcc/config/avr/avr.c       2011-06-09 14:30:33.000000000 -0500
-+++ gcc/config/avr/avr.c       2011-06-09 15:33:10.000000000 -0500
-@@ -3350,8 +3350,8 @@ out_movhi_mr_r (rtx insn, rtx op[], int 
+--- gcc/config/avr/avr.c       2011-10-28 15:06:06.000000000 +0530
++++ gcc/config/avr/avr.c       2011-10-28 15:10:36.000000000 +0530
+@@ -3474,8 +3474,8 @@ out_movhi_mr_r (rtx insn, rtx op[], int 
                    AS2 (out,%m0-%2,%A1));
        }
        if (AVR_XMEGA)
                    AS2 (out,%m0-%2,%A1));
        }
        if (AVR_XMEGA)
diff --git a/501-gcc-4.5.1-bug13579.patch b/501-gcc-4.5.1-bug13579.patch
deleted file mode 100644 (file)
index 21fb4ad..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
---- gcc/ipa-pure-const.c       2010-04-02 14:54:46.000000000 -0500
-+++ gcc/ipa-pure-const.c       2011-02-24 16:10:26.000000000 -0600
-@@ -416,6 +416,14 @@ check_stmt (gimple_stmt_iterator *gsip, 
-       print_gimple_stmt (dump_file, stmt, 0, 0);
-     }
-+  if (gimple_has_volatile_ops (stmt))
-+    {
-+      local->pure_const_state = IPA_NEITHER;
-+      if (dump_file)
-+      fprintf (dump_file, "    Volatile stmt is not const/pure\n");
-+    }
-+
-+
-   /* Look for loads and stores.  */
-   walk_stmt_load_store_ops (stmt, local, check_load, check_store);
similarity index 87%
rename from 503-gcc-4.5.1-avrtiny10-bug-12510.patch
rename to 501-gcc-avrtiny10-bug-12510.patch
index da870cf97bf3bc9764489750f180f276702cb887..eecd478a2a6641ee7e91d23fb6130d5df3c3582d 100644 (file)
@@ -1,6 +1,6 @@
 diff -Naurp gcc/config/avr/avr.h gcc/config/avr/avr.h
 diff -Naurp gcc/config/avr/avr.h gcc/config/avr/avr.h
---- gcc/config/avr/avr.h       2011-06-09 15:53:13.000000000 -0500
-+++ gcc/config/avr/avr.h       2011-06-09 15:55:45.000000000 -0500
+--- gcc/config/avr/avr.h       2011-06-22 10:28:47.000000000 +0530
++++ gcc/config/avr/avr.h       2011-06-22 10:35:08.000000000 +0530
 @@ -136,7 +136,7 @@ extern GTY(()) section *progmem_section;
  #define AVR_2_BYTE_PC (!AVR_HAVE_EIJMP_EICALL)
  #define AVR_3_BYTE_PC (AVR_HAVE_EIJMP_EICALL)
 @@ -136,7 +136,7 @@ extern GTY(()) section *progmem_section;
  #define AVR_2_BYTE_PC (!AVR_HAVE_EIJMP_EICALL)
  #define AVR_3_BYTE_PC (AVR_HAVE_EIJMP_EICALL)
@@ -11,8 +11,8 @@ diff -Naurp gcc/config/avr/avr.h gcc/config/avr/avr.h
  #define AVR_RAMPX_ADDR (AVR_XMEGA ? 0x39 : 0)
  #define AVR_RAMPY_ADDR (AVR_XMEGA ? 0x3A : 0)
 diff -Naurp gcc/config/avr/predicates.md gcc/config/avr/predicates.md
  #define AVR_RAMPX_ADDR (AVR_XMEGA ? 0x39 : 0)
  #define AVR_RAMPY_ADDR (AVR_XMEGA ? 0x3A : 0)
 diff -Naurp gcc/config/avr/predicates.md gcc/config/avr/predicates.md
---- gcc/config/avr/predicates.md       2011-06-09 14:30:33.000000000 -0500
-+++ gcc/config/avr/predicates.md       2011-06-09 15:55:45.000000000 -0500
+--- gcc/config/avr/predicates.md       2011-06-22 10:25:29.000000000 +0530
++++ gcc/config/avr/predicates.md       2011-06-22 10:35:08.000000000 +0530
 @@ -50,21 +50,24 @@
  ;; Return true if OP is a valid address for lower half of I/O space.
  (define_predicate "low_io_address_operand"
 @@ -50,21 +50,24 @@
  ;; Return true if OP is a valid address for lower half of I/O space.
  (define_predicate "low_io_address_operand"
diff --git a/502-gcc-4.5.1-bug-18145-v4.patch b/502-gcc-4.5.1-bug-18145-v4.patch
deleted file mode 100644 (file)
index 1115f35..0000000
+++ /dev/null
@@ -1,178 +0,0 @@
-diff -Naurp gcc/config/avr/avr.c gcc/config/avr/avr.c
---- gcc/config/avr/avr.c       2011-06-09 15:41:06.000000000 -0500
-+++ gcc/config/avr/avr.c       2011-06-09 15:46:03.000000000 -0500
-@@ -81,6 +81,12 @@ static rtx avr_function_value (const_tre
- static void avr_insert_attributes (tree, tree *);
- static void avr_asm_init_sections (void);
- static unsigned int avr_section_type_flags (tree, const char *, int);
-+static void avr_asm_named_section (const char *name, unsigned int flags, tree decl);
-+/* Track if code will use .bss and/or .data */
-+static int avr_need_clear_bss_p = 0;
-+static int avr_need_copy_data_p = 0;
-+static void avr_output_data_section_asm_op (const void*);
-+static void avr_output_bss_section_asm_op (const void*);
- static void avr_reorg (void);
- static void avr_asm_out_ctor (rtx, int);
-@@ -6102,6 +6108,54 @@ avr_output_progmem_section_asm_op (const
-   fprintf (asm_out_file, "\t.p2align 1\n");
- }
-+/* ASM_OUTPUT_COMMON */
-+/* Track need of __do_clear_bss */
-+
-+void
-+avr_asm_output_common (FILE *stream, const char *name,
-+                       unsigned HOST_WIDE_INT size,
-+                       unsigned HOST_WIDE_INT rounded ATTRIBUTE_UNUSED)
-+{
-+    avr_need_clear_bss_p = 1;
-+    fputs ("\t.comm ", stream);
-+    assemble_name (stream, name);
-+    fprintf (stream, ",%lu,1\n", (unsigned long) size);  
-+}
-+
-+/* ASM_OUTPUT_LOCAL */
-+/* Track need of __do_clear_bss */
-+
-+void
-+avr_asm_output_local (FILE *stream, const char *name,
-+                      unsigned HOST_WIDE_INT size,
-+                      unsigned HOST_WIDE_INT rounded ATTRIBUTE_UNUSED)
-+{                                                    
-+    avr_need_clear_bss_p = 1;                           
-+    fputs ("\t.lcomm ", stream);                      
-+    assemble_name (stream, name);                   
-+    fprintf (stream, ",%d\n", (int) size);           
-+}
-+
-+/* Unnamed section callback to track need of __do_copy_data */
-+
-+static void
-+avr_output_data_section_asm_op (const void *data)
-+{
-+    avr_need_copy_data_p = 1;
-+    /* Dispatch to default */
-+    output_section_asm_op (data);
-+}
-+
-+/* Unnamed section callback to track need of __do_clear_bss */
-+
-+static void
-+avr_output_bss_section_asm_op (const void *data)
-+{
-+    avr_need_clear_bss_p = 1;
-+    /* Dispatch to default */
-+    output_section_asm_op (data);
-+}
-+
- /* Implement TARGET_ASM_INIT_SECTIONS.  */
- static void
-@@ -6111,6 +6165,27 @@ avr_asm_init_sections (void)
-                                        avr_output_progmem_section_asm_op,
-                                        NULL);
-   readonly_data_section = data_section;
-+
-+  data_section->unnamed.callback = avr_output_data_section_asm_op;
-+  bss_section->unnamed.callback = avr_output_bss_section_asm_op;
-+}
-+
-+/* TARGET_ASM_NAMED_SECTION */
-+/* Track need of __do_clear_bss, __do_copy_data for named sections */
-+
-+static void
-+avr_asm_named_section (const char *name, unsigned int flags, tree decl)
-+{
-+    if (!avr_need_copy_data_p)
-+        avr_need_copy_data_p =
-+            (0 == strncmp (name, ".data", 5)
-+             || 0 == strncmp (name, ".rodata", 7)
-+             || 0 == strncmp (name, ".gnu.linkonce.", 14));
-+    
-+    if (!avr_need_clear_bss_p)
-+        avr_need_clear_bss_p = (0 == strncmp (name, ".bss", 4));
-+    
-+    default_elf_asm_named_section (name, flags, decl);
- }
- static unsigned int
-@@ -6152,12 +6227,6 @@ avr_file_start (void)
-   AVR_TINY ? fputs ("__tmp_reg__ = 16\n" 
-                           "__zero_reg__ = 17\n", asm_out_file) : fputs ("__tmp_reg__ = 0\n" 
-          "__zero_reg__ = 1\n", asm_out_file);
--
--  /* FIXME: output these only if there is anything in the .data / .bss
--     sections - some code size could be saved by not linking in the
--     initialization code from libgcc if one or both sections are empty.  */
--  fputs ("\t.global __do_copy_data\n", asm_out_file);
--  fputs ("\t.global __do_clear_bss\n", asm_out_file);
- }
- /* Outputs to the stdio stream FILE some
-@@ -6166,6 +6235,16 @@ avr_file_start (void)
- static void
- avr_file_end (void)
- {
-+    /* Output these only if there is anything in the
-+       .data* / .rodata* / .gnu.linkonce.* resp. .bss*
-+       input section(s) - some code size can be saved by not
-+       linking in the initialization code from libgcc if resp.
-+       sections are empty. */
-+    if (avr_need_copy_data_p)
-+        fputs (".global __do_copy_data\n", asm_out_file);
-+    
-+    if (avr_need_clear_bss_p)
-+        fputs (".global __do_clear_bss\n", asm_out_file);
- }
- /* Choose the order in which to allocate hard registers for
-diff -Naurp gcc/config/avr/avr.h gcc/config/avr/avr.h
---- gcc/config/avr/avr.h       2011-06-09 14:30:33.000000000 -0500
-+++ gcc/config/avr/avr.h       2011-06-09 15:46:03.000000000 -0500
-@@ -562,7 +562,7 @@ do {                                                                           \
- #define ASM_APP_OFF "/* #NOAPP */\n"
- /* Switch into a generic section.  */
--#define TARGET_ASM_NAMED_SECTION default_elf_asm_named_section
-+#define TARGET_ASM_NAMED_SECTION avr_asm_named_section
- #define TARGET_ASM_INIT_SECTIONS avr_asm_init_sections
- #define ASM_OUTPUT_ASCII(FILE, P, SIZE)        gas_output_ascii (FILE,P,SIZE)
-@@ -570,21 +570,13 @@ do {                                                                         \
- #define IS_ASM_LOGICAL_LINE_SEPARATOR(C, STR) ((C) == '\n' || ((C) == '$'))
- #define ASM_OUTPUT_COMMON(STREAM, NAME, SIZE, ROUNDED)                           \
--do {                                                                     \
--     fputs ("\t.comm ", (STREAM));                                       \
--     assemble_name ((STREAM), (NAME));                                           \
--     fprintf ((STREAM), ",%lu,1\n", (unsigned long)(SIZE));              \
--} while (0)
-+        avr_asm_output_common (STREAM, NAME, SIZE, ROUNDED)
- #define ASM_OUTPUT_BSS(FILE, DECL, NAME, SIZE, ROUNDED)                       \
-   asm_output_bss ((FILE), (DECL), (NAME), (SIZE), (ROUNDED))
- #define ASM_OUTPUT_LOCAL(STREAM, NAME, SIZE, ROUNDED)                 \
--do {                                                                  \
--     fputs ("\t.lcomm ", (STREAM));                                   \
--     assemble_name ((STREAM), (NAME));                                        \
--     fprintf ((STREAM), ",%d\n", (int)(SIZE));                                \
--} while (0)
-+        avr_asm_output_local (STREAM, NAME, SIZE, ROUNDED)
- #undef TYPE_ASM_OP
- #undef SIZE_ASM_OP
-diff -Naurp gcc/config/avr/avr-protos.h gcc/config/avr/avr-protos.h
---- gcc/config/avr/avr-protos.h        2011-06-09 14:30:33.000000000 -0500
-+++ gcc/config/avr/avr-protos.h        2011-06-09 15:46:03.000000000 -0500
-@@ -35,6 +35,9 @@ extern int avr_simple_epilogue (void);
- extern void gas_output_limited_string (FILE *file, const char *str);
- extern void gas_output_ascii (FILE *file, const char *str, size_t length);
- extern int avr_hard_regno_rename_ok (unsigned int, unsigned int);
-+extern void avr_asm_output_common (FILE *stream, const char *name, unsigned HOST_WIDE_INT size, unsigned HOST_WIDE_INT rounded);
-+extern void avr_asm_output_local (FILE *stream, const char *name, unsigned HOST_WIDE_INT size, unsigned HOST_WIDE_INT rounded);
-+  
- extern rtx avr_return_addr_rtx (int count, const_rtx tem);
- #ifdef TREE_CODE
similarity index 67%
rename from 504-gcc-4.5.1-bug12915.patch
rename to 502-gcc-bug12915.patch
index 7427748e472065d3e7558868012c6fb7226900b8..afb8b0d6e69e3ddc3f33dbd537ae7d488ab79972 100644 (file)
@@ -1,7 +1,7 @@
-diff -rupw  gcc/config/avr/avr.md  gcc/config/avr/avr.md
----  gcc/config/avr/avr.md     2011-02-23 15:54:14.000000000 -0600
-+++  gcc/config/avr/avr.md     2011-02-23 15:55:22.000000000 -0600
-@@ -1082,8 +1082,8 @@
+diff -raupN gcc/config/avr/avr.md gcc/config/avr/avr.md
+--- gcc/config/avr/avr.md      2011-07-08 10:58:56.000000000 +0530
++++ gcc/config/avr/avr.md      2011-07-08 12:04:01.000000000 +0530
+@@ -1079,8 +1079,8 @@
     (set_attr "cc" "clobber")])
  
  (define_expand "<any_extend:u>mulhisi3"
     (set_attr "cc" "clobber")])
  
  (define_expand "<any_extend:u>mulhisi3"
similarity index 78%
rename from 506-gcc-4.5.1-bug13789.patch
rename to 503-gcc-bug13789.patch
index 5d6d7e65b94d545c4f8724121fb956e7ec287204..bfccc05dbca79c5e0255bc0bf5e158970b082a84 100644 (file)
@@ -1,6 +1,6 @@
-diff -rup gcc/config/avr/avr-devices.c gcc/config/avr/avr-devices.c
---- gcc/config/avr/avr-devices.c       2011-04-27 12:24:24.000000000 -0500
-+++ gcc/config/avr/avr-devices.c       2011-04-27 17:19:33.000000000 -0500
+diff -Naurp gcc/config/avr/avr-devices.c gcc/config/avr/avr-devices.c
+--- gcc/config/avr/avr-devices.c       2011-06-22 10:26:14.000000000 +0530
++++ gcc/config/avr/avr-devices.c       2011-06-22 10:48:05.000000000 +0530
 @@ -37,14 +37,14 @@ const struct base_arch_s avr_arch_types[
    { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0x0060, "__AVR_ARCH__=5",   "avr5" },
    { 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0x0060, "__AVR_ARCH__=51",  "avr51" },
 @@ -37,14 +37,14 @@ const struct base_arch_s avr_arch_types[
    { 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0x0060, "__AVR_ARCH__=5",   "avr5" },
    { 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0x0060, "__AVR_ARCH__=51",  "avr51" },
@@ -18,9 +18,9 @@ diff -rup 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
  };
  
  /* List of all known AVR MCU types - if updated, it has to be kept
-diff -rup gcc/config/avr/avr.h gcc/config/avr/avr.h
---- gcc/config/avr/avr.h       2011-04-27 12:24:06.000000000 -0500
-+++ gcc/config/avr/avr.h       2011-04-27 17:49:01.000000000 -0500
+diff -Naurp gcc/config/avr/avr.h gcc/config/avr/avr.h
+--- gcc/config/avr/avr.h       2011-06-22 10:36:29.000000000 +0530
++++ gcc/config/avr/avr.h       2011-06-22 10:48:05.000000000 +0530
 @@ -79,14 +79,14 @@ enum avr_arch
    ARCH_AVR5,
    ARCH_AVR51,
 @@ -79,14 +79,14 @@ enum avr_arch
    ARCH_AVR5,
    ARCH_AVR51,
diff --git a/504-gcc-conditional-register.patch b/504-gcc-conditional-register.patch
new file mode 100644 (file)
index 0000000..1dd01c1
--- /dev/null
@@ -0,0 +1,85 @@
+diff -Naurp gcc/config/avr/avr.c gcc/config/avr/avr.c
+--- gcc/config/avr/avr.c       2011-10-28 16:28:16.000000000 +0530
++++ gcc/config/avr/avr.c       2011-10-28 16:40:20.000000000 +0530
+@@ -96,6 +96,7 @@ static struct machine_function * avr_ini
+ static void avr_init_builtins (void);
+ static rtx avr_expand_builtin (tree, rtx, rtx, enum machine_mode, int);
+ static rtx avr_builtin_setjmp_frame_value (void);
++static void avr_conditional_register_usage (void);
+ static bool avr_hard_regno_scratch_ok (unsigned int);
+ static unsigned int avr_case_values_threshold (void);
+ static bool avr_frame_pointer_required_p (void);
+@@ -212,6 +213,8 @@ static const struct default_options avr_
+ #undef TARGET_BUILTIN_SETJMP_FRAME_VALUE
+ #define TARGET_BUILTIN_SETJMP_FRAME_VALUE avr_builtin_setjmp_frame_value
++#undef TARGET_CONDITIONAL_REGISTER_USAGE
++#define TARGET_CONDITIONAL_REGISTER_USAGE avr_conditional_register_usage
+ #undef TARGET_HARD_REGNO_SCRATCH_OK
+ #define TARGET_HARD_REGNO_SCRATCH_OK avr_hard_regno_scratch_ok
+ #undef TARGET_CASE_VALUES_THRESHOLD
+@@ -7388,6 +7391,19 @@ avr_output_addr_vec_elt (FILE *stream, i
+     fprintf (stream, "\trjmp .L%d\n", value);
+ }
++static void
++avr_conditional_register_usage(void) {
++   if (AVR_TINY) {                             
++     int i;                                    
++     for (i = 0;  i <= 17;  i++) {             
++       fixed_regs[i] = 1;                      
++       call_used_regs[i] = 1;                  
++     }                                         
++      CLEAR_HARD_REG_SET(reg_class_contents[(int)ADDW_REGS]);           
++      CLEAR_HARD_REG_SET(reg_class_contents[(int)NO_LD_REGS]);           
++   }
++}
++
+ /* Returns true if SCRATCH are safe to be allocated as a scratch
+    registers (for a define_peephole2) in the current function.  */
+diff -Naurp gcc/config/avr/avr.h gcc/config/avr/avr.h
+--- gcc/config/avr/avr.h       2011-10-28 16:29:55.000000000 +0530
++++ gcc/config/avr/avr.h       2011-10-28 16:40:20.000000000 +0530
+@@ -313,41 +313,6 @@ enum reg_class {
+   {0xffffffff,0x00000003}     /* ALL_REGS */                          \
+ }
+-/* Zero or more C statements that may conditionally modify five variables
+-   fixed_regs, call_used_regs, global_regs, reg_names, and reg_class_contents,
+-   to take into account any dependence of these register sets on target flags.
+-   The first three of these are of type char [] (interpreted as Boolean
+-   vectors). global_regs is a const char *[], and reg_class_contents is a
+-   HARD_REG_SET. Before the macro is called, fixed_regs, call_used_regs,
+-   reg_class_contents, and reg_names have been initialized from
+-   FIXED_REGISTERS, CALL_USED_REGISTERS, REG_CLASS_CONTENTS, and
+-   REGISTER_NAMES, respectively. global_regs has been cleared, and any
+-   \91-ffixed-reg\92\91-fcall-used-reg\92 and \91-fcall-saved-reg\92 command options
+-   have been applied.
+-
+-   You need not define this macro if it has no work to do.
+-
+-   If the usage of an entire class of registers depends on the target flags,
+-   you may indicate this to GCC by using this macro to modify fixed_regs and
+-   call_used_regs to 1 for each of the registers in the classes which should
+-   not be used by GCC. Also define the macro REG_CLASS_FROM_LETTER /
+-   REG_CLASS_FROM_CONSTRAINT to return NO_REGS if it is called with a letter
+-   for a class that shouldn\92t be used.  (However, if this class is not included
+-   in GENERAL_REGS and all of the insn patterns whose constraints permit this
+-   class are controlled by target switches, then GCC will automatically avoid
+-   using these registers when the target switches are opposed to them.) */
+-
+-#define CONDITIONAL_REGISTER_USAGE             \
+-   if (AVR_TINY) {                             \
+-     int i;                                    \
+-     for (i = 0;  i <= 17;  i++) {             \
+-       fixed_regs[i] = 1;                      \
+-       call_used_regs[i] = 1;                  \
+-     }                                         \
+-      CLEAR_HARD_REG_SET(reg_class_contents[(int)ADDW_REGS]);           \
+-      CLEAR_HARD_REG_SET(reg_class_contents[(int)NO_LD_REGS]);           \
+-   }
+-
+ #define REGNO_REG_CLASS(R) avr_regno_reg_class(R)
+ /* The following macro defines cover classes for Integrated Register
diff --git a/505-gcc-4.5.1-bug13932.patch b/505-gcc-4.5.1-bug13932.patch
deleted file mode 100644 (file)
index eb35f9b..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -Naurp gcc/config/avr/avr-devices.c gcc/config/avr/avr-devices.c
---- gcc/config/avr/avr-devices.c       2011-12-14 18:10:15.000000000 +0530
-+++ gcc/config/avr/avr-devices.c       2011-12-14 18:12:49.000000000 +0530
-@@ -259,7 +259,7 @@ const struct mcu_type_s avr_mcu_types[] 
-      /* Enhanced, ==256K + 3-Byte PC +
-         { MOVW/LPMX, JMP/CALL, MUL, ELPM, ELPMX, EIJMP/EICALL }.  */
-   { "avr6",                 ARCH_AVR6, NULL,                        0, 0x0200, "m2561" },
--  { "atmega2560",           ARCH_AVR6, "__AVR_ATmega2560__",        0, 0x0200, "m2561" },
-+  { "atmega2560",           ARCH_AVR6, "__AVR_ATmega2560__",        0, 0x0200, "m2560" },
-   { "atmega2561",           ARCH_AVR6, "__AVR_ATmega2561__",        0, 0x0200, "m2561" },
-   { "atmega256rfa2",        ARCH_AVR6, "__AVR_ATmega256RFA2__",     0, 0x0200, "m256rfa2" },
-   { "atmega256rfr2",        ARCH_AVR6, "__AVR_ATmega256RFR2__",     0, 0x0200, "m256rfr2" },
diff --git a/505-gcc-avrtc381-tiny.patch b/505-gcc-avrtc381-tiny.patch
new file mode 100644 (file)
index 0000000..08835a3
--- /dev/null
@@ -0,0 +1,47 @@
+diff -Naurp gcc/config/avr/avr.md gcc/config/avr/avr.md
+--- gcc/config/avr/avr.md      2012-04-13 11:19:25.000000000 +0530
++++ gcc/config/avr/avr.md      2012-04-13 13:21:49.000000000 +0530
+@@ -72,7 +72,8 @@
+    (UNSPECV_DELAY_CYCLES_1    101)
+    (UNSPECV_DELAY_CYCLES_2    102)
+    (UNSPECV_DELAY_CYCLES_3    103)
+-   (UNSPECV_DELAY_CYCLES_4    104)])
++   (UNSPECV_DELAY_CYCLES_4    104)
++   (UNSPECV_DELAY_CYCLES_2_TINY 105)])
+ (include "predicates.md")
+ (include "constraints.md")
+@@ -3370,7 +3371,12 @@
+       if (loop_count > 0xFFFF)
+         loop_count = 0xFFFF;
+       unsigned int cycles_used = (((loop_count - 1) * 4) + 5);
+-      emit_insn (gen_delay_cycles_2 (gen_int_mode (loop_count, HImode)));
++      if (AVR_TINY) {
++        emit_insn (gen_delay_cycles_2_tiny (gen_int_mode (loop_count, HImode)));
++      }
++      else {
++        emit_insn (gen_delay_cycles_2 (gen_int_mode (loop_count, HImode)));
++      }
+       cycles -= cycles_used;
+     }
+   if (IN_RANGE(cycles, 6, 767))
+@@ -3418,6 +3424,19 @@
+   [(set_attr "length" "4")
+    (set_attr "cc" "clobber")])
++(define_insn "delay_cycles_2_tiny"
++  [(unspec_volatile [(const_int 0)] UNSPECV_DELAY_CYCLES_2_TINY)
++   (match_operand:HI 0 "immediate_operand" "")
++   (clobber (match_scratch:HI 1 "=&d"))]
++  ""
++  " ldi %A1,lo8(%0)
++    ldi %B1,hi8(%0)
++    1:subi %A1,1
++    sbci %B1,0
++    brne 1b"
++  [(set_attr "length" "5")
++   (set_attr "cc" "clobber")])
++
+ (define_insn "delay_cycles_3"
+   [(unspec_volatile [(const_int 0)] UNSPECV_DELAY_CYCLES_3)
+    (match_operand:SI 0 "immediate_operand" "")
diff --git a/507-gcc-4.5.1-bug14415.patch b/507-gcc-4.5.1-bug14415.patch
deleted file mode 100644 (file)
index 5bbdced..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -Naurp gcc/config/avr/avr-devices.c gcc/config/avr/avr-devices.c
---- gcc/config/avr/avr-devices.c       2011-12-14 18:16:56.000000000 +0530
-+++ gcc/config/avr/avr-devices.c       2011-12-14 18:16:02.000000000 +0530
-@@ -170,7 +170,7 @@ const struct mcu_type_s avr_mcu_types[] 
-   { "atmega32",             ARCH_AVR5, "__AVR_ATmega32__",          0, 0x0060, "m32" },
-   { "atmega32a",            ARCH_AVR5, "__AVR_ATmega32A__",         0, 0x0060, "m32a" },
-   { "atmega323",            ARCH_AVR5, "__AVR_ATmega323__",         0, 0x0060, "m323" },
--  { "atmega324a",           ARCH_AVR5, "__AVR_ATmega324A__",        0, 0x0060, "m324a" },
-+  { "atmega324a",           ARCH_AVR5, "__AVR_ATmega324A__",        0, 0x0100, "m324a" },
-   { "atmega324p",           ARCH_AVR5, "__AVR_ATmega324P__",        0, 0x0100, "m324p" },
-   { "atmega324pa",          ARCH_AVR5, "__AVR_ATmega324PA__",       0, 0x0100, "m324pa" },
-   { "atmega325",            ARCH_AVR5, "__AVR_ATmega325__",         0, 0x0100, "m325" },
index bf53e9a7b33ada9ae80eefb42646ce19adb765c3..e290d1ec7a30fe86f497c5752fcf5b1b3feac3b7 100644 (file)
@@ -9,56 +9,60 @@ Summary(pl.UTF-8):    Skrośne narzędzia programistyczne GNU dla AVR - gcc
 Summary(pt_BR.UTF-8):  Utilitários para desenvolvimento de binários da GNU - AVR gcc
 Summary(tr.UTF-8):     GNU geliştirme araçları - AVR gcc
 Name:          crossavr-gcc
 Summary(pt_BR.UTF-8):  Utilitários para desenvolvimento de binários da GNU - AVR gcc
 Summary(tr.UTF-8):     GNU geliştirme araçları - AVR gcc
 Name:          crossavr-gcc
-Version:       4.5.3
+Version:       4.6.2
 Release:       1
 Epoch:         1
 Release:       1
 Epoch:         1
-# Patches 1xx are taken form Atmel official AVR8-GNU toolchain version 3.3.1.481.
-Patch100:      200-gcc-4.5.1-libiberty-Makefile.in.patch
-Patch101:      300-gcc-4.5.1-fixedpoint-3-4-2010.patch
-Patch102:      301-gcc-4.5.1-xmega-v14.patch
-Patch103:      302-gcc-4.5.1-avrtiny10.patch
-Patch104:      303-gcc-4.5.1-osmain.patch
-Patch105:      304-gcc-4.5.1-builtins-v6.patch
-Patch106:      305-gcc-4.5.1-avrtiny10-non-fixedpoint.patch
-Patch107:      306-gcc-4.5.1-option-list-devices.patch
-Patch108:      400-gcc-4.5.1-new-devices.patch
-Patch109:      401-gcc-4.5.1-atmega32_5_50_90_pa.patch
-Patch110:      402-gcc-4.5.1-attiny1634.patch
-Patch111:      403-gcc-4.5.1-atmega48pa.patch
-Patch112:      404-gcc-4.5.1-atxmega_16_32_a4u.patch
-Patch113:      405-gcc-4.5.1-atxmega64_128_192_256a3u.patch
-Patch114:      406-gcc-4.5.1-atmegarfr2_a2.patch
-Patch115:      407-gcc-4.5.1-atmega165pa.patch
-Patch116:      408-gcc-4.5.1-atxmega384c3.patch
-Patch117:      409-gcc-4.5.1-attiny80.patch
-Patch118:      410-gcc-4.5.1-atxmega128a4u.patch
-Patch119:      411-gcc-4.5.1-atxmega64d4.patch
-Patch120:      412-gcc-4.5.1-atmega164pa_168pa_32a_64a.patch
-Patch121:      413-gcc-4.5.1-atxmega32x1.patch
-Patch122:      414-gcc-4.5.1-atxmega64_128_b3.patch
-Patch123:      415-gcc-4.5.1-atxmega64b1.patch
-Patch124:      416-gcc-4.5.1-atmega_8a_128a_1284.patch
-Patch125:      417-gcc-4.5.1-atxmega64a4u.patch
-Patch126:      418-gcc-4.5.1-atxmega128d4.patch
-Patch127:      419-gcc-4.5.1-atmxt336s.patch
-Patch128:      420-gcc-4.5.1-atxmega16c4_32c4_128c3_256c3.patch
-Patch129:      421-gcc-4.5.1-atxmega384d3.patch
-Patch130:      422-gcc-4.5.1-atmega48hvf.patch
-Patch131:      423-gcc-4.5.1-atmega26hvg.patch
-Patch132:      424-gcc-4.5.1-atmxt224_224e.patch
-Patch133:      424-gcc-4.5.1-atxmega192c3.patch
-Patch134:      500-gcc-4.5.1-bug13473.patch
-Patch135:      501-gcc-4.5.1-bug13579.patch
-Patch136:      502-gcc-4.5.1-bug-18145-v4.patch
-Patch137:      503-gcc-4.5.1-avrtiny10-bug-12510.patch
-Patch138:      504-gcc-4.5.1-bug12915.patch
-Patch139:      505-gcc-4.5.1-bug13932.patch
-Patch140:      506-gcc-4.5.1-bug13789.patch
-Patch141:      507-gcc-4.5.1-bug14415.patch
+Patch1:                gcc-bug51969.patch
+# Patches 1xx are taken form Atmel official AVR8-GNU toolchain version 3.4.0.663.
+Patch100:      200-gcc-libiberty-Makefile.in.patch
+Patch101:      300-gcc-fixedpoint-3-4-2010.patch
+Patch102:      301-gcc-xmega-v14.patch
+Patch103:      302-gcc-avrtiny10.patch
+Patch104:      303-gcc-osmain.patch
+Patch105:      304-gcc-builtins-v6.patch
+Patch106:      305-gcc-avrtiny10-non-fixedpoint.patch
+Patch107:      306-gcc-option-list-devices.patch
+Patch108:      400-gcc-new-devices.patch
+Patch109:      401-gcc-atmega32_5_50_90_pa.patch
+Patch110:      402-gcc-attiny1634.patch
+Patch111:      403-gcc-atmega48pa.patch
+Patch112:      404-gcc-atxmega_16_32_a4u.patch
+Patch113:      405-gcc-atxmega64_128_192_256a3u.patch
+Patch114:      406-gcc-atmegarfr2_a2.patch
+Patch115:      407-gcc-atmega165pa.patch
+Patch116:      408-gcc-atxmega384c3.patch
+Patch117:      409-gcc-attiny80.patch
+Patch118:      410-gcc-atxmega128a4u.patch
+Patch119:      411-gcc-atxmega64d4.patch
+Patch120:      412-gcc-atmega164pa_168pa_32a_64a.patch
+Patch121:      413-gcc-atxmega64_128_b3.patch
+Patch122:      414-gcc-atxmega64b1.patch
+Patch123:      415-gcc-atmega_8a_128a_1284.patch
+Patch124:      416-gcc-atxmega64a4u.patch
+Patch125:      417-gcc-atxmega128d4.patch
+Patch126:      418-gcc-atmxt336s.patch
+Patch127:      419-gcc-atxmega16c4_32c4_128c3_256c3.patch
+Patch128:      420-gcc-atxmega384d3.patch
+Patch129:      421-gcc-atmega48hvf.patch
+Patch130:      422-gcc-atmega26hvg.patch
+Patch131:      423-gcc-atmxt224_224e.patch
+Patch132:      424-gcc-atxmega192c3.patch
+Patch133:      425-gcc-atmxt112sl.patch
+Patch134:      426-gcc-atxmega64c3.patch
+Patch135:      427-gcc-ata6285_6286.patch
+Patch136:      428-gcc-attiny828.patch
+Patch137:      429-gcc-ata5790_5790n_5795.patch
+Patch138:      430-gcc-ata5272_ata5505.patch
+Patch139:      500-gcc-bug13473.patch
+Patch140:      501-gcc-avrtiny10-bug-12510.patch
+Patch141:      502-gcc-bug12915.patch
+Patch142:      503-gcc-bug13789.patch
+Patch143:      504-gcc-conditional-register.patch
+Patch144:      505-gcc-avrtc381-tiny.patch
 License:       GPL
 Group:         Development/Languages
 Source0:       ftp://gcc.gnu.org/pub/gcc/releases/gcc-%{version}/gcc-%{version}.tar.bz2
 License:       GPL
 Group:         Development/Languages
 Source0:       ftp://gcc.gnu.org/pub/gcc/releases/gcc-%{version}/gcc-%{version}.tar.bz2
-# Source0-md5: 8e0b5c12212e185f3e4383106bfa9cc6
+# Source0-md5: 028115c4fbfb6cfd75d6369f4a90d87e
 BuildRequires: /bin/bash
 BuildRequires: autoconf
 BuildRequires: bison
 BuildRequires: /bin/bash
 BuildRequires: autoconf
 BuildRequires: bison
@@ -109,6 +113,7 @@ Ten pakiet dodaje obsługę C++ do kompilatora gcc dla AVR.
 %prep
 %setup -q -n gcc-%{version}
 cd gcc/config/%{target} && %undos -f c,h && cd -
 %prep
 %setup -q -n gcc-%{version}
 cd gcc/config/%{target} && %undos -f c,h && cd -
+%patch1 -p2
 %patch100 -p0
 %patch101 -p0
 %patch102 -p0
 %patch100 -p0
 %patch101 -p0
 %patch102 -p0
@@ -151,6 +156,9 @@ cd gcc/config/%{target} && %undos -f c,h && cd -
 %patch139 -p0
 %patch140 -p0
 %patch141 -p0
 %patch139 -p0
 %patch140 -p0
 %patch141 -p0
+%patch142 -p0
+%patch143 -p0
+%patch144 -p0
 
 %build
 rm -rf obj-%{target}
 
 %build
 rm -rf obj-%{target}
@@ -203,6 +211,7 @@ rm -f $RPM_BUILD_ROOT%{_mandir}/man7/gpl.7
 rm -f $RPM_BUILD_ROOT%{_datadir}/locale/*/LC_MESSAGES/{gcc,cpplib}.mo
 rm -rf $RPM_BUILD_ROOT%{gcclib}/include-fixed
 rm -rf $RPM_BUILD_ROOT%{gcclib}/install-tools
 rm -f $RPM_BUILD_ROOT%{_datadir}/locale/*/LC_MESSAGES/{gcc,cpplib}.mo
 rm -rf $RPM_BUILD_ROOT%{gcclib}/include-fixed
 rm -rf $RPM_BUILD_ROOT%{gcclib}/install-tools
+rm -f $RPM_BUILD_ROOT%{gcclib}/liblto_plugin.la
 
 %if 0%{!?debug:1}
 # strip target libraries
 
 %if 0%{!?debug:1}
 # strip target libraries
@@ -223,6 +232,7 @@ rm -rf $RPM_BUILD_ROOT
 %attr(755,root,root) %{gcclib}/collect2
 %attr(755,root,root) %{gcclib}/lto-wrapper
 %attr(755,root,root) %{gcclib}/lto1
 %attr(755,root,root) %{gcclib}/collect2
 %attr(755,root,root) %{gcclib}/lto-wrapper
 %attr(755,root,root) %{gcclib}/lto1
+%attr(755,root,root) %{gcclib}/liblto_plugin.so*
 %{gcclib}/libg*.a
 %{gcclib}/%{target}*
 %{gcclib}/plugin
 %{gcclib}/libg*.a
 %{gcclib}/%{target}*
 %{gcclib}/plugin
diff --git a/gcc-bug51969.patch b/gcc-bug51969.patch
new file mode 100644 (file)
index 0000000..5b8a4b2
--- /dev/null
@@ -0,0 +1,18 @@
+--- branches/gcc-4_6-branch/gcc/gengtype.c     2012/02/14 23:26:47     184238
++++ branches/gcc-4_6-branch/gcc/gengtype.c     2012/02/14 23:31:42     184239
+@@ -3594,14 +3594,13 @@
+                 int has_length, struct fileloc *line, const char *if_marked,
+                 bool emit_pch, type_p field_type, const char *field_name)
+ {
++  struct pair newv;
+   /* If the field reference is relative to V, rather than to some
+      subcomponent of V, we can mark any subarrays with a single stride.
+      We're effectively treating the field as a global variable in its
+      own right.  */
+   if (v && type == v->type)
+     {
+-      struct pair newv;
+-
+       newv = *v;
+       newv.type = field_type;
+       newv.name = ACONCAT ((v->name, ".", field_name, NULL));
This page took 0.632483 seconds and 4 git commands to generate.