From: Felix Fietkau <nbd@openwrt.org>
Date: Sat, 17 Jan 2009 19:18:16 +0000 (+0000)
Subject: add gcc eabi patches from #3988
X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=78fb5a1b98f255b3032ca0aa8d5102c9ddc5c083;p=openwrt%2Fstaging%2Fjow.git

add gcc eabi patches from #3988

SVN-Revision: 14072
---

diff --git a/toolchain/gcc/patches/4.1.2/010-pr34130.patch b/toolchain/gcc/patches/4.1.2/010-pr34130.patch
new file mode 100644
index 0000000000..415335f4b4
--- /dev/null
+++ b/toolchain/gcc/patches/4.1.2/010-pr34130.patch
@@ -0,0 +1,16 @@
+Index: gcc-4.1.2/gcc/fold-const.c
+===================================================================
+--- gcc-4.1.2.orig/gcc/fold-const.c	2007-11-21 18:53:42.000000000 +0100
++++ gcc-4.1.2/gcc/fold-const.c	2007-11-21 18:56:26.000000000 +0100
+@@ -5339,7 +5339,10 @@
+             }
+           break;
+         }
+-      /* FALLTHROUGH */
++   /* If the constant is negative, we cannot simplify this.  */
++   if (tree_int_cst_sgn (c) == -1)
++     break;
++   /* FALLTHROUGH */
+     case NEGATE_EXPR:
+       if ((t1 = extract_muldiv (op0, c, code, wide_type)) != 0)
+ 	return fold_build1 (tcode, ctype, fold_convert (ctype, t1));
diff --git a/toolchain/gcc/patches/4.1.2/802-fix-ICE-in-arm_unwind_emit_set.patch b/toolchain/gcc/patches/4.1.2/802-fix-ICE-in-arm_unwind_emit_set.patch
new file mode 100644
index 0000000000..568e15abff
--- /dev/null
+++ b/toolchain/gcc/patches/4.1.2/802-fix-ICE-in-arm_unwind_emit_set.patch
@@ -0,0 +1,18 @@
+--- trunk/gcc/config/arm/arm.c	2006/09/19 13:18:27	117055
++++ trunk/gcc/config/arm/arm.c	2006/09/19 13:19:24	117056
+@@ -15415,6 +15415,15 @@
+ 	  /* Move from sp to reg.  */
+ 	  asm_fprintf (asm_out_file, "\t.movsp %r\n", REGNO (e0));
+ 	}
++     else if (GET_CODE (e1) == PLUS
++	      && GET_CODE (XEXP (e1, 0)) == REG
++	      && REGNO (XEXP (e1, 0)) == SP_REGNUM
++	      && GET_CODE (XEXP (e1, 1)) == CONST_INT)
++	{
++	  /* Set reg to offset from sp.  */
++	  asm_fprintf (asm_out_file, "\t.movsp %r, #%d\n",
++		       REGNO (e0), (int)INTVAL(XEXP (e1, 1)));
++	}
+       else
+ 	abort ();
+       break;