* {ppc-instructions,igen.c}: More global changes to add model
specific features.
+ * inline.{c,h}: Provide for inlining options.c.
+ * options.{c,h}: Ditto.
+ * std-config.h: Add OPTIONS_INLINE.
+
Tue Nov 14 04:47:25 1995 Michael Meissner <meissner@tiktok.cygnus.com>
* Makefile.in (devices.o, main.o): Update dependency.
#include "model.c"
#endif
+#if OPTIONS_INLINE
+#include "options.c"
+#endif
+
#if FUNCTION_UNIT_INLINE
#include "function_unit.c"
#endif
#define INLINE_MODEL static
#endif
#define STATIC_MODEL static
+#define EXTERN_MODEL static
#endif
#if BITS_INLINE
#endif
#endif
+#if OPTIONS_INLINE
+#if OPTIONS_INLINE == 2
+#define INLINE_OPTIONS static INLINE
+#else
+#define INLINE_OPTIONS static
+#endif
+#endif
+
#endif
return "UNKNOWN";
}
-void
+INLINE_OPTIONS void
print_options (void)
{
#if defined(_GNUC_) && defined(__VERSION__)
printf_filtered ("WITH_HOST_BYTE_ORDER = %s\n", options_byte_order (WITH_HOST_BYTE_ORDER));
printf_filtered ("WITH_TARGET_BYTE_ORDER = %s\n", options_byte_order (WITH_TARGET_BYTE_ORDER));
+ printf_filtered ("WITH_XOR_ENDIAN = %d\n", WITH_XOR_ENDIAN);
printf_filtered ("WITH_BSWAP = %d\n", WITH_BSWAP);
printf_filtered ("WITH_SMP = %d\n", WITH_SMP);
printf_filtered ("WITH_HOST_WORD_BITSIZE = %d\n", WITH_HOST_WORD_BITSIZE);
printf_filtered ("SEMANTICS_INLINE = %d\n", SEMANTICS_INLINE);
printf_filtered ("IDECODE_INLINE = %d\n", IDECODE_INLINE);
printf_filtered ("FUNCTION_UNIT_INLINE = %d\n", FUNCTION_UNIT_INLINE);
+ printf_filtered ("OPTIONS_INLINE = %d\n", FUNCTION_UNIT_INLINE);
#ifdef OPCODE_RULES
printf_filtered ("OPCODE rules = %s\n", OPCODE_RULES);
--- /dev/null
+/* This file is part of the program psim.
+
+ Copyright (C) 1994-1995, Andrew Cagney <cagney@highland.com.au>
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+ */
+
+#ifndef _OPTIONS_H_
+#define _OPTIONS_H_
+
+#ifndef INLINE_OPTIONS
+#define INLINE_OPTIONS
+#endif
+
+INLINE_OPTIONS void print_options (void);
+
+#endif /* _OPTIONS_H_ */
: current_target_byte_order)
+/* PowerPC XOR endian.
+
+ In addition to the above, the simulator can support the PowerPC's
+ horrible XOR endian mode. This feature makes it possible to
+ control the endian mode of a processor using the MSR. */
+
+#ifndef WITH_XOR_ENDIAN
+#define WITH_XOR_ENDIAN 8
+#endif
+
+
/* Intel host BSWAP support:
Whether to use bswap on the 486 and pentiums rather than the 386
/options/smp@<nr-cpu> */
#ifndef WITH_SMP
-#define WITH_SMP 2
+#define WITH_SMP 5
#endif
#if WITH_SMP
#define MAX_NR_PROCESSORS WITH_SMP
/* Your compilers inline reserved word */
#ifndef INLINE
-#if defined(__GNUC__) && defined(__OPTIMIZE__)
+#if defined(__GNUC__) && defined(__OPTIMIZE__) && \
+ (DEFAULT_INLINE || SIM_ENDIAN_INLINE || BITS_INLINE || CPU_INLINE || VM_INLINE || CORE_INLINE \
+ || EVENTS_INLINE || MON_INLINE || INTERRUPTS_INLINE || REGISTERS_INLINE || DEVICE_TREE_INLINE \
+ || DEVICES_INLINE || SPREG_INLINE || SEMANTICS_INLINE || IDECODE_INLINE || MODEL_INLINE \
+ || FUNCTION_UNIT_INLINE)
#define INLINE __inline__
#else
#define INLINE /*inline*/
#define FUNCTION_UNIT_INLINE DEFAULT_INLINE
#endif
+/* Code to print out what options we were compiled with. Because this
+ is called at process startup, it doesn't have to be inlined, but
+ if it isn't brought in and the model routines are inline, the model
+ routines will be pulled in twice. */
+
+#ifndef OPTIONS_INLINE
+#define OPTIONS_INLINE (DEFAULT_INLINE ? 1 : 0)
+#endif
+
#endif /* _CONFIG_H */