gem5
v24.1.0.1
Loading...
Searching...
No Matches
arch
arm
fastmodel
CortexA76
thread_context.hh
Go to the documentation of this file.
1
/*
2
* Copyright 2019 Google, Inc.
3
*
4
* Redistribution and use in source and binary forms, with or without
5
* modification, are permitted provided that the following conditions are
6
* met: redistributions of source code must retain the above copyright
7
* notice, this list of conditions and the following disclaimer;
8
* redistributions in binary form must reproduce the above copyright
9
* notice, this list of conditions and the following disclaimer in the
10
* documentation and/or other materials provided with the distribution;
11
* neither the name of the copyright holders nor the names of its
12
* contributors may be used to endorse or promote products derived from
13
* this software without specific prior written permission.
14
*
15
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
16
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
17
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
18
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
19
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
20
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
21
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
22
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
23
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
25
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26
*/
27
28
#ifndef __ARCH_ARM_FASTMODEL_CORTEXA76_THREAD_CONTEXT_HH__
29
#define __ARCH_ARM_FASTMODEL_CORTEXA76_THREAD_CONTEXT_HH__
30
31
#include "
arch/arm/fastmodel/iris/thread_context.hh
"
32
33
namespace
gem5
34
{
35
36
namespace
fastmodel
37
{
38
39
// This ThreadContext class translates accesses to state using gem5's native
40
// to the Iris API. This includes extracting and translating register indices.
41
class
CortexA76TC
:
public
Iris::ThreadContext
42
{
43
protected
:
44
static
IdxNameMap
miscRegIdxNameMap
;
45
static
IdxNameMap
intReg32IdxNameMap
;
46
static
IdxNameMap
intReg64IdxNameMap
;
47
static
IdxNameMap
flattenedIntIdxNameMap
;
48
static
IdxNameMap
ccRegIdxNameMap
;
49
static
IdxNameMap
vecRegIdxNameMap
;
50
static
std::vector<iris::MemorySpaceId>
bpSpaceIds
;
51
52
public
:
53
CortexA76TC
(
gem5::BaseCPU
*cpu,
int
id
,
System
*
system
,
54
gem5::BaseMMU
*mmu,
gem5::BaseISA
*isa,
55
iris::IrisConnectionInterface *iris_if,
56
const
std::string &iris_path);
57
58
bool
translateAddress
(
Addr
&paddr,
Addr
vaddr
)
override
;
59
60
void
initFromIrisInstance
(
const
ResourceMap
&resources)
override
;
61
62
RegVal
readIntRegFlat
(
RegIndex
idx)
const override
;
63
void
setIntRegFlat
(
RegIndex
idx,
RegVal
val
)
override
;
64
65
RegVal
readCCRegFlat
(
RegIndex
idx)
const override
;
66
void
setCCRegFlat
(
RegIndex
idx,
RegVal
val
)
override
;
67
68
const
std::vector<iris::MemorySpaceId>
&
getBpSpaceIds
()
const override
;
69
};
70
71
}
// namespace fastmodel
72
}
// namespace gem5
73
74
#endif
// __ARCH_ARM_FASTMODEL_CORTEXA76_THREAD_CONTEXT_HH__
thread_context.hh
gem5::BaseCPU
Definition
base.hh:106
gem5::BaseISA
Definition
isa.hh:59
gem5::BaseMMU
Definition
mmu.hh:54
gem5::Iris::ThreadContext
Definition
thread_context.hh:55
gem5::Iris::ThreadContext::ResourceMap
std::map< std::string, iris::ResourceInfo > ResourceMap
Definition
thread_context.hh:57
gem5::Iris::ThreadContext::IdxNameMap
std::map< int, std::string > IdxNameMap
Definition
thread_context.hh:60
gem5::System
Definition
system.hh:75
gem5::fastmodel::CortexA76TC
Definition
thread_context.hh:42
gem5::fastmodel::CortexA76TC::intReg32IdxNameMap
static IdxNameMap intReg32IdxNameMap
Definition
thread_context.hh:45
gem5::fastmodel::CortexA76TC::vecRegIdxNameMap
static IdxNameMap vecRegIdxNameMap
Definition
thread_context.hh:49
gem5::fastmodel::CortexA76TC::getBpSpaceIds
const std::vector< iris::MemorySpaceId > & getBpSpaceIds() const override
Definition
thread_context.cc:180
gem5::fastmodel::CortexA76TC::setIntRegFlat
void setIntRegFlat(RegIndex idx, RegVal val) override
Definition
thread_context.cc:121
gem5::fastmodel::CortexA76TC::setCCRegFlat
void setCCRegFlat(RegIndex idx, RegVal val) override
Definition
thread_context.cc:157
gem5::fastmodel::CortexA76TC::readIntRegFlat
RegVal readIntRegFlat(RegIndex idx) const override
Definition
thread_context.cc:98
gem5::fastmodel::CortexA76TC::flattenedIntIdxNameMap
static IdxNameMap flattenedIntIdxNameMap
Definition
thread_context.hh:47
gem5::fastmodel::CortexA76TC::intReg64IdxNameMap
static IdxNameMap intReg64IdxNameMap
Definition
thread_context.hh:46
gem5::fastmodel::CortexA76TC::initFromIrisInstance
void initFromIrisInstance(const ResourceMap &resources) override
Definition
thread_context.cc:79
gem5::fastmodel::CortexA76TC::miscRegIdxNameMap
static IdxNameMap miscRegIdxNameMap
Definition
thread_context.hh:44
gem5::fastmodel::CortexA76TC::bpSpaceIds
static std::vector< iris::MemorySpaceId > bpSpaceIds
Definition
thread_context.hh:50
gem5::fastmodel::CortexA76TC::ccRegIdxNameMap
static IdxNameMap ccRegIdxNameMap
Definition
thread_context.hh:48
gem5::fastmodel::CortexA76TC::readCCRegFlat
RegVal readCCRegFlat(RegIndex idx) const override
Definition
thread_context.cc:140
gem5::fastmodel::CortexA76TC::translateAddress
bool translateAddress(Addr &paddr, Addr vaddr) override
Definition
thread_context.cc:49
std::vector
STL vector class.
Definition
stl.hh:37
gem5::MipsISA::vaddr
vaddr
Definition
pra_constants.hh:278
gem5::X86ISA::system
Bitfield< 15 > system
Definition
misc.hh:1032
gem5::X86ISA::val
Bitfield< 63 > val
Definition
misc.hh:804
gem5
Copyright (c) 2024 Arm Limited All rights reserved.
Definition
binary32.hh:36
gem5::RegIndex
uint16_t RegIndex
Definition
types.hh:176
gem5::Addr
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
Definition
types.hh:147
gem5::RegVal
uint64_t RegVal
Definition
types.hh:173
Generated on Mon Jan 13 2025 04:28:16 for gem5 by
doxygen
1.9.8