e6a3149428
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
26 lines
966 B
Diff
26 lines
966 B
Diff
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35964
|
|
Index: gcc-4.3.0/gcc/regrename.c
|
|
===================================================================
|
|
--- gcc-4.3.0.orig/gcc/regrename.c 2008-05-28 08:31:15.000000000 -0700
|
|
+++ gcc-4.3.0/gcc/regrename.c 2008-05-28 08:34:00.000000000 -0700
|
|
@@ -782,6 +782,10 @@
|
|
|| (predicated && recog_data.operand_type[i] == OP_OUT))
|
|
recog_data.operand_type[i] = OP_INOUT;
|
|
}
|
|
+ /* Unshare dup_loc RTL */
|
|
+ for (i = 0; i < recog_data.n_dups; i++)
|
|
+ *recog_data.dup_loc[i] = copy_rtx(*recog_data.dup_loc[i]);
|
|
+
|
|
|
|
/* Step 1: Close chains for which we have overlapping reads. */
|
|
for (i = 0; i < n_ops; i++)
|
|
@@ -813,7 +817,7 @@
|
|
OP_IN, 0);
|
|
|
|
for (i = 0; i < recog_data.n_dups; i++)
|
|
- *recog_data.dup_loc[i] = copy_rtx (old_dups[i]);
|
|
+ *recog_data.dup_loc[i] = old_dups[i];
|
|
for (i = 0; i < n_ops; i++)
|
|
*recog_data.operand_loc[i] = old_operands[i];
|
|
if (recog_data.n_dups)
|