summaryrefslogtreecommitdiff
path: root/test/floatb.asm
diff options
context:
space:
mode:
Diffstat (limited to 'test/floatb.asm')
-rw-r--r--test/floatb.asm35
1 files changed, 35 insertions, 0 deletions
diff --git a/test/floatb.asm b/test/floatb.asm
new file mode 100644
index 0000000..dc0422e
--- /dev/null
+++ b/test/floatb.asm
@@ -0,0 +1,35 @@
+;Testname=unoptimized; Arguments=-O0 -fbin -ofloatb.bin; Files=stdout stderr floatb.bin
+;Testname=optimized; Arguments=-Ox -fbin -ofloatb.bin; Files=stdout stderr floatb.bin
+
+ ;; Known problematic floating-point numbers and their proper
+ ;; encoding...
+
+ bits 64
+
+ dd 1.1e10
+ dd 0x5023e9ac ; Should be...
+
+ dd 50.40e9
+ dd 0x513bc130 ; Should be...
+
+ dq 1.4e23
+ dq 0x44bda56a4b0835c0
+
+ dq 50.48e21
+ dq 0x44a5610d7502feae
+
+ dt 1.2e28
+ dq 0x9b18ab5df7180b6c
+ dw 0x405c
+
+ dt 50.46e25
+ dq 0xd0b29a67e95dcb60
+ dw 0x4057
+
+ ;; Way too big numbers, should overflow to +Inf
+ dd 1.0E646456955
+ dd 1.0E646456956
+ dd 1.0E2147483646
+ dd 1.0E2147483647
+ dd 1.0E2147483648
+ dd 1.0E2147483649