summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGerd Moellmann <gerd@gnu.org>2000-09-26 13:03:24 +0000
committerGerd Moellmann <gerd@gnu.org>2000-09-26 13:03:24 +0000
commitc98863bfb9eb38e1f14a62d2094c2498e51b6cc8 (patch)
tree6e76df5f8cd93cce110b779861b28b687b8d31b0 /src
parent45595e0058df8e75f2bd2a67bf135eb90c35b5f9 (diff)
downloademacs-c98863bfb9eb38e1f14a62d2094c2498e51b6cc8.tar.gz
(XINT) [EXPLICIT_SIGN_EXTEND]: Use BITS_PER_EMACS_INT
instead of BITS_PER_INT. (XINT, XUINT) [NO_UNION_TYPE]: Cast result to EMACS_INT and EMACS_UINT, respectively. (NO_UNION_TYPE) [USE_LISP_UNION_TYPE]: Undefine.
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog10
-rw-r--r--src/lisp.h15
2 files changed, 22 insertions, 3 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 6dcbbbb1ed6..21e3678aef8 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,5 +1,15 @@
2000-09-26 Gerd Moellmann <gerd@gnu.org>
+ * lisp.h (XINT) [EXPLICIT_SIGN_EXTEND]: Use BITS_PER_EMACS_INT
+ instead of BITS_PER_INT.
+ (XINT, XUINT) [NO_UNION_TYPE]: Cast result to EMACS_INT and
+ EMACS_UINT, respectively.
+ (NO_UNION_TYPE) [USE_LISP_UNION_TYPE]: Undefine.
+
+ * m/sparc.h (BITS_PER_EMACS_INT) [__arch64__]: Don't define.
+
+ * unexelf.c (ELFSIZE) [__NetBSD__ && __sparc_v9__]: Define to 64.
+
* window.c (freeze_window_starts): Construct last argument for
foreach_window differently.
diff --git a/src/lisp.h b/src/lisp.h
index f62f83d1152..91fd11eeaec 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -67,6 +67,13 @@ extern void die P_((const char *, const char *, int));
#endif
+/* Used for making sure that Emacs is compilable in all
+ conigurations. */
+
+#ifdef USE_LISP_UNION_TYPE
+#undef NO_UNION_TYPE
+#endif
+
/* Define an Emacs version of "assert", since some system ones are
flaky. */
#ifndef ENABLE_CHECKING
@@ -331,14 +338,15 @@ enum pvec_type
/* Extract the value of a Lisp_Object as a signed integer. */
#ifndef XINT /* Some machines need to do this differently. */
-#define XINT(a) (((a) << (BITS_PER_EMACS_INT-VALBITS)) >> (BITS_PER_EMACS_INT-VALBITS))
+#define XINT(a) ((EMACS_INT) (((a) << (BITS_PER_EMACS_INT - VALBITS)) \
+ >> (BITS_PER_EMACS_INT - VALBITS)))
#endif
/* Extract the value as an unsigned integer. This is a basis
for extracting it as a pointer to a structure in storage. */
#ifndef XUINT
-#define XUINT(a) ((a) & VALMASK)
+#define XUINT(a) ((EMACS_UINT) ((a) & VALMASK))
#endif
#ifndef XPNTR
@@ -419,7 +427,8 @@ extern int pure_size;
#ifdef EXPLICIT_SIGN_EXTEND
/* Make sure we sign-extend; compilers have been known to fail to do so. */
-#define XINT(a) (((a).i << (BITS_PER_INT-VALBITS)) >> (BITS_PER_INT-VALBITS))
+#define XINT(a) (((a).i << (BITS_PER_EMACS_INT - VALBITS)) \
+ >> (BITS_PER_EMACS_INT - VALBITS))
#else
#define XINT(a) ((a).s.val)
#endif /* EXPLICIT_SIGN_EXTEND */