summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/recog.c3
2 files changed, 9 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 4904cd3ff40..9e289d5720f 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,4 +1,9 @@
-Mon Jul 31 10:36:38 MET DST 2000 Jan Hubicka <jh@suse.cz>
+Mon Jul 31 10:41:01 MET DST 2000 Jan Hubicka <jh@suse.cz>
+
+ * recog.c (extract_insn): Set operand_mode according to
+ operand if match_operand is VOIDmode.
+
+Mon Jul 31 10:36:38 MET DST 2000 Jan Hubicka <jh@suse.cz>
* recog.c (validate_replace_rtx_1): Do not abort for (nil) expression.
diff --git a/gcc/recog.c b/gcc/recog.c
index 746c0f9b612..9e7b9fa9bc0 100644
--- a/gcc/recog.c
+++ b/gcc/recog.c
@@ -2076,6 +2076,9 @@ extract_insn (insn)
{
recog_data.constraints[i] = insn_data[icode].operand[i].constraint;
recog_data.operand_mode[i] = insn_data[icode].operand[i].mode;
+ /* VOIDmode match_operands gets mode from their real operand. */
+ if (recog_data.operand_mode[i] == VOIDmode)
+ recog_data.operand_mode[i] = GET_MODE (recog_data.operand[i]);
}
}
for (i = 0; i < noperands; i++)