X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fgeneric%2Fobjdef.lisp;h=ad0b2c9fdcdf638ab7fdfd5380b8174eae0ae72d;hb=9b79c4c51954ffc46c631e56547ac865860e8855;hp=262f4729aba6eb80028172513d839fd1dc40e225;hpb=37d3828773e2f847bb1ed7522b0af4fb8e736fc8;p=sbcl.git diff --git a/src/compiler/generic/objdef.lisp b/src/compiler/generic/objdef.lisp index 262f472..ad0b2c9 100644 --- a/src/compiler/generic/objdef.lisp +++ b/src/compiler/generic/objdef.lisp @@ -282,7 +282,7 @@ (define-primitive-object (binding) value - symbol) + symbol) ;; on sb-thread, this is actually a tls-index (define-primitive-object (unwind-block) (current-uwp :c-type #!-alpha "struct unwind_block *" #!+alpha "u32") @@ -339,7 +339,9 @@ (package :ref-trans symbol-package :set-trans %set-symbol-package :init :null) - #!+sb-thread (tls-index :ref-known (flushable) :ref-trans symbol-tls-index)) + ;; 0 tls-index means no tls-index is allocated + #!+sb-thread + (tls-index :ref-known (flushable) :ref-trans symbol-tls-index)) (define-primitive-object (complex-single-float :lowtag other-pointer-lowtag @@ -358,6 +360,16 @@ (real :c-type "double" :length #!-x86-64 2 #!+x86-64 1) (imag :c-type "double" :length #!-x86-64 2 #!+x86-64 1)) +#!+sb-simd-pack +(define-primitive-object (simd-pack + :lowtag other-pointer-lowtag + :widetag simd-pack-widetag) + (tag :ref-trans %simd-pack-tag + :attributes (movable flushable) + :type fixnum) + (lo-value :c-type "long" :type (unsigned-byte 64)) + (hi-value :c-type "long" :type (unsigned-byte 64))) + ;;; this isn't actually a lisp object at all, it's a c structure that lives ;;; in c-land. However, we need sight of so many parts of it from Lisp that ;;; it makes sense to define it here anyway, so that the GENESIS machinery