isa.cc (13116:d3c3e2533928) isa.cc (13173:210b6fc57533)
1/*
2 * Copyright (c) 2010-2018 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

--- 68 unchanged lines hidden (view full) ---

77
78 system = dynamic_cast<ArmSystem *>(p->system);
79
80 // Cache system-level properties
81 if (FullSystem && system) {
82 highestELIs64 = system->highestELIs64();
83 haveSecurity = system->haveSecurity();
84 haveLPAE = system->haveLPAE();
1/*
2 * Copyright (c) 2010-2018 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

--- 68 unchanged lines hidden (view full) ---

77
78 system = dynamic_cast<ArmSystem *>(p->system);
79
80 // Cache system-level properties
81 if (FullSystem && system) {
82 highestELIs64 = system->highestELIs64();
83 haveSecurity = system->haveSecurity();
84 haveLPAE = system->haveLPAE();
85 haveCrypto = system->haveCrypto();
85 haveVirtualization = system->haveVirtualization();
86 haveLargeAsid64 = system->haveLargeAsid64();
87 physAddrRange = system->physAddrRange();
88 } else {
89 highestELIs64 = true; // ArmSystem::highestELIs64 does the same
90 haveSecurity = haveLPAE = haveVirtualization = false;
86 haveVirtualization = system->haveVirtualization();
87 haveLargeAsid64 = system->haveLargeAsid64();
88 physAddrRange = system->physAddrRange();
89 } else {
90 highestELIs64 = true; // ArmSystem::highestELIs64 does the same
91 haveSecurity = haveLPAE = haveVirtualization = false;
92 haveCrypto = false;
91 haveLargeAsid64 = false;
92 physAddrRange = 32; // dummy value
93 }
94
95 initializeMiscRegMetadata();
96 preUnflattenMiscReg();
97
98 clear();

--- 18 unchanged lines hidden (view full) ---

117 initID32(p);
118
119 // We always initialize AArch64 ID registers even
120 // if we are in AArch32. This is done since if we
121 // are in SE mode we don't know if our ArmProcess is
122 // AArch32 or AArch64
123 initID64(p);
124
93 haveLargeAsid64 = false;
94 physAddrRange = 32; // dummy value
95 }
96
97 initializeMiscRegMetadata();
98 preUnflattenMiscReg();
99
100 clear();

--- 18 unchanged lines hidden (view full) ---

119 initID32(p);
120
121 // We always initialize AArch64 ID registers even
122 // if we are in AArch32. This is done since if we
123 // are in SE mode we don't know if our ArmProcess is
124 // AArch32 or AArch64
125 initID64(p);
126
127 miscRegs[MISCREG_ID_ISAR5] = insertBits(
128 miscRegs[MISCREG_ID_ISAR5], 19, 4,
129 haveCrypto ? 0x1112 : 0x0);
130
125 if (FullSystem && system->highestELIs64()) {
126 // Initialize AArch64 state
127 clear64(p);
128 return;
129 }
130
131 // Initialize AArch32 state...
132

--- 206 unchanged lines hidden (view full) ---

339 // Large ASID support
340 miscRegs[MISCREG_ID_AA64MMFR0_EL1] = insertBits(
341 miscRegs[MISCREG_ID_AA64MMFR0_EL1], 7, 4,
342 haveLargeAsid64 ? 0x2 : 0x0);
343 // Physical address size
344 miscRegs[MISCREG_ID_AA64MMFR0_EL1] = insertBits(
345 miscRegs[MISCREG_ID_AA64MMFR0_EL1], 3, 0,
346 encodePhysAddrRange64(physAddrRange));
131 if (FullSystem && system->highestELIs64()) {
132 // Initialize AArch64 state
133 clear64(p);
134 return;
135 }
136
137 // Initialize AArch32 state...
138

--- 206 unchanged lines hidden (view full) ---

345 // Large ASID support
346 miscRegs[MISCREG_ID_AA64MMFR0_EL1] = insertBits(
347 miscRegs[MISCREG_ID_AA64MMFR0_EL1], 7, 4,
348 haveLargeAsid64 ? 0x2 : 0x0);
349 // Physical address size
350 miscRegs[MISCREG_ID_AA64MMFR0_EL1] = insertBits(
351 miscRegs[MISCREG_ID_AA64MMFR0_EL1], 3, 0,
352 encodePhysAddrRange64(physAddrRange));
353 // Crypto
354 miscRegs[MISCREG_ID_AA64ISAR0_EL1] = insertBits(
355 miscRegs[MISCREG_ID_AA64ISAR0_EL1], 19, 4,
356 haveCrypto ? 0x1112 : 0x0);
347}
348
349void
350ISA::startup(ThreadContext *tc)
351{
352 pmu->setThreadContext(tc);
353
354}

--- 1632 unchanged lines hidden ---
357}
358
359void
360ISA::startup(ThreadContext *tc)
361{
362 pmu->setThreadContext(tc);
363
364}

--- 1632 unchanged lines hidden ---