gem5 [DEVELOP-FOR-25.1]
Loading...
Searching...
No Matches
thread_context.cc
Go to the documentation of this file.
1/*
2 * Copyright (c) 2025 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 * Copyright 2020 Google, Inc.
15 *
16 * Redistribution and use in source and binary forms, with or without
17 * modification, are permitted provided that the following conditions are
18 * met: redistributions of source code must retain the above copyright
19 * notice, this list of conditions and the following disclaimer;
20 * redistributions in binary form must reproduce the above copyright
21 * notice, this list of conditions and the following disclaimer in the
22 * documentation and/or other materials provided with the distribution;
23 * neither the name of the copyright holders nor the names of its
24 * contributors may be used to endorse or promote products derived from
25 * this software without specific prior written permission.
26 *
27 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
28 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
29 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
30 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
31 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
32 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
33 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
34 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
35 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
36 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
37 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
38 */
39
41
43#include "arch/arm/utility.hh"
44#include "iris/detail/IrisCppAdapter.h"
45#include "iris/detail/IrisObjects.h"
46
47namespace gem5
48{
49
50namespace fastmodel
51{
52
54 gem5::BaseCPU *cpu, int id, System *system, gem5::BaseMMU *mmu,
55 gem5::BaseISA *isa, iris::IrisConnectionInterface *iris_if,
56 const std::string &iris_path) :
57 ThreadContext(cpu, id, system, mmu, isa, iris_if, iris_path)
58{}
59
60bool
62{
63 // No MMU here.
64 paddr = vaddr;
65 return true;
66}
67
68void
70{
71 ThreadContext::initFromIrisInstance(resources);
72
73 pcRscId = extractResourceId(resources, "R15");
74
76
79}
80
81void
83{
84 auto msn = Iris::PhysicalMemoryMsn;
85 auto id = getMemorySpaceId(msn);
86
87 auto addr = pkt->getAddr();
88 auto size = pkt->getSize();
89 auto data = pkt->getPtr<uint8_t>();
90
91 pkt->makeResponse();
92 if (pkt->isRead())
93 readMem(id, addr, data, size);
94 else
95 writeMem(id, addr, data, size);
96}
97
100{
101 iris::ResourceReadResult result;
102 call().resource_read(_instId, result, intReg32Ids.at(reg_idx));
103 return result.data.at(0);
104}
105
106void
108{
109 iris::ResourceWriteResult result;
110 call().resource_write(_instId, result, intReg32Ids.at(reg_idx), val);
111}
112
113RegVal
115{
117 switch (idx) {
119 result = ((ArmISA::CPSR)result).nz;
120 break;
122 result = bits(result, 31, 28);
123 break;
124 default:
125 break;
126 }
127 return result;
128}
129
130void
132{
133 switch (idx) {
135 {
136 ArmISA::CPSR cpsr = readMiscRegNoEffect(ArmISA::MISCREG_CPSR);
137 cpsr.nz = val;
138 val = cpsr;
139 }
140 break;
142 {
143 ArmISA::FPSCR fpscr = readMiscReg(ArmISA::MISCREG_FPSCR);
144 val = insertBits(fpscr, 31, 28, val);
145 }
146 break;
147 default:
148 break;
149 }
151}
152
155{
156 if (bpSpaceIds.empty()) {
158 for (auto &msn : msns) {
159 auto id = getMemorySpaceId(msn);
160 if (id != iris::IRIS_UINT64_MAX)
161 bpSpaceIds.push_back(id);
162 }
163 panic_if(bpSpaceIds.empty(),
164 "Unable to find address space(s) for breakpoints.");
165 }
166 return bpSpaceIds;
167}
168
170 { ArmISA::MISCREG_CPSR, "CPSR" },
171 { ArmISA::MISCREG_SPSR, "SPSR" },
172 // ArmISA::MISCREG_SPSR_FIQ?
173 // ArmISA::MISCREG_SPSR_IRQ?
174 // ArmISA::MISCREG_SPSR_SVC?
175 // ArmISA::MISCREG_SPSR_MON?
176 // ArmISA::MISCREG_SPSR_ABT?
177 // ArmISA::MISCREG_SPSR_HYP?
178 // ArmISA::MISCREG_SPSR_UND?
179 // ArmISA::MISCREG_ELR_HYP?
180 // ArmISA::MISCREG_FPSID?
181 // ArmISA::MISCREG_FPSCR?
182 // ArmISA::MISCREG_MVFR1?
183 // ArmISA::MISCREG_MVFR0?
184 // ArmISA::MISCREG_FPEXC?
185
186 // Helper registers
187 // ArmISA::MISCREG_CPSR_MODE?
188 // ArmISA::MISCREG_CPSR_Q?
189 // ArmISA::MISCREG_FPSCR_EXC?
190 // ArmISA::MISCREG_FPSCR_QC?
191 // ArmISA::MISCREG_LOCKADDR?
192 // ArmISA::MISCREG_LOCKFLAG?
193 // ArmISA::MISCREG_PRRR_MAIR0?
194 // ArmISA::MISCREG_PRRR_MAIR0_NS?
195 // ArmISA::MISCREG_PRRR_MAIR0_S?
196 // ArmISA::MISCREG_NMRR_MAIR1?
197 // ArmISA::MISCREG_NMRR_MAIR1_NS?
198 // ArmISA::MISCREG_NMRR_MAIR1_S?
199 // ArmISA::MISCREG_PMXEVTYPER_PMCCFILTR?
200 // ArmISA::MISCREG_SCTLR_RST?
201 // ArmISA::MISCREG_SEV_MAILBOX?
202
203 // AArch32 CP14 registers (debug/trace control)
204 // ArmISA::MISCREG_DBGDIDR?
205 // ArmISA::MISCREG_DBGDSCRint?
206 // ArmISA::MISCREG_DBGDCCINT?
207 // ArmISA::MISCREG_DBGDTRTXint?
208 // ArmISA::MISCREG_DBGDTRRXint?
209 // ArmISA::MISCREG_DBGWFAR?
210 // ArmISA::MISCREG_DBGVCR?
211 // ArmISA::MISCREG_DBGDTRRXext?
212 // ArmISA::MISCREG_DBGDSCRext?
213 // ArmISA::MISCREG_DBGDTRTXext?
214 // ArmISA::MISCREG_DBGOSECCR?
215 // ArmISA::MISCREG_DBGBVR0?
216 // ArmISA::MISCREG_DBGBVR1?
217 // ArmISA::MISCREG_DBGBVR2?
218 // ArmISA::MISCREG_DBGBVR3?
219 // ArmISA::MISCREG_DBGBVR4?
220 // ArmISA::MISCREG_DBGBVR5?
221 // ArmISA::MISCREG_DBGBCR0?
222 // ArmISA::MISCREG_DBGBCR1?
223 // ArmISA::MISCREG_DBGBCR2?
224 // ArmISA::MISCREG_DBGBCR3?
225 // ArmISA::MISCREG_DBGBCR4?
226 // ArmISA::MISCREG_DBGBCR5?
227 // ArmISA::MISCREG_DBGWVR0?
228 // ArmISA::MISCREG_DBGWVR1?
229 // ArmISA::MISCREG_DBGWVR2?
230 // ArmISA::MISCREG_DBGWVR3?
231 // ArmISA::MISCREG_DBGWCR0?
232 // ArmISA::MISCREG_DBGWCR1?
233 // ArmISA::MISCREG_DBGWCR2?
234 // ArmISA::MISCREG_DBGWCR3?
235 // ArmISA::MISCREG_DBGDRAR?
236 // ArmISA::MISCREG_DBGBXVR4?
237 // ArmISA::MISCREG_DBGBXVR5?
238 // ArmISA::MISCREG_DBGOSLAR?
239 // ArmISA::MISCREG_DBGOSLSR?
240 // ArmISA::MISCREG_DBGOSDLR?
241 // ArmISA::MISCREG_DBGPRCR?
242 // ArmISA::MISCREG_DBGDSAR?
243 // ArmISA::MISCREG_DBGCLAIMSET?
244 // ArmISA::MISCREG_DBGCLAIMCLR?
245 // ArmISA::MISCREG_DBGAUTHSTATUS?
246 // ArmISA::MISCREG_DBGDEVID2?
247 // ArmISA::MISCREG_DBGDEVID1?
248 // ArmISA::MISCREG_DBGDEVID0?
249 // ArmISA::MISCREG_TEECR? not in ARM DDI 0487A.b+
250 // ArmISA::MISCREG_JIDR?
251 // ArmISA::MISCREG_TEEHBR? not in ARM DDI 0487A.b+
252 // ArmISA::MISCREG_JOSCR?
253 // ArmISA::MISCREG_JMCR?
254
255 // AArch32 CP15 registers (system control)
256 // ArmISA::MISCREG_MIDR?
257 // ArmISA::MISCREG_CTR?
258 // ArmISA::MISCREG_TCMTR?
259 // ArmISA::MISCREG_TLBTR?
260 // ArmISA::MISCREG_MPIDR?
261 // ArmISA::MISCREG_REVIDR?
262 // ArmISA::MISCREG_ID_PFR0?
263 // ArmISA::MISCREG_ID_PFR1?
264 // ArmISA::MISCREG_ID_DFR0?
265 // ArmISA::MISCREG_ID_AFR0?
266 // ArmISA::MISCREG_ID_MMFR0?
267 // ArmISA::MISCREG_ID_MMFR1?
268 // ArmISA::MISCREG_ID_MMFR2?
269 // ArmISA::MISCREG_ID_MMFR3?
270 // ArmISA::MISCREG_ID_MMFR4?
271 // ArmISA::MISCREG_ID_ISAR0?
272 // ArmISA::MISCREG_ID_ISAR1?
273 // ArmISA::MISCREG_ID_ISAR2?
274 // ArmISA::MISCREG_ID_ISAR3?
275 // ArmISA::MISCREG_ID_ISAR4?
276 // ArmISA::MISCREG_ID_ISAR5?
277 // ArmISA::MISCREG_ID_ISAR6?
278 // ArmISA::MISCREG_CCSIDR?
279 // ArmISA::MISCREG_CLIDR?
280 // ArmISA::MISCREG_AIDR?
281 // ArmISA::MISCREG_CSSELR?
282 // ArmISA::MISCREG_CSSELR_NS?
283 // ArmISA::MISCREG_CSSELR_S?
284 // ArmISA::MISCREG_VPIDR?
285 // ArmISA::MISCREG_VMPIDR?
286 // ArmISA::MISCREG_SCTLR?
287 // ArmISA::MISCREG_SCTLR_NS?
288 // ArmISA::MISCREG_SCTLR_S?
289 // ArmISA::MISCREG_ACTLR?
290 // ArmISA::MISCREG_ACTLR_NS?
291 // ArmISA::MISCREG_ACTLR_S?
292 // ArmISA::MISCREG_CPACR?
293 // ArmISA::MISCREG_SCR?
294 // ArmISA::MISCREG_SDER?
295 // ArmISA::MISCREG_NSACR?
296 // ArmISA::MISCREG_HSCTLR?
297 // ArmISA::MISCREG_HACTLR?
298 // ArmISA::MISCREG_HCR?
299 // ArmISA::MISCREG_HDCR?
300 // ArmISA::MISCREG_HCPTR?
301 // ArmISA::MISCREG_HSTR?
302 // ArmISA::MISCREG_HACR?
303 // ArmISA::MISCREG_TTBR0?
304 // ArmISA::MISCREG_TTBR0_NS?
305 // ArmISA::MISCREG_TTBR0_S?
306 // ArmISA::MISCREG_TTBR1?
307 // ArmISA::MISCREG_TTBR1_NS?
308 // ArmISA::MISCREG_TTBR1_S?
309 // ArmISA::MISCREG_TTBCR?
310 // ArmISA::MISCREG_TTBCR_NS?
311 // ArmISA::MISCREG_TTBCR_S?
312 // ArmISA::MISCREG_HTCR?
313 // ArmISA::MISCREG_VTCR?
314 // ArmISA::MISCREG_DACR?
315 // ArmISA::MISCREG_DACR_NS?
316 // ArmISA::MISCREG_DACR_S?
317 // ArmISA::MISCREG_DFSR?
318 // ArmISA::MISCREG_DFSR_NS?
319 // ArmISA::MISCREG_DFSR_S?
320 // ArmISA::MISCREG_IFSR?
321 // ArmISA::MISCREG_IFSR_NS?
322 // ArmISA::MISCREG_IFSR_S?
323 // ArmISA::MISCREG_ADFSR?
324 // ArmISA::MISCREG_ADFSR_NS?
325 // ArmISA::MISCREG_ADFSR_S?
326 // ArmISA::MISCREG_AIFSR?
327 // ArmISA::MISCREG_AIFSR_NS?
328 // ArmISA::MISCREG_AIFSR_S?
329 // ArmISA::MISCREG_HADFSR?
330 // ArmISA::MISCREG_HAIFSR?
331 // ArmISA::MISCREG_HSR?
332 // ArmISA::MISCREG_DFAR?
333 // ArmISA::MISCREG_DFAR_NS?
334 // ArmISA::MISCREG_DFAR_S?
335 // ArmISA::MISCREG_IFAR?
336 // ArmISA::MISCREG_IFAR_NS?
337 // ArmISA::MISCREG_IFAR_S?
338 // ArmISA::MISCREG_HDFAR?
339 // ArmISA::MISCREG_HIFAR?
340 // ArmISA::MISCREG_HPFAR?
341 // ArmISA::MISCREG_ICIALLUIS?
342 // ArmISA::MISCREG_BPIALLIS?
343 // ArmISA::MISCREG_PAR?
344 // ArmISA::MISCREG_PAR_NS?
345 // ArmISA::MISCREG_PAR_S?
346 // ArmISA::MISCREG_ICIALLU?
347 // ArmISA::MISCREG_ICIMVAU?
348 // ArmISA::MISCREG_CP15ISB?
349 // ArmISA::MISCREG_BPIALL?
350 // ArmISA::MISCREG_BPIMVA?
351 // ArmISA::MISCREG_DCIMVAC?
352 // ArmISA::MISCREG_DCISW?
353 // ArmISA::MISCREG_ATS1CPR?
354 // ArmISA::MISCREG_ATS1CPW?
355 // ArmISA::MISCREG_ATS1CUR?
356 // ArmISA::MISCREG_ATS1CUW?
357 // ArmISA::MISCREG_ATS12NSOPR?
358 // ArmISA::MISCREG_ATS12NSOPW?
359 // ArmISA::MISCREG_ATS12NSOUR?
360 // ArmISA::MISCREG_ATS12NSOUW?
361 // ArmISA::MISCREG_DCCMVAC?
362 // ArmISA::MISCREG_DCCSW?
363 // ArmISA::MISCREG_CP15DSB?
364 // ArmISA::MISCREG_CP15DMB?
365 // ArmISA::MISCREG_DCCMVAU?
366 // ArmISA::MISCREG_DCCIMVAC?
367 // ArmISA::MISCREG_DCCISW?
368 // ArmISA::MISCREG_ATS1HR?
369 // ArmISA::MISCREG_ATS1HW?
370 // ArmISA::MISCREG_TLBIALLIS?
371 // ArmISA::MISCREG_TLBIMVAIS?
372 // ArmISA::MISCREG_TLBIASIDIS?
373 // ArmISA::MISCREG_TLBIMVAAIS?
374 // ArmISA::MISCREG_TLBIMVALIS?
375 // ArmISA::MISCREG_TLBIMVAALIS?
376 // ArmISA::MISCREG_ITLBIALL?
377 // ArmISA::MISCREG_ITLBIMVA?
378 // ArmISA::MISCREG_ITLBIASID?
379 // ArmISA::MISCREG_DTLBIALL?
380 // ArmISA::MISCREG_DTLBIMVA?
381 // ArmISA::MISCREG_DTLBIASID?
382 // ArmISA::MISCREG_TLBIALL?
383 // ArmISA::MISCREG_TLBIMVA?
384 // ArmISA::MISCREG_TLBIASID?
385 // ArmISA::MISCREG_TLBIMVAA?
386 // ArmISA::MISCREG_TLBIMVAL?
387 // ArmISA::MISCREG_TLBIMVAAL?
388 // ArmISA::MISCREG_TLBIIPAS2IS?
389 // ArmISA::MISCREG_TLBIIPAS2LIS?
390 // ArmISA::MISCREG_TLBIALLHIS?
391 // ArmISA::MISCREG_TLBIMVAHIS?
392 // ArmISA::MISCREG_TLBIALLNSNHIS?
393 // ArmISA::MISCREG_TLBIMVALHIS?
394 // ArmISA::MISCREG_TLBIIPAS2?
395 // ArmISA::MISCREG_TLBIIPAS2L?
396 // ArmISA::MISCREG_TLBIALLH?
397 // ArmISA::MISCREG_TLBIMVAH?
398 // ArmISA::MISCREG_TLBIALLNSNH?
399 // ArmISA::MISCREG_TLBIMVALH?
400 // ArmISA::MISCREG_PMCR?
401 // ArmISA::MISCREG_PMCNTENSET?
402 // ArmISA::MISCREG_PMCNTENCLR?
403 // ArmISA::MISCREG_PMOVSR?
404 // ArmISA::MISCREG_PMSWINC?
405 // ArmISA::MISCREG_PMSELR?
406 // ArmISA::MISCREG_PMCEID0?
407 // ArmISA::MISCREG_PMCEID1?
408 // ArmISA::MISCREG_PMCCNTR?
409 // ArmISA::MISCREG_PMXEVTYPER?
410 // ArmISA::MISCREG_PMCCFILTR?
411 // ArmISA::MISCREG_PMXEVCNTR?
412 // ArmISA::MISCREG_PMUSERENR?
413 // ArmISA::MISCREG_PMINTENSET?
414 // ArmISA::MISCREG_PMINTENCLR?
415 // ArmISA::MISCREG_PMOVSSET?
416 // ArmISA::MISCREG_L2CTLR?
417 // ArmISA::MISCREG_L2ECTLR?
418 // ArmISA::MISCREG_PRRR?
419 // ArmISA::MISCREG_PRRR_NS?
420 // ArmISA::MISCREG_PRRR_S?
421 // ArmISA::MISCREG_MAIR0?
422 // ArmISA::MISCREG_MAIR0_NS?
423 // ArmISA::MISCREG_MAIR0_S?
424 // ArmISA::MISCREG_NMRR?
425 // ArmISA::MISCREG_NMRR_NS?
426 // ArmISA::MISCREG_NMRR_S?
427 // ArmISA::MISCREG_MAIR1?
428 // ArmISA::MISCREG_MAIR1_NS?
429 // ArmISA::MISCREG_MAIR1_S?
430 // ArmISA::MISCREG_AMAIR0?
431 // ArmISA::MISCREG_AMAIR0_NS?
432 // ArmISA::MISCREG_AMAIR0_S?
433 // ArmISA::MISCREG_AMAIR1?
434 // ArmISA::MISCREG_AMAIR1_NS?
435 // ArmISA::MISCREG_AMAIR1_S?
436 // ArmISA::MISCREG_HMAIR0?
437 // ArmISA::MISCREG_HMAIR1?
438 // ArmISA::MISCREG_HAMAIR0?
439 // ArmISA::MISCREG_HAMAIR1?
440 // ArmISA::MISCREG_VBAR?
441 // ArmISA::MISCREG_VBAR_NS?
442 // ArmISA::MISCREG_VBAR_S?
443 // ArmISA::MISCREG_MVBAR?
444 // ArmISA::MISCREG_RMR?
445 // ArmISA::MISCREG_ISR?
446 // ArmISA::MISCREG_HVBAR?
447 // ArmISA::MISCREG_FCSEIDR?
448 // ArmISA::MISCREG_CONTEXTIDR?
449 // ArmISA::MISCREG_CONTEXTIDR_NS?
450 // ArmISA::MISCREG_CONTEXTIDR_S?
451 // ArmISA::MISCREG_TPIDRURW?
452 // ArmISA::MISCREG_TPIDRURW_NS?
453 // ArmISA::MISCREG_TPIDRURW_S?
454 // ArmISA::MISCREG_TPIDRURO?
455 // ArmISA::MISCREG_TPIDRURO_NS?
456 // ArmISA::MISCREG_TPIDRURO_S?
457 // ArmISA::MISCREG_TPIDRPRW?
458 // ArmISA::MISCREG_TPIDRPRW_NS?
460 // ArmISA::MISCREG_HTPIDR?
461 // ArmISA::MISCREG_CNTFRQ?
462 // ArmISA::MISCREG_CNTKCTL?
463 // ArmISA::MISCREG_CNTP_TVAL?
464 // ArmISA::MISCREG_CNTP_TVAL_NS?
465 // ArmISA::MISCREG_CNTP_TVAL_S?
466 // ArmISA::MISCREG_CNTP_CTL?
467 // ArmISA::MISCREG_CNTP_CTL_NS?
468 // ArmISA::MISCREG_CNTP_CTL_S?
469 // ArmISA::MISCREG_CNTV_TVAL?
470 // ArmISA::MISCREG_CNTV_CTL?
471 // ArmISA::MISCREG_CNTHCTL?
472 // ArmISA::MISCREG_CNTHP_TVAL?
473 // ArmISA::MISCREG_CNTHP_CTL?
474 // ArmISA::MISCREG_IL1DATA0?
475 // ArmISA::MISCREG_IL1DATA1?
476 // ArmISA::MISCREG_IL1DATA2?
477 // ArmISA::MISCREG_IL1DATA3?
478 // ArmISA::MISCREG_DL1DATA0?
479 // ArmISA::MISCREG_DL1DATA1?
480 // ArmISA::MISCREG_DL1DATA2?
481 // ArmISA::MISCREG_DL1DATA3?
482 // ArmISA::MISCREG_DL1DATA4?
483 // ArmISA::MISCREG_RAMINDEX?
484 // ArmISA::MISCREG_L2ACTLR?
485 // ArmISA::MISCREG_CBAR?
486 // ArmISA::MISCREG_HTTBR?
487 // ArmISA::MISCREG_VTTBR?
488 // ArmISA::MISCREG_CNTPCT?
489 // ArmISA::MISCREG_CNTVCT?
490 // ArmISA::MISCREG_CNTP_CVAL?
491 // ArmISA::MISCREG_CNTP_CVAL_NS?
492 // ArmISA::MISCREG_CNTP_CVAL_S?
493 // ArmISA::MISCREG_CNTV_CVAL?
494 // ArmISA::MISCREG_CNTVOFF?
495 // ArmISA::MISCREG_CNTHP_CVAL?
496 // ArmISA::MISCREG_CPUMERRSR?
497 // ArmISA::MISCREG_L2MERRSR?
498
499 // AArch64 registers (Op0=2)
500 // ArmISA::MISCREG_MDCCINT_EL1?
501 // ArmISA::MISCREG_OSDTRRX_EL1?
502 // ArmISA::MISCREG_MDSCR_EL1?
503 // ArmISA::MISCREG_OSDTRTX_EL1?
504 // ArmISA::MISCREG_OSECCR_EL1?
505 // ArmISA::MISCREG_DBGBVR0_EL1?
506 // ArmISA::MISCREG_DBGBVR1_EL1?
507 // ArmISA::MISCREG_DBGBVR2_EL1?
508 // ArmISA::MISCREG_DBGBVR3_EL1?
509 // ArmISA::MISCREG_DBGBVR4_EL1?
510 // ArmISA::MISCREG_DBGBVR5_EL1?
511 // ArmISA::MISCREG_DBGBCR0_EL1?
512 // ArmISA::MISCREG_DBGBCR1_EL1?
513 // ArmISA::MISCREG_DBGBCR2_EL1?
514 // ArmISA::MISCREG_DBGBCR3_EL1?
515 // ArmISA::MISCREG_DBGBCR4_EL1?
516 // ArmISA::MISCREG_DBGBCR5_EL1?
517 // ArmISA::MISCREG_DBGWVR0_EL1?
518 // ArmISA::MISCREG_DBGWVR1_EL1?
519 // ArmISA::MISCREG_DBGWVR2_EL1?
520 // ArmISA::MISCREG_DBGWVR3_EL1?
521 // ArmISA::MISCREG_DBGWCR0_EL1?
522 // ArmISA::MISCREG_DBGWCR1_EL1?
523 // ArmISA::MISCREG_DBGWCR2_EL1?
524 // ArmISA::MISCREG_DBGWCR3_EL1?
525 // ArmISA::MISCREG_MDCCSR_EL0?
526 // ArmISA::MISCREG_MDDTR_EL0?
527 // ArmISA::MISCREG_MDDTRTX_EL0?
528 // ArmISA::MISCREG_MDDTRRX_EL0?
529 // ArmISA::MISCREG_DBGVCR32_EL2?
530 // ArmISA::MISCREG_MDRAR_EL1?
531 // ArmISA::MISCREG_OSLAR_EL1?
532 // ArmISA::MISCREG_OSLSR_EL1?
533 // ArmISA::MISCREG_OSDLR_EL1?
534 // ArmISA::MISCREG_DBGPRCR_EL1?
535 // ArmISA::MISCREG_DBGCLAIMSET_EL1?
536 // ArmISA::MISCREG_DBGCLAIMCLR_EL1?
537 // ArmISA::MISCREG_DBGAUTHSTATUS_EL1?
538 // ArmISA::MISCREG_TEECR32_EL1? not in ARM DDI 0487A.b+
539 // ArmISA::MISCREG_TEEHBR32_EL1? not in ARM DDI 0487A.b+
540
541 // AArch64 registers (Op0=1)
542 // ArmISA::MISCREG_MIDR_EL1?
543 // ArmISA::MISCREG_MPIDR_EL1?
544 // ArmISA::MISCREG_REVIDR_EL1?
545 // ArmISA::MISCREG_ID_PFR0_EL1?
546 // ArmISA::MISCREG_ID_PFR1_EL1?
547 // ArmISA::MISCREG_ID_DFR0_EL1?
548 // ArmISA::MISCREG_ID_AFR0_EL1?
549 // ArmISA::MISCREG_ID_MMFR0_EL1?
550 // ArmISA::MISCREG_ID_MMFR1_EL1?
551 // ArmISA::MISCREG_ID_MMFR2_EL1?
552 // ArmISA::MISCREG_ID_MMFR3_EL1?
553 // ArmISA::MISCREG_ID_MMFR4_EL1?
554 // ArmISA::MISCREG_ID_ISAR0_EL1?
555 // ArmISA::MISCREG_ID_ISAR1_EL1?
556 // ArmISA::MISCREG_ID_ISAR2_EL1?
557 // ArmISA::MISCREG_ID_ISAR3_EL1?
558 // ArmISA::MISCREG_ID_ISAR4_EL1?
559 // ArmISA::MISCREG_ID_ISAR5_EL1?
560 // ArmISA::MISCREG_ID_ISAR6_EL1?
561 // ArmISA::MISCREG_MVFR0_EL1?
562 // ArmISA::MISCREG_MVFR1_EL1?
563 // ArmISA::MISCREG_MVFR2_EL1?
564 // ArmISA::MISCREG_ID_AA64PFR0_EL1?
565 // ArmISA::MISCREG_ID_AA64PFR1_EL1?
566 // ArmISA::MISCREG_ID_AA64DFR0_EL1?
567 // ArmISA::MISCREG_ID_AA64DFR1_EL1?
568 // ArmISA::MISCREG_ID_AA64AFR0_EL1?
569 // ArmISA::MISCREG_ID_AA64AFR1_EL1?
570 // ArmISA::MISCREG_ID_AA64ISAR0_EL1?
571 // ArmISA::MISCREG_ID_AA64ISAR1_EL1?
572 // ArmISA::MISCREG_ID_AA64MMFR0_EL1?
573 // ArmISA::MISCREG_ID_AA64MMFR1_EL1?
574 // ArmISA::MISCREG_CCSIDR_EL1?
575 // ArmISA::MISCREG_CLIDR_EL1?
576 // ArmISA::MISCREG_AIDR_EL1?
577 // ArmISA::MISCREG_CSSELR_EL1?
578 // ArmISA::MISCREG_CTR_EL0?
579 // ArmISA::MISCREG_DCZID_EL0?
580 // ArmISA::MISCREG_VPIDR_EL2?
581 // ArmISA::MISCREG_VMPIDR_EL2?
582 // ArmISA::MISCREG_SCTLR_EL1?
583 // ArmISA::MISCREG_ACTLR_EL1?
584 // ArmISA::MISCREG_CPACR_EL1?
585 // ArmISA::MISCREG_SCTLR_EL2?
586 // ArmISA::MISCREG_ACTLR_EL2?
587 // ArmISA::MISCREG_HCR_EL2?
588 // ArmISA::MISCREG_MDCR_EL2?
589 // ArmISA::MISCREG_CPTR_EL2?
590 // ArmISA::MISCREG_HSTR_EL2?
591 // ArmISA::MISCREG_HACR_EL2?
592 // ArmISA::MISCREG_SCTLR_EL3?
593 // ArmISA::MISCREG_ACTLR_EL3?
594 // ArmISA::MISCREG_SCR_EL3?
595 // ArmISA::MISCREG_SDER32_EL3?
596 // ArmISA::MISCREG_CPTR_EL3?
597 // ArmISA::MISCREG_MDCR_EL3?
598 // ArmISA::MISCREG_TTBR0_EL1?
599 // ArmISA::MISCREG_TTBR1_EL1?
600 // ArmISA::MISCREG_TCR_EL1?
601 // ArmISA::MISCREG_TTBR0_EL2?
602 // ArmISA::MISCREG_TCR_EL2?
603 // ArmISA::MISCREG_VTTBR_EL2?
604 // ArmISA::MISCREG_VTCR_EL2?
605 // ArmISA::MISCREG_TTBR0_EL3?
606 // ArmISA::MISCREG_TCR_EL3?
607 // ArmISA::MISCREG_DACR32_EL2?
608 // ArmISA::MISCREG_SPSR_EL1?
609 // ArmISA::MISCREG_ELR_EL1?
610 // ArmISA::MISCREG_SP_EL0?
611 // ArmISA::MISCREG_SPSEL?
612 // ArmISA::MISCREG_CURRENTEL?
613 // ArmISA::MISCREG_NZCV?
614 // ArmISA::MISCREG_DAIF?
615 // ArmISA::MISCREG_FPCR?
616 { ArmISA::MISCREG_FPSCR, "FPSCR" },
617 // ArmISA::MISCREG_DSPSR_EL0?
618 // ArmISA::MISCREG_DLR_EL0?
619 // ArmISA::MISCREG_SPSR_EL2?
620 // ArmISA::MISCREG_ELR_EL2?
621 // ArmISA::MISCREG_SP_EL1?
622 // ArmISA::MISCREG_SPSR_IRQ_AA64?
623 // ArmISA::MISCREG_SPSR_ABT_AA64?
624 // ArmISA::MISCREG_SPSR_UND_AA64?
625 // ArmISA::MISCREG_SPSR_FIQ_AA64?
626 // ArmISA::MISCREG_SPSR_EL3?
627 // ArmISA::MISCREG_ELR_EL3?
628 // ArmISA::MISCREG_SP_EL2?
629 // ArmISA::MISCREG_AFSR0_EL1?
630 // ArmISA::MISCREG_AFSR1_EL1?
631 // ArmISA::MISCREG_ESR_EL1?
632 // ArmISA::MISCREG_IFSR32_EL2?
633 // ArmISA::MISCREG_AFSR0_EL2?
634 // ArmISA::MISCREG_AFSR1_EL2?
635 // ArmISA::MISCREG_ESR_EL2?
636 // ArmISA::MISCREG_FPEXC32_EL2?
637 // ArmISA::MISCREG_AFSR0_EL3?
638 // ArmISA::MISCREG_AFSR1_EL3?
639 // ArmISA::MISCREG_ESR_EL3?
640 // ArmISA::MISCREG_FAR_EL1?
641 // ArmISA::MISCREG_FAR_EL2?
642 // ArmISA::MISCREG_HPFAR_EL2?
643 // ArmISA::MISCREG_FAR_EL3?
644 // ArmISA::MISCREG_IC_IALLUIS?
645 // ArmISA::MISCREG_PAR_EL1?
646 // ArmISA::MISCREG_IC_IALLU?
647 // ArmISA::MISCREG_DC_IVAC_Xt?
648 // ArmISA::MISCREG_DC_ISW_Xt?
649 // ArmISA::MISCREG_AT_S1E1R_Xt?
650 // ArmISA::MISCREG_AT_S1E1W_Xt?
651 // ArmISA::MISCREG_AT_S1E0R_Xt?
652 // ArmISA::MISCREG_AT_S1E0W_Xt?
653 // ArmISA::MISCREG_DC_CSW_Xt?
654 // ArmISA::MISCREG_DC_CISW_Xt?
655 // ArmISA::MISCREG_DC_ZVA_Xt?
656 // ArmISA::MISCREG_IC_IVAU_Xt?
657 // ArmISA::MISCREG_DC_CVAC_Xt?
658 // ArmISA::MISCREG_DC_CVAU_Xt?
659 // ArmISA::MISCREG_DC_CIVAC_Xt?
660 // ArmISA::MISCREG_AT_S1E2R_Xt?
661 // ArmISA::MISCREG_AT_S1E2W_Xt?
662 // ArmISA::MISCREG_AT_S12E1R_Xt?
663 // ArmISA::MISCREG_AT_S12E1W_Xt?
664 // ArmISA::MISCREG_AT_S12E0R_Xt?
665 // ArmISA::MISCREG_AT_S12E0W_Xt?
666 // ArmISA::MISCREG_AT_S1E3R_Xt?
667 // ArmISA::MISCREG_AT_S1E3W_Xt?
668 // ArmISA::MISCREG_TLBI_VMALLE1IS?
669 // ArmISA::MISCREG_TLBI_VAE1IS_Xt?
670 // ArmISA::MISCREG_TLBI_ASIDE1IS_Xt?
671 // ArmISA::MISCREG_TLBI_VAAE1IS_Xt?
672 // ArmISA::MISCREG_TLBI_VALE1IS_Xt?
673 // ArmISA::MISCREG_TLBI_VAALE1IS_Xt?
674 // ArmISA::MISCREG_TLBI_VMALLE1?
675 // ArmISA::MISCREG_TLBI_VAE1_Xt?
676 // ArmISA::MISCREG_TLBI_ASIDE1_Xt?
677 // ArmISA::MISCREG_TLBI_VAAE1_Xt?
678 // ArmISA::MISCREG_TLBI_VALE1_Xt?
679 // ArmISA::MISCREG_TLBI_VAALE1_Xt?
680 // ArmISA::MISCREG_TLBI_IPAS2E1IS_Xt?
681 // ArmISA::MISCREG_TLBI_IPAS2LE1IS_Xt?
682 // ArmISA::MISCREG_TLBI_ALLE2IS?
683 // ArmISA::MISCREG_TLBI_VAE2IS_Xt?
684 // ArmISA::MISCREG_TLBI_ALLE1IS?
685 // ArmISA::MISCREG_TLBI_VALE2IS_Xt?
686 // ArmISA::MISCREG_TLBI_VMALLS12E1IS?
687 // ArmISA::MISCREG_TLBI_IPAS2E1_Xt?
688 // ArmISA::MISCREG_TLBI_IPAS2LE1_Xt?
689 // ArmISA::MISCREG_TLBI_ALLE2?
690 // ArmISA::MISCREG_TLBI_VAE2_Xt?
691 // ArmISA::MISCREG_TLBI_ALLE1?
692 // ArmISA::MISCREG_TLBI_VALE2_Xt?
693 // ArmISA::MISCREG_TLBI_VMALLS12E1?
694 // ArmISA::MISCREG_TLBI_ALLE3IS?
695 // ArmISA::MISCREG_TLBI_VAE3IS_Xt?
696 // ArmISA::MISCREG_TLBI_VALE3IS_Xt?
697 // ArmISA::MISCREG_TLBI_ALLE3?
698 // ArmISA::MISCREG_TLBI_VAE3_Xt?
699 // ArmISA::MISCREG_TLBI_VALE3_Xt?
700 // ArmISA::MISCREG_PMINTENSET_EL1?
701 // ArmISA::MISCREG_PMINTENCLR_EL1?
702 // ArmISA::MISCREG_PMCR_EL0?
703 // ArmISA::MISCREG_PMCNTENSET_EL0?
704 // ArmISA::MISCREG_PMCNTENCLR_EL0?
705 // ArmISA::MISCREG_PMOVSCLR_EL0?
706 // ArmISA::MISCREG_PMSWINC_EL0?
707 // ArmISA::MISCREG_PMSELR_EL0?
708 // ArmISA::MISCREG_PMCEID0_EL0?
709 // ArmISA::MISCREG_PMCEID1_EL0?
710 // ArmISA::MISCREG_PMCCNTR_EL0?
711 // ArmISA::MISCREG_PMXEVTYPER_EL0?
712 // ArmISA::MISCREG_PMCCFILTR_EL0?
713 // ArmISA::MISCREG_PMXEVCNTR_EL0?
714 // ArmISA::MISCREG_PMUSERENR_EL0?
715 // ArmISA::MISCREG_PMOVSSET_EL0?
716 // ArmISA::MISCREG_MAIR_EL1?
717 // ArmISA::MISCREG_AMAIR_EL1?
718 // ArmISA::MISCREG_MAIR_EL2?
719 // ArmISA::MISCREG_AMAIR_EL2?
720 // ArmISA::MISCREG_MAIR_EL3?
721 // ArmISA::MISCREG_AMAIR_EL3?
722 // ArmISA::MISCREG_L2CTLR_EL1?
723 // ArmISA::MISCREG_L2ECTLR_EL1?
724 // ArmISA::MISCREG_VBAR_EL1?
725 // ArmISA::MISCREG_RVBAR_EL1?
726 // ArmISA::MISCREG_ISR_EL1?
727 // ArmISA::MISCREG_VBAR_EL2?
728 // ArmISA::MISCREG_RVBAR_EL2?
729 // ArmISA::MISCREG_VBAR_EL3?
730 // ArmISA::MISCREG_RVBAR_EL3?
731 // ArmISA::MISCREG_RMR_EL3?
732 // ArmISA::MISCREG_CONTEXTIDR_EL1?
733 // ArmISA::MISCREG_TPIDR_EL1?
734 // ArmISA::MISCREG_TPIDR_EL0?
735 // ArmISA::MISCREG_TPIDRRO_EL0?
736 // ArmISA::MISCREG_TPIDR_EL2?
737 // ArmISA::MISCREG_TPIDR_EL3?
738 // ArmISA::MISCREG_CNTKCTL_EL1?
739 // ArmISA::MISCREG_CNTFRQ_EL0?
740 // ArmISA::MISCREG_CNTPCT_EL0?
741 // ArmISA::MISCREG_CNTVCT_EL0?
742 // ArmISA::MISCREG_CNTP_TVAL_EL0?
743 // ArmISA::MISCREG_CNTP_CTL_EL0?
744 // ArmISA::MISCREG_CNTP_CVAL_EL0?
745 // ArmISA::MISCREG_CNTV_TVAL_EL0?
746 // ArmISA::MISCREG_CNTV_CTL_EL0?
747 // ArmISA::MISCREG_CNTV_CVAL_EL0?
748 // ArmISA::MISCREG_PMEVCNTR0_EL0?
749 // ArmISA::MISCREG_PMEVCNTR1_EL0?
750 // ArmISA::MISCREG_PMEVCNTR2_EL0?
751 // ArmISA::MISCREG_PMEVCNTR3_EL0?
752 // ArmISA::MISCREG_PMEVCNTR4_EL0?
753 // ArmISA::MISCREG_PMEVCNTR5_EL0?
754 // ArmISA::MISCREG_PMEVTYPER0_EL0?
755 // ArmISA::MISCREG_PMEVTYPER1_EL0?
756 // ArmISA::MISCREG_PMEVTYPER2_EL0?
757 // ArmISA::MISCREG_PMEVTYPER3_EL0?
758 // ArmISA::MISCREG_PMEVTYPER4_EL0?
759 // ArmISA::MISCREG_PMEVTYPER5_EL0?
760 // ArmISA::MISCREG_CNTVOFF_EL2?
761 // ArmISA::MISCREG_CNTHCTL_EL2?
762 // ArmISA::MISCREG_CNTHP_TVAL_EL2?
763 // ArmISA::MISCREG_CNTHP_CTL_EL2?
764 // ArmISA::MISCREG_CNTHP_CVAL_EL2?
765 // ArmISA::MISCREG_CNTPS_TVAL_EL1?
766 // ArmISA::MISCREG_CNTPS_CTL_EL1?
767 // ArmISA::MISCREG_CNTPS_CVAL_EL1?
768 // ArmISA::MISCREG_IL1DATA0_EL1?
769 // ArmISA::MISCREG_IL1DATA1_EL1?
770 // ArmISA::MISCREG_IL1DATA2_EL1?
771 // ArmISA::MISCREG_IL1DATA3_EL1?
772 // ArmISA::MISCREG_DL1DATA0_EL1?
773 // ArmISA::MISCREG_DL1DATA1_EL1?
774 // ArmISA::MISCREG_DL1DATA2_EL1?
775 // ArmISA::MISCREG_DL1DATA3_EL1?
776 // ArmISA::MISCREG_DL1DATA4_EL1?
777 // ArmISA::MISCREG_L2ACTLR_EL1?
778 // ArmISA::MISCREG_CPUACTLR_EL1?
779 // ArmISA::MISCREG_CPUECTLR_EL1?
780 // ArmISA::MISCREG_CPUMERRSR_EL1?
781 // ArmISA::MISCREG_L2MERRSR_EL1?
782 // ArmISA::MISCREG_CBAR_EL1?
783 // ArmISA::MISCREG_CONTEXTIDR_EL2?
784
785 // Introduced in ARMv8.1
786 // ArmISA::MISCREG_TTBR1_EL2?
787 // ArmISA::MISCREG_CNTHV_CTL_EL2?
788 // ArmISA::MISCREG_CNTHV_CVAL_EL2?
789 // ArmISA::MISCREG_CNTHV_TVAL_EL2?
790
791 // RAS extension (unimplemented)
792 // ArmISA::MISCREG_ERRIDR_EL1?
793 // ArmISA::MISCREG_ERRSELR_EL1?
794 // ArmISA::MISCREG_ERXFR_EL1?
795 // ArmISA::MISCREG_ERXCTLR_EL1?
796 // ArmISA::MISCREG_ERXSTATUS_EL1?
797 // ArmISA::MISCREG_ERXADDR_EL1?
798 // ArmISA::MISCREG_ERXMISC0_EL1?
799 // ArmISA::MISCREG_ERXMISC1_EL1?
800 // ArmISA::MISCREG_DISR_EL1?
801 // ArmISA::MISCREG_VSESR_EL2?
802 // ArmISA::MISCREG_VDISR_EL2?
803});
804
806 { ArmISA::int_reg::R0, "R0" },
807 { ArmISA::int_reg::R1, "R1" },
808 { ArmISA::int_reg::R2, "R2" },
809 { ArmISA::int_reg::R3, "R3" },
810 { ArmISA::int_reg::R4, "R4" },
811 { ArmISA::int_reg::R5, "R5" },
812 { ArmISA::int_reg::R6, "R6" },
813 { ArmISA::int_reg::R7, "R7" },
814 { ArmISA::int_reg::R8, "R8" },
815 { ArmISA::int_reg::R9, "R9" },
816 { ArmISA::int_reg::R10, "R10" },
817 { ArmISA::int_reg::R11, "R11" },
818 { ArmISA::int_reg::R12, "R12" },
819 { ArmISA::int_reg::R13, "R13" },
820 { ArmISA::int_reg::R14, "R14" },
821 { ArmISA::int_reg::R15, "R15" }
822});
823
825 { ArmISA::cc_reg::Nz, "CPSR" },
826 { ArmISA::cc_reg::C, "CPSR.C" },
827 { ArmISA::cc_reg::V, "CPSR.V" },
828 { ArmISA::cc_reg::Ge, "CPSR.GE" },
829 { ArmISA::cc_reg::Fp, "FPSCR" },
830});
831
832std::vector<iris::MemorySpaceId> CortexR52TC::bpSpaceIds;
833
834} // namespace fastmodel
835} // namespace gem5
const char data[]
ThreadContext(gem5::BaseCPU *cpu, int id, System *system, gem5::BaseMMU *mmu, gem5::BaseISA *isa, iris::IrisConnectionInterface *iris_if, const std::string &iris_path)
virtual RegVal readCCRegFlat(RegIndex idx) const
void extractResourceMap(ResourceIds &ids, const ResourceMap &resources, const IdxNameMap &idx_names)
void writeMem(iris::MemorySpaceId space, Addr addr, const void *p, size_t size)
void readMem(iris::MemorySpaceId space, Addr addr, void *p, size_t size)
std::map< std::string, iris::ResourceInfo > ResourceMap
std::map< int, std::string > IdxNameMap
iris::MemorySpaceId getMemorySpaceId(const Iris::CanonicalMsn &msn) const
iris::IrisCppAdapter & call() const
RegVal readMiscReg(RegIndex misc_reg) override
iris::ResourceId extractResourceId(const ResourceMap &resources, const std::string &name)
virtual void setCCRegFlat(RegIndex idx, RegVal val)
bool isRead() const
Definition packet.hh:593
Addr getAddr() const
Definition packet.hh:807
void makeResponse()
Take a request packet and modify it in place to be suitable for returning as a response to that reque...
Definition packet.hh:1062
T * getPtr()
get a pointer to the data ptr.
Definition packet.hh:1225
unsigned getSize() const
Definition packet.hh:817
RegVal readMiscRegNoEffect(RegIndex idx) const override
RegVal readIntReg(RegIndex reg_idx) const override
bool translateAddress(Addr &paddr, Addr vaddr) override
RegVal readCCRegFlat(RegIndex idx) const override
static IdxNameMap ccRegIdxNameMap
void sendFunctional(PacketPtr pkt) override
const std::vector< iris::MemorySpaceId > & getBpSpaceIds() const override
CortexR52TC(gem5::BaseCPU *cpu, int id, System *system, gem5::BaseMMU *mmu, gem5::BaseISA *isa, iris::IrisConnectionInterface *iris_if, const std::string &iris_path)
void setCCRegFlat(RegIndex idx, RegVal val) override
void setIntReg(RegIndex reg_idx, RegVal val) override
void initFromIrisInstance(const ResourceMap &resources) override
static IdxNameMap miscRegIdxNameMap
static IdxNameMap intReg32IdxNameMap
static std::vector< iris::MemorySpaceId > bpSpaceIds
STL vector class.
Definition stl.hh:37
constexpr T bits(T val, unsigned first, unsigned last)
Extract the bitfield from position 'first' to 'last' (inclusive) from 'val' and right justify it.
Definition bitfield.hh:79
constexpr T insertBits(T val, unsigned first, unsigned last, B bit_val)
Returns val with bits first to last set to the LSBs of bit_val.
Definition bitfield.hh:185
#define panic_if(cond,...)
Conditional panic macro that checks the supplied condition and only panics if the condition is true a...
Definition logging.hh:246
constexpr RegId V
Definition cc.hh:96
constexpr RegId C
Definition cc.hh:95
constexpr RegId Fp
Definition cc.hh:98
constexpr RegId Ge
Definition cc.hh:97
constexpr RegId Nz
Definition cc.hh:94
constexpr RegId R4
Definition int.hh:190
constexpr RegId R9
Definition int.hh:195
constexpr RegId R6
Definition int.hh:192
constexpr RegId R12
Definition int.hh:198
constexpr RegId R7
Definition int.hh:193
constexpr RegId R3
Definition int.hh:189
constexpr RegId R8
Definition int.hh:194
constexpr RegId R11
Definition int.hh:197
constexpr RegId R5
Definition int.hh:191
constexpr RegId R14
Definition int.hh:200
constexpr RegId R10
Definition int.hh:196
constexpr RegId R2
Definition int.hh:188
constexpr RegId R1
Definition int.hh:187
constexpr RegId R15
Definition int.hh:201
constexpr RegId R0
Definition int.hh:186
constexpr RegId R13
Definition int.hh:199
Bitfield< 33 > id
@ MISCREG_CPSR
Definition misc.hh:79
@ MISCREG_FPSCR
Definition misc.hh:90
@ MISCREG_SPSR
Definition misc.hh:80
Bitfield< 15 > system
Definition misc.hh:1032
Bitfield< 63 > val
Definition misc.hh:804
Bitfield< 3 > addr
Definition types.hh:84
Copyright (c) 2024 Arm Limited All rights reserved.
Definition binary32.hh:36
uint16_t RegIndex
Definition types.hh:176
uint64_t RegVal
Definition types.hh:173
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
Definition types.hh:147
Packet * PacketPtr

Generated on Mon Oct 27 2025 04:13:00 for gem5 by doxygen 1.14.0