On 07/20/2013 01:32 AM, DJ Delorie wrote: >> Every pattern that is using (subreg:SI (thing:PSI)) needs to be >> explained on this list and given an explicit clearance. It really looks >> like you're just papering over problems elsewhere. > > Most of them are just optimizations, but the problem with reload is > that an SImode register *can't* hold a PSImode value. Registers are > 20 bits; a PSImode value is 20 bits. SImode values require two > registers (16 bits each). Converting between SImode and PSImode is > both nontrivial and very common (pointer math). > > What I really need is an int20_t type in the core of gcc, so I can set > Pmode to *that*, to avoid the SImode stuff completely. But that's a > core change, not a target change.
Sometimes you have to make core changes for a new port. This sounds like something that really should be fixed before this port can go in. Bernd