diff options
Diffstat (limited to 'gcc/reload.c')
-rw-r--r-- | gcc/reload.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/reload.c b/gcc/reload.c index 03354de..1dc04bf 100644 --- a/gcc/reload.c +++ b/gcc/reload.c @@ -3872,6 +3872,12 @@ find_reloads (rtx_insn *insn, int replace, int ind_levels, int live_known, std::swap (*recog_data.operand_loc[commutative], *recog_data.operand_loc[commutative + 1]); + for (i = 0; i < recog_data.n_dups; i++) + if (recog_data.dup_num[i] == commutative + || recog_data.dup_num[i] == commutative + 1) + *recog_data.dup_loc[i] + = recog_data.operand[(int) recog_data.dup_num[i]]; + for (i = 0; i < n_reloads; i++) { if (rld[i].opnum == commutative) |