------- Comment #4 from amodra at gmail dot com 2010-01-28 00:17 ------- I haven't looked in detail at this yet, but why are we getting nonlocal sibcalls at all for sysv? rs6000_function_ok_for_sibcall says we shouldn't. I'm not sure why the nonlocal sibcall patterns even accept DEFAULT_ABI == ABI_V4.
Incidentally, the reason why we can't do a nonlocal sibcall when using secure plt is that pic_offset_table_rtx (got pointer reg, r30) needs to be live as a pic plt call stub uses r30. Since that register is non-volatile it can't be live for the tail call. -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42344