/* Main header for the Hitachi h8/300 architecture. */
+#include "config.h"
#include "bfd.h"
#ifndef SIM_MAIN_H
/* avolkov:
Next 2 macros are ugly for any workstation, but while they're work.
Memory size MUST be configurable. */
-#define H8300H_MSIZE (1 << 18)
+#define H8300H_MSIZE (1 << 24)
#define H8300S_MSIZE (1 << 24)
#define CSIZE 1024
EXR_REGNUM = 11,
INST_REGNUM = 12,
TICK_REGNUM = 13,
- SBR_REGNUM = 14,
- VBR_REGNUM = 15,
- MACH_REGNUM = 16,
- MACL_REGNUM = 17,
+ MACH_REGNUM = 14,
+ MACL_REGNUM = 15,
+ SBR_REGNUM = 16,
+ VBR_REGNUM = 17,
ZERO_REGNUM = 18
};
};
#include "sim-basics.h"
-
-/* Define sim_cia. */
-typedef unsigned32 sim_cia;
-
#include "sim-base.h"
/* Structure used to describe addressing */
/* The sim_state struct. */
struct sim_state {
- struct _sim_cpu *cpu;
+ sim_cpu *cpu[MAX_NR_PROCESSORS];
unsigned int sim_cache_size;
decoded_inst *sim_cache;
unsigned short *cache_idx;
/* The current state of the processor; registers, memory, etc. */
-#define CIA_GET(CPU) (cpu_get_pc (CPU))
-#define CIA_SET(CPU, VAL) (cpu_set_pc ((CPU), (VAL)))
-#define STATE_CPU(SD, N) ((SD)->cpu) /* Single Processor. */
#define cpu_set_pc(CPU, VAL) (((CPU)->pc) = (VAL))
#define cpu_get_pc(CPU) (((CPU)->pc))
/* Local version of macros for decoding exit status.
(included here rather than try to find target version of wait.h)
*/
-#define SIM_WIFEXITED(V) (((V) & 0xff) == 0)
-#define SIM_WEXITSTATUS(V) ((V) >> 8)
+#define SIM_WIFEXITED(V) (((V) & 0xff) == 0)
+#define SIM_WIFSTOPPED(V) (!SIM_WIFEXITED (V))
+#define SIM_WEXITSTATUS(V) (((V) >> 8) & 0xff)
+#define SIM_WSTOPSIG(V) ((V) & 0x7f)
#endif /* SIM_MAIN_H */