[fpc-devel] Broken frac function in FPC3.1.1 / Windows x86_64
Bart
bartjunk64 at gmail.com
Fri Apr 27 13:42:41 CEST 2018
On Wed, Apr 25, 2018 at 11:04 AM, <info at wolfgang-ehrhardt.de> wrote:
> If you compile and run this 64-bit program on Win 64 you get a crash
And AFAICS your analysis of the cause (see bugtracker) is correct as well.
function fpc_frac_real(d: ValReal) : ValReal;compilerproc; assembler;
nostackframe;
asm
cvttsd2si %xmm0,%rax
{ Windows defines %xmm4 and %xmm5 as first non-parameter volatile registers;
on SYSV systems all are considered as such, so use %xmm4 }
cvtsi2sd %rax,%xmm4
subsd %xmm4,%xmm0
end;
CVTTSD2SI — Convert with Truncation Scalar Double-Precision
Floating-Point Value to Signed Integer
This should not be used to get a ValReal result.
Bart
More information about the fpc-devel
mailing list