Issue with subregs

Segher Boessenkool segher@kernel.crashing.org
Mon Feb 3 17:00:00 GMT 2020


On Mon, Feb 03, 2020 at 12:44:19PM +0000, Richard Sandiford wrote:
> Segher Boessenkool <segher@kernel.crashing.org> writes:
> > On Mon, Feb 03, 2020 at 11:04:39AM +0000, Richard Sandiford wrote:
> > Wow.  Yeah, I don't remember ever seeing this, is size of CC ever used
> > at all?
> >
> >> So one option might be to:
> >> 
> >> - Add a new genmodes.c macro (e.g. CC_MODE_WITH_SIZE) that creates a CC
> >>   mode with a specific byte size.
> >
> > But Henri needs CC regs that are three bits.  The hardware reg is 12 bits,
> > four times three bits, packed, so subregs can still not work after your
> > extra macro.
> 
> The idea to use a byte size for the smallest thing that needs to be
> addressed individually, then use aggregates for everything else.
> It doesn't matter whether that thing has 8 significant bits or not.

You cannot *address* the fields that way (except for the lowest one):
subreg offsets are in bytes.  The sizes do not matter, sure, and those
do not cause the ICE Henri saw, iirc.


Segher



More information about the Gcc-help mailing list