|
![](/i/fill.gif) |
clipka wrote:
> Thorsten Froehlich <tho### [at] trf de> wrote:
>> clipka wrote:
>>> Don't expect all these to be "naive hardware implementation" in the same sense
>>> as, say, an integer addition, shift, bit-wise AND/OR/XOR or whatever.
>> Exactly that is why you ought to be looking at the SSE2/3 floating-point
>> registers and associated hardware support. The x87 FPU is only there for
>> legacy support and rather inefficient.
>
> Hah! Say that again...
>
> SSE3, SSSE3 to SSE4 is rather primitive compared to what the x87 FPU can do -
> except when it comes to bulk add, subtract, multiply or divide. Which is what
> they're designed for: Vectors and matrices. That's why they're called Streaming
> SIMD (= Single Instruction Multiple Data) Extensions.
>
> Search for trigonometric or logarithmic functions - you'll not find any in the
> SSE2 or SSE3 sections. You'll probably find that these still rely on good old
> x87 FPU instructions.
You are looking at the wrong manual. This manual does not tell you how to do
something but what is available. I admit the Intel documentation is not
clear, but x87 usage is deprecated. This is documented for x86-64 mode in OS
vendor information because the x86-64 ABIs even use the SSE registers for
argument passing (no more x87 FPU stack or memory mapped argument passing).
But googling for that information is difficult. One of the top-most useful
links I found was
<http://msdn.microsoft.com/en-us/library/bb147385.aspx#ID0EBEAA> - you will
have to look up the remaining information yourself. I guess AMD might have
more info, as they came up with x86-64.....
Thorsten
Post a reply to this message
|
![](/i/fill.gif) |