aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorRichard Henderson <rth@cygnus.com>1999-10-10 02:43:26 -0700
committerRichard Henderson <rth@gcc.gnu.org>1999-10-10 02:43:26 -0700
commitec1c89e60a0e1a3e793f694484fad42a2a7014a3 (patch)
treeecc36f88e3b35874748fedad2e98caa3f5d849dc /gcc
parent8015b78d4166d99163d6ae09d950e743005e77de (diff)
downloadgcc-ec1c89e60a0e1a3e793f694484fad42a2a7014a3.zip
gcc-ec1c89e60a0e1a3e793f694484fad42a2a7014a3.tar.gz
gcc-ec1c89e60a0e1a3e793f694484fad42a2a7014a3.tar.bz2
genrecog.c (add_to_sequence): Move allow_const_int test outside known predicate block...
* genrecog.c (add_to_sequence): Move allow_const_int test outside known predicate block; default allow_const_int true. From-SVN: r29885
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/genrecog.c26
2 files changed, 21 insertions, 10 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index adf51df..bdb5aea 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+Sun Oct 10 02:41:41 1999 Richard Henderson <rth@cygnus.com>
+
+ * genrecog.c (add_to_sequence): Move allow_const_int test outside
+ known predicate block; default allow_const_int true.
+
Sun Oct 10 00:43:08 1999 Richard Henderson <rth@cygnus.com>
* i386.h (CC1_SPEC): Typo -- use cc1_cpu.
diff --git a/gcc/genrecog.c b/gcc/genrecog.c
index 45cb3a3..371e5b2 100644
--- a/gcc/genrecog.c
+++ b/gcc/genrecog.c
@@ -402,6 +402,7 @@ add_to_sequence (pattern, last, position, insn_type, top)
{
const char *pred_name;
RTX_CODE was_code = code;
+ int allows_const_int = 1;
if (code == MATCH_SCRATCH)
{
@@ -462,10 +463,6 @@ add_to_sequence (pattern, last, position, insn_type, top)
allows_const_int = 1;
break;
}
-
- /* Can't enforce a mode if we allow const_int. */
- if (allows_const_int)
- mode = VOIDmode;
}
else
{
@@ -478,12 +475,10 @@ add_to_sequence (pattern, last, position, insn_type, top)
#endif
}
}
- else
- {
- /* Wildcard match. Can't enforce a mode because we allow
- anything -- const_int included. */
- mode = VOIDmode;
- }
+
+ /* Can't enforce a mode if we allow const_int. */
+ if (allows_const_int)
+ mode = VOIDmode;
/* Accept the operand, ie. record it in `operands'. */
test = new_decision_test (DT_accept_op, &place);
@@ -2417,3 +2412,14 @@ debug_decision (d)
{
debug_decision_0 (d, 0, 1000000);
}
+
+void
+debug_decision_list (d)
+ struct decision *d;
+{
+ while (d)
+ {
+ debug_decision_0 (d, 0, 0);
+ d = d->next;
+ }
+}