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

Generated on Wed May 4 2022 12:13:46 for gem5 by doxygen 1.8.17