diff options
author | xleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e> | 2013-05-06 08:20:06 +0000 |
---|---|---|
committer | xleroy <xleroy@fca1b0fc-160b-0410-b1d3-a4f43f01ea2e> | 2013-05-06 08:20:06 +0000 |
commit | 9b3388bea495d027aa618118096a8223f6866437 (patch) | |
tree | 3d1b1bf3b1e0af9d094b2b04a2dfbfd7d18d1f58 /runtime/ia32/i64_stod.S | |
parent | b257a6d283f6f5784cb351856b5dbe8c645a1f6f (diff) | |
download | compcert-9b3388bea495d027aa618118096a8223f6866437.tar.gz compcert-9b3388bea495d027aa618118096a8223f6866437.zip |
Support for in64 -> float conversions w/ correct rounding.
git-svn-id: https://yquem.inria.fr/compcert/svn/compcert/trunk@2235 fca1b0fc-160b-0410-b1d3-a4f43f01ea2e
Diffstat (limited to 'runtime/ia32/i64_stod.S')
-rw-r--r-- | runtime/ia32/i64_stod.S | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/runtime/ia32/i64_stod.S b/runtime/ia32/i64_stod.S index 50ac06dd..d020e2fc 100644 --- a/runtime/ia32/i64_stod.S +++ b/runtime/ia32/i64_stod.S @@ -36,10 +36,14 @@ #include "sysdeps.h" -// Conversion signed long -> float +// Conversion signed long -> double-precision float FUNCTION(__i64_stod) fildll 4(%esp) ret + // The result is in extended precision (80 bits) and therefore + // exact (64 bits of mantissa). It will be rounded to double + // precision by the caller, when transferring the result + // to an XMM register or a 64-bit stack slot. ENDFUNCTION(__i64_stod) |