> > m32c has no problem loading a 24-bit register from a 32-bit memory
> > location.
> 
> The only truncsipsi2* alternative part that seems to match is Raa / Sd* .
> Does that mean that Sd* is as good as m?

m32c doesn't use any of the single-character constraints, as they're
too general to pretty much every apply.  Sd ("standard displacement")
is the most popular addressing mode the m32c supports.

> The salient fact here is that there is no register r in A_REGS such
> that HARD_REGNO_MODE_OK (rn, PSImode) && !fixed_regs[rn] is true
> for [ r , r + HARD_REGNO_NREGS (r, PSImode) ) .

If you mean r + HARD_REGNO_NREGS (r, PSImode) - 1, then any of the
A_REGS can hold a PSImode.  Either A0 or A1 can hold a PSImode, but
neither nor both can hold an SImode.

> So, personally, I would welcome a new macro or hook to make the decision
> to reload the inside or the outside of the subreg target-dependent.

It should be easy enough to test for the "this just doesn't work"
cases and choose the other one, though, yes?

Reply via email to