-/* machine description file for Iris-4D machines. Use with s/iris[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 BIG_ENDIAN iff lowest-numbered byte in a word
+/* Define WORDS_BIG_ENDIAN iff lowest-numbered byte in a word
is the most significant byte. */
-#define BIG_ENDIAN
+#define WORDS_BIG_ENDIAN
/* Define NO_ARG_ARRAY if you cannot take the address of the first of a
* group of arguments and treat it as an array of the arguments. */
#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. */
Define neither one if an assembler-language alloca
in the file alloca.s should be used. */
-#define C_ALLOCA
+/* #define C_ALLOCA */ /* Sjoerd.Mullender@cwi.nl says no need. */
/* #define HAVE_ALLOCA */
/* Define NO_REMAP if memory segmentation makes it not work well
/* This machine requires completely different unexec code
which lives in a separate file. Specify the file name. */
+#ifdef USG5_4
+#undef UNEXEC
+#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,
in which crt1.o and crt1.n should be used. */
#define HAVE_CRTN
-/* When you *do* link with -lbsd, you *still* get System V getpgrp, unless:
- you define _BSD_COMPAT, -or- you call `BSDgetpgrp' explicitly.
- Emacs does neither, so it gets SysV getpgrp which wants no arguments. */
-
+#ifndef USG5_4
#ifdef HAVE_CRTN
/* Must define START-FILES so that the linker can find /usr/lib/crt0.o. */
#define START_FILES pre-crt0.o /usr/lib/crt1.o
-#define LIB_STANDARD -lbsd -lc /usr/lib/crtn.o
+#define LIB_STANDARD -lc /usr/lib/crtn.o
#else
#define START_FILES pre-crt0.o /usr/lib/crt0.o
/* The entry-point label (start of text segment) is `start', not `__start'. */
#define DEFAULT_ENTRY_ADDRESS start
-#define LIB_STANDARD -lbsd -lc
+#define LIB_STANDARD -lc
+#endif
#endif
\f
/* Use terminfo instead of termcap. */
/* 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__ */