On 03/06/12 11:10, H.J. Lu wrote: > (define_insn "*call" > - [(call (mem:QI (match_operand:P 0 "call_insn_operand" "<c>zw")) > + [(call (mem:QI (match_operand:C 0 "call_insn_operand" "<c>zw")) > (match_operand 1 "" ""))] > - "!SIBLING_CALL_P (insn)" > + "!SIBLING_CALL_P (insn) > + && (GET_CODE (operands[0]) == SYMBOL_REF > + || GET_MODE (operands[0]) == word_mode)"
There are enough copies of this extra constraint that I wonder if it simply ought to be folded into call_insn_operand. Which would need to be changed to define_special_predicate, since you'd be doing your own mode checking. Probably similar changes to sibcall_insn_operand. r~