Re: DMD 32 bit Linux code gen now uses XMM for float & double
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
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
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.