From c86681a2f572eb2181c0dd6d2e0b0d4486df1dff Mon Sep 17 00:00:00 2001 From: Alastair Bridgewater Date: Tue, 25 Oct 2011 18:39:29 -0400 Subject: [PATCH] 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. --- src/compiler/generic/objdef.lisp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) 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 -- 1.7.10.4