comparison 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
comparison
equal deleted inserted replaced
258:58424f6abf56 259:11cf20601dec
63 signed EMACS_INT val: VALBITS + 1; 63 signed EMACS_INT val: VALBITS + 1;
64 #if (!!defined (WORDS_BIGENDIAN) == !!defined (LOWTAGS)) 64 #if (!!defined (WORDS_BIGENDIAN) == !!defined (LOWTAGS))
65 unsigned bit: GCTYPEBITS - 1; 65 unsigned bit: GCTYPEBITS - 1;
66 #endif 66 #endif
67 } si; 67 } si;
68 struct
69 {
70 #if (!!defined (WORDS_BIGENDIAN) != !!defined (LOWTAGS))
71 unsigned bit: GCTYPEBITS - 1;
72 #endif
73 unsigned EMACS_INT val: VALBITS + 1;
74 #if (!!defined (WORDS_BIGENDIAN) == !!defined (LOWTAGS))
75 unsigned bit: GCTYPEBITS - 1;
76 #endif
77 } u_i;
68 #endif /* USE_MINIMAL_TAGBITS */ 78 #endif /* USE_MINIMAL_TAGBITS */
69 EMACS_UINT ui; 79 EMACS_UINT ui;
70 EMACS_INT i; 80 EMACS_INT i;
71 /* GCC bites yet again. I fart in the general direction of 81 /* GCC bites yet again. I fart in the general direction of
72 the GCC authors. 82 the GCC authors.
118 # define XREALINT(a) ((a).si.val) 128 # define XREALINT(a) ((a).si.val)
119 #else 129 #else
120 # define XREALINT(a) ((a).s.val) 130 # define XREALINT(a) ((a).s.val)
121 #endif 131 #endif
122 #endif /* EXPLICIT_SIGN_EXTEND */ 132 #endif /* EXPLICIT_SIGN_EXTEND */
133
134 #ifdef USE_MINIMAL_TAGBITS
135 # define XUINT(a) ((a).u_i.val)
136 #else
137 # define XUINT(a) XPNTRVAL(a)
138 #endif
123 139
124 #ifdef USE_MINIMAL_TAGBITS 140 #ifdef USE_MINIMAL_TAGBITS
125 # define XPNTRVAL(a) ((a).ui) 141 # define XPNTRVAL(a) ((a).ui)
126 # define XCHARVAL(a) ((a).gu.val) 142 # define XCHARVAL(a) ((a).gu.val)
127 #else 143 #else