Better tabselect

David Miller davem at davemloft.net
Fri Apr 12 19:42:51 CEST 2013


From: Torbjorn Granlund <tg at gmplib.org>
Date: Fri, 12 Apr 2013 19:30:42 +0200

> David Miller <davem at davemloft.net> writes:
> 
>   It isn't really conditional execution on sparc, the resources and
>   timing required for the "move" instruction are constant whether the
>   condition matches or not.
>   
> That's not enough.
> 
> It needs to have the same data-dependency behaviour too.
> 
> And it needs to be a documented feature, since it is easy to imagine an
> implementation which does create different data-dependency behaviour,
> even if all current ones do not.
> 
> Using carry seems safer.  Of course, it is conceivable that a
> carry-dependent instruction could run diffferently depending on the
> value of the carry flag, but that'd be quite strange.

Even on a pipeline that dynamically renames the condition codes?
You know, something we've never seen before :-)

> (For generic sparc64 code, we should perhaps avoid movXX for other
> reasons too, since it interacts poorly with loads on US1-2, IIRC.)

Now that's a more solid reason to avoid movcc.


More information about the gmp-devel mailing list