]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
Ensure earlyclobbered operands go through a terminate_write stage.
authorbernds <bernds@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 17 Nov 2015 21:24:38 +0000 (21:24 +0000)
committerbernds <bernds@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 17 Nov 2015 21:24:38 +0000 (21:24 +0000)
* regrename.c (record_out_operands): Terminate earlyclobbered
operands here.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@230500 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/regrename.c

index cdd7036a7fb328d1a9f4196a0386a355ba6b4966..4037505e4548dacc88ade05f1fac7f6292b0f9df 100644 (file)
@@ -1,5 +1,8 @@
 2015-11-17  Bernd Schmidt  <bschmidt@redhat.com>
 
+       * regrename.c (record_out_operands): Terminate earlyclobbered
+       operands here.
+
        PR target/66785
        * regrename.c (record_operand_use): Keep track of failed operands
        and stop appending if we see any.
index e126fcc74039ca0467411bdd15c2b1bd3ee9489a..4d6eb372ddd9834748ee8ded81cb60269a4db11c 100644 (file)
@@ -1558,6 +1558,8 @@ record_out_operands (rtx_insn *insn, bool earlyclobber, insn_rr_info *insn_info)
        cur_operand = insn_info->op_info + i;
 
       prev_open = open_chains;
+      if (earlyclobber)
+       scan_rtx (insn, loc, cl, terminate_write, OP_OUT);
       scan_rtx (insn, loc, cl, mark_write, OP_OUT);
 
       /* ??? Many targets have output constraints on the SET_DEST