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
mips
types.hh
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2007 MIPS Technologies, Inc.
3
* All rights reserved.
4
*
5
* Redistribution and use in source and binary forms, with or without
6
* modification, are permitted provided that the following conditions are
7
* met: redistributions of source code must retain the above copyright
8
* notice, this list of conditions and the following disclaimer;
9
* redistributions in binary form must reproduce the above copyright
10
* notice, this list of conditions and the following disclaimer in the
11
* documentation and/or other materials provided with the distribution;
12
* neither the name of the copyright holders nor the names of its
13
* contributors may be used to endorse or promote products derived from
14
* this software without specific prior written permission.
15
*
16
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
17
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
18
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
19
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
20
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
21
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
22
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
26
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27
*
28
* Authors: Korey Sewell
29
*/
30
31
#ifndef __ARCH_MIPS_TYPES_HH__
32
#define __ARCH_MIPS_TYPES_HH__
33
34
#include "
arch/generic/types.hh
"
35
#include "
base/types.hh
"
36
37
namespace
MipsISA
38
{
39
40
typedef
uint32_t
MachInst
;
41
typedef
uint64_t
ExtMachInst
;
42
43
typedef
GenericISA::DelaySlotPCState<MachInst>
PCState
;
44
45
//used in FP convert & round function
46
enum
ConvertType
{
47
SINGLE_TO_DOUBLE
,
48
SINGLE_TO_WORD
,
49
SINGLE_TO_LONG
,
50
51
DOUBLE_TO_SINGLE
,
52
DOUBLE_TO_WORD
,
53
DOUBLE_TO_LONG
,
54
55
LONG_TO_SINGLE
,
56
LONG_TO_DOUBLE
,
57
LONG_TO_WORD
,
58
LONG_TO_PS
,
59
60
WORD_TO_SINGLE
,
61
WORD_TO_DOUBLE
,
62
WORD_TO_LONG
,
63
WORD_TO_PS
,
64
65
PL_TO_SINGLE
,
66
PU_TO_SINGLE
67
};
68
69
//used in FP convert & round function
70
enum
RoundMode
{
71
RND_ZERO
,
72
RND_DOWN
,
73
RND_UP
,
74
RND_NEAREST
75
};
76
77
struct
CoreSpecific
{
78
CoreSpecific
()
79
:
CP0_IntCtl_IPTI
(0),
CP0_IntCtl_IPPCI
(0),
CP0_SrsCtl_HSS
(0),
80
CP0_PRId_CompanyOptions
(0),
CP0_PRId_CompanyID
(0),
81
CP0_PRId_ProcessorID
(0),
CP0_PRId_Revision
(0),
82
CP0_EBase_CPUNum
(0),
CP0_Config_BE
(0),
CP0_Config_AT
(0),
83
CP0_Config_AR
(0),
CP0_Config_MT
(0),
CP0_Config_VI
(0),
84
CP0_Config1_M
(0),
CP0_Config1_MMU
(0),
CP0_Config1_IS
(0),
85
CP0_Config1_IL
(0),
CP0_Config1_IA
(0),
CP0_Config1_DS
(0),
86
CP0_Config1_DL
(0),
CP0_Config1_DA
(0),
CP0_Config1_C2
(false),
87
CP0_Config1_MD
(false),
CP0_Config1_PC
(false),
CP0_Config1_WR
(false),
88
CP0_Config1_CA
(false),
CP0_Config1_EP
(false),
CP0_Config1_FP
(false),
89
CP0_Config2_M
(false),
CP0_Config2_TU
(0),
CP0_Config2_TS
(0),
90
CP0_Config2_TL
(0),
CP0_Config2_TA
(0),
CP0_Config2_SU
(0),
91
CP0_Config2_SS
(0),
CP0_Config2_SL
(0),
CP0_Config2_SA
(0),
92
CP0_Config3_M
(false),
CP0_Config3_DSPP
(false),
CP0_Config3_LPA
(false),
93
CP0_Config3_VEIC
(false),
CP0_Config3_VInt
(false),
94
CP0_Config3_SP
(false),
CP0_Config3_MT
(false),
CP0_Config3_SM
(false),
95
CP0_Config3_TL
(false),
CP0_WatchHi_M
(false),
CP0_PerfCtr_M
(false),
96
CP0_PerfCtr_W
(false),
CP0_PRId
(0),
CP0_Config
(0),
CP0_Config1
(0),
97
CP0_Config2
(0),
CP0_Config3
(0)
98
{ }
99
100
// MIPS CP0 State - First individual variables
101
// Page numbers refer to revision 2.50 (July 2005) of the MIPS32 ARM,
102
// Volume III (PRA)
103
unsigned
CP0_IntCtl_IPTI
;
// Page 93, IP Timer Interrupt
104
unsigned
CP0_IntCtl_IPPCI
;
// Page 94, IP Performance Counter Interrupt
105
unsigned
CP0_SrsCtl_HSS
;
// Page 95, Highest Implemented Shadow Set
106
unsigned
CP0_PRId_CompanyOptions
;
// Page 105, Manufacture options
107
unsigned
CP0_PRId_CompanyID
;
// Page 105, Company ID - (0-255, 1=>MIPS)
108
unsigned
CP0_PRId_ProcessorID
;
// Page 105
109
unsigned
CP0_PRId_Revision
;
// Page 105
110
unsigned
CP0_EBase_CPUNum
;
// Page 106, CPU Number in a multiprocessor
111
//system
112
unsigned
CP0_Config_BE
;
// Page 108, Big/Little Endian mode
113
unsigned
CP0_Config_AT
;
//Page 109
114
unsigned
CP0_Config_AR
;
//Page 109
115
unsigned
CP0_Config_MT
;
//Page 109
116
unsigned
CP0_Config_VI
;
//Page 109
117
unsigned
CP0_Config1_M
;
// Page 110
118
unsigned
CP0_Config1_MMU
;
// Page 110
119
unsigned
CP0_Config1_IS
;
// Page 110
120
unsigned
CP0_Config1_IL
;
// Page 111
121
unsigned
CP0_Config1_IA
;
// Page 111
122
unsigned
CP0_Config1_DS
;
// Page 111
123
unsigned
CP0_Config1_DL
;
// Page 112
124
unsigned
CP0_Config1_DA
;
// Page 112
125
bool
CP0_Config1_C2
;
// Page 112
126
bool
CP0_Config1_MD
;
// Page 112 - Technically not used in MIPS32
127
bool
CP0_Config1_PC
;
// Page 112
128
bool
CP0_Config1_WR
;
// Page 113
129
bool
CP0_Config1_CA
;
// Page 113
130
bool
CP0_Config1_EP
;
// Page 113
131
bool
CP0_Config1_FP
;
// Page 113
132
bool
CP0_Config2_M
;
// Page 114
133
unsigned
CP0_Config2_TU
;
// Page 114
134
unsigned
CP0_Config2_TS
;
// Page 114
135
unsigned
CP0_Config2_TL
;
// Page 115
136
unsigned
CP0_Config2_TA
;
// Page 115
137
unsigned
CP0_Config2_SU
;
// Page 115
138
unsigned
CP0_Config2_SS
;
// Page 115
139
unsigned
CP0_Config2_SL
;
// Page 116
140
unsigned
CP0_Config2_SA
;
// Page 116
141
bool
CP0_Config3_M
;
142
bool
CP0_Config3_DSPP
;
// Page 117
143
bool
CP0_Config3_LPA
;
// Page 117
144
bool
CP0_Config3_VEIC
;
// Page 118
145
bool
CP0_Config3_VInt
;
// Page 118
146
bool
CP0_Config3_SP
;
// Page 118
147
bool
CP0_Config3_MT
;
// Page 119
148
bool
CP0_Config3_SM
;
// Page 119
149
bool
CP0_Config3_TL
;
// Page 119
150
151
bool
CP0_WatchHi_M
;
// Page 124
152
bool
CP0_PerfCtr_M
;
// Page 130
153
bool
CP0_PerfCtr_W
;
// Page 130
154
155
156
// Then, whole registers
157
unsigned
CP0_PRId
;
158
unsigned
CP0_Config
;
159
unsigned
CP0_Config1
;
160
unsigned
CP0_Config2
;
161
unsigned
CP0_Config3
;
162
};
163
164
}
// namespace MipsISA
165
#endif
types.hh
MipsISA::CoreSpecific::CP0_PerfCtr_M
bool CP0_PerfCtr_M
Definition:
types.hh:152
MipsISA::WORD_TO_LONG
Definition:
types.hh:62
MipsISA::CoreSpecific::CP0_PerfCtr_W
bool CP0_PerfCtr_W
Definition:
types.hh:153
MipsISA::CoreSpecific::CP0_Config1_M
unsigned CP0_Config1_M
Definition:
types.hh:117
MipsISA::CoreSpecific::CP0_IntCtl_IPTI
unsigned CP0_IntCtl_IPTI
Definition:
types.hh:103
MipsISA::CoreSpecific::CP0_Config1_WR
bool CP0_Config1_WR
Definition:
types.hh:128
MipsISA::LONG_TO_WORD
Definition:
types.hh:57
MipsISA::RND_UP
Definition:
types.hh:73
MipsISA::CoreSpecific::CP0_EBase_CPUNum
unsigned CP0_EBase_CPUNum
Definition:
types.hh:110
MipsISA::CoreSpecific::CP0_Config3_TL
bool CP0_Config3_TL
Definition:
types.hh:149
MipsISA::CoreSpecific::CP0_Config_AR
unsigned CP0_Config_AR
Definition:
types.hh:114
MipsISA::CoreSpecific::CP0_Config
unsigned CP0_Config
Definition:
types.hh:158
MipsISA::SINGLE_TO_WORD
Definition:
types.hh:48
MipsISA::ExtMachInst
uint64_t ExtMachInst
Definition:
types.hh:41
MipsISA::CoreSpecific::CP0_Config2
unsigned CP0_Config2
Definition:
types.hh:160
MipsISA::CoreSpecific::CoreSpecific
CoreSpecific()
Definition:
types.hh:78
MipsISA::CoreSpecific::CP0_Config2_SS
unsigned CP0_Config2_SS
Definition:
types.hh:138
MipsISA::CoreSpecific::CP0_Config3_LPA
bool CP0_Config3_LPA
Definition:
types.hh:143
MipsISA::CoreSpecific::CP0_Config1_MMU
unsigned CP0_Config1_MMU
Definition:
types.hh:118
MipsISA::CoreSpecific::CP0_Config1_DS
unsigned CP0_Config1_DS
Definition:
types.hh:122
MipsISA::CoreSpecific::CP0_PRId_ProcessorID
unsigned CP0_PRId_ProcessorID
Definition:
types.hh:108
MipsISA::CoreSpecific::CP0_Config1_MD
bool CP0_Config1_MD
Definition:
types.hh:126
MipsISA::CoreSpecific::CP0_Config1_DA
unsigned CP0_Config1_DA
Definition:
types.hh:124
MipsISA::CoreSpecific::CP0_Config3_SP
bool CP0_Config3_SP
Definition:
types.hh:146
MipsISA::CoreSpecific::CP0_Config1_EP
bool CP0_Config1_EP
Definition:
types.hh:130
MipsISA::MachInst
uint32_t MachInst
Definition:
types.hh:40
MipsISA::CoreSpecific::CP0_Config3_VEIC
bool CP0_Config3_VEIC
Definition:
types.hh:144
MipsISA::CoreSpecific::CP0_Config1_FP
bool CP0_Config1_FP
Definition:
types.hh:131
MipsISA::CoreSpecific::CP0_Config2_M
bool CP0_Config2_M
Definition:
types.hh:132
MipsISA::LONG_TO_PS
Definition:
types.hh:58
MipsISA::CoreSpecific::CP0_Config3_DSPP
bool CP0_Config3_DSPP
Definition:
types.hh:142
MipsISA::CoreSpecific::CP0_Config_AT
unsigned CP0_Config_AT
Definition:
types.hh:113
MipsISA::CoreSpecific::CP0_Config3_M
bool CP0_Config3_M
Definition:
types.hh:141
MipsISA::CoreSpecific::CP0_Config1_IS
unsigned CP0_Config1_IS
Definition:
types.hh:119
MipsISA::CoreSpecific::CP0_Config2_TU
unsigned CP0_Config2_TU
Definition:
types.hh:133
MipsISA::CoreSpecific::CP0_Config1_IA
unsigned CP0_Config1_IA
Definition:
types.hh:121
MipsISA::WORD_TO_PS
Definition:
types.hh:63
MipsISA::WORD_TO_SINGLE
Definition:
types.hh:60
MipsISA::CoreSpecific::CP0_PRId_CompanyID
unsigned CP0_PRId_CompanyID
Definition:
types.hh:107
GenericISA::DelaySlotPCState
Definition:
types.hh:294
MipsISA::CoreSpecific::CP0_Config3
unsigned CP0_Config3
Definition:
types.hh:161
MipsISA::CoreSpecific::CP0_Config_VI
unsigned CP0_Config_VI
Definition:
types.hh:116
MipsISA::PU_TO_SINGLE
Definition:
types.hh:66
MipsISA::CoreSpecific::CP0_Config1_IL
unsigned CP0_Config1_IL
Definition:
types.hh:120
MipsISA::CoreSpecific::CP0_Config3_MT
bool CP0_Config3_MT
Definition:
types.hh:147
MipsISA::LONG_TO_SINGLE
Definition:
types.hh:55
MipsISA::CoreSpecific::CP0_Config2_TS
unsigned CP0_Config2_TS
Definition:
types.hh:134
MipsISA::SINGLE_TO_DOUBLE
Definition:
types.hh:47
MipsISA::CoreSpecific::CP0_Config1_CA
bool CP0_Config1_CA
Definition:
types.hh:129
MipsISA::CoreSpecific::CP0_Config2_TL
unsigned CP0_Config2_TL
Definition:
types.hh:135
MipsISA::CoreSpecific::CP0_PRId
unsigned CP0_PRId
Definition:
types.hh:157
MipsISA::SINGLE_TO_LONG
Definition:
types.hh:49
MipsISA::CoreSpecific::CP0_Config2_TA
unsigned CP0_Config2_TA
Definition:
types.hh:136
types.hh
Defines global host-dependent types: Counter, Tick, and (indirectly) {int,uint}{8,16,32,64}_t.
MipsISA::LONG_TO_DOUBLE
Definition:
types.hh:56
MipsISA::WORD_TO_DOUBLE
Definition:
types.hh:61
MipsISA::CoreSpecific::CP0_PRId_CompanyOptions
unsigned CP0_PRId_CompanyOptions
Definition:
types.hh:106
MipsISA::RND_NEAREST
Definition:
types.hh:74
MipsISA::CoreSpecific::CP0_Config1_C2
bool CP0_Config1_C2
Definition:
types.hh:125
MipsISA::CoreSpecific::CP0_Config3_SM
bool CP0_Config3_SM
Definition:
types.hh:148
MipsISA::CoreSpecific::CP0_Config_MT
unsigned CP0_Config_MT
Definition:
types.hh:115
MipsISA::CoreSpecific::CP0_Config1_PC
bool CP0_Config1_PC
Definition:
types.hh:127
MipsISA::CoreSpecific::CP0_Config2_SU
unsigned CP0_Config2_SU
Definition:
types.hh:137
MipsISA::PL_TO_SINGLE
Definition:
types.hh:65
MipsISA::DOUBLE_TO_SINGLE
Definition:
types.hh:51
MipsISA::DOUBLE_TO_WORD
Definition:
types.hh:52
MipsISA::CoreSpecific::CP0_Config_BE
unsigned CP0_Config_BE
Definition:
types.hh:112
MipsISA::CoreSpecific::CP0_PRId_Revision
unsigned CP0_PRId_Revision
Definition:
types.hh:109
MipsISA::CoreSpecific::CP0_IntCtl_IPPCI
unsigned CP0_IntCtl_IPPCI
Definition:
types.hh:104
MipsISA::ConvertType
ConvertType
Definition:
types.hh:46
MipsISA::CoreSpecific
Definition:
types.hh:77
MipsISA::CoreSpecific::CP0_Config1_DL
unsigned CP0_Config1_DL
Definition:
types.hh:123
MipsISA::RoundMode
RoundMode
Definition:
types.hh:70
MipsISA::CoreSpecific::CP0_Config2_SA
unsigned CP0_Config2_SA
Definition:
types.hh:140
MipsISA
Definition:
decoder.cc:33
MipsISA::CoreSpecific::CP0_Config2_SL
unsigned CP0_Config2_SL
Definition:
types.hh:139
MipsISA::PCState
GenericISA::DelaySlotPCState< MachInst > PCState
Definition:
types.hh:43
MipsISA::DOUBLE_TO_LONG
Definition:
types.hh:53
MipsISA::RND_ZERO
Definition:
types.hh:71
MipsISA::CoreSpecific::CP0_WatchHi_M
bool CP0_WatchHi_M
Definition:
types.hh:151
MipsISA::CoreSpecific::CP0_SrsCtl_HSS
unsigned CP0_SrsCtl_HSS
Definition:
types.hh:105
MipsISA::CoreSpecific::CP0_Config1
unsigned CP0_Config1
Definition:
types.hh:159
MipsISA::RND_DOWN
Definition:
types.hh:72
MipsISA::CoreSpecific::CP0_Config3_VInt
bool CP0_Config3_VInt
Definition:
types.hh:145
Generated on Fri Feb 28 2020 16:26:56 for gem5 by
doxygen
1.8.13