gem5  [DEVELOP-FOR-23.0]
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
process.hh
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2007-2008 The Florida State University
3  * Copyright (c) 2009 The University of Edinburgh
4  * Copyright (c) 2021 IBM Corporation
5  * All rights reserved.
6  *
7  * Redistribution and use in source and binary forms, with or without
8  * modification, are permitted provided that the following conditions are
9  * met: redistributions of source code must retain the above copyright
10  * notice, this list of conditions and the following disclaimer;
11  * redistributions in binary form must reproduce the above copyright
12  * notice, this list of conditions and the following disclaimer in the
13  * documentation and/or other materials provided with the distribution;
14  * neither the name of the copyright holders nor the names of its
15  * contributors may be used to endorse or promote products derived from
16  * this software without specific prior written permission.
17  *
18  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
20  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
21  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
22  * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
23  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
24  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29  */
30 
31 #ifndef __POWER_PROCESS_HH__
32 #define __POWER_PROCESS_HH__
33 
34 #include "sim/process.hh"
35 
36 namespace gem5
37 {
38 
39 namespace loader
40 {
41 class ObjectFile;
42 } // namespace loader
43 
44 class PowerProcess : public Process
45 {
46  protected:
47  void initState() override;
48 
49  public:
50  PowerProcess(const ProcessParams &params, loader::ObjectFile *objFile);
51 
52  template <typename IntType>
53  void argsInit(int pageSize);
54 };
55 
56 } // namespace gem5
57 
59 {
60  HWCAP_FEATURE_32 = 1ULL << 31, // Always set for powerpc64
61  HWCAP_FEATURE_64 = 1ULL << 30, // Always set for powerpc64
63  HWCAP_FEATURE_HAS_FPU = 1ULL << 27,
64  HWCAP_FEATURE_HAS_MMU = 1ULL << 26,
66  HWCAP_FEATURE_NO_TB = 1ULL << 20, // 601/403gx have no timebase
67  HWCAP_FEATURE_POWER4 = 1ULL << 19, // POWER4 ISA 2.00
68  HWCAP_FEATURE_POWER5 = 1ULL << 18, // POWER5 ISA 2.02
69  HWCAP_FEATURE_POWER5_PLUS = 1ULL << 17, // POWER5+ ISA 2.03
70  HWCAP_FEATURE_CELL_BE = 1ULL << 16, // CELL Broadband Engine
71  HWCAP_FEATURE_BOOKE = 1ULL << 15, // ISA Category Embedded
72  HWCAP_FEATURE_SMT = 1ULL << 14, // Simultaneous Multi-Threading
74  HWCAP_FEATURE_ARCH_2_05 = 1ULL << 12, // ISA 2.05
75  HWCAP_FEATURE_PA6T = 1ULL << 11, // PA Semi 6T Core
76  HWCAP_FEATURE_HAS_DFP = 1ULL << 10, // Decimal FP Unit
77  HWCAP_FEATURE_POWER6_EXT = 1ULL << 9, // P6 + mffgpr/mftgpr
78  HWCAP_FEATURE_ARCH_2_06 = 1ULL << 8, // ISA 2.06
79  HWCAP_FEATURE_HAS_VSX = 1ULL << 7, // P7 Vector Extension
81  HWCAP_FEATURE_TRUE_LE = 1ULL << 1,
83 };
84 
86 {
87  HWCAP2_FEATURE_ARCH_2_07 = 1ULL << 31, // ISA 2.07
88  HWCAP2_FEATURE_HAS_HTM = 1ULL << 30, // Hardware Transactional Memory
89  HWCAP2_FEATURE_HAS_DSCR = 1ULL << 29, // Data Stream Control Register
90  HWCAP2_FEATURE_HAS_EBB = 1ULL << 28, // Event Base Branching
91  HWCAP2_FEATURE_HAS_ISEL = 1ULL << 27, // Integer Select
92  HWCAP2_FEATURE_HAS_TAR = 1ULL << 26, // Target Address Register
93  HWCAP2_FEATURE_HAS_VCRYPTO = 1ULL << 25, // Vector AES category
95  HWCAP2_FEATURE_ARCH_3_00 = 1ULL << 23, // ISA 3.0
96  HWCAP2_FEATURE_HAS_IEEE128 = 1ULL << 22, // VSX IEEE Binary Float 128-bit
97 };
98 
99 #endif // __POWER_PROCESS_HH__
HWCAP2_FEATURE_ARCH_2_07
@ HWCAP2_FEATURE_ARCH_2_07
Definition: process.hh:87
HWCAP_FEATURE_PPC_LE
@ HWCAP_FEATURE_PPC_LE
Definition: process.hh:82
HWCAP_FEATURE_TRUE_LE
@ HWCAP_FEATURE_TRUE_LE
Definition: process.hh:81
HWCAP_FEATURE_PSERIES_PERFMON_COMPAT
@ HWCAP_FEATURE_PSERIES_PERFMON_COMPAT
Definition: process.hh:80
gem5::loader::ObjectFile
Definition: object_file.hh:96
PowerHWCAP2Feature
PowerHWCAP2Feature
Definition: process.hh:85
HWCAP_FEATURE_BOOKE
@ HWCAP_FEATURE_BOOKE
Definition: process.hh:71
HWCAP_FEATURE_CELL_BE
@ HWCAP_FEATURE_CELL_BE
Definition: process.hh:70
HWCAP_FEATURE_HAS_FPU
@ HWCAP_FEATURE_HAS_FPU
Definition: process.hh:63
HWCAP2_FEATURE_ARCH_3_00
@ HWCAP2_FEATURE_ARCH_3_00
Definition: process.hh:95
gem5::PowerProcess::initState
void initState() override
initState() is called on each SimObject when not restoring from a checkpoint.
Definition: process.cc:82
PowerHWCAPFeature
PowerHWCAPFeature
Definition: process.hh:58
HWCAP2_FEATURE_HAS_VCRYPTO
@ HWCAP2_FEATURE_HAS_VCRYPTO
Definition: process.hh:93
HWCAP_FEATURE_ICACHE_SNOOP
@ HWCAP_FEATURE_ICACHE_SNOOP
Definition: process.hh:73
HWCAP_FEATURE_64
@ HWCAP_FEATURE_64
Definition: process.hh:61
gem5::PowerProcess::PowerProcess
PowerProcess(const ProcessParams &params, loader::ObjectFile *objFile)
Definition: process.cc:55
gem5::SimObject::params
const Params & params() const
Definition: sim_object.hh:176
HWCAP_FEATURE_NO_TB
@ HWCAP_FEATURE_NO_TB
Definition: process.hh:66
HWCAP_FEATURE_POWER6_EXT
@ HWCAP_FEATURE_POWER6_EXT
Definition: process.hh:77
process.hh
gem5::PowerProcess::argsInit
void argsInit(int pageSize)
Definition: process.cc:139
HWCAP_FEATURE_HAS_VSX
@ HWCAP_FEATURE_HAS_VSX
Definition: process.hh:79
gem5::PowerProcess
Definition: process.hh:44
HWCAP_FEATURE_HAS_ALTIVEC
@ HWCAP_FEATURE_HAS_ALTIVEC
Definition: process.hh:62
HWCAP_FEATURE_POWER5
@ HWCAP_FEATURE_POWER5
Definition: process.hh:68
HWCAP_FEATURE_HAS_MMU
@ HWCAP_FEATURE_HAS_MMU
Definition: process.hh:64
HWCAP_FEATURE_POWER4
@ HWCAP_FEATURE_POWER4
Definition: process.hh:67
HWCAP2_FEATURE_HAS_TAR
@ HWCAP2_FEATURE_HAS_TAR
Definition: process.hh:92
HWCAP_FEATURE_PA6T
@ HWCAP_FEATURE_PA6T
Definition: process.hh:75
HWCAP_FEATURE_ARCH_2_06
@ HWCAP_FEATURE_ARCH_2_06
Definition: process.hh:78
HWCAP_FEATURE_32
@ HWCAP_FEATURE_32
Definition: process.hh:60
gem5::Process
Definition: process.hh:67
HWCAP2_FEATURE_HAS_ISEL
@ HWCAP2_FEATURE_HAS_ISEL
Definition: process.hh:91
HWCAP_FEATURE_UNIFIED_CACHE
@ HWCAP_FEATURE_UNIFIED_CACHE
Definition: process.hh:65
HWCAP2_FEATURE_HAS_DSCR
@ HWCAP2_FEATURE_HAS_DSCR
Definition: process.hh:89
HWCAP2_FEATURE_HAS_EBB
@ HWCAP2_FEATURE_HAS_EBB
Definition: process.hh:90
HWCAP2_FEATURE_HAS_IEEE128
@ HWCAP2_FEATURE_HAS_IEEE128
Definition: process.hh:96
HWCAP2_FEATURE_HAS_HTM
@ HWCAP2_FEATURE_HAS_HTM
Definition: process.hh:88
HWCAP_FEATURE_ARCH_2_05
@ HWCAP_FEATURE_ARCH_2_05
Definition: process.hh:74
gem5
Reference material can be found at the JEDEC website: UFS standard http://www.jedec....
Definition: gpu_translation_state.hh:37
HWCAP2_FEATURE_HTM_NOSC
@ HWCAP2_FEATURE_HTM_NOSC
Definition: process.hh:94
gem5::Process::objFile
loader::ObjectFile * objFile
Definition: process.hh:223
HWCAP_FEATURE_POWER5_PLUS
@ HWCAP_FEATURE_POWER5_PLUS
Definition: process.hh:69
HWCAP_FEATURE_SMT
@ HWCAP_FEATURE_SMT
Definition: process.hh:72
HWCAP_FEATURE_HAS_DFP
@ HWCAP_FEATURE_HAS_DFP
Definition: process.hh:76

Generated on Sun Jul 30 2023 01:56:49 for gem5 by doxygen 1.8.17