60 lines
1.7 KiB
Plaintext
60 lines
1.7 KiB
Plaintext
$OpenBSD: patch-src_m_sparc_h,v 1.1 2002/03/23 18:40:02 pvalchev Exp $
|
|
--- src/m/sparc.h.orig Sat Sep 6 12:51:04 1997
|
|
+++ src/m/sparc.h Sun Mar 17 22:22:25 2002
|
|
@@ -83,9 +83,11 @@ NOTE-END */
|
|
/* Must use the system's termcap, if we use any termcap.
|
|
It does special things. */
|
|
|
|
+#if 0 /* not with OpenBSD 2.4 current */
|
|
#ifndef TERMINFO
|
|
#define LIBS_TERMCAP -ltermcap
|
|
#endif
|
|
+#endif
|
|
|
|
/* Mask for address bits within a memory segment */
|
|
|
|
@@ -117,3 +119,43 @@ NOTE-END */
|
|
#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 BITS_PER_LONG 64
|
|
+#ifdef __sparc64__
|
|
+#define UNEXEC unexelf.o
|
|
+#endif
|
|
+
|
|
+#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
|
|
+
|
|
+#endif
|