-/* machine description file for Iris-4D machines. Use with s/irix[45]-*.h.
+/* machine description file for Iris-4D machines. Use with s/irix*.h.
Copyright (C) 1987 Free Software Foundation, Inc.
This file is part of GNU Emacs.
You should have received a copy of the GNU General Public License
along with GNU Emacs; see the file COPYING. If not, write to
-the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
+the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA. */
-/* The following three symbols give information on
- the size of various data types. */
-
-#define SHORTBITS 16 /* Number of bits in a short */
-
-#define INTBITS 32 /* Number of bits in an int */
-
-#define LONGBITS 32 /* Number of bits in a long */
-
/* Define WORDS_BIG_ENDIAN iff lowest-numbered byte in a word
is the most significant byte. */
#define NO_UNION_TYPE
/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
- the 24-bit bit field into an int. In other words, if bit fields
+ the bit field into an int. In other words, if bit fields
are always unsigned.
If you use NO_UNION_TYPE, this flag does not matter. */
#ifdef USG5_4
#undef UNEXEC
-#define UNEXEC unexelfsgi.o
+#define UNEXEC unexsgi.o
#else
#define UNEXEC unexmips.o
#endif
#define TEXT_START 0x400000
/*
- * DATA_SEG_BITS forces that bit to be or'd in with any pointers which
- * are trying to access pure strings (as gnu-emacs only allows 24 bits
- * for the value field of a LISP_OBJECT).
+ * DATA_SEG_BITS forces extra bits to be or'd in with any pointers which
+ * were stored in a Lisp_Object (as Emacs uses fewer than 32 bits for
+ * the value field of a LISP_OBJECT).
*/
#define DATA_START 0x10000000
#undef LIBS_MACHINE
/* -lsun in case using Yellow Pages for passwords. */
-#define LIBS_MACHINE -lsun -lmld
+#if defined(__GNUC__) && defined(_ABIN32)
+#define LIBS_MACHINE
+#else
+#define LIBS_MACHINE -lmld
+#endif
#define LIBS_DEBUG
/* Define this if you have a fairly recent system,
/* Define STACK_DIRECTION for alloca.c */
+#undef STACK_DIRECTION
#define STACK_DIRECTION -1
\f
/* The standard definitions of these macros would work ok,
but these are faster because the constants are short. */
-#define XUINT(a) (((unsigned)(a) << INTBITS-VALBITS) >> INTBITS-VALBITS)
+#define XUINT(a) (((unsigned)(a) << BITS_PER_INT-VALBITS) >> BITS_PER_INT-VALBITS)
#define XSET(var, type, ptr) \
- ((var) = ((int)(type) << VALBITS) + (((unsigned) (ptr) << INTBITS-VALBITS) >> INTBITS-VALBITS))
-
-#define XSETINT(a, b) XSET(a, XTYPE(a), b)
-#define XSETUINT(a, b) XSET(a, XTYPE(a), b)
-#define XSETPNTR(a, b) XSET(a, XTYPE(a), b)
+ ((var) = ((int)(type) << VALBITS) + (((unsigned) (ptr) << BITS_PER_INT-VALBITS) >> BITS_PER_INT-VALBITS))
#define XMARKBIT(a) ((a) < 0)
#define XSETMARKBIT(a,b) ((a) = ((a) & ~MARKBIT) | ((b) ? MARKBIT : 0))
-#define XUNMARK(a) ((a) = (((unsigned)(a) << INTBITS-GCTYPEBITS-VALBITS) >> INTBITS-GCTYPEBITS-VALBITS))
+#define XUNMARK(a) ((a) = (((unsigned)(a) << BITS_PER_INT-GCTYPEBITS-VALBITS) >> BITS_PER_INT-GCTYPEBITS-VALBITS))
#ifndef __GNUC__
/* Turn off some "helpful" error checks for type mismatches
that we can't fix without breaking other machines. */
-#define C_SWITCH_MACHINE -cckr
+#ifdef IRIX_FORCE_32_BITS
+#ifdef THIS_IS_MAKEFILE
+#define C_SWITCH_MACHINE -32
#endif
+#endif
+
+#endif /* not __GNUC__ */