Hi FX, I missed that op points still on the memory here. So corrected patch is inlined below.
Kai Index: predicates.md =================================================================== --- predicates.md (Revision 215364) +++ predicates.md (Arbeitskopie) @@ -73,9 +73,18 @@ ;; Return true if OP is a memory operands that can be used in sibcalls. (define_predicate "sibcall_memory_operand" - (and (match_operand 0 "memory_operand") - (match_test "CONSTANT_P (XEXP (op, 0))"))) + (match_operand 0 "memory_operand") +{ + op = XEXP (op, 0); + if (TARGET_MACHO && TARGET_64BIT + && GET_CODE (op) == CONST + && GET_CODE (XEXP (op, 0)) == UNSPEC + && XINT (XEXP (op, 0), 1) == UNSPEC_GOTPCREL) + return false; + return CONSTANT_P (op); +}) + ;; Match an SI or HImode register for a zero_extract. (define_special_predicate "ext_register_operand" (match_operand 0 "register_operand")