| ; |
| ; floatx.asm |
| ; |
| ; Test hexadecimal floating-point numbers |
| |
| %define Inf __Infinity__ |
| %define NaN __QNaN__ |
| |
| ; 16-bit |
| dw 1.0 |
| dw 0x1.0 |
| dw 2.0 |
| dw 0x2.0 |
| dw 0x1.0p+1 |
| dw 0x1.0p-1 |
| dw 0x0.0 |
| dw 0x1.23456789 |
| dw 0x0.123456789 |
| dw 0x0.0000123456789 |
| dw 0x1.23456789p10 |
| dw 0x1.23456789p+10 |
| dw 0x1.23456789p-10 |
| dw 0x0.123456789p10 |
| dw 0x0.123456789p+10 |
| dw 0x0.123456789abcdef0123456789abcdef012345p-10 |
| dw 0x0.0000123456789 |
| dw 0x0.0000123456789p+10 |
| dw 0x0.0000123456789p-10 |
| dw 0x1.0p-25 ; Underflow |
| dw 0x1.01p-25 ; Rounds to denorm |
| dw 0x1.0p-24 ; Smallest denorm |
| dw 0x1.ffffffffffffffffffffffffffffp-16 ; Rounds to denorm |
| dw 0x1.0p-15 ; Denorm |
| dw 0x1.ffffffffffffffffffffffffffffp-15 ; Rounds to normal |
| dw 0x1.0p-14 ; Smallest non-denorm |
| dw 0x1.0p+15 ; Biggest possible exponent |
| dw 0x1.ffffffffffffffffffffffffffffp+15 ; Rounds to infinity |
| dw Inf ; Infinity |
| dw NaN |
| |
| ; 32-bit |
| dd 1.0 |
| dd 0x1.0 |
| dd 2.0 |
| dd 0x2.0 |
| dd 0x1.0p+1 |
| dd 0x1.0p-1 |
| dd 0x0.0 |
| dd 0x1.23456789 |
| dd 0x0.123456789 |
| dd 0x0.0000123456789 |
| dd 0x1.23456789p10 |
| dd 0x1.23456789p+10 |
| dd 0x1.23456789p-10 |
| dd 0x0.123456789p10 |
| dd 0x0.123456789p+10 |
| dd 0x0.123456789abcdef0123456789abcdef012345p-10 |
| dd 0x0.0000123456789 |
| dd 0x0.0000123456789p+10 |
| dd 0x0.0000123456789p-10 |
| dd 0x123456789.0 |
| dd 0x0000123456789.0 |
| dd 0x123456789.0p+0 |
| dd 0x123456789.0p+64 |
| dd 0x1.0p-150 ; Underflow |
| dd 0x1.01p-150 ; Rounds to denorm |
| dd 0x1.0p-149 ; Smallest denorm |
| dd 0x1.ffffffffffffffffffffffffffffp-128 ; Rounds to denorm |
| dd 0x1.0p-127 ; Denorm |
| dd 0x1.ffffffffffffffffffffffffffffp-127 ; Rounds to normal |
| dd 0x1.0p-126 ; Smallest non-denorm |
| dd 0x1.0p+127 ; Biggest possible exponent |
| dd 0x1.ffffffffffffffffffffffffffffp+127 ; Rounds to infinity |
| dd Inf ; Infinity |
| dd NaN |
| |
| ; 64-bit |
| dq 1.0 |
| dq 0x1.0 |
| dq 2.0 |
| dq 0x2.0 |
| dq 0x1.0p+1 |
| dq 0x1.0p-1 |
| dq 0x0.0 |
| dq 0x1.23456789 |
| dq 0x0.123456789 |
| dq 0x0.0000123456789 |
| dq 0x1.23456789p10 |
| dq 0x1.23456789p+10 |
| dq 0x1.23456789p-10 |
| dq 0x0.123456789p10 |
| dq 0x0.123456789p+10 |
| dq 0x0.123456789abcdef0123456789abcdef012345p-10 |
| dq 0x0.0000123456789 |
| dq 0x0.0000123456789p+10 |
| dq 0x0.0000123456789p-10 |
| dq 0x123456789.0 |
| dq 0x0000123456789.0 |
| dq 0x123456789.0p+0 |
| dq 0x123456789.0p+300 |
| dq 0x1.0p-1075 ; Underflow |
| dq 0x1.01p-1075 ; Rounds to denorm |
| dq 0x1.0p-1074 ; Smallest denorm |
| dq 0x1.ffffffffffffffffffffffffffffp-1024 ; Rounds to denorm |
| dq 0x1.0p-1023 ; Denorm |
| dq 0x1.ffffffffffffffffffffffffffffp-1023 ; Rounds to normal |
| dq 0x1.0p-1022 ; Smallest non-denorm |
| dq 0x1.0p+1023 ; Biggest possible exponent |
| dq 0x1.ffffffffffffffffffffffffffffp+1023 ; Rounds to infinity |
| dq Inf ; Infinity |
| dq NaN |
| |
| ; 80-bit |
| dt 1.0 |
| dt 0x1.0 |
| dt 2.0 |
| dt 0x2.0 |
| dt 0x1.0p+1 |
| dt 0x1.0p-1 |
| dt 0x0.0 |
| dt 0x1.23456789 |
| dt 0x0.123456789 |
| dt 0x0.0000123456789 |
| dt 0x1.23456789p10 |
| dt 0x1.23456789p+10 |
| dt 0x1.23456789p-10 |
| dt 0x0.123456789p10 |
| dt 0x0.123456789p+10 |
| dt 0x0.123456789abcdef0123456789abcdef012345p-10 |
| dt 0x0.0000123456789 |
| dt 0x0.0000123456789p+10 |
| dt 0x0.0000123456789p-10 |
| dt 0x123456789.0 |
| dt 0x0000123456789.0 |
| dt 0x123456789.0p+0 |
| dt 0x123456789.0p+1024 |
| dt 0x1.0p-16446 ; Underflow |
| dt 0x1.01p-16446 ; Rounds to denorm |
| dt 0x1.0p-16445 ; Smallest denorm |
| dt 0x1.ffffffffffffffffffffffffffffp-16384 ; Rounds to denorm |
| dt 0x1.0p-16383 ; Denorm |
| dt 0x1.ffffffffffffffffffffffffffffp-16383 ; Rounds to normal |
| dt 0x1.0p-16382 ; Smallest non-denorm |
| dt 0x1.0p+16383 ; Biggest possible exponent |
| dt 0x1.ffffffffffffffffffffffffffffp+16383 ; Rounds to infinity |
| dt Inf ; Infinity |
| dt NaN |
| |
| ; 128-bit |
| do 1.0 |
| do 0x1.0 |
| do 2.0 |
| do 0x2.0 |
| do 0x1.0p+1 |
| do 0x1.0p-1 |
| do 0x0.0 |
| do 0x1.23456789 |
| do 0x0.123456789 |
| do 0x0.0000123456789 |
| do 0x1.23456789p10 |
| do 0x1.23456789p+10 |
| do 0x1.23456789p-10 |
| do 0x0.123456789p10 |
| do 0x0.123456789p+10 |
| do 0x0.123456789abcdef0123456789abcdef012345p-10 |
| do 0x0.0000123456789 |
| do 0x0.0000123456789p+10 |
| do 0x0.0000123456789p-10 |
| do 0x123456789.0 |
| do 0x0000123456789.0 |
| do 0x123456789.0p+0 |
| do 0x123456789.0p+1024 |
| do 0x1.0p-16495 ; Underflow |
| do 0x1.01p-16495 ; Rounds to denorm |
| do 0x1.0p-16494 ; Smallest denorm |
| do 0x1.ffffffffffffffffffffffffffffffffp-16384 ; Rounds to denorm |
| do 0x1.0p-16383 ; Denorm |
| do 0x1.ffffffffffffffffffffffffffffffffp-16383 ; Rounds to normal |
| do 0x1.0p-16382 ; Smallest non-denorm |
| do 0x1.0p+16383 ; Biggest possible exponent |
| do 0x1.ffffffffffffffffffffffffffffffffp+16383 ; Rounds to infinity |
| do Inf ; Infinity |
| do NaN |
| |
| ; 16-bit |
| dw 1.0 |
| dw 0h1.0 |
| dw 2.0 |
| dw 0h2.0 |
| dw 0h1.0p+1 |
| dw 0h1.0p-1 |
| dw 0h0.0 |
| dw 0h1.23456789 |
| dw 0h0.123456789 |
| dw 0h0.0000123456789 |
| dw 0h1.23456789p10 |
| dw 0h1.23456789p+10 |
| dw 0h1.23456789p-10 |
| dw 0h0.123456789p10 |
| dw 0h0.123456789p+10 |
| dw 0h0.123456789abcdef0123456789abcdef012345p-10 |
| dw 0h0.0000123456789 |
| dw 0h0.0000123456789p+10 |
| dw 0h0.0000123456789p-10 |
| dw 0h1.0p-25 ; Underflow |
| dw 0h1.0p-24 ; Smallest denorm |
| dw 0h1.ffffffffffffffffffffffffffffp-16 ; Rounds to denorm |
| dw 0h1.0p-15 ; Denorm |
| dw 0h1.ffffffffffffffffffffffffffffp-15 ; Rounds to normal |
| dw 0h1.0p-14 ; Smallest non-denorm |
| dw 0h1.0p+15 ; Biggest possible exponent |
| dw 0h1.ffffffffffffffffffffffffffffp+15 ; Rounds to infinity |
| dw Inf ; Infinity |
| dw NaN |
| |
| ; 32-bit |
| dd 1.0 |
| dd 0h1.0 |
| dd 2.0 |
| dd 0h2.0 |
| dd 0h1.0p+1 |
| dd 0h1.0p-1 |
| dd 0h0.0 |
| dd 0h1.23456789 |
| dd 0h0.123456789 |
| dd 0h0.0000123456789 |
| dd 0h1.23456789p10 |
| dd 0h1.23456789p+10 |
| dd 0h1.23456789p-10 |
| dd 0h0.123456789p10 |
| dd 0h0.123456789p+10 |
| dd 0h0.123456789abcdef0123456789abcdef012345p-10 |
| dd 0h0.0000123456789 |
| dd 0h0.0000123456789p+10 |
| dd 0h0.0000123456789p-10 |
| dd 0h123456789.0 |
| dd 0h0000123456789.0 |
| dd 0h123456789.0p+0 |
| dd 0h123456789.0p+64 |
| dd 0h1.0p-150 ; Underflow |
| dd 0h1.0p-149 ; Smallest denorm |
| dd 0h1.ffffffffffffffffffffffffffffp-128 ; Rounds to denorm |
| dd 0h1.0p-127 ; Denorm |
| dd 0h1.ffffffffffffffffffffffffffffp-127 ; Rounds to normal |
| dd 0h1.0p-126 ; Smallest non-denorm |
| dd 0h1.0p+127 ; Biggest possible exponent |
| dd 0h1.ffffffffffffffffffffffffffffp+127 ; Rounds to infinity |
| dd Inf ; Infinity |
| dd NaN |
| |
| ; 64-bit |
| dq 1.0 |
| dq 0h1.0 |
| dq 2.0 |
| dq 0h2.0 |
| dq 0h1.0p+1 |
| dq 0h1.0p-1 |
| dq 0h0.0 |
| dq 0h1.23456789 |
| dq 0h0.123456789 |
| dq 0h0.0000123456789 |
| dq 0h1.23456789p10 |
| dq 0h1.23456789p+10 |
| dq 0h1.23456789p-10 |
| dq 0h0.123456789p10 |
| dq 0h0.123456789p+10 |
| dq 0h0.123456789abcdef0123456789abcdef012345p-10 |
| dq 0h0.0000123456789 |
| dq 0h0.0000123456789p+10 |
| dq 0h0.0000123456789p-10 |
| dq 0h123456789.0 |
| dq 0h0000123456789.0 |
| dq 0h123456789.0p+0 |
| dq 0h123456789.0p+300 |
| dq 0h1.0p-1075 ; Underflow |
| dq 0h1.0p-1074 ; Smallest denorm |
| dq 0h1.ffffffffffffffffffffffffffffp-1024 ; Rounds to denorm |
| dq 0h1.0p-1023 ; Denorm |
| dq 0h1.ffffffffffffffffffffffffffffp-1023 ; Rounds to normal |
| dq 0h1.0p-1022 ; Smallest non-denorm |
| dq 0h1.0p+1023 ; Biggest possible exponent |
| dq 0h1.ffffffffffffffffffffffffffffp+1023 ; Rounds to infinity |
| dq Inf ; Infinity |
| dq NaN |
| |
| ; 80-bit |
| dt 1.0 |
| dt 0h1.0 |
| dt 2.0 |
| dt 0h2.0 |
| dt 0h1.0p+1 |
| dt 0h1.0p-1 |
| dt 0h0.0 |
| dt 0h1.23456789 |
| dt 0h0.123456789 |
| dt 0h0.0000123456789 |
| dt 0h1.23456789p10 |
| dt 0h1.23456789p+10 |
| dt 0h1.23456789p-10 |
| dt 0h0.123456789p10 |
| dt 0h0.123456789p+10 |
| dt 0h0.123456789abcdef0123456789abcdef012345p-10 |
| dt 0h0.0000123456789 |
| dt 0h0.0000123456789p+10 |
| dt 0h0.0000123456789p-10 |
| dt 0h123456789.0 |
| dt 0h0000123456789.0 |
| dt 0h123456789.0p+0 |
| dt 0h123456789.0p+1024 |
| dt 0h1.0p-16446 ; Underflow |
| dt 0h1.0p-16445 ; Smallest denorm |
| dt 0h1.ffffffffffffffffffffffffffffp-16384 ; Rounds to denorm |
| dt 0h1.0p-16383 ; Denorm |
| dt 0h1.ffffffffffffffffffffffffffffp-16383 ; Rounds to normal |
| dt 0h1.0p-16382 ; Smallest non-denorm |
| dt 0h1.0p+16383 ; Biggest possible exponent |
| dt 0h1.ffffffffffffffffffffffffffffp+16383 ; Rounds to infinity |
| dt Inf ; Infinity |
| dt NaN |
| |
| ; 128-bit |
| do 1.0 |
| do 0h1.0 |
| do 2.0 |
| do 0h2.0 |
| do 0h1.0p+1 |
| do 0h1.0p-1 |
| do 0h0.0 |
| do 0h1.23456789 |
| do 0h0.123456789 |
| do 0h0.0000123456789 |
| do 0h1.23456789p10 |
| do 0h1.23456789p+10 |
| do 0h1.23456789p-10 |
| do 0h0.123456789p10 |
| do 0h0.123456789p+10 |
| do 0h0.123456789abcdef0123456789abcdef012345p-10 |
| do 0h0.0000123456789 |
| do 0h0.0000123456789p+10 |
| do 0h0.0000123456789p-10 |
| do 0h123456789.0 |
| do 0h0000123456789.0 |
| do 0h123456789.0p+0 |
| do 0h123456789.0p+1024 |
| do 0h1.0p-16495 ; Underflow |
| do 0h1.0p-16494 ; Smallest denorm |
| do 0h1.ffffffffffffffffffffffffffffffffp-16384 ; Rounds to denorm |
| do 0h1.0p-16383 ; Denorm |
| do 0h1.ffffffffffffffffffffffffffffffffp-16383 ; Rounds to normal |
| do 0h1.0p-16382 ; Smallest non-denorm |
| do 0h1.0p+16383 ; Biggest possible exponent |
| do 0h1.ffffffffffffffffffffffffffffffffp+16383 ; Rounds to infinity |
| do Inf ; Infinity |
| do NaN |
| |
| ; 16-bit |
| dw 1.0 |
| dw $1.0 |
| dw 2.0 |
| dw $2.0 |
| dw $1.0p+1 |
| dw $1.0p-1 |
| dw $0.0 |
| dw $1.23456789 |
| dw $0.123456789 |
| dw $0.0000123456789 |
| dw $1.23456789p10 |
| dw $1.23456789p+10 |
| dw $1.23456789p-10 |
| dw $0.123456789p10 |
| dw $0.123456789p+10 |
| dw $0.123456789abcdef0123456789abcdef012345p-10 |
| dw $0.0000123456789 |
| dw $0.0000123456789p+10 |
| dw $0.0000123456789p-10 |
| dw $1.0p-25 ; Underflow |
| dw $1.0p-24 ; Smallest denorm |
| dw $1.ffffffffffffffffffffffffffffp-16 ; Rounds to denorm |
| dw $1.0p-15 ; Denorm |
| dw $1.ffffffffffffffffffffffffffffp-15 ; Rounds to normal |
| dw $1.0p-14 ; Smallest non-denorm |
| dw $1.0p+15 ; Biggest possible exponent |
| dw $1.ffffffffffffffffffffffffffffp+15 ; Rounds to infinity |
| dw Inf ; Infinity |
| dw NaN |
| |
| ; 32-bit |
| dd 1.0 |
| dd $1.0 |
| dd 2.0 |
| dd $2.0 |
| dd $1.0p+1 |
| dd $1.0p-1 |
| dd $0.0 |
| dd $1.23456789 |
| dd $0.123456789 |
| dd $0.0000123456789 |
| dd $1.23456789p10 |
| dd $1.23456789p+10 |
| dd $1.23456789p-10 |
| dd $0.123456789p10 |
| dd $0.123456789p+10 |
| dd $0.123456789abcdef0123456789abcdef012345p-10 |
| dd $0.0000123456789 |
| dd $0.0000123456789p+10 |
| dd $0.0000123456789p-10 |
| dd $123456789.0 |
| dd $0000123456789.0 |
| dd $123456789.0p+0 |
| dd $123456789.0p+64 |
| dd $1.0p-150 ; Underflow |
| dd $1.0p-149 ; Smallest denorm |
| dd $1.ffffffffffffffffffffffffffffp-128 ; Rounds to denorm |
| dd $1.0p-127 ; Denorm |
| dd $1.ffffffffffffffffffffffffffffp-127 ; Rounds to normal |
| dd $1.0p-126 ; Smallest non-denorm |
| dd $1.0p+127 ; Biggest possible exponent |
| dd $1.ffffffffffffffffffffffffffffp+127 ; Rounds to infinity |
| dd Inf ; Infinity |
| dd NaN |
| |
| ; 64-bit |
| dq 1.0 |
| dq $1.0 |
| dq 2.0 |
| dq $2.0 |
| dq $1.0p+1 |
| dq $1.0p-1 |
| dq $0.0 |
| dq $1.23456789 |
| dq $0.123456789 |
| dq $0.0000123456789 |
| dq $1.23456789p10 |
| dq $1.23456789p+10 |
| dq $1.23456789p-10 |
| dq $0.123456789p10 |
| dq $0.123456789p+10 |
| dq $0.123456789abcdef0123456789abcdef012345p-10 |
| dq $0.0000123456789 |
| dq $0.0000123456789p+10 |
| dq $0.0000123456789p-10 |
| dq $123456789.0 |
| dq $0000123456789.0 |
| dq $123456789.0p+0 |
| dq $123456789.0p+300 |
| dq $1.0p-1075 ; Underflow |
| dq $1.0p-1074 ; Smallest denorm |
| dq $1.ffffffffffffffffffffffffffffp-1024 ; Rounds to denorm |
| dq $1.0p-1023 ; Denorm |
| dq $1.ffffffffffffffffffffffffffffp-1023 ; Rounds to normal |
| dq $1.0p-1022 ; Smallest non-denorm |
| dq $1.0p+1023 ; Biggest possible exponent |
| dq $1.ffffffffffffffffffffffffffffp+1023 ; Rounds to infinity |
| dq Inf ; Infinity |
| dq NaN |
| |
| ; 80-bit |
| dt 1.0 |
| dt $1.0 |
| dt 2.0 |
| dt $2.0 |
| dt $1.0p+1 |
| dt $1.0p-1 |
| dt $0.0 |
| dt $1.23456789 |
| dt $0.123456789 |
| dt $0.0000123456789 |
| dt $1.23456789p10 |
| dt $1.23456789p+10 |
| dt $1.23456789p-10 |
| dt $0.123456789p10 |
| dt $0.123456789p+10 |
| dt $0.123456789abcdef0123456789abcdef012345p-10 |
| dt $0.0000123456789 |
| dt $0.0000123456789p+10 |
| dt $0.0000123456789p-10 |
| dt $123456789.0 |
| dt $0000123456789.0 |
| dt $123456789.0p+0 |
| dt $123456789.0p+1024 |
| dt $1.0p-16446 ; Underflow |
| dt $1.0p-16445 ; Smallest denorm |
| dt $1.ffffffffffffffffffffffffffffp-16384 ; Rounds to denorm |
| dt $1.0p-16383 ; Denorm |
| dt $1.ffffffffffffffffffffffffffffp-16383 ; Rounds to normal |
| dt $1.0p-16382 ; Smallest non-denorm |
| dt $1.0p+16383 ; Biggest possible exponent |
| dt $1.ffffffffffffffffffffffffffffp+16383 ; Rounds to infinity |
| dt Inf ; Infinity |
| dt NaN |
| |
| ; 128-bit |
| do 1.0 |
| do $1.0 |
| do 2.0 |
| do $2.0 |
| do $1.0p+1 |
| do $1.0p-1 |
| do $0.0 |
| do $1.23456789 |
| do $0.123456789 |
| do $0.0000123456789 |
| do $1.23456789p10 |
| do $1.23456789p+10 |
| do $1.23456789p-10 |
| do $0.123456789p10 |
| do $0.123456789p+10 |
| do $0.123456789abcdef0123456789abcdef012345p-10 |
| do $0.0000123456789 |
| do $0.0000123456789p+10 |
| do $0.0000123456789p-10 |
| do $123456789.0 |
| do $0000123456789.0 |
| do $123456789.0p+0 |
| do $123456789.0p+1024 |
| do $1.0p-16495 ; Underflow |
| do $1.0p-16494 ; Smallest denorm |
| do $1.ffffffffffffffffffffffffffffffffp-16384 ; Rounds to denorm |
| do $1.0p-16383 ; Denorm |
| do $1.ffffffffffffffffffffffffffffffffp-16383 ; Rounds to normal |
| do $1.0p-16382 ; Smallest non-denorm |
| do $1.0p+16383 ; Biggest possible exponent |
| do $1.ffffffffffffffffffffffffffffffffp+16383 ; Rounds to infinity |
| do Inf ; Infinity |
| do NaN |