1 /* Moxie Simulator definition.
2 Copyright (C) 2009-2015 Free Software Foundation, Inc.
4 This file is part of GDB, the GNU debugger.
6 This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 3 of the License, or
9 (at your option) any later version.
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with this program. If not, see <http://www.gnu.org/licenses/>. */
22 #include "sim-basics.h"
24 typedef address_word sim_cia
;
26 #define CIA_GET(cpu) saved_state.asregs.pc
27 #define CIA_SET(cpu,val) saved_state.asregs.pc = (val)
29 typedef struct _sim_cpu SIM_CPU
;
46 /* System registers. For sh-dsp this also includes A0 / X0 / X1 / Y0 / Y1
47 which are located in fregs, i.e. strictly speaking, these are
48 out-of-bounds accesses of sregs.i . This wart of the code could be
49 fixed by making fregs part of sregs, and including pc too - to avoid
50 alignment repercussions - but this would cause very onerous union /
51 structure nesting, which would only be managable with anonymous
52 unions and structs. */
61 int fpul
; /* A1 for sh-dsp - but only for movs etc. */
62 int fpscr
; /* dsr for sh-dsp */
76 /* Control registers; on the SH4, ldc / stc is privileged, except when
93 int dbr
; /* debug base register */
94 int sgr
; /* saved gr15 */
95 int ldst
; /* load/store flag (boolean) */
97 int ibcr
; /* sh2a bank control register */
98 int ibnr
; /* sh2a bank number register */
103 unsigned char *insn_end
;
115 int end_of_registers
;
118 #define PROFILE_FREQ 1
119 #define PROFILE_SHIFT 2
121 unsigned short *profile_hist
;
122 unsigned char *memory
;
123 int xyram_select
, xram_start
, yram_start
;
126 unsigned char *xmem_offset
;
127 unsigned char *ymem_offset
;
128 unsigned long bfd_mach
;
129 regstacktype
*regstack
;
134 /* TODO: Move into sim_cpu. */
135 extern saved_state_type saved_state
;
144 sim_cpu
*cpu
[MAX_NR_PROCESSORS
];