diff options
Diffstat (limited to 'src/lisp.h')
| -rw-r--r-- | src/lisp.h | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/lisp.h b/src/lisp.h index c15e83bd51c..14db66c6793 100644 --- a/src/lisp.h +++ b/src/lisp.h | |||
| @@ -227,7 +227,7 @@ enum enum_USE_LSB_TAG { USE_LSB_TAG = 0 }; | |||
| 227 | 227 | ||
| 228 | /* Lisp integers use 2 tags, to give them one extra bit, thus | 228 | /* Lisp integers use 2 tags, to give them one extra bit, thus |
| 229 | extending their range from, e.g., -2^28..2^28-1 to -2^29..2^29-1. */ | 229 | extending their range from, e.g., -2^28..2^28-1 to -2^29..2^29-1. */ |
| 230 | static EMACS_INT const INTMASK = EMACS_INT_MAX >> (INTTYPEBITS - 1); | 230 | #define INTMASK (EMACS_INT_MAX >> (INTTYPEBITS - 1)) |
| 231 | #define case_Lisp_Int case Lisp_Int0: case Lisp_Int1 | 231 | #define case_Lisp_Int case Lisp_Int0: case Lisp_Int1 |
| 232 | #define LISP_INT_TAG_P(x) (((x) & ~Lisp_Int1) == 0) | 232 | #define LISP_INT_TAG_P(x) (((x) & ~Lisp_Int1) == 0) |
| 233 | 233 | ||
| @@ -1304,6 +1304,14 @@ sxhash_combine (EMACS_UINT x, EMACS_UINT y) | |||
| 1304 | return (x << 4) + (x >> (BITS_PER_EMACS_INT - 4)) + y; | 1304 | return (x << 4) + (x >> (BITS_PER_EMACS_INT - 4)) + y; |
| 1305 | } | 1305 | } |
| 1306 | 1306 | ||
| 1307 | /* Hash X, returning a value that fits into a fixnum. */ | ||
| 1308 | |||
| 1309 | LISP_INLINE EMACS_UINT | ||
| 1310 | SXHASH_REDUCE (EMACS_UINT x) | ||
| 1311 | { | ||
| 1312 | return (x ^ x >> (BITS_PER_EMACS_INT - FIXNUM_BITS)) & INTMASK; | ||
| 1313 | } | ||
| 1314 | |||
| 1307 | /* These structures are used for various misc types. */ | 1315 | /* These structures are used for various misc types. */ |
| 1308 | 1316 | ||
| 1309 | struct Lisp_Misc_Any /* Supertype of all Misc types. */ | 1317 | struct Lisp_Misc_Any /* Supertype of all Misc types. */ |