[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [f-cpu] reg. rotation [Was: New suggestion about call convention]



> > will only use temporary. (I think we need to have some stat about
> > software on RISC CPU. Did somebody know a tool or something for that
> > purpose ?).

> Hmm, some time ago I patched gcc to give me interdependency information.
> The I found http://sourceforge.net/projects/introspector/.
> It might do the job you want.

Interresting, I will look to that.

> > >From my point of view, the idea isn't to use all of them, but  to use
> > > them to

> > reduce memory operation and to reduce pipeline bubble. And I think, but
> > perhaps I am wrong, that store didn't cost anything (only load introduce
> > bubble, from what I remember about whygee LSU).

> this leads me to question, is LSU documented somewhere ? I'd be interested
> to study it but found nothing except some disscussion.

Currently, I think it's only documented in the brain of whygee ;-)

> When I tried to write call to validate my assumptions I found that
> I sometimes need to move bunch of parameters from s? to a?. Like in:

> f(a,b,c) {
>  g(a,b,c); g(a,b,c+1); g(a,b,c+2)
> }

> where you want to save a,b and c as local vars and later move them
> to a?. Would be possible to have unconditional double move which
> would be 2r2w and moe 2 regs at the time ? Like:

> ; t0=addr of g
> store -8,[sp],s0
> store -8,[sp],s1
> store -8,[sp],s2
> store -8,[sp],ra
> dmove a0,a1,s0,s1
> move a2,s2
> jmp t0,ra
> inc s2,a2
> dmove s0,s1,a0,a1
> move a2,s2
> jmp t0,ra
> dmove s0,s1,a0,a1
> .....

dmove syntax will be more like this (if it exist) :
	dmove r2, r1
the behaviour will be :
	r1 = r2
	r1^1 = r2^1
But I don't know if it will possible to implement it, but it's a good idea I 
think.

	Cedric
*************************************************************
To unsubscribe, send an e-mail to majordomo@seul.org with
unsubscribe f-cpu       in the body. http://f-cpu.seul.org/