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.



      

Reply via email to