diff options
Diffstat (limited to 'runtime/ia32/i64_utod.S')
-rw-r--r-- | runtime/ia32/i64_utod.S | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/runtime/ia32/i64_utod.S b/runtime/ia32/i64_utod.S index 7754ef20..428a3b94 100644 --- a/runtime/ia32/i64_utod.S +++ b/runtime/ia32/i64_utod.S @@ -36,7 +36,7 @@ #include "sysdeps.h" -// Conversion unsigned long -> float +// Conversion unsigned long -> double-precision float FUNCTION(__i64_utod) fildll 4(%esp) // convert as if signed @@ -44,6 +44,10 @@ FUNCTION(__i64_utod) jns 1f fadds LC1 // adjust by 2^64 1: 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. .p2align 2 LC1: .long 0x5f800000 // 2^64 in single precision |