Hi Jeff, Thanks for answer. I managed to make use of an architecture trick which allows me to get the secondary reload via only one intermediary register, but still have some comments to what you wrote me.
> > 1.Is it possible to do the secondary reload via 2 > intermediary registers? > > As far as I can see the insn that implements the > secondary reload has to have 3 operands. > Make the scratch/intermediary register double-sized so that > you get a pair of registers instead of a single register for > the scratch/intermediary. In my case the intermediary registers were from two different register files holding data of different modes. To do what you suggest I would have had to interleave the two register files and introduce a new mode that occupies a pair of regs - one from each of the register files. > > 2. Is it possible that an instruction emitted during > the secondary reload to get reloaded as well? and if yes > how? > Typically you need to ensure that your reload_xxx expanders > generate RTL which does not need further reloading. > This makes handling secondary reloads rather complex in some > cases. I was asking for this because I was not able to do the secondary reload via 2 intermediary registers. Thus I was trying to provide the two registers - the first one via a first secondary reload which was generating two instructions among which one was needing again a secondary reload where I was planing to provide the second register. However the mechanism was not functioning.