$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