-mno-sse and -mno-sse2 broken on opteron?
Marcin Dalecki
martin@dalecki.de
Fri Jan 7 12:33:00 GMT 2005
On 2005-01-07, at 00:41, Richard Henderson wrote:
> On Thu, Jan 06, 2005 at 08:44:36PM +0100, Marcin Dalecki wrote:
>> That's a non issue. You simply don't use floating point arithmetics
>> when for kernels.
>
> How naieve you are. The compiler is getting smart enough to use
> SSE for non floating-point applications. While looking at a bug
> the other week, I caught it doing exactly that with a bit of
> kernel code.
Then you are simply using a "different" definition of "floating point
register"
then factual on the architecture at hand.
> If you're not either turning off sse, or saving and restoring all
> sse state on entry to the kernel, then you risk data corruption.
And you are 100% sure the cost of this will be higher then constraining
the
compiler to a defective API? If the compiler is going to use them for
purposes
not associated necessarily with floating point calculations you will
find yourself in
a situation where most of the user space will ask you indirectly to
save those
registers on stack anyway... So what? You will soon give the trick of
lazy
floating point register file saving on context switch factually up and
pay the
penalty of a constrained register file anyway.
More information about the Gcc
mailing list