diff options
author | Mike Frysinger <vapier@gentoo.org> | 2016-08-12 22:12:41 +0800 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2021-04-12 00:14:32 -0400 |
commit | d5a71b1131778cf2a023855966831eb2457d50d6 (patch) | |
tree | 77243d6b326ca6dfa0ebb60446a9bc518b11617e /sim/common | |
parent | 32d715691aa037f2838b41fa257c2e239d67c134 (diff) | |
download | gdb-d5a71b1131778cf2a023855966831eb2457d50d6.zip gdb-d5a71b1131778cf2a023855966831eb2457d50d6.tar.gz gdb-d5a71b1131778cf2a023855966831eb2457d50d6.tar.bz2 |
sim: cgen: move cgen_cpu_max_extra_bytes logic into the common code
Every arch handles this the same way, so move it to the common code.
This will also make unifying the sim_cpu structure easier.
Diffstat (limited to 'sim/common')
-rw-r--r-- | sim/common/ChangeLog | 9 | ||||
-rw-r--r-- | sim/common/sim-cpu.c | 15 | ||||
-rw-r--r-- | sim/common/sim-cpu.h | 4 |
3 files changed, 21 insertions, 7 deletions
diff --git a/sim/common/ChangeLog b/sim/common/ChangeLog index ca0829c..dd4391e 100644 --- a/sim/common/ChangeLog +++ b/sim/common/ChangeLog @@ -1,3 +1,12 @@ +2021-04-12 Mike Frysinger <vapier@gentoo.org> + + * sim-cpu.c (sim_cpu_alloc_all): Delete 3rd arg. Delete 2nd arg to + sim_cpu_alloc. + (sim_cpu_alloc): Move extra_bytes to local var. Add result of + cgen_cpu_max_extra_bytes. + * sim-cpu.h (sim_cpu_alloc_all): Delete 3rd arg. + (sim_cpu_alloc): Delete 2nd arg. + 2021-04-08 Tom Tromey <tom@tromey.com> * cgen-utils.c (RORQI, ROLQI, RORHI, ROLHI, RORSI, ROLSI): Use diff --git a/sim/common/sim-cpu.c b/sim/common/sim-cpu.c index a00846c..552e48c 100644 --- a/sim/common/sim-cpu.c +++ b/sim/common/sim-cpu.c @@ -23,17 +23,16 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. */ #include "bfd.h" /* Allocate space for all cpus in the simulator. - Space for the cpu must currently exist prior to parsing ARGV. - EXTRA_BYTES is additional space to allocate for the sim_cpu struct. */ + Space for the cpu must currently exist prior to parsing ARGV. */ /* ??? wip. better solution must wait. */ SIM_RC -sim_cpu_alloc_all (SIM_DESC sd, int ncpus, int extra_bytes) +sim_cpu_alloc_all (SIM_DESC sd, int ncpus) { int c; for (c = 0; c < ncpus; ++c) - STATE_CPU (sd, c) = sim_cpu_alloc (sd, extra_bytes); + STATE_CPU (sd, c) = sim_cpu_alloc (sd); return SIM_RC_OK; } @@ -41,8 +40,14 @@ sim_cpu_alloc_all (SIM_DESC sd, int ncpus, int extra_bytes) EXTRA_BYTES is additional space to allocate for the sim_cpu struct. */ sim_cpu * -sim_cpu_alloc (SIM_DESC sd, int extra_bytes) +sim_cpu_alloc (SIM_DESC sd) { + int extra_bytes = 0; + +#ifdef CGEN_ARCH + extra_bytes += cgen_cpu_max_extra_bytes (); +#endif + return zalloc (sizeof (sim_cpu) + extra_bytes); } diff --git a/sim/common/sim-cpu.h b/sim/common/sim-cpu.h index f195a61..7648ba5 100644 --- a/sim/common/sim-cpu.h +++ b/sim/common/sim-cpu.h @@ -123,9 +123,9 @@ typedef struct { } sim_cpu_base; /* Create all cpus. */ -extern SIM_RC sim_cpu_alloc_all (SIM_DESC, int, int); +extern SIM_RC sim_cpu_alloc_all (SIM_DESC, int); /* Create a cpu. */ -extern sim_cpu *sim_cpu_alloc (SIM_DESC, int); +extern sim_cpu *sim_cpu_alloc (SIM_DESC); /* Release resources held by all cpus. */ extern void sim_cpu_free_all (SIM_DESC); /* Release resources held by a cpu. */ |