summaryrefslogtreecommitdiff
path: root/gcc/final.c
diff options
context:
space:
mode:
authorkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>1993-01-24 12:18:26 +0000
committerkenner <kenner@138bc75d-0d04-0410-961f-82ee72b054a4>1993-01-24 12:18:26 +0000
commitbfa317eff9fbd85a246166930b143c263f2e8a7c (patch)
tree4b7c153f78d49ee1af104580d2428cfbf9357672 /gcc/final.c
parentb77a8efdb6580226f6660e1c9b7fd13b114b5e3e (diff)
downloadgcc-bfa317eff9fbd85a246166930b143c263f2e8a7c.tar.gz
(final_scan_insn): Call alter_subreg on duplicate operands (in case we
need to split the insn). git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@3318 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/final.c')
-rw-r--r--gcc/final.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/final.c b/gcc/final.c
index 7c3a61b36ac..344805f19d4 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);