This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
Hi,This fixes up the issues with PR target/19599 and the issues we've had around it. This fixes up some of the current issues we have around this. I'll follow up with a separate patch around longjmps.
This puts in predicates for bx where needed - missed out CCFSM (sigh :( ), replaces uses of "Ss" with another two letter constraint in the U space rather than inventing a new one and gets rid of the issues where we missed handling HFAs in tail calls with values (sigh :( ). Ofcourse I considered using 's' and 'i' but they are unusable in general because of this in reload:
case 's': if (CONST_SCALAR_INT_P (operand)) break; case 'i': if (CONSTANT_P (operand)&& (! flag_pic || LEGITIMATE_PIC_OPERAND_P (operand)))
win = 1; break;and our definition of LEGITIMATE_PIC_OPERAND_P doesn't allow a symbol ref. So be it.
Regression tested on arm-none-linux-gnueabi arm / thumb multilibs v7-a , bootstrapped and checked it all works fine. Applied.
regards Ramana 2013-07-25 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> PR target/19599 PR target/57731 PR target/57748 * config/arm/arm.md ("*sibcall_value_insn): Replace use of Ss with US. Adjust output for v5 and v4t. (*sibcall_value_insn): Likewise and loosen predicate on operand0. * config/arm/constraints.md ("Ss"): Rename to US.
Attachment:
tailcall-tail-committed.txt
Description: Text document
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |