[Ecls-list] SSE error in build
Alexander Gavrilov
angavrilov at gmail.com
Wed Mar 2 20:40:13 UTC 2011
> ;;; Compiling (DEF-UTILITY NEG-SS ...).
>
> Condition of type: SIMPLE-ERROR
> Cannot externalize object #<SSE -0.0 0.0 0.0 0.0>
> Available restarts:
That's probably because of the change below. SSE packs can currently
only be compiled as static constants, and this really should be the
way they are handled: that negation operation is really supposed
to compile down to one XORPS instruction.
As an alternative, if there is a way to fuse the constant with
the unboxing operation, the unboxed value can probably be represented
as an expression using a couple of C intrinsic functions.
Alexander
Author: Juan Jose Garcia Ripoll <jjgarcia at users.sourceforge.net> 2011-01-23 23:43:37
Do not use static constants when compiling Lisp code other than ECL's core
------------------------------ src/cmp/cmpwt.lsp ------------------------------
index 24eab26..e316dbd 100644
@@ -280,7 +280,9 @@
nil
#-:msvc
;; FIXME! The Microsoft compiler does not allow static initialization of bit fields.
- (unless (or *compiler-constants* (not (listp *static-constants*)))
+ (unless (or *compiler-constants*
+ (not *use-static-constants-p*)
+ (not (listp *static-constants*)))
(let ((record (find object *static-constants* :key #'first :test #'equal)))
(if record
(second record)
More information about the ecl-devel
mailing list