> -----Original Message----- > From: Georg-Johann Lay [mailto:a...@gjlay.de] > Sent: 05 July 2013 18:03 > To: Paulo Matos > Cc: gcc@gcc.gnu.org > Subject: Re: Inter register constraints > > > have 64 registers that will give you 22 pairs. I could, of course, > > create all of these by hand by defining 23 classes and define a > > single constraint that matches these classes but I would like to know > > if there's another way. > > What are you trying to achieve? In order so synthesize MOVW > instructions after reload, see respective RTL peepholes. >
Thanks Johann, that seems to be pretty much what I want to do. However when, in avr, there's a HI move of a register pair only the first register shows up in the instruction. So movw r0:r1, r2:r3 is a *movhi: (set (reg:HI r0) (reg:HI r2)) How does gcc know that r1 is going to be clobbered? Is it because GET_MODE_SIZE (HImode) is twice the register size and so it assumed the following register is clobbered as well? (or is there any hook that needs to be set) Paulo Matos