From patchwork Tue Nov 2 07:56:43 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [MIPS] : Remove ugly hack from "call_internal" splitter Date: Mon, 01 Nov 2010 21:56:43 -0000 From: Uros Bizjak X-Patchwork-Id: 69865 Message-Id: To: gcc-patches@gcc.gnu.org Hello! We should simply use curr_insn instead of an ugly hack. 2010-11-02 Uros Bizjak * config/mips/mips.md (call_internal): Pass curr_insn to mips_split_call. Compile tested on x86_64-pc-linux-gnu for mips-elf cross. OK? Uros. Index: gcc/config/mips/mips.md =================================================================== --- gcc/config/mips/mips.md (revision 166172) +++ gcc/config/mips/mips.md (working copy) @@ -6033,18 +6033,16 @@ ;; But once we generate the separate insns, it becomes obvious that ;; $gp is not live on entry to the call. ;; -;; ??? The operands[2] = insn check is a hack to make the original insn -;; available to the splitter. (define_insn_and_split "call_internal" [(call (mem:SI (match_operand 0 "call_insn_operand" "c,S")) (match_operand 1 "" "")) (clobber (reg:SI RETURN_ADDR_REGNUM))] "" { return TARGET_SPLIT_CALLS ? "#" : MIPS_CALL ("jal", operands, 0, 1); } - "reload_completed && TARGET_SPLIT_CALLS && (operands[2] = insn)" + "reload_completed && TARGET_SPLIT_CALLS" [(const_int 0)] { - mips_split_call (operands[2], gen_call_split (operands[0], operands[1])); + mips_split_call (curr_insn, gen_call_split (operands[0], operands[1])); DONE; } [(set_attr "jal" "indirect,direct")])