From 383861bd08c47a160f54351e6b8519140b9aad8e Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Thu, 21 Jan 2016 21:00:25 -0500 Subject: sim: invert sim_state storage Currently all ports have to declare sim_state themselves in their sim-main.h and then embed the common sim_state_base & sim_cpu in it. This dynamic makes it impossible to share common object code among multiple ports because the core data structure is always different. Let's invert this relationship: common code declares sim_state, and if the port actually needs state on a per-instance basis, it can use the new arch_data field for it. Most ports don't actually use it, so they don't need to declare anything at all. This is the first in a series of changes: it adds a define to select between the old & new layouts, then converts all the ports that don't need custom state over to the new layout. --- sim/m68hc11/ChangeLog | 5 +++++ sim/m68hc11/sim-main.h | 9 ++------- 2 files changed, 7 insertions(+), 7 deletions(-) (limited to 'sim/m68hc11') diff --git a/sim/m68hc11/ChangeLog b/sim/m68hc11/ChangeLog index a070cdd..c8d1177 100644 --- a/sim/m68hc11/ChangeLog +++ b/sim/m68hc11/ChangeLog @@ -1,3 +1,8 @@ +2021-05-17 Mike Frysinger + + * sim-main.h (SIM_HAVE_COMMON_SIM_STATE): Define. + (struct sim_state): Delete. + 2021-05-16 Mike Frysinger * dv-m68hc11.c, dv-m68hc11eepr.c, dv-m68hc11sio.c, dv-m68hc11spi.c, diff --git a/sim/m68hc11/sim-main.h b/sim/m68hc11/sim-main.h index 9b461ff..d72ede1 100644 --- a/sim/m68hc11/sim-main.h +++ b/sim/m68hc11/sim-main.h @@ -20,6 +20,8 @@ along with this program. If not, see . */ #ifndef _SIM_MAIN_H #define _SIM_MAIN_H +#define SIM_HAVE_COMMON_SIM_STATE + #include "sim-basics.h" #include "sim-signal.h" #include "sim-base.h" @@ -560,13 +562,6 @@ extern int m68hc11cpu_clear_oscillator (SIM_DESC sd, const char *port); extern void m68hc11cpu_set_port (struct hw *me, sim_cpu *cpu, unsigned addr, uint8 val); -/* The current state of the processor; registers, memory, etc. */ - -struct sim_state { - sim_cpu *cpu[MAX_NR_PROCESSORS]; - sim_state_base base; -}; - extern void sim_board_reset (SIM_DESC sd); #define PRINT_TIME 0x01 -- cgit v1.1