This commit was generated by cvs2svn to track changes on a CVS vendor
[deliverable/binutils-gdb.git] / sim / i960 / i960.c
CommitLineData
c906108c
SS
1/* i960 simulator support code
2 Copyright (C) 1998 Free Software Foundation, Inc.
3 Contributed by Cygnus Support.
4
5This file is part of GDB, the GNU debugger.
6
7This program is free software; you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published by
9the Free Software Foundation; either version 2, or (at your option)
10any later version.
11
12This program is distributed in the hope that it will be useful,
13but WITHOUT ANY WARRANTY; without even the implied warranty of
14MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15GNU General Public License for more details.
16
17You should have received a copy of the GNU General Public License along
18with this program; if not, write to the Free Software Foundation, Inc.,
1959 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
20
21#define WANT_CPU
22#define WANT_CPU_I960BASE
23
24#include "sim-main.h"
25#include "cgen-mem.h"
26#include "cgen-ops.h"
27
28/* The contents of BUF are in target byte order. */
29
30int
31i960base_fetch_register (SIM_CPU *current_cpu, int rn, unsigned char *buf,
32 int len)
33{
34 if (rn < 32)
35 SETTWI (buf, a_i960_h_gr_get (current_cpu, rn));
36 else
37 switch (rn)
38 {
39 case PC_REGNUM :
40 SETTWI (buf, a_i960_h_pc_get (current_cpu));
41 break;
42 default :
43 return 0;
44 }
45
46 return -1; /*FIXME*/
47
48}
49
50/* The contents of BUF are in target byte order. */
51
52int
53i960base_store_register (SIM_CPU *current_cpu, int rn, unsigned char *buf,
54 int len)
55{
56 if (rn < 32)
57 a_i960_h_gr_set (current_cpu, rn, GETTWI (buf));
58 else
59 switch (rn)
60 {
61 case PC_REGNUM :
62 a_i960_h_pc_set (current_cpu, GETTWI (buf));
63 break;
64 default :
65 return 0;
66 }
67
68 return -1; /*FIXME*/
69}
70\f
71#if WITH_PROFILE_MODEL_P
72
73/* FIXME: Some of these should be inline or macros. Later. */
74
75/* Initialize cycle counting for an insn.
76 FIRST_P is non-zero if this is the first insn in a set of parallel
77 insns. */
78
79void
80i960base_model_insn_before (SIM_CPU *cpu, int first_p)
81{
82}
83
84/* Record the cycles computed for an insn.
85 LAST_P is non-zero if this is the last insn in a set of parallel insns,
86 and we update the total cycle count.
87 CYCLES is the cycle count of the insn. */
88
89void
90i960base_model_insn_after (SIM_CPU *cpu, int last_p, int cycles)
91{
92}
93
94/* Initialize cycle counting for an insn.
95 FIRST_P is non-zero if this is the first insn in a set of parallel
96 insns. */
97
98void
99i960_model_init_insn_cycles (SIM_CPU *cpu, int first_p)
100{
101}
102
103/* Record the cycles computed for an insn.
104 LAST_P is non-zero if this is the last insn in a set of parallel insns,
105 and we update the total cycle count. */
106
107void
108i960_model_update_insn_cycles (SIM_CPU *cpu, int last_p)
109{
110}
111
112void
113i960_model_record_cycles (SIM_CPU *cpu, unsigned long cycles)
114{
115}
116
117void
118i960base_model_mark_get_h_gr (SIM_CPU *cpu, ARGBUF *abuf)
119{
120}
121
122void
123i960base_model_mark_set_h_gr (SIM_CPU *cpu, ARGBUF *abuf)
124{
125}
126
127#endif /* WITH_PROFILE_MODEL_P */
128\f
129int
130i960base_model_i960KA_u_exec (SIM_CPU *cpu, const IDESC *idesc,
131 int unit_num, int referenced)
132{
133 return idesc->timing->units[unit_num].done;
134}
135
136int
137i960base_model_i960CA_u_exec (SIM_CPU *cpu, const IDESC *idesc,
138 int unit_num, int referenced)
139{
140 return idesc->timing->units[unit_num].done;
141}
This page took 0.028806 seconds and 4 git commands to generate.