[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
master a2eb123fb60 2/2: ; * src/lisp.h: Add Lisp_Object tagging scheme o
From: |
Mattias Engdegård |
Subject: |
master a2eb123fb60 2/2: ; * src/lisp.h: Add Lisp_Object tagging scheme overview |
Date: |
Wed, 21 Feb 2024 09:56:05 -0500 (EST) |
branch: master
commit a2eb123fb606af2a62ad6d0d0162255d7f0601e1
Author: Mattias Engdegård <mattiase@acm.org>
Commit: Mattias Engdegård <mattiase@acm.org>
; * src/lisp.h: Add Lisp_Object tagging scheme overview
---
src/lisp.h | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/src/lisp.h b/src/lisp.h
index db053ba9f70..b02466390f1 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -478,6 +478,16 @@ typedef EMACS_INT Lisp_Word;
#endif
+/* Lisp_Object tagging scheme:
+ Tag location
+ Upper bits Lower bits Type Payload
+ 000....... .......000 symbol offset from lispsym to struct
Lisp_Symbol
+ 001....... .......001 unused
+ 01........ ........10 fixnum signed integer of FIXNUM_BITS
+ 110....... .......011 cons pointer to struct Lisp_Cons
+ 100....... .......100 string pointer to struct Lisp_String
+ 101....... .......101 vectorlike pointer to union vectorlike_header
+ 111....... .......111 float pointer to struct Lisp_Float */
enum Lisp_Type
{
/* Symbol. XSYMBOL (object) points to a struct Lisp_Symbol. */