This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
make_extraction
- To: egcs at cygnus dot com
- Subject: make_extraction
- From: Richard Henderson <rth at cygnus dot com>
- Date: Mon, 10 Aug 1998 01:40:27 -0700
- Reply-To: Richard Henderson <rth at cygnus dot com>
Can someone tell me what
/* Unless we are allowed to span bytes, reject this if we would be
spanning bytes or if the position is not a constant and the length
is not 1. In all other cases, we would only be going outside
out object in cases when an original shift would have been
undefined. */
if (! spans_byte
&& ((pos_rtx == 0 && pos + len > GET_MODE_BITSIZE (is_mode))
|| (pos_rtx != 0 && len != 1)))
return 0;
is attempting to do? I'm trying to figure out why
(and:DI (lshiftrt:DI reg1 reg2) (const_int 255))
is not a valid extraction. Seems to me that it should be fine -- if
reg2 is out of range we get undefined results doing things the long
way anyway.
I hate to clutter up the md file with special patterns that combine
should have been doing the right thing with in the first place...
r~