summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@zytor.com>2018-11-26 14:59:35 -0800
committerH. Peter Anvin <hpa@zytor.com>2018-11-26 14:59:35 -0800
commit8fa279954c41f73eb7fd8fe3e0bf4a2546916193 (patch)
tree67aeb12948d2896b80c538c130c8062bf612517e
parent88959910d8cc89f922f7ae1b6f82eff1db3c0b19 (diff)
downloadnasm-8fa279954c41f73eb7fd8fe3e0bf4a2546916193.tar.gz
Correctly document the BR 3392368 fix, add test case
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
-rw-r--r--doc/changes.src7
-rw-r--r--test/floatb.asm12
2 files changed, 13 insertions, 6 deletions
diff --git a/doc/changes.src b/doc/changes.src
index c2d3c7d9..a3bd0cc5 100644
--- a/doc/changes.src
+++ b/doc/changes.src
@@ -21,9 +21,10 @@ operator refers to an \c{EXTERN} symbol declared further down in the
code.
\b Fix a corner case in the floating-point code where a
-binary/octal/hexadecimal floating-point constant starting with the
-digit 1 and having at least 33 mantissa bits would sometimes produce
-incorrect results.
+binary/octal/hexadecimal floating-point constant starting with a digit
+for which the upper bit is 1 (1, 4-7, 8-F respectively) and having at
+least 33 mantissa bits would sometimes produce incorrect results for
+the quad-precision format.
\S{cl-2.14} Version 2.14
diff --git a/test/floatb.asm b/test/floatb.asm
index dc0422e0..a4235d08 100644
--- a/test/floatb.asm
+++ b/test/floatb.asm
@@ -5,10 +5,10 @@
;; encoding...
bits 64
-
+
dd 1.1e10
dd 0x5023e9ac ; Should be...
-
+
dd 50.40e9
dd 0x513bc130 ; Should be...
@@ -21,11 +21,17 @@
dt 1.2e28
dq 0x9b18ab5df7180b6c
dw 0x405c
-
+
dt 50.46e25
dq 0xd0b29a67e95dcb60
dw 0x4057
+ do 0xf.ffffff8
+ dt 0xf.ffffff8
+ dq 0xf.ffffff8
+ dd 0xf.ffffff8
+ dw 0xf.ffffff8
+
;; Way too big numbers, should overflow to +Inf
dd 1.0E646456955
dd 1.0E646456956