sim-main.h is special since it is one of the files automatically
included in igen generated files. But this means anything including
sim-main.h might get everything included just for the igen files.
To prevent clashing symbols/defines only include sim-fpu.h,
sim-signal.h, mn10300-sim.h from sim-main.h if it is included
from one of the generated igen C files. Add explicit includes
of mn10300-sim.h, sim-fpu.h and/or sim-signal.h to dv-mn103cpu.c,
interp.c and op_utils.c.
#include "defs.h"
#include "sim-main.h"
+#include "sim-fpu.h"
+#include "sim-signal.h"
#include "hw-main.h"
+#include "mn10300-sim.h"
+
/* DEVICE
#include "bfd.h"
#include "sim-assert.h"
+#include "sim-fpu.h"
#include "sim-signal.h"
+#include "mn10300-sim.h"
+
#include <stdlib.h>
#include <string.h>
#include "sim/callback.h"
#include "sim-main.h"
+#include "sim-fpu.h"
#include "sim-signal.h"
#include "sim-syscall.h"
+#include "mn10300-sim.h"
#define REG0(X) ((X) & 0x3)
#define REG1(X) (((X) & 0xc) >> 2)
/**
* TODO: Move these includes to the igen files that need them.
* This requires extending the igen syntax to support header includes.
+ *
+ * For now only include them in the igen generated support.c,
+ * semantics.c, idecode.c and engine.c files.
*/
+#if defined(SUPPORT_C) \
+ || defined(SEMANTICS_C) \
+ || defined(IDECODE_C) \
+ || defined(ENGINE_C)
#include "sim-fpu.h"
#include "sim-signal.h"
#include "mn10300-sim.h"
+#endif
extern SIM_CORE_SIGNAL_FN mn10300_core_signal;