gem5
v19.0.0.0
Main Page
Related Pages
Modules
+
Namespaces
Namespace List
+
Namespace Members
+
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
+
Functions
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
+
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
+
Typedefs
a
b
c
d
e
f
g
h
i
m
n
o
p
r
s
t
u
v
w
x
+
Enumerations
a
b
c
d
e
f
i
l
m
o
p
r
s
t
v
x
+
Enumerator
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
z
+
Classes
Class List
Class Index
Class Hierarchy
+
Class Members
+
All
:
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
+
Functions
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
+
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
+
Typedefs
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
y
+
Enumerations
a
b
c
d
e
f
g
h
i
l
m
o
p
r
s
t
u
w
+
Enumerator
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
z
+
Related Functions
:
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
+
Files
File List
+
File Members
+
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
z
+
Functions
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
z
+
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
r
s
t
u
v
z
+
Typedefs
a
b
c
d
e
f
g
h
i
l
m
n
o
p
r
s
t
u
v
w
+
Enumerations
a
b
c
d
e
f
g
i
l
m
o
p
r
s
t
v
w
+
Enumerator
a
b
c
d
e
f
g
h
i
l
m
n
o
p
q
r
s
t
u
v
w
x
+
Macros
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
z
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Modules
Pages
arch
power
isa.hh
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2009 The Regents of The University of Michigan
3
* Copyright (c) 2009 The University of Edinburgh
4
* All rights reserved.
5
*
6
* Redistribution and use in source and binary forms, with or without
7
* modification, are permitted provided that the following conditions are
8
* met: redistributions of source code must retain the above copyright
9
* notice, this list of conditions and the following disclaimer;
10
* redistributions in binary form must reproduce the above copyright
11
* notice, this list of conditions and the following disclaimer in the
12
* documentation and/or other materials provided with the distribution;
13
* neither the name of the copyright holders nor the names of its
14
* contributors may be used to endorse or promote products derived from
15
* this software without specific prior written permission.
16
*
17
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
18
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
19
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
20
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
21
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
22
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
23
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
24
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
25
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
27
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28
*
29
* Authors: Gabe Black
30
* Timothy M. Jones
31
*/
32
33
#ifndef __ARCH_POWER_ISA_HH__
34
#define __ARCH_POWER_ISA_HH__
35
36
#include "
arch/generic/isa.hh
"
37
#include "
arch/power/registers.hh
"
38
#include "
arch/power/types.hh
"
39
#include "
base/logging.hh
"
40
#include "
cpu/reg_class.hh
"
41
#include "
sim/sim_object.hh
"
42
43
struct
PowerISAParams;
44
class
ThreadContext
;
45
class
Checkpoint;
46
class
EventManager
;
47
48
namespace
PowerISA
49
{
50
51
class
ISA
:
public
BaseISA
52
{
53
protected
:
54
RegVal
dummy
;
55
RegVal
miscRegs
[
NumMiscRegs
];
56
57
public
:
58
typedef
PowerISAParams
Params
;
59
60
void
61
clear
()
62
{
63
}
64
65
RegVal
66
readMiscRegNoEffect
(
int
misc_reg)
const
67
{
68
fatal
(
"Power does not currently have any misc regs defined\n"
);
69
return
dummy
;
70
}
71
72
RegVal
73
readMiscReg
(
int
misc_reg,
ThreadContext
*tc)
74
{
75
fatal
(
"Power does not currently have any misc regs defined\n"
);
76
return
dummy
;
77
}
78
79
void
80
setMiscRegNoEffect
(
int
misc_reg,
RegVal
val
)
81
{
82
fatal
(
"Power does not currently have any misc regs defined\n"
);
83
}
84
85
void
86
setMiscReg
(
int
misc_reg,
RegVal
val
,
ThreadContext
*tc)
87
{
88
fatal
(
"Power does not currently have any misc regs defined\n"
);
89
}
90
91
RegId
flattenRegId
(
const
RegId
& regId)
const
{
return
regId; }
92
93
int
94
flattenIntIndex
(
int
reg
)
const
95
{
96
return
reg
;
97
}
98
99
int
100
flattenFloatIndex
(
int
reg
)
const
101
{
102
return
reg
;
103
}
104
105
int
106
flattenVecIndex
(
int
reg
)
const
107
{
108
return
reg
;
109
}
110
111
int
112
flattenVecElemIndex
(
int
reg
)
const
113
{
114
return
reg
;
115
}
116
117
int
118
flattenVecPredIndex
(
int
reg
)
const
119
{
120
return
reg
;
121
}
122
123
// dummy
124
int
125
flattenCCIndex
(
int
reg
)
const
126
{
127
return
reg
;
128
}
129
130
int
131
flattenMiscIndex
(
int
reg
)
const
132
{
133
return
reg
;
134
}
135
136
void
startup
(
ThreadContext
*tc) {}
137
139
using
BaseISA::startup
;
140
141
const
Params *
params
()
const
;
142
143
ISA
(Params *
p
);
144
};
145
146
}
// namespace PowerISA
147
148
#endif // __ARCH_POWER_ISA_HH__
logging.hh
X86ISA::reg
Bitfield< 5, 3 > reg
Definition:
types.hh:89
fatal
#define fatal(...)
This implements a cprintf based fatal() function.
Definition:
logging.hh:175
PowerISA::ISA::flattenIntIndex
int flattenIntIndex(int reg) const
Definition:
isa.hh:94
PowerISA::ISA::Params
PowerISAParams Params
Definition:
isa.hh:58
registers.hh
PowerISA::ISA::clear
void clear()
Definition:
isa.hh:61
RegVal
uint64_t RegVal
Definition:
types.hh:168
PowerISA::ISA::flattenVecPredIndex
int flattenVecPredIndex(int reg) const
Definition:
isa.hh:118
PowerISA::ISA::miscRegs
RegVal miscRegs[NumMiscRegs]
Definition:
isa.hh:55
PowerISA::ISA::startup
void startup(ThreadContext *tc)
Definition:
isa.hh:136
ThreadContext
ThreadContext is the external interface to all thread state for anything outside of the CPU...
Definition:
thread_context.hh:93
PowerISA::ISA::params
const Params * params() const
Definition:
isa.cc:53
PowerISA::ISA::setMiscReg
void setMiscReg(int misc_reg, RegVal val, ThreadContext *tc)
Definition:
isa.hh:86
X86ISA::val
Bitfield< 63 > val
Definition:
misc.hh:771
PowerISA::ISA::dummy
RegVal dummy
Definition:
isa.hh:54
PowerISA::ISA::flattenVecElemIndex
int flattenVecElemIndex(int reg) const
Definition:
isa.hh:112
PowerISA::NumMiscRegs
const int NumMiscRegs
Definition:
registers.hh:81
PowerISA::ISA::flattenRegId
RegId flattenRegId(const RegId ®Id) const
Definition:
isa.hh:91
PowerISA
Definition:
decoder.cc:33
PowerISA::ISA::readMiscRegNoEffect
RegVal readMiscRegNoEffect(int misc_reg) const
Definition:
isa.hh:66
isa.hh
types.hh
PowerISA::ISA::flattenFloatIndex
int flattenFloatIndex(int reg) const
Definition:
isa.hh:100
PowerISA::ISA::setMiscRegNoEffect
void setMiscRegNoEffect(int misc_reg, RegVal val)
Definition:
isa.hh:80
PowerISA::ISA::flattenVecIndex
int flattenVecIndex(int reg) const
Definition:
isa.hh:106
PowerISA::ISA::flattenMiscIndex
int flattenMiscIndex(int reg) const
Definition:
isa.hh:131
sim_object.hh
reg_class.hh
RegId
Register ID: describe an architectural register with its class and index.
Definition:
reg_class.hh:79
BaseISA
Definition:
isa.hh:35
PowerISA::ISA::ISA
ISA(Params *p)
Definition:
isa.cc:47
PowerISA::ISA::flattenCCIndex
int flattenCCIndex(int reg) const
Definition:
isa.hh:125
MipsISA::p
Bitfield< 0 > p
Definition:
pra_constants.hh:325
EventManager
Definition:
eventq.hh:726
PowerISA::ISA::readMiscReg
RegVal readMiscReg(int misc_reg, ThreadContext *tc)
Definition:
isa.hh:73
PowerISA::ISA
Definition:
isa.hh:51
SimObject::startup
virtual void startup()
startup() is the final initialization call before simulation.
Definition:
sim_object.cc:99
Generated on Fri Feb 28 2020 16:26:56 for gem5 by
doxygen
1.8.13