gem5
[DEVELOP-FOR-23.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
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
l
m
n
o
p
q
r
s
t
u
v
w
x
Enumerations
_
a
b
c
d
e
f
g
h
i
k
l
m
o
p
q
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
y
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
n
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
k
l
m
n
o
p
q
r
s
t
u
v
w
x
Functions
a
b
c
d
e
f
g
h
i
l
m
n
o
p
s
t
v
Variables
a
b
c
d
e
f
g
h
i
l
m
n
o
p
r
s
t
u
v
w
Typedefs
a
b
c
d
g
h
i
l
m
r
s
t
u
w
Enumerations
b
h
i
o
p
Enumerator
h
i
o
Macros
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Modules
Pages
arch
power
regs
int.hh
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2009 The University of Edinburgh
3
* Copyright (c) 2021 IBM Corporation
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
30
#ifndef __ARCH_POWER_REGS_INT_HH__
31
#define __ARCH_POWER_REGS_INT_HH__
32
33
#include "
cpu/reg_class.hh
"
34
#include "debug/IntRegs.hh"
35
36
namespace
gem5
37
{
38
39
namespace
PowerISA
40
{
41
42
namespace
int_reg
43
{
44
45
enum :
RegIndex
46
{
47
_R0Idx
,
48
_R1Idx
,
49
_R2Idx
,
50
_R3Idx
,
51
_R4Idx
,
52
_R5Idx
,
53
_R6Idx
,
54
_R7Idx
,
55
_R8Idx
,
56
_R9Idx
,
57
_R10Idx
,
58
_R11Idx
,
59
_R12Idx
,
60
_R13Idx
,
61
_R14Idx
,
62
_R15Idx
,
63
_R16Idx
,
64
_R17Idx
,
65
_R18Idx
,
66
_R19Idx
,
67
_R20Idx
,
68
_R21Idx
,
69
_R22Idx
,
70
_R23Idx
,
71
_R24Idx
,
72
_R25Idx
,
73
_R26Idx
,
74
_R27Idx
,
75
_R28Idx
,
76
_R29Idx
,
77
_R30Idx
,
78
_R31Idx
,
79
80
NumArchRegs
,
81
82
_CrIdx
=
NumArchRegs
,
83
_XerIdx
,
84
_LrIdx
,
85
_CtrIdx
,
86
_TarIdx
,
87
_FpscrIdx
,
88
_MsrIdx
,
89
_RsvIdx
,
90
_RsvLenIdx
,
91
_RsvAddrIdx
,
92
93
NumRegs
94
};
95
96
}
// namespace int_reg
97
98
inline
constexpr
RegClass
intRegClass
(
IntRegClass
,
IntRegClassName
,
99
int_reg::NumRegs
, debug::IntRegs);
100
101
namespace
int_reg
102
{
103
104
inline
constexpr
RegId
105
R0
=
intRegClass
[
_R0Idx
],
106
R1
=
intRegClass
[
_R1Idx
],
107
R2
=
intRegClass
[
_R2Idx
],
108
R3
=
intRegClass
[
_R3Idx
],
109
R4
=
intRegClass
[
_R4Idx
],
110
R5
=
intRegClass
[
_R5Idx
],
111
R6
=
intRegClass
[
_R6Idx
],
112
R7
=
intRegClass
[
_R7Idx
],
113
R8
=
intRegClass
[
_R8Idx
],
114
R9
=
intRegClass
[
_R9Idx
],
115
R10
=
intRegClass
[
_R10Idx
],
116
R11
=
intRegClass
[
_R11Idx
],
117
R12
=
intRegClass
[
_R12Idx
],
118
R13
=
intRegClass
[
_R13Idx
],
119
R14
=
intRegClass
[
_R14Idx
],
120
R15
=
intRegClass
[
_R15Idx
],
121
R16
=
intRegClass
[
_R16Idx
],
122
R17
=
intRegClass
[
_R17Idx
],
123
R18
=
intRegClass
[
_R18Idx
],
124
R19
=
intRegClass
[
_R19Idx
],
125
R20
=
intRegClass
[
_R20Idx
],
126
R21
=
intRegClass
[
_R21Idx
],
127
R22
=
intRegClass
[
_R22Idx
],
128
R23
=
intRegClass
[
_R23Idx
],
129
R24
=
intRegClass
[
_R24Idx
],
130
R25
=
intRegClass
[
_R25Idx
],
131
R26
=
intRegClass
[
_R26Idx
],
132
R27
=
intRegClass
[
_R27Idx
],
133
R28
=
intRegClass
[
_R28Idx
],
134
R29
=
intRegClass
[
_R29Idx
],
135
R30
=
intRegClass
[
_R30Idx
],
136
R31
=
intRegClass
[
_R31Idx
],
137
138
Cr
=
intRegClass
[
_CrIdx
],
139
Xer
=
intRegClass
[
_XerIdx
],
140
Lr
=
intRegClass
[
_LrIdx
],
141
Ctr
=
intRegClass
[
_CtrIdx
],
142
Tar
=
intRegClass
[
_TarIdx
],
143
Fpscr
=
intRegClass
[
_FpscrIdx
],
144
Msr
=
intRegClass
[
_MsrIdx
],
145
Rsv
=
intRegClass
[
_RsvIdx
],
146
RsvLen
=
intRegClass
[
_RsvLenIdx
],
147
RsvAddr
=
intRegClass
[
_RsvAddrIdx
];
148
149
}
// namespace int_reg
150
151
// Semantically meaningful register indices
152
inline
constexpr
auto
153
&
ReturnValueReg
=
int_reg::R3
,
154
&
ArgumentReg0
=
int_reg::R3
,
155
&
ArgumentReg1
=
int_reg::R4
,
156
&
ArgumentReg2
=
int_reg::R5
,
157
&
ArgumentReg3
=
int_reg::R6
,
158
&
ArgumentReg4
=
int_reg::R7
,
159
&
ArgumentReg5
=
int_reg::R8
,
160
&
StackPointerReg
=
int_reg::R1
,
161
&
TOCPointerReg
=
int_reg::R2
,
162
&
ThreadPointerReg
=
int_reg::R13
;
163
164
}
// namespace PowerISA
165
}
// namespace gem5
166
167
#endif // __ARCH_POWER_REGS_INT_HH__
gem5::PowerISA::int_reg::NumArchRegs
@ NumArchRegs
Definition:
int.hh:80
gem5::PowerISA::int_reg::_LrIdx
@ _LrIdx
Definition:
int.hh:84
gem5::PowerISA::int_reg::R20
constexpr RegId R20
Definition:
int.hh:125
gem5::PowerISA::int_reg::_R2Idx
@ _R2Idx
Definition:
int.hh:49
gem5::PowerISA::int_reg::R3
constexpr RegId R3
Definition:
int.hh:108
gem5::PowerISA::int_reg::R30
constexpr RegId R30
Definition:
int.hh:135
gem5::PowerISA::ArgumentReg1
constexpr auto & ArgumentReg1
Definition:
int.hh:155
gem5::PowerISA::int_reg::_R1Idx
@ _R1Idx
Definition:
int.hh:48
gem5::PowerISA::int_reg::R10
constexpr RegId R10
Definition:
int.hh:115
gem5::PowerISA::int_reg::_R30Idx
@ _R30Idx
Definition:
int.hh:77
gem5::PowerISA::int_reg::_TarIdx
@ _TarIdx
Definition:
int.hh:86
gem5::PowerISA::int_reg::Fpscr
constexpr RegId Fpscr
Definition:
int.hh:143
gem5::PowerISA::int_reg::R15
constexpr RegId R15
Definition:
int.hh:120
gem5::PowerISA::TOCPointerReg
constexpr auto & TOCPointerReg
Definition:
int.hh:161
gem5::PowerISA::int_reg::R12
constexpr RegId R12
Definition:
int.hh:117
gem5::PowerISA::int_reg::_R31Idx
@ _R31Idx
Definition:
int.hh:78
gem5::PowerISA::int_reg::_R21Idx
@ _R21Idx
Definition:
int.hh:68
gem5::PowerISA::int_reg::_R10Idx
@ _R10Idx
Definition:
int.hh:57
gem5::PowerISA::int_reg::_R27Idx
@ _R27Idx
Definition:
int.hh:74
gem5::PowerISA::int_reg::Tar
constexpr RegId Tar
Definition:
int.hh:142
gem5::PowerISA::ReturnValueReg
constexpr auto & ReturnValueReg
Definition:
int.hh:153
gem5::PowerISA::int_reg::_R24Idx
@ _R24Idx
Definition:
int.hh:71
gem5::PowerISA::ThreadPointerReg
constexpr auto & ThreadPointerReg
Definition:
int.hh:162
gem5::PowerISA::int_reg::_R22Idx
@ _R22Idx
Definition:
int.hh:69
gem5::PowerISA::int_reg::_R19Idx
@ _R19Idx
Definition:
int.hh:66
gem5::PowerISA::int_reg::R21
constexpr RegId R21
Definition:
int.hh:126
gem5::PowerISA::int_reg::R23
constexpr RegId R23
Definition:
int.hh:128
gem5::PowerISA::int_reg::R25
constexpr RegId R25
Definition:
int.hh:130
gem5::PowerISA::int_reg::_R11Idx
@ _R11Idx
Definition:
int.hh:58
gem5::PowerISA::int_reg::NumRegs
@ NumRegs
Definition:
int.hh:93
gem5::PowerISA::int_reg::_R5Idx
@ _R5Idx
Definition:
int.hh:52
gem5::PowerISA::int_reg::R26
constexpr RegId R26
Definition:
int.hh:131
gem5::PowerISA::int_reg::Rsv
constexpr RegId Rsv
Definition:
int.hh:145
gem5::PowerISA::int_reg::R14
constexpr RegId R14
Definition:
int.hh:119
gem5::PowerISA::int_reg::R9
constexpr RegId R9
Definition:
int.hh:114
gem5::PowerISA::int_reg::R8
constexpr RegId R8
Definition:
int.hh:113
gem5::PowerISA::int_reg::_R12Idx
@ _R12Idx
Definition:
int.hh:59
gem5::PowerISA::int_reg::_R3Idx
@ _R3Idx
Definition:
int.hh:50
gem5::PowerISA::int_reg::_RsvIdx
@ _RsvIdx
Definition:
int.hh:89
gem5::PowerISA::int_reg::R16
constexpr RegId R16
Definition:
int.hh:121
gem5::PowerISA::int_reg::R6
constexpr RegId R6
Definition:
int.hh:111
gem5::PowerISA::int_reg::_R17Idx
@ _R17Idx
Definition:
int.hh:64
gem5::PowerISA::int_reg::_R15Idx
@ _R15Idx
Definition:
int.hh:62
gem5::PowerISA::int_reg::_R8Idx
@ _R8Idx
Definition:
int.hh:55
gem5::PowerISA::int_reg::_R26Idx
@ _R26Idx
Definition:
int.hh:73
gem5::PowerISA::intRegClass
constexpr RegClass intRegClass(IntRegClass, IntRegClassName, int_reg::NumRegs, debug::IntRegs)
gem5::PowerISA::ArgumentReg5
constexpr auto & ArgumentReg5
Definition:
int.hh:159
gem5::PowerISA::ArgumentReg3
constexpr auto & ArgumentReg3
Definition:
int.hh:157
gem5::PowerISA::int_reg::R29
constexpr RegId R29
Definition:
int.hh:134
gem5::PowerISA::int_reg::R27
constexpr RegId R27
Definition:
int.hh:132
gem5::PowerISA::int_reg::R17
constexpr RegId R17
Definition:
int.hh:122
gem5::IntRegClassName
constexpr char IntRegClassName[]
Definition:
reg_class.hh:74
gem5::PowerISA::int_reg::_R9Idx
@ _R9Idx
Definition:
int.hh:56
gem5::PowerISA::int_reg::R28
constexpr RegId R28
Definition:
int.hh:133
gem5::PowerISA::int_reg::R19
constexpr RegId R19
Definition:
int.hh:124
gem5::PowerISA::int_reg::_R23Idx
@ _R23Idx
Definition:
int.hh:70
gem5::PowerISA::int_reg::R13
constexpr RegId R13
Definition:
int.hh:118
gem5::PowerISA::int_reg::_R28Idx
@ _R28Idx
Definition:
int.hh:75
gem5::PowerISA::int_reg::_R4Idx
@ _R4Idx
Definition:
int.hh:51
gem5::RegClass
Definition:
reg_class.hh:184
gem5::PowerISA::int_reg::R22
constexpr RegId R22
Definition:
int.hh:127
gem5::PowerISA::int_reg::R7
constexpr RegId R7
Definition:
int.hh:112
gem5::PowerISA::int_reg::_RsvAddrIdx
@ _RsvAddrIdx
Definition:
int.hh:91
gem5::PowerISA::int_reg::R0
constexpr RegId R0
Definition:
int.hh:105
gem5::PowerISA::int_reg::_R7Idx
@ _R7Idx
Definition:
int.hh:54
gem5::PowerISA::int_reg::R11
constexpr RegId R11
Definition:
int.hh:116
gem5::PowerISA::int_reg::Cr
constexpr RegId Cr
Definition:
int.hh:138
gem5::PowerISA::int_reg::RsvAddr
constexpr RegId RsvAddr
Definition:
int.hh:147
gem5::IntRegClass
@ IntRegClass
Integer register.
Definition:
reg_class.hh:60
gem5::PowerISA::ArgumentReg0
constexpr auto & ArgumentReg0
Definition:
int.hh:154
gem5::PowerISA::int_reg::R31
constexpr RegId R31
Definition:
int.hh:136
gem5::PowerISA::int_reg::RsvLen
constexpr RegId RsvLen
Definition:
int.hh:146
gem5::PowerISA::int_reg::Msr
constexpr RegId Msr
Definition:
int.hh:144
gem5::PowerISA::int_reg::_R13Idx
@ _R13Idx
Definition:
int.hh:60
gem5::PowerISA::int_reg::R5
constexpr RegId R5
Definition:
int.hh:110
gem5::PowerISA::StackPointerReg
constexpr auto & StackPointerReg
Definition:
int.hh:160
gem5::PowerISA::int_reg::_R20Idx
@ _R20Idx
Definition:
int.hh:67
gem5::PowerISA::int_reg::_FpscrIdx
@ _FpscrIdx
Definition:
int.hh:87
gem5::PowerISA::int_reg::_RsvLenIdx
@ _RsvLenIdx
Definition:
int.hh:90
gem5::PowerISA::int_reg::R1
constexpr RegId R1
Definition:
int.hh:106
gem5::PowerISA::int_reg::_R29Idx
@ _R29Idx
Definition:
int.hh:76
gem5::PowerISA::int_reg::_XerIdx
@ _XerIdx
Definition:
int.hh:83
reg_class.hh
gem5::PowerISA::int_reg::_CrIdx
@ _CrIdx
Definition:
int.hh:82
gem5::PowerISA::ArgumentReg4
constexpr auto & ArgumentReg4
Definition:
int.hh:158
gem5::PowerISA::ArgumentReg2
constexpr auto & ArgumentReg2
Definition:
int.hh:156
gem5::PowerISA::int_reg::_R16Idx
@ _R16Idx
Definition:
int.hh:63
gem5::PowerISA::int_reg::R2
constexpr RegId R2
Definition:
int.hh:107
gem5::PowerISA::int_reg::_R25Idx
@ _R25Idx
Definition:
int.hh:72
gem5::PowerISA::int_reg::R18
constexpr RegId R18
Definition:
int.hh:123
gem5::RegIndex
uint16_t RegIndex
Definition:
types.hh:176
gem5::PowerISA::int_reg::Ctr
constexpr RegId Ctr
Definition:
int.hh:141
gem5::PowerISA::int_reg::Lr
constexpr RegId Lr
Definition:
int.hh:140
gem5
Reference material can be found at the JEDEC website: UFS standard http://www.jedec....
Definition:
gpu_translation_state.hh:37
gem5::PowerISA::int_reg::Xer
constexpr RegId Xer
Definition:
int.hh:139
gem5::PowerISA::int_reg::R24
constexpr RegId R24
Definition:
int.hh:129
gem5::PowerISA::int_reg::_CtrIdx
@ _CtrIdx
Definition:
int.hh:85
gem5::PowerISA::int_reg::_R14Idx
@ _R14Idx
Definition:
int.hh:61
gem5::PowerISA::int_reg::_R6Idx
@ _R6Idx
Definition:
int.hh:53
gem5::PowerISA::int_reg::_R0Idx
@ _R0Idx
Definition:
int.hh:47
gem5::PowerISA::int_reg::R4
constexpr RegId R4
Definition:
int.hh:109
gem5::RegId
Register ID: describe an architectural register with its class and index.
Definition:
reg_class.hh:92
gem5::PowerISA::int_reg::_MsrIdx
@ _MsrIdx
Definition:
int.hh:88
gem5::PowerISA::int_reg::_R18Idx
@ _R18Idx
Definition:
int.hh:65
Generated on Sun Jul 30 2023 01:56:49 for gem5 by
doxygen
1.8.17