gem5  v21.2.1.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 GEM5_DEPRECATED_NAMESPACE(Loader, loader);
40 namespace loader
41 {
42 class ObjectFile;
43 } // namespace loader
44 
45 class PowerProcess : public Process
46 {
47  protected:
48  void initState() override;
49 
50  public:
51  PowerProcess(const ProcessParams &params, loader::ObjectFile *objFile);
52 
53  template <typename IntType>
54  void argsInit(int pageSize);
55 };
56 
57 } // namespace gem5
58 
60 {
61  HWCAP_FEATURE_32 = 1ULL << 31, // Always set for powerpc64
62  HWCAP_FEATURE_64 = 1ULL << 30, // Always set for powerpc64
64  HWCAP_FEATURE_HAS_FPU = 1ULL << 27,
65  HWCAP_FEATURE_HAS_MMU = 1ULL << 26,
67  HWCAP_FEATURE_NO_TB = 1ULL << 20, // 601/403gx have no timebase
68  HWCAP_FEATURE_POWER4 = 1ULL << 19, // POWER4 ISA 2.00
69  HWCAP_FEATURE_POWER5 = 1ULL << 18, // POWER5 ISA 2.02
70  HWCAP_FEATURE_POWER5_PLUS = 1ULL << 17, // POWER5+ ISA 2.03
71  HWCAP_FEATURE_CELL_BE = 1ULL << 16, // CELL Broadband Engine
72  HWCAP_FEATURE_BOOKE = 1ULL << 15, // ISA Category Embedded
73  HWCAP_FEATURE_SMT = 1ULL << 14, // Simultaneous Multi-Threading
75  HWCAP_FEATURE_ARCH_2_05 = 1ULL << 12, // ISA 2.05
76  HWCAP_FEATURE_PA6T = 1ULL << 11, // PA Semi 6T Core
77  HWCAP_FEATURE_HAS_DFP = 1ULL << 10, // Decimal FP Unit
78  HWCAP_FEATURE_POWER6_EXT = 1ULL << 9, // P6 + mffgpr/mftgpr
79  HWCAP_FEATURE_ARCH_2_06 = 1ULL << 8, // ISA 2.06
80  HWCAP_FEATURE_HAS_VSX = 1ULL << 7, // P7 Vector Extension
82  HWCAP_FEATURE_TRUE_LE = 1ULL << 1,
84 };
85 
87 {
88  HWCAP2_FEATURE_ARCH_2_07 = 1ULL << 31, // ISA 2.07
89  HWCAP2_FEATURE_HAS_HTM = 1ULL << 30, // Hardware Transactional Memory
90  HWCAP2_FEATURE_HAS_DSCR = 1ULL << 29, // Data Stream Control Register
91  HWCAP2_FEATURE_HAS_EBB = 1ULL << 28, // Event Base Branching
92  HWCAP2_FEATURE_HAS_ISEL = 1ULL << 27, // Integer Select
93  HWCAP2_FEATURE_HAS_TAR = 1ULL << 26, // Target Address Register
94  HWCAP2_FEATURE_HAS_VCRYPTO = 1ULL << 25, // Vector AES category
96  HWCAP2_FEATURE_ARCH_3_00 = 1ULL << 23, // ISA 3.0
97  HWCAP2_FEATURE_HAS_IEEE128 = 1ULL << 22, // VSX IEEE Binary Float 128-bit
98 };
99 
100 #endif // __POWER_PROCESS_HH__
HWCAP2_FEATURE_ARCH_2_07
@ HWCAP2_FEATURE_ARCH_2_07
Definition: process.hh:88
HWCAP_FEATURE_PPC_LE
@ HWCAP_FEATURE_PPC_LE
Definition: process.hh:83
HWCAP_FEATURE_TRUE_LE
@ HWCAP_FEATURE_TRUE_LE
Definition: process.hh:82
HWCAP_FEATURE_PSERIES_PERFMON_COMPAT
@ HWCAP_FEATURE_PSERIES_PERFMON_COMPAT
Definition: process.hh:81
gem5::loader::ObjectFile
Definition: object_file.hh:85
PowerHWCAP2Feature
PowerHWCAP2Feature
Definition: process.hh:86
HWCAP_FEATURE_BOOKE
@ HWCAP_FEATURE_BOOKE
Definition: process.hh:72
HWCAP_FEATURE_CELL_BE
@ HWCAP_FEATURE_CELL_BE
Definition: process.hh:71
HWCAP_FEATURE_HAS_FPU
@ HWCAP_FEATURE_HAS_FPU
Definition: process.hh:64
HWCAP2_FEATURE_ARCH_3_00
@ HWCAP2_FEATURE_ARCH_3_00
Definition: process.hh:96
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:59
HWCAP2_FEATURE_HAS_VCRYPTO
@ HWCAP2_FEATURE_HAS_VCRYPTO
Definition: process.hh:94
HWCAP_FEATURE_ICACHE_SNOOP
@ HWCAP_FEATURE_ICACHE_SNOOP
Definition: process.hh:74
HWCAP_FEATURE_64
@ HWCAP_FEATURE_64
Definition: process.hh:62
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:67
HWCAP_FEATURE_POWER6_EXT
@ HWCAP_FEATURE_POWER6_EXT
Definition: process.hh:78
process.hh
gem5::PowerProcess::argsInit
void argsInit(int pageSize)
Definition: process.cc:139
HWCAP_FEATURE_HAS_VSX
@ HWCAP_FEATURE_HAS_VSX
Definition: process.hh:80
gem5::PowerProcess
Definition: process.hh:45
HWCAP_FEATURE_HAS_ALTIVEC
@ HWCAP_FEATURE_HAS_ALTIVEC
Definition: process.hh:63
HWCAP_FEATURE_POWER5
@ HWCAP_FEATURE_POWER5
Definition: process.hh:69
HWCAP_FEATURE_HAS_MMU
@ HWCAP_FEATURE_HAS_MMU
Definition: process.hh:65
gem5::GEM5_DEPRECATED_NAMESPACE
GEM5_DEPRECATED_NAMESPACE(GuestABI, guest_abi)
HWCAP_FEATURE_POWER4
@ HWCAP_FEATURE_POWER4
Definition: process.hh:68
HWCAP2_FEATURE_HAS_TAR
@ HWCAP2_FEATURE_HAS_TAR
Definition: process.hh:93
HWCAP_FEATURE_PA6T
@ HWCAP_FEATURE_PA6T
Definition: process.hh:76
HWCAP_FEATURE_ARCH_2_06
@ HWCAP_FEATURE_ARCH_2_06
Definition: process.hh:79
HWCAP_FEATURE_32
@ HWCAP_FEATURE_32
Definition: process.hh:61
gem5::Process
Definition: process.hh:68
HWCAP2_FEATURE_HAS_ISEL
@ HWCAP2_FEATURE_HAS_ISEL
Definition: process.hh:92
HWCAP_FEATURE_UNIFIED_CACHE
@ HWCAP_FEATURE_UNIFIED_CACHE
Definition: process.hh:66
HWCAP2_FEATURE_HAS_DSCR
@ HWCAP2_FEATURE_HAS_DSCR
Definition: process.hh:90
HWCAP2_FEATURE_HAS_EBB
@ HWCAP2_FEATURE_HAS_EBB
Definition: process.hh:91
HWCAP2_FEATURE_HAS_IEEE128
@ HWCAP2_FEATURE_HAS_IEEE128
Definition: process.hh:97
HWCAP2_FEATURE_HAS_HTM
@ HWCAP2_FEATURE_HAS_HTM
Definition: process.hh:89
HWCAP_FEATURE_ARCH_2_05
@ HWCAP_FEATURE_ARCH_2_05
Definition: process.hh:75
gem5
Reference material can be found at the JEDEC website: UFS standard http://www.jedec....
Definition: tlb.cc:60
HWCAP2_FEATURE_HTM_NOSC
@ HWCAP2_FEATURE_HTM_NOSC
Definition: process.hh:95
gem5::Process::objFile
loader::ObjectFile * objFile
Definition: process.hh:224
HWCAP_FEATURE_POWER5_PLUS
@ HWCAP_FEATURE_POWER5_PLUS
Definition: process.hh:70
HWCAP_FEATURE_SMT
@ HWCAP_FEATURE_SMT
Definition: process.hh:73
HWCAP_FEATURE_HAS_DFP
@ HWCAP_FEATURE_HAS_DFP
Definition: process.hh:77

Generated on Tue Feb 8 2022 11:46:58 for gem5 by doxygen 1.8.17