On 12 May 2016 at 20:07, Jean-Pierre Flori <jpfl...@gmail.com> wrote:

> Anyway, is there really any reason to superoptimise on Windows itself, why
> not do it on Linux and use it everywhere, does the noise produced by the OS
> really matter?
>

That's the best solution in my opinion.


>
> Ok, the function call ABI is different (Win64 vs system v), so when you
> enter your function some stuff will be on the stack rather than in
> registers, but apart from that, will anything really change?
> Why not go the GMP way which just add some prologue/epilogue to its system
> v function abi assembly implems to deals with the different windows 64 ABI?
>

No this won't work. You must superoptimise with the correct ABI or the
result will be useless for small operands. Alex's idea of writing code to
deliberately put the data in the registers required for the Windows ABI,
then optimise that on Linux is the best, I think.

We basically already did it the way you suggested and it doesn't lead to
the right speedup on Windows.


>
> There might also be functions using longs of different size in their
> input, but are there really any assembly functions eating longs as input?
>

That's not the issue here.


>
> And there is the stack rewinding or structured exception handling stuff
> that also needs to be dealt with but can't it be done around the core
> assembly implems as for dealing with the different function call ABI?
>

I don't know the answer to that. Brian will surely know.

Bill.

-- 
You received this message because you are subscribed to the Google Groups 
"mpir-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to mpir-devel+unsubscr...@googlegroups.com.
To post to this group, send email to mpir-devel@googlegroups.com.
Visit this group at https://groups.google.com/group/mpir-devel.
For more options, visit https://groups.google.com/d/optout.

Reply via email to