diff options
Diffstat (limited to 'toolchain/gcc')
| -rw-r--r-- | toolchain/gcc/patches/4.1.2/010-pr34130.patch | 16 | ||||
| -rw-r--r-- | toolchain/gcc/patches/4.1.2/802-fix-ICE-in-arm_unwind_emit_set.patch | 18 | 
2 files changed, 34 insertions, 0 deletions
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 000000000..415335f4b --- /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 000000000..568e15abf --- /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;  | 
