[PATCH 1/9] rs6000: Change how we model the carry bit

David Edelsohn dje.gcc@gmail.com
Sun Sep 21 17:44:00 GMT 2014

On Sat, Sep 20, 2014 at 2:23 PM, Segher Boessenkool
<segher@kernel.crashing.org> wrote:

> Make the carry bit non-allocatable (i.e., of class NO_REGS).  It will
> only ever be assigned to explicitly by machine patterns.  Let it have
> mode SI or DI (if compiling for 64-bit), even though it only ever
> contains 0 or 1, so that the patterns will be simpler, and combine
> will have an easier time and more opportunities.  Do not allow CA
> as input_operand; we have no patterns for moving CA around (such
> patterns would be quite expensive).  Allow taking a subreg of CA; this
> happens e.g. for sraw in 64-bit mode.
> 2014-09-20  Segher Boessenkool  <segher@kernel.crashing.org>
>         * config/rs6000/predicates.md (ca_operand): Allow subregs.
>         (input_operand): Do not allow ca_operand.
>         * config/rs6000/rs6000.c (rs6000_hard_regno_mode_ok): For the
>         carry bit, allow SImode and Pmode.
>         (rs6000_init_hard_regno_mode_ok): Make the carry bit class NO_REGS.


Thanks, David

More information about the Gcc-patches mailing list