Index: arm.md =================================================================== --- arm.md (revision 150565) +++ arm.md (working copy) @@ -4860,7 +4860,8 @@ (define_insn "*arm_movdi" [(set_attr "length" "8,12,16,8,8") (set_attr "type" "*,*,*,load2,store2") (set_attr "pool_range" "*,*,*,1020,*") - (set_attr "neg_pool_range" "*,*,*,1008,*")] + (set_attr "neg_pool_range" "*,*,*,1008,*") + (set_attr "predicable" "yes")] ) (define_split @@ -8446,7 +8447,8 @@ (define_insn "*call_value_reg_armv5" (clobber (reg:SI LR_REGNUM))] "TARGET_ARM && arm_arch5" "blx%?\\t%1" - [(set_attr "type" "call")] + [(set_attr "type" "call") + (set_attr "predicable" "yes")] ) (define_insn "*call_value_reg_arm" @@ -8460,7 +8462,8 @@ (define_insn "*call_value_reg_arm" return output_call (&operands[1]); " [(set_attr "length" "12") - (set_attr "type" "call")] + (set_attr "type" "call") + (set_attr "predicable" "yes")] ) (define_insn "*call_value_mem" @@ -8474,7 +8477,8 @@ (define_insn "*call_value_mem" return output_call_mem (&operands[1]); " [(set_attr "length" "12") - (set_attr "type" "call")] + (set_attr "type" "call") + (set_attr "predicable" "yes")] ) (define_insn "*call_value_reg_thumb1_v5" @@ -8525,7 +8529,8 @@ (define_insn "*call_symbol" { return NEED_PLT_RELOC ? \"bl%?\\t%a0(PLT)\" : \"bl%?\\t%a0\"; }" - [(set_attr "type" "call")] + [(set_attr "type" "call") + (set_attr "predicable" "yes")] ) (define_insn "*call_value_symbol" @@ -8541,7 +8546,8 @@ (define_insn "*call_value_symbol" { return NEED_PLT_RELOC ? \"bl%?\\t%a1(PLT)\" : \"bl%?\\t%a1\"; }" - [(set_attr "type" "call")] + [(set_attr "type" "call") + (set_attr "predicable" "yes")] ) (define_insn "*call_insn" @@ -8608,7 +8614,8 @@ (define_insn "*sibcall_insn" "* return NEED_PLT_RELOC ? \"b%?\\t%a0(PLT)\" : \"b%?\\t%a0\"; " - [(set_attr "type" "call")] + [(set_attr "type" "call") + (set_attr "predicable" "yes")] ) (define_insn "*sibcall_value_insn" @@ -8621,7 +8628,8 @@ (define_insn "*sibcall_value_insn" "* return NEED_PLT_RELOC ? \"b%?\\t%a1(PLT)\" : \"b%?\\t%a1\"; " - [(set_attr "type" "call")] + [(set_attr "type" "call") + (set_attr "predicable" "yes")] ) ;; Often the return insn will be the same as loading from memory, so set attr