From: Alastair Bridgewater Date: Tue, 25 Oct 2011 22:39:29 +0000 (-0400) Subject: threads: Thread objects don't need a lowtag. X-Git-Url: http://repo.macrolet.net/gitweb/?a=commitdiff_plain;h=c86681a2f572eb2181c0dd6d2e0b0d4486df1dff;p=sbcl.git threads: Thread objects don't need a lowtag. * It was a cute hack, in a way, to force the existing genesis machinery to produce assembler symbols for thread structure slots. But it's still a hack, and needs to die. And now it can. --- diff --git a/src/compiler/generic/objdef.lisp b/src/compiler/generic/objdef.lisp index ccad11b..79c9051 100644 --- a/src/compiler/generic/objdef.lisp +++ b/src/compiler/generic/objdef.lisp @@ -376,9 +376,7 @@ ;;; 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 ;;; can take care of maintaining Lisp and C versions. -;;; Hence the even-fixnum lowtag just so we don't get odd(sic) numbers -;;; added to the slot offsets -(define-primitive-object (thread :lowtag even-fixnum-lowtag) +(define-primitive-object (thread) ;; no_tls_value_marker is borrowed very briefly at thread startup to ;; pass the address of initial-function into new_thread_trampoline. ;; tls[0] = NO_TLS_VALUE_MARKER_WIDETAG because a the tls index slot