diff --git a/_float-features.lisp b/float-features.lisp index b377c0d..6d56968 100644 --- a/_float-features.lisp +++ b/float-features.lisp @@ -334,6 +334,8 @@ (ext:single-float-to-bits float) #+cmucl (ldb (byte 32 0) (kernel:single-float-bits float)) + #+ecl + (si:single-float-bits float) #+lispworks (let ((v (sys:make-typed-aref-vector 4))) (declare (optimize (speed 3) (float 0) (safety 0))) @@ -344,7 +346,7 @@ (mezzano.extensions:single-float-to-ieee-binary32 float) #+sbcl (ldb (byte 32 0) (sb-kernel:single-float-bits float)) - #-(or abcl allegro ccl clasp cmucl lispworks mezzano sbcl) + #-(or abcl allegro ccl clasp cmucl ecl lispworks mezzano sbcl) (progn float (error "Implementation not supported."))) (declaim (ftype (function (T) (unsigned-byte 64)) double-float-bits)) @@ -364,6 +366,8 @@ (ldb (byte 64 0) (logior (kernel:double-float-low-bits float) (ash (kernel:double-float-high-bits float) 32))) + #+ecl + (si:double-float-bits float) #+lispworks (let ((v (sys:make-typed-aref-vector 8))) (declare (optimize (speed 3) (float 0) (safety 0))) @@ -378,7 +382,7 @@ (ldb (byte 64 0) (logior (sb-kernel:double-float-low-bits float) (ash (sb-kernel:double-float-high-bits float) 32))) - #-(or abcl allegro ccl clasp cmucl lispworks mezzano sbcl) + #-(or abcl allegro ccl clasp cmucl ecl lispworks mezzano sbcl) (progn float (error "Implementation not supported."))) (declaim (ftype (function (T) (unsigned-byte 128)) long-float-bits)) @@ -447,6 +451,8 @@ (flet ((s32 (x) (logior x (- (mask-field (byte 1 31) x))) )) (kernel:make-single-float (s32 bits))) + #+ecl + (si:bits-single-float bits) #+lispworks (let ((v (sys:make-typed-aref-vector 4))) (declare (optimize speed (float 0) (safety 0))) @@ -458,7 +464,7 @@ #+sbcl (sb-kernel:make-single-float (sb-c::mask-signed-field 32 (the (unsigned-byte 32) bits))) - #-(or abcl allegro ccl clasp cmucl lispworks mezzano sbcl) + #-(or abcl allegro ccl clasp cmucl ecl lispworks mezzano sbcl) (progn bits (error "Implementation not supported."))) (declaim (ftype (function (T) double-float) bits-double-float)) @@ -477,6 +483,8 @@ (logior x (- (mask-field (byte 1 31) x))) )) (kernel:make-double-float (s32 (ldb (byte 32 32) bits)) (ldb (byte 32 0) bits))) + #+ecl + (si:bits-double-float bits) #+lispworks (let ((v (sys:make-typed-aref-vector 8))) (declare (optimize speed (float 0) (safety 0))) @@ -491,7 +499,7 @@ (sb-kernel:make-double-float (sb-c::mask-signed-field 32 (ldb (byte 32 32) (the (unsigned-byte 64) bits))) (ldb (byte 32 0) bits)) - #-(or abcl allegro ccl clasp cmucl lispworks mezzano sbcl) + #-(or abcl allegro ccl clasp cmucl ecl lispworks mezzano sbcl) (progn bits (error "Implementation not supported."))) (declaim (ftype (function (T) long-float) bits-long-float))