add gcc eabi patches from #3988

SVN-Revision: 14072
lede-17.01
Felix Fietkau 2009-01-17 19:18:16 +00:00
parent 55a7b0a6e1
commit 78fb5a1b98
2 changed files with 34 additions and 0 deletions

View File

@ -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));

View File

@ -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;