From f95f4ed2c4680fea68399691481b277ece11570e Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Wed, 15 Apr 2015 01:22:34 -0400 Subject: sim: cris/frv/h8300/iq2000/lm32/m32r/sh64: standardize cpu state This sets up the sim_state structure and the cpu member to match what we do in most other sims, and what the common code suggests. This is a step to unifying on the sim-cpu.o object. --- sim/h8300/ChangeLog | 7 +++++++ sim/h8300/compile.c | 10 +++++++++- sim/h8300/sim-main.h | 8 ++++++-- 3 files changed, 22 insertions(+), 3 deletions(-) (limited to 'sim/h8300') diff --git a/sim/h8300/ChangeLog b/sim/h8300/ChangeLog index 215a182..1740b3d 100644 --- a/sim/h8300/ChangeLog +++ b/sim/h8300/ChangeLog @@ -1,3 +1,10 @@ +2015-04-15 Mike Frysinger + + * compile.c: Include sim-options.h. + (sim_open): Call sim_cpu_alloc_all instead of sim_cpu_alloc. + * sim-main.h (struct sim_state): Change cpu to an array of pointers. + (STATE_CPU): Handle WITH_SMP. + 2015-04-13 Mike Frysinger * configure: Regenerate. diff --git a/sim/h8300/compile.c b/sim/h8300/compile.c index 2574168..e14c3ab 100644 --- a/sim/h8300/compile.c +++ b/sim/h8300/compile.c @@ -34,6 +34,7 @@ #include "gdb/sim-h8300.h" #include "sys/stat.h" #include "sys/types.h" +#include "sim-options.h" #ifndef SIGTRAP # define SIGTRAP 5 @@ -4886,7 +4887,14 @@ sim_open (SIM_OPEN_KIND kind, sim_cpu *cpu; sd = sim_state_alloc (kind, callback); - sd->cpu = sim_cpu_alloc (sd, 0); + + /* The cpu data is kept in a separately allocated chunk of memory. */ + if (sim_cpu_alloc_all (sd, 1, /*cgen_cpu_max_extra_bytes ()*/0) != SIM_RC_OK) + { + free_state (sd); + return 0; + } + cpu = STATE_CPU (sd, 0); SIM_ASSERT (STATE_MAGIC (sd) == SIM_MAGIC_NUMBER); sim_state_initialize (sd, cpu); diff --git a/sim/h8300/sim-main.h b/sim/h8300/sim-main.h index 964388a..7126fa3 100644 --- a/sim/h8300/sim-main.h +++ b/sim/h8300/sim-main.h @@ -138,7 +138,7 @@ struct _sim_cpu { /* 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; @@ -155,7 +155,11 @@ struct sim_state { #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. */ +#if (WITH_SMP) +#define STATE_CPU(sd,n) ((sd)->cpu[n]) +#else +#define STATE_CPU(sd,n) ((sd)->cpu[0]) +#endif #define cpu_set_pc(CPU, VAL) (((CPU)->pc) = (VAL)) #define cpu_get_pc(CPU) (((CPU)->pc)) -- cgit v1.1 ls-2_30-branch Unnamed repository; edit this file 'description' to name the repository.root
aboutsummaryrefslogtreecommitdiff
blob: cc8783edce301ef5e36ec6b3ca54bf347ed77be4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#! /bin/sh
# mkinstalldirs --- make directory hierarchy
# Author: Noah Friedman <friedman@prep.ai.mit.edu>
# Created: 1993-05-16
# Last modified: 1994-03-25
# Public domain

errstatus=0

for file in ${1+"$@"} ; do 
   set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
   shift

   pathcomp=
   for d in ${1+"$@"} ; do
     pathcomp="$pathcomp$d"
     case "$pathcomp" in
       -* ) pathcomp=./$pathcomp ;;
     esac

     if test ! -d "$pathcomp"; then
        echo "mkdir $pathcomp" 1>&2
        mkdir "$pathcomp" > /dev/null 2>&1 || lasterr=$?
     fi

     if test ! -d "$pathcomp"; then
	errstatus=$lasterr
     fi

     pathcomp="$pathcomp/"
   done
done

exit $errstatus

# mkinstalldirs ends here