This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Question about CASE_DROPS_THROUGH
- From: Ulrich Weigand <Ulrich dot Weigand at de dot ibm dot com>
- To: zack at codesourcery dot com
- Cc: roger at eyesopen dot com, stevenb at suse dot de, gcc at gcc dot gnu dot org
- Date: Mon, 21 Jun 2004 19:02:15 +0200
- Subject: Re: Question about CASE_DROPS_THROUGH
Zack Weinberg wrote:
>(It should be noted that there are a lot of ports that use the
>"casesi" expander, but in all cases other than VAX there appears to be
>no good reason for this - they're just duplicating what stmt.c would
>do if it had only "tablejump" to work with. I was particularly
>curious to see if the s390 had a similar instruction to the VAX, but
>if it does we aren't using it.)
s390 does not have a casesi instruction. The original reason for
defining a casesi pattern in the s390 backend had to do with the
way we handle jump tables in PIC mode (they contain the difference
of the target jump label and the start of the jump table).
IIRC there were also slight tweaks to the order of emitted insns
that would lead to somewhat better scheduling than what the default
middle-end implementation does.
I guess this could nowadays all be handled in a different way, but
I haven't seen the need to look into this ...
Mit freundlichen Gruessen / Best Regards
Ulrich Weigand
--
Dr. Ulrich Weigand
Linux for S/390 Design & Development
IBM Deutschland Entwicklung GmbH, Schoenaicher Str. 220, 71032 Boeblingen
Phone: +49-7031/16-3727 --- Email: Ulrich.Weigand@de.ibm.com