[cmucl-cvs] [git] CMU Common Lisp branch master updated. snapshot-2013-02-5-gb5237ef

Raymond Toy rtoy at common-lisp.net
Tue Feb 19 03:27:54 UTC 2013


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMU Common Lisp".

The branch, master has been updated
       via  b5237efc88c50577986563b7e8f126b95eb6a94e (commit)
      from  d1af0b85c857baaa7bab870b22590b7b44486a7f (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit b5237efc88c50577986563b7e8f126b95eb6a94e
Author: Raymond Toy <toy.raymond at gmail.com>
Date:   Mon Feb 18 19:27:47 2013 -0800

    Add some fixnum contants for x86, as was done for sparc.
    
     code/export.lisp::
     * Export new symbols
    
     compiler/x86/parms.lisp::
     * Define constants for useful the number of lowtag bits and masks and
       the number of fixnum tag bits and masks.

diff --git a/src/code/exports.lisp b/src/code/exports.lisp
index b127c27..3e9631b 100644
--- a/src/code/exports.lisp
+++ b/src/code/exports.lisp
@@ -1136,7 +1136,10 @@
 	   "CHAR-BITS" "CHAR-BYTES"
 	   )
   #+x86
-  (:export "COMPATIBLE-FUNCTION-TYPES-P")
+  (:export "COMPATIBLE-FUNCTION-TYPES-P"
+	   "POSITIVE-FIXNUM-BITS"
+	   "FIXNUM-TAG-BITS"
+	   "FIXNUM-TAG-MASK")
   #+sparc
   (:export "ALLOCATION-TRAP"
 	   "POSITIVE-FIXNUM-BITS"
diff --git a/src/compiler/x86/parms.lisp b/src/compiler/x86/parms.lisp
index 77b04b3..6a643af 100644
--- a/src/compiler/x86/parms.lisp
+++ b/src/compiler/x86/parms.lisp
@@ -75,6 +75,7 @@
 ;;;; Machine Architecture parameters:
 
 (export '(word-bits byte-bits char-bits word-shift word-bytes char-bytes
+	  fixnum-tag-bits fixnum-tag-mask positive-fixnum-bits
 	  float-sign-shift
 
 	  single-float-bias single-float-exponent-byte
@@ -119,6 +120,25 @@
 
 (defconstant word-bytes (/ word-bits byte-bits)
   "Number of bytes in a word.")
+
+(defconstant lowtag-bits 3
+  "Number of bits at the low end of a pointer used for type information.")
+
+(defconstant lowtag-mask (1- (ash 1 lowtag-bits))
+  "Mask to extract the low tag bits from a pointer.")
+  
+(defconstant lowtag-limit (ash 1 lowtag-bits)
+  "Exclusive upper bound on the value of the low tag bits from a
+  pointer.")
+
+(defconstant fixnum-tag-bits (1- lowtag-bits)
+  "Number of tag bits used for a fixnum")
+
+(defconstant fixnum-tag-mask (1- (ash 1 fixnum-tag-bits))
+  "Mask to get the fixnum tag")
+
+(defconstant positive-fixnum-bits (- word-bits fixnum-tag-bits 1)
+  "Maximum number of bits in a positive fixnum")
 ) ; eval-when
 
 (eval-when (compile load eval)

-----------------------------------------------------------------------

Summary of changes:
 src/code/exports.lisp       |    5 ++++-
 src/compiler/x86/parms.lisp |   20 ++++++++++++++++++++
 2 files changed, 24 insertions(+), 1 deletions(-)


hooks/post-receive
-- 
CMU Common Lisp




More information about the cmucl-cvs mailing list