This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/49398] [4.7 ] bootstrap broken for arm-linux-gnueabi with thumb mode.
- From: "ramana at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Tue, 14 Jun 2011 00:38:06 +0000
- Subject: [Bug target/49398] [4.7 ] bootstrap broken for arm-linux-gnueabi with thumb mode.
- Auto-submitted: auto-generated
- References: <bug-49398-4@http.gcc.gnu.org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49398
Ramana Radhakrishnan <ramana at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Last reconfirmed| |2011.06.14 00:37:35
Ever Confirmed|0 |1
--- Comment #2 from Ramana Radhakrishnan <ramana at gcc dot gnu.org> 2011-06-14 00:37:35 UTC ---
Hmmm the *ldrd pattern appears to allow this which is just unpredictable
behaviour.
(insn:TI 42 38 43 2 (parallel [
(set (reg/v/f:SI 4 r4 [orig:143 regs ] [143])
(mem/f/c/i:SI (plus:SI (reg/f:SI 26 afp)
(const_int 12 [0xc])) [3 regs+0 S4 A32]))
(set (reg/v:SI 4 r4 [orig:144 stop ] [144])
(mem/c/i:SI (plus:SI (reg/f:SI 26 afp)
(const_int 16 [0x10])) [2 stop+0 S4 A32]))
]) ../../../gcc-4.7~/libiberty/regex.c:4959 396 {*ldrd}
(expr_list:REG_UNUSED (reg/v/f:SI 4 r4 [orig:143 regs ] [143])
(nil)))
You can't have Rt == Rt2 in Thumb2 - that is just broken behaviour.
at the very least you need the following patch to get builds going further.
Index: arm.c
===================================================================
--- arm.c (revision 174940)
+++ arm.c (working copy)
@@ -23865,6 +23865,9 @@
if (TARGET_ARM)
max_offset = 255;
+
+ if (regno1 == regno2)
+ return false;
if (off1 != NULL_RTX)
offset1 = INTVAL (off1);