USE_LSB_TAG. Suggested by Dmitry Antipov <dmantipov@yandex.ru>.
2007-07-10 Stefan Monnier <monnier@iro.umontreal.ca>
+ * alloc.c (mark_maybe_pointer): Enforce mult-of-8 alignment when using
+ USE_LSB_TAG. Suggested by Dmitry Antipov <dmantipov@yandex.ru>.
+
* fns.c (map_char_table): Use an array of int for `indices' rather than
an array of Lisp_Objects (which are only ever integers anyway).
(Fmap_char_table): Update caller.
{
struct mem_node *m;
- /* Quickly rule out some values which can't point to Lisp data. We
- assume that Lisp data is aligned on even addresses. */
- if ((EMACS_INT) p & 1)
+ /* Quickly rule out some values which can't point to Lisp data. */
+ if ((EMACS_INT) p %
+#ifdef USE_LSB_TAG
+ 8 /* USE_LSB_TAG needs Lisp data to be aligned on multiples of 8. */
+#else
+ 2 /* We assume that Lisp data is aligned on even addresses. */
+#endif
+ )
return;
m = mem_find (p);