| From 7a09ed68e203a813d88fb7fc6eeb1e92209561a5 Mon Sep 17 00:00:00 2001 |
| From: Mike Frysinger <vapier@gentoo.org> |
| Date: Mon, 8 Aug 2016 13:06:49 +0800 |
| Subject: [PATCH] sim: bfin: split out common mach/model defines into arch.h |
| [PR sim/20438] |
| |
| The current machs.h mixes common enums with Blackfin-specific defines. |
| This causes us troubles with header inclusion order such that we can't |
| drop the old SIM_CPU typedef (which is duplicated in common code). By |
| splitting the two up, we can unwind this dependency chain, and drop the |
| old typedef. It also fixes building with older gcc versions. |
| |
| [Romain: backport from gdb 7.12] |
| Signed-off-by: Romain Naour <romain.naour@gmail.com> |
| |
| --- |
| sim/bfin/ChangeLog | 9 +++++++++ |
| sim/bfin/arch.h | 44 ++++++++++++++++++++++++++++++++++++++++++++ |
| sim/bfin/machs.h | 20 -------------------- |
| sim/bfin/sim-main.h | 8 ++------ |
| 4 files changed, 55 insertions(+), 26 deletions(-) |
| create mode 100644 sim/bfin/arch.h |
| |
| diff --git a/sim/bfin/ChangeLog b/sim/bfin/ChangeLog |
| index 3dea7c9..a995436 100644 |
| --- a/sim/bfin/ChangeLog |
| +++ b/sim/bfin/ChangeLog |
| @@ -1,3 +1,12 @@ |
| +2016-08-13 Mike Frysinger <vapier@gentoo.org> |
| + |
| + PR sim/20438 |
| + * machs.h (MODEL_TYPE, MACH_ATTR, BFIN_INSN_*): Move ... |
| + * arch.h: ... to this new header file. |
| + * sim-main.h (SIM_CPU): Delete. |
| + Include arch.h before sim-base.h, and move sim-base.h before |
| + bfin-sim.h. |
| + |
| 2016-01-10 Mike Frysinger <vapier@gentoo.org> |
| |
| * config.in, configure: Regenerate. |
| diff --git a/sim/bfin/arch.h b/sim/bfin/arch.h |
| new file mode 100644 |
| index 0000000..b86d3e9 |
| --- /dev/null |
| +++ b/sim/bfin/arch.h |
| @@ -0,0 +1,44 @@ |
| +/* Simulator for Analog Devices Blackfin processors. |
| + |
| + Copyright (C) 2005-2016 Free Software Foundation, Inc. |
| + Contributed by Analog Devices, Inc. |
| + |
| + This file is part of simulators. |
| + |
| + This program is free software; you can redistribute it and/or modify |
| + it under the terms of the GNU General Public License as published by |
| + the Free Software Foundation; either version 3 of the License, or |
| + (at your option) any later version. |
| + |
| + This program is distributed in the hope that it will be useful, |
| + but WITHOUT ANY WARRANTY; without even the implied warranty of |
| + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| + GNU General Public License for more details. |
| + |
| + You should have received a copy of the GNU General Public License |
| + along with this program. If not, see <http://www.gnu.org/licenses/>. */ |
| + |
| +#ifndef BFIN_ARCH_H |
| +#define BFIN_ARCH_H |
| + |
| +typedef enum model_type { |
| +#define P(n) MODEL_BF##n, |
| +#include "proc_list.def" |
| +#undef P |
| + MODEL_MAX |
| +} MODEL_TYPE; |
| + |
| +typedef enum mach_attr { |
| + MACH_BASE, |
| + MACH_BFIN, |
| + MACH_MAX |
| +} MACH_ATTR; |
| + |
| +enum { |
| +#define I(insn) BFIN_INSN_##insn, |
| +#include "insn_list.def" |
| +#undef I |
| + BFIN_INSN_MAX |
| +}; |
| + |
| +#endif |
| diff --git a/sim/bfin/machs.h b/sim/bfin/machs.h |
| index 0372982..36819ae 100644 |
| --- a/sim/bfin/machs.h |
| +++ b/sim/bfin/machs.h |
| @@ -21,19 +21,6 @@ |
| #ifndef _BFIN_MACHS_H_ |
| #define _BFIN_MACHS_H_ |
| |
| -typedef enum model_type { |
| -#define P(n) MODEL_BF##n, |
| -#include "proc_list.def" |
| -#undef P |
| - MODEL_MAX |
| -} MODEL_TYPE; |
| - |
| -typedef enum mach_attr { |
| - MACH_BASE, |
| - MACH_BFIN, |
| - MACH_MAX |
| -} MACH_ATTR; |
| - |
| #define CPU_MODEL_NUM(cpu) MODEL_NUM (CPU_MODEL (cpu)) |
| |
| /* XXX: Some of this probably belongs in CPU_MODEL. */ |
| @@ -46,13 +33,6 @@ void bfin_model_cpu_init (SIM_DESC, SIM_CPU *); |
| bu32 bfin_model_get_chipid (SIM_DESC); |
| bu32 bfin_model_get_dspid (SIM_DESC); |
| |
| -enum { |
| -#define I(insn) BFIN_INSN_##insn, |
| -#include "insn_list.def" |
| -#undef I |
| - BFIN_INSN_MAX |
| -}; |
| - |
| #define BFIN_COREMMR_CEC_BASE 0xFFE02100 |
| #define BFIN_COREMMR_CEC_SIZE (4 * 5) |
| #define BFIN_COREMMR_CTIMER_BASE 0xFFE03000 |
| diff --git a/sim/bfin/sim-main.h b/sim/bfin/sim-main.h |
| index 51fb87e..34fd153 100644 |
| --- a/sim/bfin/sim-main.h |
| +++ b/sim/bfin/sim-main.h |
| @@ -23,17 +23,13 @@ |
| |
| #include "sim-basics.h" |
| #include "sim-signal.h" |
| - |
| -/* TODO: Delete this. Need to convert bu32/etc... to common sim types |
| - and unwind the bfin-sim.h/machs.h include below first though. */ |
| -typedef struct _sim_cpu SIM_CPU; |
| +#include "arch.h" |
| +#include "sim-base.h" |
| |
| #include "bfin-sim.h" |
| |
| #include "machs.h" |
| |
| -#include "sim-base.h" |
| - |
| struct _sim_cpu { |
| /* ... simulator specific members ... */ |
| struct bfin_cpu_state state; |
| -- |
| 2.9.3 |
| |