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