| Index: sim/bfin/bfin-sim.h
|
| diff --git a/sim/bfin/bfin-sim.h b/sim/bfin/bfin-sim.h
|
| index 17bcdeb9302d87f0a50a34dbc2526edc19aaf559..9dadcd9d2e9024c72da22db22a15000cf6078789 100644
|
| --- a/sim/bfin/bfin-sim.h
|
| +++ b/sim/bfin/bfin-sim.h
|
| @@ -44,6 +44,13 @@ struct store {
|
| bu32 val;
|
| };
|
|
|
| +enum bfin_parallel_group {
|
| + BFIN_PARALLEL_NONE,
|
| + BFIN_PARALLEL_GROUP0, /* 32bit slot. */
|
| + BFIN_PARALLEL_GROUP1, /* 16bit group1. */
|
| + BFIN_PARALLEL_GROUP2, /* 16bit group2. */
|
| +};
|
| +
|
| /* The KSP/USP handling wrt SP may not follow the hardware exactly (the hw
|
| looks at current mode and uses either SP or USP based on that. We instead
|
| always operate on SP and mirror things in KSP and USP. During a CEC
|
| @@ -78,6 +85,10 @@ struct bfin_cpu_state
|
| /* The pc currently being interpreted in parallel insns. */
|
| bu32 multi_pc;
|
|
|
| + /* Some insns are valid in group1, and others in group2, so we
|
| + need to keep track of the exact slot we're processing. */
|
| + enum bfin_parallel_group group;
|
| +
|
| /* Needed for supporting the DISALGNEXCPT instruction */
|
| int dis_algn_expt;
|
|
|
| @@ -126,6 +137,7 @@ struct bfin_cpu_state
|
| #define EMUDAT_INREG (BFIN_CPU_STATE.emudat[0])
|
| #define EMUDAT_OUTREG (BFIN_CPU_STATE.emudat[1])
|
| #define INSN_LEN (BFIN_CPU_STATE.insn_len)
|
| +#define PARALLEL_GROUP (BFIN_CPU_STATE.group)
|
| #define CYCLE_DELAY (BFIN_CPU_STATE.cycle_delay)
|
| #define DIS_ALGN_EXPT (BFIN_CPU_STATE.dis_algn_expt)
|
|
|
|
|