This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [patch] MIPS/gcc: Revert removal of DImode shifts for 32-bittargets
- From: Richard Sandiford <rsandifo at redhat dot com>
- To: Richard Henderson <rth at redhat dot com>
- Cc: "Maciej W. Rozycki" <macro at linux-mips dot org>, Nigel Stephens <nigel at mips dot com>, gcc-patches at gcc dot gnu dot org, linux-mips at linux-mips dot org
- Date: Fri, 03 Sep 2004 08:11:47 +0100
- Subject: Re: [patch] MIPS/gcc: Revert removal of DImode shifts for 32-bittargets
- References: <876580bm2e.fsf@redhat.com> <410F60DF.9020400@mips.com><Pine.LNX.4.58L.0408042123030.31930@blysk.ds.pg.gda.pl><87r7qiwz54.fsf@redhat.com> <20040809220838.GE16493@redhat.com><87zn5336h7.fsf@redhat.com> <20040810232020.GA21922@redhat.com><87eklnw0g7.fsf@redhat.com> <20040903065331.GG20559@redhat.com><87sm9zg7dg.fsf@redhat.com> <20040903070858.GA24082@redhat.com>
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