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")