Просмотр исходного кода

sync gcc patches with the Atmel 1.1.3 release

SVN-Revision: 13480
Imre Kaloz 17 лет назад
Родитель
Сommit
95f2b6bb76

Разница между файлами не показана из-за своего большого размера
+ 560 - 498
toolchain/gcc/patches/4.2.4/900-avr32_support.patch


+ 0 - 25
toolchain/gcc/patches/4.2.4/901-avr32_add_mno-pic.patch

@@ -1,25 +0,0 @@
-Index: gcc-4.2.3/gcc/config/avr32/avr32.opt
-===================================================================
---- gcc-4.2.3.orig/gcc/config/avr32/avr32.opt	2008-05-21 13:45:54.165287871 +0200
-+++ gcc-4.2.3/gcc/config/avr32/avr32.opt	2008-05-21 13:45:57.194288771 +0200
-@@ -71,3 +71,6 @@
- Target Report Var(avr32_imm_in_const_pool) Init(-1)
- Put large immediates in constant pool. This is enabled by default for archs with insn-cache.
- 
-+mno-pic
-+Target Report RejectNegative Mask(NO_PIC)
-+Do not generate position-independent code.
-Index: gcc-4.2.3/gcc/config/avr32/avr32.c
-===================================================================
---- gcc-4.2.3.orig/gcc/config/avr32/avr32.c	2008-05-21 13:45:54.145288116 +0200
-+++ gcc-4.2.3/gcc/config/avr32/avr32.c	2008-05-21 13:45:57.202289511 +0200
-@@ -230,6 +230,9 @@
-           avr32_imm_in_const_pool = 0;
-       }
-     
-+    if (TARGET_NO_PIC)
-+      flag_pic = 0;
-+
-     avr32_add_gc_roots ();
-   }
- 

+ 0 - 16
toolchain/gcc/patches/4.2.4/902-avr32_fix_pic_redefinition_warning.patch

@@ -1,16 +0,0 @@
-Index: gcc-4.2.3/gcc/config/avr32/linux-elf.h
-===================================================================
---- gcc-4.2.3.orig/gcc/config/avr32/linux-elf.h	2008-05-21 13:45:54.173288052 +0200
-+++ gcc-4.2.3/gcc/config/avr32/linux-elf.h	2008-05-21 13:45:57.862288662 +0200
-@@ -122,11 +122,6 @@
- 	builtin_define ("__AVR32_HAS_BRANCH_PRED__");		\
-       if (TARGET_FAST_FLOAT)                                    \
-         builtin_define ("__AVR32_FAST_FLOAT__");                \
--      if (flag_pic)						\
--	{							\
--	  builtin_define ("__PIC__");				\
--	  builtin_define ("__pic__");				\
--	}							\
-     }								\
-   while (0)
- 

+ 0 - 14
toolchain/gcc/patches/4.2.4/903-avr32_fix_expanding_builtin_xchg.patch

@@ -1,14 +0,0 @@
-Index: gcc-4.2.3/gcc/config/avr32/avr32.c
-===================================================================
---- gcc-4.2.3.orig/gcc/config/avr32/avr32.c	2008-05-21 13:45:57.202289511 +0200
-+++ gcc-4.2.3/gcc/config/avr32/avr32.c	2008-05-21 13:45:58.533289214 +0200
-@@ -1388,7 +1388,8 @@
-           op1 = copy_to_mode_reg (mode1, op1);
-         }
- 
--      op0 = gen_rtx_MEM (SImode, op0);
-+      op0 = force_reg (GET_MODE (op0), op0);
-+      op0 = gen_rtx_MEM (GET_MODE (op0), op0);
-       if (!(*insn_data[icode].operand[1].predicate) (op0, mode0))
-         {
-           error

+ 0 - 46
toolchain/gcc/patches/4.2.4/905-avr32_fix_folding_machine_reorg_optimizations.patch

@@ -1,46 +0,0 @@
-Index: gcc-4.2.3/gcc/config/avr32/avr32.c
-===================================================================
---- gcc-4.2.3.orig/gcc/config/avr32/avr32.c	2008-05-21 13:45:58.533289214 +0200
-+++ gcc-4.2.3/gcc/config/avr32/avr32.c	2008-05-21 13:45:59.762288215 +0200
-@@ -6323,23 +6323,24 @@
-                 /* If used any other place than as a pointer or as the
- 	         destination register we failed */
-                 if (!(single_set (scan)
--                    && GET_CODE (PATTERN (scan)) == SET
--                    && ((MEM_P (SET_DEST (PATTERN (scan)))
--                        && REG_P (XEXP (SET_DEST (PATTERN (scan)), 0))
--                        && REGNO (XEXP (SET_DEST (PATTERN (scan)), 0)) ==
--                          REGNO (reg)) || (MEM_P (SET_SRC (PATTERN (scan)))
--                              &&
--                              REG_P (XEXP
--                                  (SET_SRC (PATTERN (scan)),
--                                      0))
--                                      &&
--                                      REGNO (XEXP
--                                          (SET_SRC (PATTERN (scan)),
--                                              0)) == REGNO (reg))))
--                                              && !(GET_CODE (PATTERN (scan)) == SET
--                                                  && REG_P (SET_DEST (PATTERN (scan)))
--                                                  && !regno_use_in (REGNO (reg),
--                                                      SET_SRC (PATTERN (scan)))))
-+                      && GET_CODE (PATTERN (scan)) == SET
-+                      && ((MEM_P (SET_DEST (PATTERN (scan)))
-+                           && REG_P (XEXP (SET_DEST (PATTERN (scan)), 0))
-+                           && REGNO (XEXP (SET_DEST (PATTERN (scan)), 0)) == REGNO (reg))
-+                          || (MEM_P (SET_SRC (PATTERN (scan)))
-+                              && REG_P (XEXP (SET_SRC (PATTERN (scan)), 0))
-+                              && REGNO (XEXP
-+                                        (SET_SRC (PATTERN (scan)), 0)) == REGNO (reg))))
-+                    && !(GET_CODE (PATTERN (scan)) == SET
-+                         && REG_P (SET_DEST (PATTERN (scan)))
-+                         && !regno_use_in (REGNO (reg),
-+                                           SET_SRC (PATTERN (scan)))))
-+                  break;
-+
-+                /* We cannot replace the pointer in TImode insns
-+                   as these has a differene addressing mode than the other
-+                   memory insns. */
-+                if ( GET_MODE (SET_DEST (PATTERN (scan))) == TImode )
-                   break;
- 
-                 /* Check if register is dead or set in this insn */

+ 0 - 85
toolchain/gcc/patches/4.2.4/906-avr32_use_rjmp_instead_of_got_when_jumping.patch

@@ -1,85 +0,0 @@
-Index: gcc-4.2.3/gcc/config/avr32/avr32.c
-===================================================================
---- gcc-4.2.3.orig/gcc/config/avr32/avr32.c	2008-05-21 13:45:59.762288215 +0200
-+++ gcc-4.2.3/gcc/config/avr32/avr32.c	2008-05-21 13:46:00.342290304 +0200
-@@ -695,8 +695,7 @@
- 
- 
-     if (!avr32_const_ok_for_constraint_p (mi_delta, 'I', "Is21")
--        || vcall_offset
--        || flag_pic)
-+        || vcall_offset)
-       {
-         fputs ("\tpushm\tlr\n", file);
-       }
-@@ -728,47 +727,23 @@
-       }
- 
- 
--    if ( (!avr32_const_ok_for_constraint_p (mi_delta, 'I', "Is21")
--          || vcall_offset)
--         && !flag_pic )
-+    if (!avr32_const_ok_for_constraint_p (mi_delta, 'I', "Is21")
-+        || vcall_offset)
-       {
-         fputs ("\tpopm\tlr\n", file);
-       }
--
--    if (flag_pic)
--      {
--        /* Load the got into lr and then load the pointer 
--           to the function from the got and put it on the stack.
--           We can then call the function and restore lr by issuing
--           a doubleword load from the stack. We do not use a popm/ldm
--           since it will be treated as a return and might need a flushing
--           of the return-stack if available. */
--        rtx label = gen_label_rtx ();
--        /* Load the got. */
--        fputs ("\tlddpc\tlr, 0f\n", file);
--        (*targetm.asm_out.internal_label) (file, "L",
--                                           CODE_LABEL_NUMBER (label));
--        fputs ("\trsub\tlr, pc\n", file);
--        /* Load the function pointer. */
--        fputs ("\tld.w\tlr, lr[", file);
--        assemble_name (file, XSTR (XEXP (DECL_RTL (function), 0), 0));
--        fputs ("@got]\n", file);
--        /* Push the function pointer on the stack.*/
--        fputs ("\tpushm\tlr\n", file);
--        /* Restore the old lr value and load the function pointer into
--           pc. */
--        fputs ("\tld.d\tlr,sp++\n", file);
--        fprintf (file, "\t.align 2\n");
--        fprintf (file, "0:\t.long\t.L%d - _GLOBAL_OFFSET_TABLE_\n", CODE_LABEL_NUMBER (label));
--      }
--    else
--      {
--        fprintf (file, "\tlddpc\tpc, 0f\n");
--        fprintf (file, "\t.align 2\n");
--        fputs ("0:\t.long\t", file);
--        assemble_name (file, XSTR (XEXP (DECL_RTL (function), 0), 0));
--        fputc ('\n', file);
--      }
-+    
-+    /* Jump to the function. We assume that we can use an rjmp since the
-+       function to jump to is local and probably not too far away from
-+       the thunk. If this assumption proves to be wrong we could implement
-+       this jump by calculating the offset between the jump source and destination
-+       and put this in the constant pool and then perform an add to pc. 
-+       This would also be legitimate PIC code. But for now we hope that an rjmp
-+       will be sufficient...
-+    */
-+    fputs ("\trjmp\t", file);
-+    assemble_name (file, XSTR (XEXP (DECL_RTL (function), 0), 0));
-+    fputc ('\n', file);
-   }
- 
- /* Implements target hook vector_mode_supported.  */
-@@ -1742,7 +1717,7 @@
-         if (TREE_CODE (*node) != FUNCTION_DECL)
-           {
-             warning ("`%s' attribute only applies to functions",
--                IDENTIFIER_POINTER (name));
-+                     IDENTIFIER_POINTER (name));
-             *no_add_attrs = true;
-           }
-         /* FIXME: the argument if any is checked for type attributes; should it

+ 0 - 15
toolchain/gcc/patches/4.2.4/908-avr32_fix_invalid_assembler_code_on_64bit_hosts.patch

@@ -1,15 +0,0 @@
-Index: gcc-4.2.3/gcc/config/avr32/avr32.c
-===================================================================
---- gcc-4.2.3.orig/gcc/config/avr32/avr32.c	2008-05-21 13:46:00.342290304 +0200
-+++ gcc-4.2.3/gcc/config/avr32/avr32.c	2008-05-21 13:46:00.930288105 +0200
-@@ -705,8 +705,8 @@
-       {
-         if (avr32_const_ok_for_constraint_p (mi_delta, 'I', "Is21"))
-           {
--            fprintf (file, "\tsub\t%s, -0x%x\n", reg_names[this_regno],
--                mi_delta);
-+            fprintf (file, "\tsub\t%s, %d\n", reg_names[this_regno],
-+                -mi_delta);
-           }
-         else
-           {

Некоторые файлы не были показаны из-за большого количества измененных файлов