toolchain/gcc: add 4.3 / 4.4 fix for gcc pr 39429
authorPeter Korsgaard <jacmet@sunsite.dk>
Mon, 7 Nov 2011 22:11:46 +0000 (23:11 +0100)
committerPeter Korsgaard <jacmet@sunsite.dk>
Mon, 7 Nov 2011 22:13:00 +0000 (23:13 +0100)
Patch from OSELAS.Toolchain-2011.03.1.

See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39429 for details.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
toolchain/gcc/4.3.6/gcc-43-pr39429.patch [new file with mode: 0644]
toolchain/gcc/4.4.6/gcc-44-pr39429.patch [new file with mode: 0644]

diff --git a/toolchain/gcc/4.3.6/gcc-43-pr39429.patch b/toolchain/gcc/4.3.6/gcc-43-pr39429.patch
new file mode 100644 (file)
index 0000000..4e1dc9e
--- /dev/null
@@ -0,0 +1,24 @@
+From: Michael Olbrich <m.olbrich@pengutronix.de>
+Subject: Fix: compiler create bad asm codes.
+
+See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39429 for details.
+
+Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
+
+---
+ gcc/config/arm/arm.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: b/gcc/config/arm/arm.c
+===================================================================
+--- a/gcc/config/arm/arm.c
++++ b/gcc/config/arm/arm.c
+@@ -6838,7 +6838,7 @@ adjacent_mem_locations (rtx a, rtx b)
+       /* Don't accept any offset that will require multiple
+        instructions to handle, since this would cause the
+        arith_adjacentmem pattern to output an overlong sequence.  */
+-      if (!const_ok_for_op (PLUS, val0) || !const_ok_for_op (PLUS, val1))
++      if (!const_ok_for_op (val0, PLUS) || !const_ok_for_op (val1, PLUS))
+       return 0;
+       /* Don't allow an eliminable register: register elimination can make
diff --git a/toolchain/gcc/4.4.6/gcc-44-pr39429.patch b/toolchain/gcc/4.4.6/gcc-44-pr39429.patch
new file mode 100644 (file)
index 0000000..4e1dc9e
--- /dev/null
@@ -0,0 +1,24 @@
+From: Michael Olbrich <m.olbrich@pengutronix.de>
+Subject: Fix: compiler create bad asm codes.
+
+See http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39429 for details.
+
+Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
+
+---
+ gcc/config/arm/arm.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+Index: b/gcc/config/arm/arm.c
+===================================================================
+--- a/gcc/config/arm/arm.c
++++ b/gcc/config/arm/arm.c
+@@ -6838,7 +6838,7 @@ adjacent_mem_locations (rtx a, rtx b)
+       /* Don't accept any offset that will require multiple
+        instructions to handle, since this would cause the
+        arith_adjacentmem pattern to output an overlong sequence.  */
+-      if (!const_ok_for_op (PLUS, val0) || !const_ok_for_op (PLUS, val1))
++      if (!const_ok_for_op (val0, PLUS) || !const_ok_for_op (val1, PLUS))
+       return 0;
+       /* Don't allow an eliminable register: register elimination can make