Re: DMD 32 bit Linux code gen now uses XMM for float & double

2019-05-27 Thread Walter Bright via Digitalmars-d-announce

On 5/27/2019 6:46 PM, 9il wrote:

Does DMD still use x87 for float/double on other targets?


Yes - Win32 and FreeBSD32.

We'll see how this goes, and if it's good we can do the rest.


Re: DMD 32 bit Linux code gen now uses XMM for float & double

2019-05-27 Thread 9il via Digitalmars-d-announce

On Tuesday, 28 May 2019 at 01:23:18 UTC, Walter Bright wrote:
32 Bit Linux now uses XMM registers for float and double rather 
than the x87.


This should substantially speed up routine float and double 
processing.
SIMD vector operations, however, are still not support on 32 
bit Linux code

because of issues with 16 byte stack alignment.

This means that generated code will no longer work on older x86 
processors that
do not have XMM registers. If this is an issue, please file a 
bug report.


https://github.com/dlang/dmd/pull/9895

DMD always had that capability, it just wasn't enabled for 
backwards compatibility with older processors.


Thanks a lot. I expect it resolves some ancient issues I had with 
math functions when compiled with DMD.


Does DMD still use x87 for float/double on other targets?


DMD 32 bit Linux code gen now uses XMM for float & double

2019-05-27 Thread Walter Bright via Digitalmars-d-announce

32 Bit Linux now uses XMM registers for float and double rather than the x87.

This should substantially speed up routine float and double processing.
SIMD vector operations, however, are still not support on 32 bit Linux code
because of issues with 16 byte stack alignment.

This means that generated code will no longer work on older x86 processors that
do not have XMM registers. If this is an issue, please file a bug report.

https://github.com/dlang/dmd/pull/9895

DMD always had that capability, it just wasn't enabled for backwards 
compatibility with older processors.