40 lines
1.2 KiB
Text
40 lines
1.2 KiB
Text
$NetBSD: patch-bl,v 1.1.1.1 2003/04/11 00:31:45 uebayasi Exp $
|
|
|
|
--- ./src/m/sparc.h.orig Sat Sep 6 11:51:04 1997
|
|
+++ ./src/m/sparc.h Tue Sep 26 12:36:05 2000
|
|
@@ -117,3 +117,35 @@
|
|
#define A_TEXT_SEEK(HDR) (N_TXTOFF (hdr) + sizeof (hdr))
|
|
|
|
#endif /* not __NetBSD__ and not __linux__ and not __OpenBSD__ */
|
|
+
|
|
+#ifdef __arch64__ /* GCC, 64-bit ABI. */
|
|
+#define EMACS_INT long
|
|
+#define BITS_PER_LONG 64
|
|
+#define BITS_PER_EMACS_INT BITS_PER_LONG
|
|
+#define EMACS_UINT unsigned long
|
|
+#define SPECIAL_EMACS_INT
|
|
+
|
|
+/* On the 64 bit architecture, we can use 60 bits for addresses */
|
|
+
|
|
+#define VALBITS 60
|
|
+
|
|
+/* This definition of MARKBIT is necessary because of the comparison of
|
|
+ ARRAY_MARK_FLAG and MARKBIT in an #if in lisp.h, which cpp doesn't like. */
|
|
+
|
|
+#define MARKBIT 0x8000000000000000L
|
|
+
|
|
+/* Define XINT and XUINT so that they can take arguments of type int */
|
|
+
|
|
+#define XINT(a) (((long) (a) << (BITS_PER_LONG - VALBITS)) >> (BITS_PER_LONG - VALBITS))
|
|
+#define XUINT(a) ((long) (a) & VALMASK)
|
|
+
|
|
+/* Define XPNTR to avoid or'ing with DATA_SEG_BITS */
|
|
+
|
|
+#define XPNTR(a) XUINT (a)
|
|
+
|
|
+#define PNTR_COMPARISON_TYPE unsigned long
|
|
+#ifndef _LP64
|
|
+#define _LP64 /* Done on Alpha -- not sure if it
|
|
+ should be here. -- fx */
|
|
+#endif
|
|
+#endif
|