|
![](/i/fill.gif) |
clipka wrote:
> Thorsten Froehlich <tho### [at] trf de> wrote:
>>> You are looking at the wrong manual. This manual does not tell you how
>>> to do something but what is available.
>> ...
>> I guess it would help if M$ would not call x86-64 "AMD64" in older documents...
>
> I'm not surprised that they did, because that's what the original implementation
> was named...
>
>>
<http://download.microsoft.com/download/5/b/5/5b5bec17-ea71-4653-9539-204a672f11cf/AMD64_PortApp.doc>
>> <http://developer.amd.com/pages/62720069_4.aspx>
>
> I still don't get the point.
x87 is "bad" because the FPU stack architecture (effectively only having two
registers) makes it next to impossible to schedule instructions in a
compiler in any reasonable way. SSE provides eight registers instead,
reducing register pressure and hence making floating-point computations more
efficient.
That is why AMD/MS defined x86-64 to pass floating-point values by SSE
registers. This change enables all kinds of common optimizations the non-x86
world has enjoyed for decades. Of course, all this has nothing to really do
with x86-64, it just happens that as an ABI change was needed, this old
issue has been fixed while also adding 64-bit integer support.
> There is no mention that SSE2 could do the same transcendental functions without
> some additional piece of software, and I wonder whether that will do good to
> performance.
In essence x86 is the only architecture where more than sqrt is still
supported in microcode hardware. Doing this in software is much more
desirable and efficient.
Thorsten
Post a reply to this message
|
![](/i/fill.gif) |