Hi all,

My target architecture has an load multiple instruction requiring a
certain number of consecutive registers. I've been working on handling
this case and trying to convince the local register allocator that he
really does want to try to get those consecutive registers for the
loads. But have been running into certain difficulties.

For example:

a = tab[0];
b = tab[1];
c = tab[2];
d = tab[3];
e = tab[4];

sum = a + b + c + d + e;

I would like to get :

load_multiple tab, r10-r14

and then have r10 linked to a, r11 to b, etc.

Basically, I've worked in the direction of detecting a number of loads
in the block from the same base register or symbol reference. I've got
that detection running and I know in what order I want to associate
the pseudo registers to the hard registers but I can't seem to request
hard registers at that point. I thought I could be playing with the
arrays qty_phys_sugg and qty_phys_copy_sugg but I have trouble
wrapping my mind around what they really represent and how to do that.

Do you have any ideas about how I can achieve this, am I going in the
wrong direction?

Thanks a lot,
Jc

Reply via email to