aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2000-07-31 08:42:26 +0000
committerJan Hubicka <hubicka@gcc.gnu.org>2000-07-31 08:42:26 +0000
commite7adb6fbb7b14b5650746828ee8d6f81b7a0259b (patch)
tree64ff496cc3536f206a0c8c27e8f4f148211a9e25 /gcc
parent22251f806bda549a6d6a740a738ad0ca405a4f52 (diff)
downloadgcc-e7adb6fbb7b14b5650746828ee8d6f81b7a0259b.zip
gcc-e7adb6fbb7b14b5650746828ee8d6f81b7a0259b.tar.gz
gcc-e7adb6fbb7b14b5650746828ee8d6f81b7a0259b.tar.bz2
recog.c (extract_insn): Set operand_mode according to operand if match_operand is VOIDmode.
* recog.c (extract_insn): Set operand_mode according to operand if match_operand is VOIDmode. From-SVN: r35369
Diffstat (limited to 'gcc')
-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 4904cd3..9e289d5 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 746c0f9..9e7b9fa 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++)