Subject: re: Need sparc openboot reference (fwd)
To: None <eeh@netbsd.org>
From: Kapil Chowksey <kch@kchowksey@hss.hns.com>
List: port-sparc
Date: 01/31/1999 10:26:39
On Saturday, 30 January, Eduardo E. Horvath wrote:

> > Bypass ASI's should be better from the cache standpoint also because
> > using virtual addresses pollutes an on-cpu D$ cache line. Now, we will
> > the hitting the E$ cache.
> 
> No, for H/W registers the sideffect bit in the TTE must be set so it
> bypasses both the D$ and the E$, so cache pollution is not an issue.

Right. I realised that. Of course I was wrong.

> > I think the pointer approach that you mention will hurt gcc's register
> > allocation because the immediate-indexed addressing modes will not be
> > available eg. compiler cannot generate :
> > 
> > 	ldxa	%l2, [%l1 + FOO_OFFSET] ASI_BYPASS
> > 
> > but it will have to do
> > 
> > 	set	FOO_OFFSET, %l3
> > 	ldxa	%l2, [%l1 + %l3] ASI_BYPASS
> 
> Actually, I don't think reg+reg is allowed for ldxa.  You would have to
> do:
> 
> 	add	%l1, FOO_OFFSET, %l3
> 	ldxa	[%l3] ASI_PHYS_NOCACHE, %l2

No. That is allowed. I used it in my TLB miss handlers.