From: Richard Henderson Date: Thu, 10 Sep 1998 00:07:33 +0000 (-0700) Subject: alpha.c (alphaev5_insn_pipe): Abort on default case. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=2c01018fc8b33c49336de71df3a9fdb9366c5059;p=gcc.git 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 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9dcc189acbb..007a142edd4 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +Thu Sep 10 00:03:34 1998 Richard Henderson + + * 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) * emit-rtl.c (gen_lowpart_common): Disable optimization of diff --git a/gcc/config/alpha/alpha.c b/gcc/config/alpha/alpha.c index e19ddab0fd8..f0795f3fa54 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