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.

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


> Otherwise OK.
> R.

Attachment: patch-to-commit.patch
Description: Binary data

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