diff src/lisp-union.h @ 259:11cf20601dec r20-5b28

Import from CVS: tag r20-5b28
author cvs
date Mon, 13 Aug 2007 10:23:02 +0200
parents 78f53ef88e17
children c5d627a313b1
line wrap: on
line diff
--- a/src/lisp-union.h	Mon Aug 13 10:22:10 2007 +0200
+++ b/src/lisp-union.h	Mon Aug 13 10:23:02 2007 +0200
@@ -65,6 +65,16 @@
     unsigned bit: GCTYPEBITS - 1;
 #endif
   } si;
+  struct
+  {
+#if (!!defined (WORDS_BIGENDIAN) != !!defined (LOWTAGS))
+    unsigned bit: GCTYPEBITS - 1;
+#endif
+    unsigned EMACS_INT val: VALBITS + 1;
+#if (!!defined (WORDS_BIGENDIAN) == !!defined (LOWTAGS))
+    unsigned bit: GCTYPEBITS - 1;
+#endif
+  } u_i;
 #endif /* USE_MINIMAL_TAGBITS */
   EMACS_UINT ui;
   EMACS_INT i;
@@ -122,6 +132,12 @@
 #endif /* EXPLICIT_SIGN_EXTEND */
 
 #ifdef USE_MINIMAL_TAGBITS
+# define XUINT(a) ((a).u_i.val)
+#else
+# define XUINT(a) XPNTRVAL(a)
+#endif
+
+#ifdef USE_MINIMAL_TAGBITS
 # define XPNTRVAL(a) ((a).ui)
 # define XCHARVAL(a) ((a).gu.val)
 #else