emacs-diffs
[Top][All Lists]
Advanced

[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.  */



reply via email to

[Prev in Thread] Current Thread [Next in Thread]