[toolchain] cris: fix ICE PR26515 (#3723)
[openwrt-10.03/.git] / toolchain / gcc / patches / 4.3.3 / 400-arm_register_fix.patch
1 Fixes GCC PR36350
2
3 --- a/gcc/regrename.c
4 +++ b/gcc/regrename.c
5 @@ -783,6 +783,10 @@ build_def_use (basic_block bb)
6                 recog_data.operand_type[i] = OP_INOUT;
7             }
8  
9 +         /* Unshare dup_loc RTL */
10 +         for (i = 0; i < recog_data.n_dups; i++)
11 +           *recog_data.dup_loc[i] = copy_rtx(*recog_data.dup_loc[i]);
12 +
13           /* Step 1: Close chains for which we have overlapping reads.  */
14           for (i = 0; i < n_ops; i++)
15             scan_rtx (insn, recog_data.operand_loc[i],
16 @@ -813,7 +817,7 @@ build_def_use (basic_block bb)
17                     OP_IN, 0);
18  
19           for (i = 0; i < recog_data.n_dups; i++)
20 -           *recog_data.dup_loc[i] = copy_rtx (old_dups[i]);
21 +           *recog_data.dup_loc[i] = old_dups[i];
22           for (i = 0; i < n_ops; i++)
23             *recog_data.operand_loc[i] = old_operands[i];
24           if (recog_data.n_dups)