diff options
author | jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-03-21 07:14:18 +0000 |
---|---|---|
committer | jakub <jakub@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-03-21 07:14:18 +0000 |
commit | e4e139d36bff735587c4b209807470ae7079f472 (patch) | |
tree | dc4ae75d5f956b3b89aa319c1c4162e8c844d5e0 /gcc/genrecog.c | |
parent | c352cbc71ff5c15ef6a4c17267216600ca4e1dfe (diff) | |
download | gcc-e4e139d36bff735587c4b209807470ae7079f472.tar.gz |
PR bootstrap/4195
* genrecog.c (maybe_both_true_mode): Remove.
(maybe_both_true_2, write_switch): Revert 2001-07-17 changes.
* machmode.def (Pmode): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@51115 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/genrecog.c')
-rw-r--r-- | gcc/genrecog.c | 36 |
1 files changed, 2 insertions, 34 deletions
diff --git a/gcc/genrecog.c b/gcc/genrecog.c index 136422c3e4f..1e8f8545f1c 100644 --- a/gcc/genrecog.c +++ b/gcc/genrecog.c @@ -238,8 +238,6 @@ static void validate_pattern static struct decision *add_to_sequence PARAMS ((rtx, struct decision_head *, const char *, enum routine_type, int)); -static int maybe_both_true_mode - PARAMS ((enum machine_mode, enum machine_mode)); static int maybe_both_true_2 PARAMS ((struct decision_test *, struct decision_test *)); static int maybe_both_true_1 @@ -1056,29 +1054,6 @@ add_to_sequence (pattern, last, position, insn_type, top) return sub; } -/* A subroutine of maybe_both_true; compares two modes. - Returns > 0 for "definitely both true" and < 0 for "maybe both true". */ - -static int -maybe_both_true_mode (m1, m2) - enum machine_mode m1, m2; -{ - enum mode_class other_mode_class; - - /* Pmode is not a distinct mode. We do know that it is - either MODE_INT or MODE_PARTIAL_INT though. */ - if (m1 == Pmode) - other_mode_class = GET_MODE_CLASS (m2); - else if (m2 == Pmode) - other_mode_class = GET_MODE_CLASS (m1); - else - return m1 == m2; - - return (other_mode_class == MODE_INT - || other_mode_class == MODE_PARTIAL_INT - ? -1 : 0); -} - /* A subroutine of maybe_both_true; examines only one test. Returns > 0 for "definitely both true" and < 0 for "maybe both true". */ @@ -1091,7 +1066,7 @@ maybe_both_true_2 (d1, d2) switch (d1->type) { case DT_mode: - return maybe_both_true_mode (d1->u.mode, d2->u.mode); + return d1->u.mode == d2->u.mode; case DT_code: return d1->u.code == d2->u.code; @@ -1127,7 +1102,7 @@ maybe_both_true_2 (d1, d2) { if (d2->type == DT_mode) { - if (maybe_both_true_mode (d1->u.pred.mode, d2->u.mode) == 0 + if (d1->u.pred.mode != d2->u.mode /* The mode of an address_operand predicate is the mode of the memory, not the operand. It can only be used for testing the predicate, so we must @@ -1910,9 +1885,6 @@ write_switch (start, depth) || type == DT_elt_zero_wide_safe) { const char *indent = ""; - /* Pmode may not be a compile-time constant. */ - if (type == DT_mode && p->tests->u.mode == Pmode) - return p; /* We cast switch parameter to integer, so we must ensure that the value fits. */ @@ -1956,10 +1928,6 @@ write_switch (start, depth) if (nodes_identical_1 (p->tests, q->tests)) goto case_done; - /* Pmode may not be a compile-time constant. */ - if (type == DT_mode && p->tests->u.mode == Pmode) - goto case_done; - if (p != start && p->need_label && needs_label == NULL) needs_label = p; |