1
0
mirror of git://projects.qi-hardware.com/openwrt-xburst.git synced 2024-11-20 00:58:25 +02:00

add gcc eabi patches from #3988

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@14072 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
nbd 2009-01-17 19:18:16 +00:00
parent da900351ff
commit c65d9c39be
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;