This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [patch] MIPS/gcc: Revert removal of DImode shifts for 32-bittargets


Richard Henderson <rth@redhat.com> writes:
> On Fri, Sep 03, 2004 at 08:05:15AM +0100, Richard Sandiford wrote:
>>      However, on some machines, such as the 80386 and the 680x0, truncation
>>      only applies to shift operations and not the (real or pretended)
>>      bit-field operations.  Define @code{SHIFT_COUNT_TRUNCATED} to be zero on
>>      such machines.  Instead, add patterns to the @file{md} file that include
>>      the implied truncation of the shift instructions.
>> 
>> I was deliberately trying to avoid this fuzziness with the new target hook.
>
> Hmm.  I suppose we could pass the shift operation in there; 
> ASHIFT, LSHIFT, ZERO_EXTRACT, SIGN_EXTRACT.

But the point as I understand it is that the generic optimisers
(e.g. simplify-rtx.c) can't tell the difference between an ASHIFT
that came from an (ashift ...) in the instruction stream or from
something that was generated artificially by expand_compound_operation.

Richard


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]