On Wed, Jun 18, 2014 at 2:24 PM, Kai Tietz <ktiet...@googlemail.com> wrote:
> The following change in predicates.md seems to be a bit premature. > There is still the point about Darwin's PIC issue for unspec-gotpcrel. > > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61387 > > return ANY_QI_REG_P (op); > }) > > +;; Return true if OP is a memory operands that can be used in sibcalls. > (define_predicate "sibcall_memory_operand" > - (match_operand 0 "memory_operand") > -{ > - return CONSTANT_P (XEXP (op, 0)); > -}) > + (and (match_operand 0 "memory_operand") > + (match_test "CONSTANT_P (XEXP (op, 0))"))) > > as we might to pessimize for Darwin UNSPEC_GOTPCREL at that point. > In general there is still the question why this issue just happens > for Darwin, but not for linux. For linux that gotpcrel-code path > seems not to be hit at all (at least is that what Ians told). Oh, this part doesn't change any functionality at all. The predicate is just written in a different way. Uros.