gem5  v22.1.0.0
cc.hh
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2014 ARM Limited
3  * All rights reserved
4  *
5  * The license below extends only to copyright in the software and shall
6  * not be construed as granting a license to any other intellectual
7  * property including but not limited to intellectual property relating
8  * to a hardware implementation of the functionality of the software
9  * licensed hereunder. You may use the software subject to the license
10  * terms below provided that you ensure that this notice is replicated
11  * unmodified and in its entirety in all distributions of the software,
12  * modified or unmodified, in source code or in binary form.
13  *
14  * Redistribution and use in source and binary forms, with or without
15  * modification, are permitted provided that the following conditions are
16  * met: redistributions of source code must retain the above copyright
17  * notice, this list of conditions and the following disclaimer;
18  * redistributions in binary form must reproduce the above copyright
19  * notice, this list of conditions and the following disclaimer in the
20  * documentation and/or other materials provided with the distribution;
21  * neither the name of the copyright holders nor the names of its
22  * contributors may be used to endorse or promote products derived from
23  * this software without specific prior written permission.
24  *
25  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
26  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
27  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
28  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
29  * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
30  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
31  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
32  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
33  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
34  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
35  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
36  */
37 
38 #ifndef __ARCH_ARM_REGS_CC_HH__
39 #define __ARCH_ARM_REGS_CC_HH__
40 
41 #include "cpu/reg_class.hh"
42 #include "debug/CCRegs.hh"
43 
44 namespace gem5
45 {
46 
47 namespace ArmISA
48 {
49 
50 namespace cc_reg
51 {
52 
53 enum : RegIndex
54 {
61  NumRegs
62 };
63 
64 } // namespace cc_reg
65 
67  cc_reg::NumRegs, debug::CCRegs);
68 
69 namespace cc_reg
70 {
71 
72 inline constexpr RegId
79 
80 const char * const RegName[NumRegs] = {
81  "nz",
82  "c",
83  "v",
84  "ge",
85  "fp",
86  "zero"
87 };
88 
89 } // namespace cc_reg
90 
92 {
93  COND_EQ = 0,
94  COND_NE, // 1
95  COND_CS, // 2
96  COND_CC, // 3
97  COND_MI, // 4
98  COND_PL, // 5
99  COND_VS, // 6
100  COND_VC, // 7
101  COND_HI, // 8
102  COND_LS, // 9
103  COND_GE, // 10
104  COND_LT, // 11
105  COND_GT, // 12
106  COND_LE, // 13
107  COND_AL, // 14
108  COND_UC // 15
109 };
110 
111 } // namespace ArmISA
112 } // namespace gem5
113 
114 #endif // __ARCH_ARM_REGS_CC_HH__
Register ID: describe an architectural register with its class and index.
Definition: reg_class.hh:91
constexpr RegId V
Definition: cc.hh:75
constexpr RegId C
Definition: cc.hh:74
constexpr RegId Fp
Definition: cc.hh:77
constexpr RegId Ge
Definition: cc.hh:76
const char *const RegName[NumRegs]
Definition: cc.hh:80
constexpr RegId Zero
Definition: cc.hh:78
constexpr RegId Nz
Definition: cc.hh:73
constexpr RegClass ccRegClass(CCRegClass, CCRegClassName, cc_reg::NumRegs, debug::CCRegs)
ConditionCode
Definition: cc.hh:92
@ COND_EQ
Definition: cc.hh:93
@ COND_PL
Definition: cc.hh:98
@ COND_MI
Definition: cc.hh:97
@ COND_GE
Definition: cc.hh:103
@ COND_LS
Definition: cc.hh:102
@ COND_LE
Definition: cc.hh:106
@ COND_VC
Definition: cc.hh:100
@ COND_HI
Definition: cc.hh:101
@ COND_CC
Definition: cc.hh:96
@ COND_GT
Definition: cc.hh:105
@ COND_UC
Definition: cc.hh:108
@ COND_NE
Definition: cc.hh:94
@ COND_VS
Definition: cc.hh:99
@ COND_LT
Definition: cc.hh:104
@ COND_AL
Definition: cc.hh:107
@ COND_CS
Definition: cc.hh:95
Reference material can be found at the JEDEC website: UFS standard http://www.jedec....
constexpr char CCRegClassName[]
Definition: reg_class.hh:78
uint16_t RegIndex
Definition: types.hh:176
@ CCRegClass
Condition-code register.
Definition: reg_class.hh:67

Generated on Wed Dec 21 2022 10:22:26 for gem5 by doxygen 1.9.1