[PATCH 1/9] rs6000: Change how we model the carry bit
Sun Sep 21 17:44:00 GMT 2014
On Sat, Sep 20, 2014 at 2:23 PM, Segher Boessenkool
> 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 <firstname.lastname@example.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.
More information about the Gcc-patches