aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Kenner <kenner@gcc.gnu.org>1993-01-24 07:18:26 -0500
committerRichard Kenner <kenner@gcc.gnu.org>1993-01-24 07:18:26 -0500
commitf65b79390a3249bf670ddd04eb2e320b88f2b1e0 (patch)
tree4b7c153f78d49ee1af104580d2428cfbf9357672 /gcc
parentd8a8a4da44fcc083e644545cff4486ccbaaa8707 (diff)
downloadgcc-f65b79390a3249bf670ddd04eb2e320b88f2b1e0.zip
gcc-f65b79390a3249bf670ddd04eb2e320b88f2b1e0.tar.gz
gcc-f65b79390a3249bf670ddd04eb2e320b88f2b1e0.tar.bz2
(final_scan_insn): Call alter_subreg on duplicate operands (in case we
need to split the insn). From-SVN: r3318
Diffstat (limited to 'gcc')
-rw-r--r--gcc/final.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/final.c b/gcc/final.c
index 7c3a61b..344805f 100644
--- a/gcc/final.c
+++ b/gcc/final.c
@@ -1658,6 +1658,12 @@ final_scan_insn (insn, file, optimize, prescan, nopeepholes)
recog_operand[i] = alter_subreg (recog_operand[i]);
}
+ for (i = 0; i < insn_n_dups[insn_code_number]; i++)
+ {
+ if (GET_CODE (*recog_dup_loc[i]) == SUBREG)
+ *recog_dup_loc[i] = alter_subreg (*recog_dup_loc[i]);
+ }
+
#ifdef REGISTER_CONSTRAINTS
if (! constrain_operands (insn_code_number, 1))
fatal_insn_not_found (insn);