gem5
v24.0.0.0
Loading...
Searching...
No Matches
arch
mips
regs
float.hh
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2006 The Regents of The University of Michigan
3
* Copyright (c) 2007 MIPS Technologies, Inc.
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_MIPS_REGS_FLOAT_HH__
31
#define __ARCH_MIPS_REGS_FLOAT_HH__
32
33
#include <cstdint>
34
35
#include "
cpu/reg_class.hh
"
36
#include "debug/FloatRegs.hh"
37
38
namespace
gem5
39
{
40
namespace
MipsISA
41
{
42
namespace
float_reg
43
{
44
45
enum :
RegIndex
46
{
47
_F0Idx
,
48
_F1Idx
,
49
_F2Idx
,
50
_F3Idx
,
51
_F4Idx
,
52
_F5Idx
,
53
_F6Idx
,
54
_F7Idx
,
55
_F8Idx
,
56
_F9Idx
,
57
_F10Idx
,
58
_F11Idx
,
59
_F12Idx
,
60
_F13Idx
,
61
_F14Idx
,
62
_F15Idx
,
63
_F16Idx
,
64
_F17Idx
,
65
_F18Idx
,
66
_F19Idx
,
67
_F20Idx
,
68
_F21Idx
,
69
_F22Idx
,
70
_F23Idx
,
71
_F24Idx
,
72
_F25Idx
,
73
_F26Idx
,
74
_F27Idx
,
75
_F28Idx
,
76
_F29Idx
,
77
_F30Idx
,
78
_F31Idx
,
79
NumArchRegs
,
80
81
_FirIdx
=
NumArchRegs
,
82
_FccrIdx
,
83
_FexrIdx
,
84
_FenrIdx
,
85
_FcsrIdx
,
86
87
NumRegs
,
88
};
89
90
}
// namespace float_reg
91
92
inline
constexpr
RegClass
floatRegClass
(
FloatRegClass
,
FloatRegClassName
,
93
float_reg::NumRegs
, debug::FloatRegs);
94
95
namespace
float_reg
96
{
97
98
inline
constexpr
RegId
99
F0
=
floatRegClass
[
_F0Idx
],
100
F1
=
floatRegClass
[
_F1Idx
],
101
F2
=
floatRegClass
[
_F2Idx
],
102
F3
=
floatRegClass
[
_F3Idx
],
103
F4
=
floatRegClass
[
_F4Idx
],
104
F5
=
floatRegClass
[
_F5Idx
],
105
F6
=
floatRegClass
[
_F6Idx
],
106
F7
=
floatRegClass
[
_F7Idx
],
107
F8
=
floatRegClass
[
_F8Idx
],
108
F9
=
floatRegClass
[
_F9Idx
],
109
F10
=
floatRegClass
[
_F10Idx
],
110
F11
=
floatRegClass
[
_F11Idx
],
111
F12
=
floatRegClass
[
_F12Idx
],
112
F13
=
floatRegClass
[
_F13Idx
],
113
F14
=
floatRegClass
[
_F14Idx
],
114
F15
=
floatRegClass
[
_F15Idx
],
115
F16
=
floatRegClass
[
_F16Idx
],
116
F17
=
floatRegClass
[
_F17Idx
],
117
F18
=
floatRegClass
[
_F18Idx
],
118
F19
=
floatRegClass
[
_F19Idx
],
119
F20
=
floatRegClass
[
_F20Idx
],
120
F21
=
floatRegClass
[
_F21Idx
],
121
F22
=
floatRegClass
[
_F22Idx
],
122
F23
=
floatRegClass
[
_F23Idx
],
123
F24
=
floatRegClass
[
_F24Idx
],
124
F25
=
floatRegClass
[
_F25Idx
],
125
F26
=
floatRegClass
[
_F26Idx
],
126
F27
=
floatRegClass
[
_F27Idx
],
127
F28
=
floatRegClass
[
_F28Idx
],
128
F29
=
floatRegClass
[
_F29Idx
],
129
F30
=
floatRegClass
[
_F30Idx
],
130
F31
=
floatRegClass
[
_F31Idx
],
131
132
Fir
=
floatRegClass
[
_FirIdx
],
133
Fccr
=
floatRegClass
[
_FccrIdx
],
134
Fexr
=
floatRegClass
[
_FexrIdx
],
135
Fenr
=
floatRegClass
[
_FenrIdx
],
136
Fcsr
=
floatRegClass
[
_FcsrIdx
];
137
138
}
// namespace float_reg
139
140
enum
FCSRBits
141
{
142
Inexact
= 1,
143
Underflow
,
144
Overflow
,
145
DivideByZero
,
146
Invalid
,
147
Unimplemented
148
};
149
150
enum
FCSRFields
151
{
152
Flag_Field
= 1,
153
Enable_Field
= 6,
154
Cause_Field
= 11
155
};
156
157
const
uint32_t
MIPS32_QNAN
= 0x7fbfffff;
158
const
uint64_t
MIPS64_QNAN
= 0x7ff7ffffffffffffULL;
159
160
}
// namespace MipsISA
161
}
// namespace gem5
162
163
#endif
gem5::RegClass
Definition
reg_class.hh:186
gem5::RegId
Register ID: describe an architectural register with its class and index.
Definition
reg_class.hh:94
gem5::MipsISA::float_reg::F25
constexpr RegId F25
Definition
float.hh:124
gem5::MipsISA::float_reg::F22
constexpr RegId F22
Definition
float.hh:121
gem5::MipsISA::float_reg::F20
constexpr RegId F20
Definition
float.hh:119
gem5::MipsISA::float_reg::F8
constexpr RegId F8
Definition
float.hh:107
gem5::MipsISA::float_reg::F0
constexpr RegId F0
Definition
float.hh:99
gem5::MipsISA::float_reg::F28
constexpr RegId F28
Definition
float.hh:127
gem5::MipsISA::float_reg::F13
constexpr RegId F13
Definition
float.hh:112
gem5::MipsISA::float_reg::F3
constexpr RegId F3
Definition
float.hh:102
gem5::MipsISA::float_reg::F7
constexpr RegId F7
Definition
float.hh:106
gem5::MipsISA::float_reg::F27
constexpr RegId F27
Definition
float.hh:126
gem5::MipsISA::float_reg::F1
constexpr RegId F1
Definition
float.hh:100
gem5::MipsISA::float_reg::F21
constexpr RegId F21
Definition
float.hh:120
gem5::MipsISA::float_reg::F14
constexpr RegId F14
Definition
float.hh:113
gem5::MipsISA::float_reg::Fccr
constexpr RegId Fccr
Definition
float.hh:133
gem5::MipsISA::float_reg::F2
constexpr RegId F2
Definition
float.hh:101
gem5::MipsISA::float_reg::F24
constexpr RegId F24
Definition
float.hh:123
gem5::MipsISA::float_reg::F26
constexpr RegId F26
Definition
float.hh:125
gem5::MipsISA::float_reg::F29
constexpr RegId F29
Definition
float.hh:128
gem5::MipsISA::float_reg::_FenrIdx
@ _FenrIdx
Definition
float.hh:84
gem5::MipsISA::float_reg::NumArchRegs
@ NumArchRegs
Definition
float.hh:79
gem5::MipsISA::float_reg::_F29Idx
@ _F29Idx
Definition
float.hh:76
gem5::MipsISA::float_reg::_F27Idx
@ _F27Idx
Definition
float.hh:74
gem5::MipsISA::float_reg::_F3Idx
@ _F3Idx
Definition
float.hh:50
gem5::MipsISA::float_reg::_F23Idx
@ _F23Idx
Definition
float.hh:70
gem5::MipsISA::float_reg::_F11Idx
@ _F11Idx
Definition
float.hh:58
gem5::MipsISA::float_reg::_F20Idx
@ _F20Idx
Definition
float.hh:67
gem5::MipsISA::float_reg::_F9Idx
@ _F9Idx
Definition
float.hh:56
gem5::MipsISA::float_reg::_F30Idx
@ _F30Idx
Definition
float.hh:77
gem5::MipsISA::float_reg::_F10Idx
@ _F10Idx
Definition
float.hh:57
gem5::MipsISA::float_reg::_F22Idx
@ _F22Idx
Definition
float.hh:69
gem5::MipsISA::float_reg::_F0Idx
@ _F0Idx
Definition
float.hh:47
gem5::MipsISA::float_reg::_F19Idx
@ _F19Idx
Definition
float.hh:66
gem5::MipsISA::float_reg::_F31Idx
@ _F31Idx
Definition
float.hh:78
gem5::MipsISA::float_reg::_F5Idx
@ _F5Idx
Definition
float.hh:52
gem5::MipsISA::float_reg::_F17Idx
@ _F17Idx
Definition
float.hh:64
gem5::MipsISA::float_reg::_F18Idx
@ _F18Idx
Definition
float.hh:65
gem5::MipsISA::float_reg::_F4Idx
@ _F4Idx
Definition
float.hh:51
gem5::MipsISA::float_reg::NumRegs
@ NumRegs
Definition
float.hh:87
gem5::MipsISA::float_reg::_F15Idx
@ _F15Idx
Definition
float.hh:62
gem5::MipsISA::float_reg::_F16Idx
@ _F16Idx
Definition
float.hh:63
gem5::MipsISA::float_reg::_FccrIdx
@ _FccrIdx
Definition
float.hh:82
gem5::MipsISA::float_reg::_F12Idx
@ _F12Idx
Definition
float.hh:59
gem5::MipsISA::float_reg::_F13Idx
@ _F13Idx
Definition
float.hh:60
gem5::MipsISA::float_reg::_F25Idx
@ _F25Idx
Definition
float.hh:72
gem5::MipsISA::float_reg::_F28Idx
@ _F28Idx
Definition
float.hh:75
gem5::MipsISA::float_reg::_F24Idx
@ _F24Idx
Definition
float.hh:71
gem5::MipsISA::float_reg::_F6Idx
@ _F6Idx
Definition
float.hh:53
gem5::MipsISA::float_reg::_F26Idx
@ _F26Idx
Definition
float.hh:73
gem5::MipsISA::float_reg::_F14Idx
@ _F14Idx
Definition
float.hh:61
gem5::MipsISA::float_reg::_FirIdx
@ _FirIdx
Definition
float.hh:81
gem5::MipsISA::float_reg::_FcsrIdx
@ _FcsrIdx
Definition
float.hh:85
gem5::MipsISA::float_reg::_F7Idx
@ _F7Idx
Definition
float.hh:54
gem5::MipsISA::float_reg::_F1Idx
@ _F1Idx
Definition
float.hh:48
gem5::MipsISA::float_reg::_FexrIdx
@ _FexrIdx
Definition
float.hh:83
gem5::MipsISA::float_reg::_F2Idx
@ _F2Idx
Definition
float.hh:49
gem5::MipsISA::float_reg::_F8Idx
@ _F8Idx
Definition
float.hh:55
gem5::MipsISA::float_reg::_F21Idx
@ _F21Idx
Definition
float.hh:68
gem5::MipsISA::float_reg::Fenr
constexpr RegId Fenr
Definition
float.hh:135
gem5::MipsISA::float_reg::F31
constexpr RegId F31
Definition
float.hh:130
gem5::MipsISA::float_reg::F12
constexpr RegId F12
Definition
float.hh:111
gem5::MipsISA::float_reg::F6
constexpr RegId F6
Definition
float.hh:105
gem5::MipsISA::float_reg::F10
constexpr RegId F10
Definition
float.hh:109
gem5::MipsISA::float_reg::F5
constexpr RegId F5
Definition
float.hh:104
gem5::MipsISA::float_reg::F19
constexpr RegId F19
Definition
float.hh:118
gem5::MipsISA::float_reg::F30
constexpr RegId F30
Definition
float.hh:129
gem5::MipsISA::float_reg::Fexr
constexpr RegId Fexr
Definition
float.hh:134
gem5::MipsISA::float_reg::F11
constexpr RegId F11
Definition
float.hh:110
gem5::MipsISA::float_reg::F23
constexpr RegId F23
Definition
float.hh:122
gem5::MipsISA::float_reg::Fir
constexpr RegId Fir
Definition
float.hh:132
gem5::MipsISA::float_reg::F17
constexpr RegId F17
Definition
float.hh:116
gem5::MipsISA::float_reg::F9
constexpr RegId F9
Definition
float.hh:108
gem5::MipsISA::float_reg::F16
constexpr RegId F16
Definition
float.hh:115
gem5::MipsISA::float_reg::F18
constexpr RegId F18
Definition
float.hh:117
gem5::MipsISA::float_reg::F4
constexpr RegId F4
Definition
float.hh:103
gem5::MipsISA::float_reg::F15
constexpr RegId F15
Definition
float.hh:114
gem5::MipsISA::float_reg::Fcsr
constexpr RegId Fcsr
Definition
float.hh:136
gem5::MipsISA::FCSRFields
FCSRFields
Definition
float.hh:151
gem5::MipsISA::Cause_Field
@ Cause_Field
Definition
float.hh:154
gem5::MipsISA::Enable_Field
@ Enable_Field
Definition
float.hh:153
gem5::MipsISA::Flag_Field
@ Flag_Field
Definition
float.hh:152
gem5::MipsISA::MIPS64_QNAN
const uint64_t MIPS64_QNAN
Definition
float.hh:158
gem5::MipsISA::MIPS32_QNAN
const uint32_t MIPS32_QNAN
Definition
float.hh:157
gem5::MipsISA::FCSRBits
FCSRBits
Definition
float.hh:141
gem5::MipsISA::Inexact
@ Inexact
Definition
float.hh:142
gem5::MipsISA::Underflow
@ Underflow
Definition
float.hh:143
gem5::MipsISA::Overflow
@ Overflow
Definition
float.hh:144
gem5::MipsISA::DivideByZero
@ DivideByZero
Definition
float.hh:145
gem5::MipsISA::Invalid
@ Invalid
Definition
float.hh:146
gem5::MipsISA::Unimplemented
@ Unimplemented
Definition
float.hh:147
gem5::X86ISA::floatRegClass
constexpr RegClass floatRegClass
Definition
float.hh:143
gem5
Copyright (c) 2024 - Pranith Kumar Copyright (c) 2020 Inria All rights reserved.
Definition
binary32.hh:36
gem5::RegIndex
uint16_t RegIndex
Definition
types.hh:176
gem5::FloatRegClass
@ FloatRegClass
Floating-point register.
Definition
reg_class.hh:62
gem5::FloatRegClassName
constexpr char FloatRegClassName[]
Definition
reg_class.hh:76
reg_class.hh
Generated on Tue Jun 18 2024 16:23:59 for gem5 by
doxygen
1.11.0