summaryrefslogtreecommitdiff
path: root/editors/emacs20/patches/patch-bl
blob: fa7f097ba54aeafc8d842269e4c331c4923d4201 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
$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