From: Paul Khuong Date: Tue, 21 May 2013 19:12:46 +0000 (-0400) Subject: Export SB-SIMD-PACK symbols from SB-EXT X-Git-Url: http://repo.macrolet.net/gitweb/?a=commitdiff_plain;h=d94ff35d497524325658b16ca5a3ac22abdf4e41;p=sbcl.git Export SB-SIMD-PACK symbols from SB-EXT Export the SIMD-PACK type, the SIMD-PACK-P predicate, %make-simd-pack-{ub32,ub64,single,double}, and %simd-pack-{ub32s,ub64s,singles,doubles}. These are far from useful yet, but at least future extensions can work with SB-EXT instead of SB-KERNEL. Also, says so in NEWS. --- diff --git a/NEWS b/NEWS index a7761d0..28f4515 100644 --- a/NEWS +++ b/NEWS @@ -3,6 +3,11 @@ changes relative to sbcl-1.1.7: * notice: The implementation of MAP-ALLOCATED-OBJECTS (the heart of ROOM, plus a few SB-INTROSPECT functions) has been completely rewritten; it may now exhibit different bugs than before. + * new feature: minimal runtime/compiler intrastructure support for SSE + SIMD values, as SB-EXT:SIMD-PACK. Enabled on x86-64 via the build-time + feature :sb-simd-pack. This should enable intrinsics extensions as + libraries, without patching SBCL itself. Thanks to Alexander Gavrilov + for maintaining a branch for so long. * enhancement: RUN-PROGRAM supports a :DIRECTORY argument to set the working directory of the spawned process. (lp#791800) (patch by Matthias Benkard) diff --git a/package-data-list.lisp-expr b/package-data-list.lisp-expr index e6b9b96..abb77ec 100644 --- a/package-data-list.lisp-expr +++ b/package-data-list.lisp-expr @@ -868,7 +868,19 @@ like *STACK-TOP-HINT* and unsupported stuff like *TRACED-FUN-LIST*." ;; timer "TIMER" "MAKE-TIMER" "TIMER-NAME" "TIMER-SCHEDULED-P" - "SCHEDULE-TIMER" "UNSCHEDULE-TIMER" "LIST-ALL-TIMERS")) + "SCHEDULE-TIMER" "UNSCHEDULE-TIMER" "LIST-ALL-TIMERS" + + ;; SIMD pack + #!+sb-simd-pack "SIMD-PACK" + #!+sb-simd-pack "SIMD-PACK-P" + #!+sb-simd-pack "%MAKE-SIMD-PACK-UB32" + #!+sb-simd-pack "%MAKE-SIMD-PACK-UB64" + #!+sb-simd-pack "%MAKE-SIMD-PACK-DOUBLE" + #!+sb-simd-pack "%MAKE-SIMD-PACK-SINGLE" + #!+sb-simd-pack "%SIMD-PACK-UB32S" + #!+sb-simd-pack "%SIMD-PACK-UB64S" + #!+sb-simd-pack "%SIMD-PACK-DOUBLES" + #!+sb-simd-pack "%SIMD-PACK-SINGLES")) #s(sb-cold:package-data :name "SB!FORMAT" @@ -1303,7 +1315,18 @@ integration' (said CMU CL architecture.tex) and that probably was and is a good idea, but see SB-SYS re. blurring of boundaries." :use ("CL" "SB!ALIEN" "SB!ALIEN-INTERNALS" "SB!BIGNUM" "SB!EXT" "SB!FASL" "SB!INT" "SB!SYS" "SB!GRAY") - :reexport ("DEF!STRUCT" "DEF!MACRO") + :reexport ("DEF!STRUCT" + "DEF!MACRO" + #!+sb-simd-pack "SIMD-PACK" + #!+sb-simd-pack "SIMD-PACK-P" + #!+sb-simd-pack "%MAKE-SIMD-PACK-UB32" + #!+sb-simd-pack "%MAKE-SIMD-PACK-UB64" + #!+sb-simd-pack "%MAKE-SIMD-PACK-DOUBLE" + #!+sb-simd-pack "%MAKE-SIMD-PACK-SINGLE" + #!+sb-simd-pack "%SIMD-PACK-UB32S" + #!+sb-simd-pack "%SIMD-PACK-UB64S" + #!+sb-simd-pack "%SIMD-PACK-DOUBLES" + #!+sb-simd-pack "%SIMD-PACK-SINGLES") :export ("%ACOS" "%ACOSH" "%ADJOIN" @@ -1371,10 +1394,6 @@ is a good idea, but see SB-SYS re. blurring of boundaries." "%MAKE-RATIO" "%MAKE-LISP-OBJ" "%MAKE-INSTANCE" #!+sb-simd-pack "%MAKE-SIMD-PACK" - #!+sb-simd-pack "%MAKE-SIMD-PACK-UB32" - #!+sb-simd-pack "%MAKE-SIMD-PACK-UB64" - #!+sb-simd-pack "%MAKE-SIMD-PACK-DOUBLE" - #!+sb-simd-pack "%MAKE-SIMD-PACK-SINGLE" "%MAKE-STRUCTURE-INSTANCE" "%MAKE-STRUCTURE-INSTANCE-ALLOCATOR" "%MAP" "%MAP-TO-SIMPLE-VECTOR-ARITY-1" @@ -1441,10 +1460,6 @@ is a good idea, but see SB-SYS re. blurring of boundaries." #!+sb-simd-pack "%SIMD-PACK-TAG" #!+sb-simd-pack "%SIMD-PACK-LOW" #!+sb-simd-pack "%SIMD-PACK-HIGH" - #!+sb-simd-pack "%SIMD-PACK-UB32S" - #!+sb-simd-pack "%SIMD-PACK-UB64S" - #!+sb-simd-pack "%SIMD-PACK-SINGLES" - #!+sb-simd-pack "%SIMD-PACK-DOUBLES" "%SXHASH-SIMPLE-SUBSTRING" "%TAN" "%TAN-QUICK" "%TANH" "%UNARY-ROUND" "%UNARY-TRUNCATE" @@ -1753,8 +1768,6 @@ is a good idea, but see SB-SYS re. blurring of boundaries." #!+sb-simd-pack "SIMD-PACK-SINGLE" #!+sb-simd-pack "SIMD-PACK-DOUBLE" #!+sb-simd-pack "SIMD-PACK-INT" - #!+sb-simd-pack "SIMD-PACK" - #!+sb-simd-pack "SIMD-PACK-P" #!+sb-simd-pack "SIMD-PACK-TYPE" #!+sb-simd-pack "SIMD-PACK-TYPE-ELEMENT-TYPE" #!+sb-simd-pack "*SIMD-PACK-ELEMENT-TYPES*"