Commit 2c01018f by Richard Henderson Committed by Richard Henderson

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
parent 704e23f0
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> Wed Sep 9 23:31:36 1998 (Stephen L Moshier) <moshier@world.std.com>
* emit-rtl.c (gen_lowpart_common): Disable optimization of * emit-rtl.c (gen_lowpart_common): Disable optimization of
......
...@@ -4327,8 +4327,10 @@ alphaev5_insn_pipe (insn) ...@@ -4327,8 +4327,10 @@ alphaev5_insn_pipe (insn)
case TYPE_FMUL: case TYPE_FMUL:
return EV5_FM; return EV5_FM;
default:
abort();
} }
abort();
} }
/* IN_USE is a mask of the slots currently filled within the /* IN_USE is a mask of the slots currently filled within the
...@@ -4347,13 +4349,14 @@ alphaev5_next_group (insn, pin_use, plen) ...@@ -4347,13 +4349,14 @@ alphaev5_next_group (insn, pin_use, plen)
len = in_use = 0; len = in_use = 0;
if (GET_RTX_CLASS (GET_CODE (insn)) != 'i') if (GET_RTX_CLASS (GET_CODE (insn)) != 'i'
goto next; || GET_CODE (PATTERN (insn)) == CLOBBER
|| GET_CODE (PATTERN (insn)) == USE)
goto next_and_done;
do while (1)
{ {
enum alphaev5_pipe pipe; enum alphaev5_pipe pipe;
rtx prev;
pipe = alphaev5_insn_pipe (insn); pipe = alphaev5_insn_pipe (insn);
switch (pipe) switch (pipe)
...@@ -4370,7 +4373,7 @@ alphaev5_next_group (insn, pin_use, plen) ...@@ -4370,7 +4373,7 @@ alphaev5_next_group (insn, pin_use, plen)
len = -1; len = -1;
else else
len = get_attr_length (insn); len = get_attr_length (insn);
goto next; goto next_and_done;
/* ??? Most of the places below, we would like to abort, as /* ??? Most of the places below, we would like to abort, as
it would indicate an error either in Haifa, or in the it would indicate an error either in Haifa, or in the
...@@ -4439,28 +4442,29 @@ alphaev5_next_group (insn, pin_use, plen) ...@@ -4439,28 +4442,29 @@ alphaev5_next_group (insn, pin_use, plen)
/* ??? If this is predicted not-taken, slotting continues, except /* ??? If this is predicted not-taken, slotting continues, except
that no more IBR, FBR, or JSR insns may be slotted. */ that no more IBR, FBR, or JSR insns may be slotted. */
if (GET_CODE (insn) == JUMP_INSN) if (GET_CODE (insn) == JUMP_INSN)
goto next; goto next_and_done;
next:
insn = next_nonnote_insn (insn); insn = next_nonnote_insn (insn);
if (GET_RTX_CLASS (GET_CODE (insn)) != 'i') if (!insn || GET_RTX_CLASS (GET_CODE (insn)) != 'i')
goto done; goto done;
/* Let Haifa tell us where it thinks insn group boundaries are. */ /* Let Haifa tell us where it thinks insn group boundaries are. */
if (GET_MODE (insn) == TImode) if (GET_MODE (insn) == TImode)
goto done; goto done;
if (GET_CODE (insn) == CLOBBER || GET_CODE (insn) == USE)
goto next;
} }
while (insn);
next_and_done:
insn = next_nonnote_insn (insn);
done: done:
*plen = len; *plen = len;
*pin_use = in_use; *pin_use = in_use;
return insn; return insn;
next:
insn = next_nonnote_insn (insn);
goto done;
} }
static void static void
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment