aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Henderson <rth@cygnus.com>1998-09-09 17:07:33 -0700
committerRichard Henderson <rth@gcc.gnu.org>1998-09-09 17:07:33 -0700
commit2c01018fc8b33c49336de71df3a9fdb9366c5059 (patch)
treec51dfd87fd5b4f7ea645bb5d41c86a3642644d34
parent704e23f0d4a6e168dbd31782edfa0e20fa77a9cc (diff)
downloadgcc-2c01018fc8b33c49336de71df3a9fdb9366c5059.zip
gcc-2c01018fc8b33c49336de71df3a9fdb9366c5059.tar.gz
gcc-2c01018fc8b33c49336de71df3a9fdb9366c5059.tar.bz2
alpha.c (alphaev5_insn_pipe): Abort on default case.
* alpha.c (alphaev5_insn_pipe): Abort on default case. (alphaev5_next_group): Swallow CLOBBERs and USEs. From-SVN: r22373
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/config/alpha/alpha.c30
2 files changed, 24 insertions, 13 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 9dcc189..007a142 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+Thu Sep 10 00:03:34 1998 Richard Henderson <rth@cygnus.com>
+
+ * alpha.c (alphaev5_insn_pipe): Abort on default case.
+ (alphaev5_next_group): Swallow CLOBBERs and USEs.
+
+ * c-tree.h (warn_long_long): Declare it.
+
Wed Sep 9 23:31:36 1998 (Stephen L Moshier) <moshier@world.std.com>
* emit-rtl.c (gen_lowpart_common): Disable optimization of
diff --git a/gcc/config/alpha/alpha.c b/gcc/config/alpha/alpha.c
index e19ddab..f0795f3 100644
--- a/gcc/config/alpha/alpha.c
+++ b/gcc/config/alpha/alpha.c
@@ -4327,8 +4327,10 @@ alphaev5_insn_pipe (insn)
case TYPE_FMUL:
return EV5_FM;
+
+ default:
+ abort();
}
- abort();
}
/* IN_USE is a mask of the slots currently filled within the
@@ -4347,13 +4349,14 @@ alphaev5_next_group (insn, pin_use, plen)
len = in_use = 0;
- if (GET_RTX_CLASS (GET_CODE (insn)) != 'i')
- goto next;
+ if (GET_RTX_CLASS (GET_CODE (insn)) != 'i'
+ || GET_CODE (PATTERN (insn)) == CLOBBER
+ || GET_CODE (PATTERN (insn)) == USE)
+ goto next_and_done;
- do
+ while (1)
{
enum alphaev5_pipe pipe;
- rtx prev;
pipe = alphaev5_insn_pipe (insn);
switch (pipe)
@@ -4370,7 +4373,7 @@ alphaev5_next_group (insn, pin_use, plen)
len = -1;
else
len = get_attr_length (insn);
- goto next;
+ goto next_and_done;
/* ??? Most of the places below, we would like to abort, as
it would indicate an error either in Haifa, or in the
@@ -4439,28 +4442,29 @@ alphaev5_next_group (insn, pin_use, plen)
/* ??? If this is predicted not-taken, slotting continues, except
that no more IBR, FBR, or JSR insns may be slotted. */
if (GET_CODE (insn) == JUMP_INSN)
- goto next;
+ goto next_and_done;
+ next:
insn = next_nonnote_insn (insn);
- if (GET_RTX_CLASS (GET_CODE (insn)) != 'i')
+ if (!insn || GET_RTX_CLASS (GET_CODE (insn)) != 'i')
goto done;
/* Let Haifa tell us where it thinks insn group boundaries are. */
if (GET_MODE (insn) == TImode)
goto done;
+ if (GET_CODE (insn) == CLOBBER || GET_CODE (insn) == USE)
+ goto next;
}
- while (insn);
+
+ next_and_done:
+ insn = next_nonnote_insn (insn);
done:
*plen = len;
*pin_use = in_use;
return insn;
-
- next:
- insn = next_nonnote_insn (insn);
- goto done;
}
static void