recog.c (extract_insn): Set operand_mode according to operand if match_operand is...
authorJan Hubicka <jh@suse.cz>
Mon, 31 Jul 2000 08:42:26 +0000 (08:42 +0000)
committerJan Hubicka <hubicka@gcc.gnu.org>
Mon, 31 Jul 2000 08:42:26 +0000 (08:42 +0000)
* recog.c (extract_insn): Set operand_mode according to
operand if match_operand is VOIDmode.

From-SVN: r35369

gcc/ChangeLog
gcc/recog.c

index 4904cd3..9e289d5 100644 (file)
@@ -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.
 
index 746c0f9..9e7b9fa 100644 (file)
@@ -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++)