This is the mail archive of the 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]

Re: [Patch ARM] PR target/19599 Enable sibcalls through function pointers.

On Fri, 2009-06-05 at 23:11 +0100, Ramana Radhakrishnan wrote:
> >
> > The comment on the Ss constraint is not ARM-state specific.
> I've fixed the comments and later noticed that there was potential for
> a segfault in the compiler on a VXWorks port. I am unable to test
> whether sibling calls through function pointers work fine on a VXworks
> port but  there is theoretically no reason why this case shouldn't
> work on that port. Hence I am disabling this fix for the VxWorks port.
> I would like to commit this patch instead. Ok to commit after a round
> of testing ?
> 2009-06-02  Ramana Radhakrishnan  <>
>        PR target/19599
>        * config/arm/ (call_insn_operand): New predicate.
>        * config/arm/ ("Cs"): New register constraint.
>        ("Ss"): New constraint for symbol references.
>        * config/arm/ (sibcall): Allow only memory indirects through
>        symbol refs or register operands for operands[0].
>        (sibcall_value): Likewise for operands[1].
>        (*sibcall_insn): Allow register indirect sibcalls.
>        (*sibcall_value): Allow register indirect sibcalls.
>        * config/arm/arm.h (enum reg_class): New reg class ARM_CALLER_SAVE_REGS.
>        (REG_CLASS_NAMES): Likewise.
>        (REG_CLASS_CONTENTS): Likewise.
>        * config/arm/arm.c (arm_function_ok_for_sibcall): Refactor
> slightly. Remove check for
>        functions without decls. Handle fallout of NULL decls.

+   return \"mov%?\\t%|pc, %1\\t@ indirect sibling call \";

Use %@

Otherwise OK.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]