gem5  v20.1.0.0
types.hh
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2010, 2012-2013, 2017-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
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 (c) 2007-2008 The Florida State University
15  * All rights reserved.
16  *
17  * Redistribution and use in source and binary forms, with or without
18  * modification, are permitted provided that the following conditions are
19  * met: redistributions of source code must retain the above copyright
20  * notice, this list of conditions and the following disclaimer;
21  * redistributions in binary form must reproduce the above copyright
22  * notice, this list of conditions and the following disclaimer in the
23  * documentation and/or other materials provided with the distribution;
24  * neither the name of the copyright holders nor the names of its
25  * contributors may be used to endorse or promote products derived from
26  * this software without specific prior written permission.
27  *
28  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
29  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
30  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
31  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
32  * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
33  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
34  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
35  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
36  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
37  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
38  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
39  */
40 
41 #ifndef __ARCH_ARM_TYPES_HH__
42 #define __ARCH_ARM_TYPES_HH__
43 
44 #include "arch/generic/types.hh"
45 #include "base/bitunion.hh"
46 #include "base/logging.hh"
47 #include "base/types.hh"
48 #include "debug/Decoder.hh"
49 
50 namespace ArmISA
51 {
52  typedef uint32_t MachInst;
53 
54  BitUnion8(ITSTATE)
55  /* Note that the split (cond, mask) below is not as in ARM ARM.
56  * But it is more convenient for simulation. The condition
57  * is always the concatenation of the top 3 bits and the next bit,
58  * which applies when one of the bottom 4 bits is set.
59  * Refer to predecoder.cc for the use case.
60  */
61  Bitfield<7, 4> cond;
62  Bitfield<3, 0> mask;
63  // Bitfields for moving to/from CPSR
64  Bitfield<7, 2> top6;
65  Bitfield<1, 0> bottom2;
66  EndBitUnion(ITSTATE)
67 
69  // Decoder state
70  Bitfield<63, 62> decoderFault; // See DecoderFault
71  Bitfield<61> illegalExecution;
72  Bitfield<60> debugStep;
73 
74  // SVE vector length, encoded in the same format as the ZCR_EL<x>.LEN
75  // bitfields
76  Bitfield<59, 56> sveLen;
77 
78  // ITSTATE bits
79  Bitfield<55, 48> itstate;
80  Bitfield<55, 52> itstateCond;
81  Bitfield<51, 48> itstateMask;
82 
83  // FPSCR fields
84  Bitfield<41, 40> fpscrStride;
85  Bitfield<39, 37> fpscrLen;
86 
87  // Bitfields to select mode.
88  Bitfield<36> thumb;
89  Bitfield<35> bigThumb;
90  Bitfield<34> aarch64;
91 
92  // Made up bitfields that make life easier.
93  Bitfield<33> sevenAndFour;
94  Bitfield<32> isMisc;
95 
96  uint32_t instBits;
97 
98  // All the different types of opcode fields.
99  Bitfield<27, 25> encoding;
100  Bitfield<25> useImm;
101  Bitfield<24, 21> opcode;
102  Bitfield<24, 20> mediaOpcode;
103  Bitfield<24> opcode24;
104  Bitfield<24, 23> opcode24_23;
105  Bitfield<23, 20> opcode23_20;
106  Bitfield<23, 21> opcode23_21;
107  Bitfield<20> opcode20;
108  Bitfield<22> opcode22;
109  Bitfield<19, 16> opcode19_16;
110  Bitfield<19> opcode19;
111  Bitfield<18> opcode18;
112  Bitfield<15, 12> opcode15_12;
113  Bitfield<15> opcode15;
114  Bitfield<7, 4> miscOpcode;
115  Bitfield<7,5> opc2;
116  Bitfield<7> opcode7;
117  Bitfield<6> opcode6;
118  Bitfield<4> opcode4;
119 
120  Bitfield<31, 28> condCode;
121  Bitfield<20> sField;
122  Bitfield<19, 16> rn;
123  Bitfield<15, 12> rd;
124  Bitfield<15, 12> rt;
125  Bitfield<11, 7> shiftSize;
126  Bitfield<6, 5> shift;
127  Bitfield<3, 0> rm;
128 
129  Bitfield<11, 8> rs;
130 
131  SubBitUnion(puswl, 24, 20)
132  Bitfield<24> prepost;
133  Bitfield<23> up;
134  Bitfield<22> psruser;
135  Bitfield<21> writeback;
136  Bitfield<20> loadOp;
137  EndSubBitUnion(puswl)
138 
139  Bitfield<24, 20> pubwl;
140 
141  Bitfield<7, 0> imm;
142 
143  Bitfield<11, 8> rotate;
144 
145  Bitfield<11, 0> immed11_0;
146  Bitfield<7, 0> immed7_0;
147 
148  Bitfield<11, 8> immedHi11_8;
149  Bitfield<3, 0> immedLo3_0;
150 
151  Bitfield<15, 0> regList;
152 
153  Bitfield<23, 0> offset;
154 
155  Bitfield<23, 0> immed23_0;
156 
157  Bitfield<11, 8> cpNum;
158  Bitfield<18, 16> fn;
159  Bitfield<14, 12> fd;
160  Bitfield<3> fpRegImm;
161  Bitfield<3, 0> fm;
162  Bitfield<2, 0> fpImm;
163  Bitfield<24, 20> punwl;
164 
165  Bitfield<15, 8> m5Func;
166 
167  // 16 bit thumb bitfields
168  Bitfield<15, 13> topcode15_13;
169  Bitfield<13, 11> topcode13_11;
170  Bitfield<12, 11> topcode12_11;
171  Bitfield<12, 10> topcode12_10;
172  Bitfield<11, 9> topcode11_9;
173  Bitfield<11, 8> topcode11_8;
174  Bitfield<10, 9> topcode10_9;
175  Bitfield<10, 8> topcode10_8;
176  Bitfield<9, 6> topcode9_6;
177  Bitfield<7> topcode7;
178  Bitfield<7, 6> topcode7_6;
179  Bitfield<7, 5> topcode7_5;
180  Bitfield<7, 4> topcode7_4;
181  Bitfield<3, 0> topcode3_0;
182 
183  // 32 bit thumb bitfields
184  Bitfield<28, 27> htopcode12_11;
185  Bitfield<26, 25> htopcode10_9;
186  Bitfield<25> htopcode9;
187  Bitfield<25, 24> htopcode9_8;
188  Bitfield<25, 21> htopcode9_5;
189  Bitfield<25, 20> htopcode9_4;
190  Bitfield<24> htopcode8;
191  Bitfield<24, 23> htopcode8_7;
192  Bitfield<24, 22> htopcode8_6;
193  Bitfield<24, 21> htopcode8_5;
194  Bitfield<23> htopcode7;
195  Bitfield<23, 21> htopcode7_5;
196  Bitfield<22> htopcode6;
197  Bitfield<22, 21> htopcode6_5;
198  Bitfield<21, 20> htopcode5_4;
199  Bitfield<20> htopcode4;
200 
201  Bitfield<19, 16> htrn;
202  Bitfield<20> hts;
203 
204  Bitfield<15> ltopcode15;
205  Bitfield<11, 8> ltopcode11_8;
206  Bitfield<7, 6> ltopcode7_6;
207  Bitfield<7, 4> ltopcode7_4;
208  Bitfield<4> ltopcode4;
209 
210  Bitfield<11, 8> ltrd;
211  Bitfield<11, 8> ltcoproc;
213 
214  class PCState : public GenericISA::UPCState<MachInst>
215  {
216  protected:
217 
218  typedef GenericISA::UPCState<MachInst> Base;
219 
220  enum FlagBits {
221  ThumbBit = (1 << 0),
222  JazelleBit = (1 << 1),
223  AArch64Bit = (1 << 2)
224  };
225 
226  uint8_t flags;
227  uint8_t nextFlags;
228  uint8_t _itstate;
229  uint8_t _nextItstate;
230  uint8_t _size;
231  bool _illegalExec;
232 
233  // Software Step flags
234  bool _debugStep;
235  bool _stepped;
236 
237  public:
238  PCState() : flags(0), nextFlags(0), _itstate(0), _nextItstate(0),
239  _size(0), _illegalExec(false), _debugStep(false),
240  _stepped(false)
241  {}
242 
243  void
244  set(Addr val)
245  {
246  Base::set(val);
247  npc(val + (thumb() ? 2 : 4));
248  }
249 
250  PCState(Addr val) : flags(0), nextFlags(0), _itstate(0),
251  _nextItstate(0), _size(0), _illegalExec(false),
252  _debugStep(false), _stepped(false)
253  { set(val); }
254 
255  bool
256  illegalExec() const
257  {
258  return _illegalExec;
259  }
260 
261  void
262  illegalExec(bool val)
263  {
264  _illegalExec = val;
265  }
266 
267  bool
268  debugStep() const
269  {
270  return _debugStep;
271  }
272 
273  void
274  debugStep(bool val)
275  {
276  _debugStep = val;
277  }
278 
279  bool
280  stepped() const
281  {
282  return _stepped;
283  }
284 
285  void
286  stepped(bool val)
287  {
288  _stepped = val;
289  }
290 
291  bool
292  thumb() const
293  {
294  return flags & ThumbBit;
295  }
296 
297  void
298  thumb(bool val)
299  {
300  if (val)
301  flags |= ThumbBit;
302  else
303  flags &= ~ThumbBit;
304  }
305 
306  bool
307  nextThumb() const
308  {
309  return nextFlags & ThumbBit;
310  }
311 
312  void
313  nextThumb(bool val)
314  {
315  if (val)
316  nextFlags |= ThumbBit;
317  else
318  nextFlags &= ~ThumbBit;
319  }
320 
321  void size(uint8_t s) { _size = s; }
322  uint8_t size() const { return _size; }
323 
324  bool
325  branching() const
326  {
327  return ((this->pc() + this->size()) != this->npc());
328  }
329 
330 
331  bool
332  jazelle() const
333  {
334  return flags & JazelleBit;
335  }
336 
337  void
338  jazelle(bool val)
339  {
340  if (val)
341  flags |= JazelleBit;
342  else
343  flags &= ~JazelleBit;
344  }
345 
346  bool
347  nextJazelle() const
348  {
349  return nextFlags & JazelleBit;
350  }
351 
352  void
353  nextJazelle(bool val)
354  {
355  if (val)
356  nextFlags |= JazelleBit;
357  else
358  nextFlags &= ~JazelleBit;
359  }
360 
361  bool
362  aarch64() const
363  {
364  return flags & AArch64Bit;
365  }
366 
367  void
368  aarch64(bool val)
369  {
370  if (val)
371  flags |= AArch64Bit;
372  else
373  flags &= ~AArch64Bit;
374  }
375 
376  bool
377  nextAArch64() const
378  {
379  return nextFlags & AArch64Bit;
380  }
381 
382  void
383  nextAArch64(bool val)
384  {
385  if (val)
386  nextFlags |= AArch64Bit;
387  else
388  nextFlags &= ~AArch64Bit;
389  }
390 
391 
392  uint8_t
393  itstate() const
394  {
395  return _itstate;
396  }
397 
398  void
399  itstate(uint8_t value)
400  {
401  _itstate = value;
402  }
403 
404  uint8_t
405  nextItstate() const
406  {
407  return _nextItstate;
408  }
409 
410  void
411  nextItstate(uint8_t value)
412  {
413  _nextItstate = value;
414  }
415 
416  void
417  advance()
418  {
419  Base::advance();
420  flags = nextFlags;
421  npc(pc() + (thumb() ? 2 : 4));
422 
423  if (_nextItstate) {
424  _itstate = _nextItstate;
425  _nextItstate = 0;
426  } else if (_itstate) {
427  ITSTATE it = _itstate;
428  uint8_t cond_mask = it.mask;
429  uint8_t thumb_cond = it.cond;
430  DPRINTF(Decoder, "Advancing ITSTATE from %#x,%#x.\n",
431  thumb_cond, cond_mask);
432  cond_mask <<= 1;
433  uint8_t new_bit = bits(cond_mask, 4);
434  cond_mask &= mask(4);
435  if (cond_mask == 0)
436  thumb_cond = 0;
437  else
438  replaceBits(thumb_cond, 0, new_bit);
439  DPRINTF(Decoder, "Advancing ITSTATE to %#x,%#x.\n",
440  thumb_cond, cond_mask);
441  it.mask = cond_mask;
442  it.cond = thumb_cond;
443  _itstate = it;
444  }
445  }
446 
447  void
448  uEnd()
449  {
450  advance();
451  upc(0);
452  nupc(1);
453  }
454 
455  Addr
456  instPC() const
457  {
458  return pc() + (thumb() ? 4 : 8);
459  }
460 
461  void
462  instNPC(Addr val)
463  {
464  // @todo: review this when AArch32/64 interprocessing is
465  // supported
466  if (aarch64())
467  npc(val); // AArch64 doesn't force PC alignment, a PC
468  // Alignment Fault can be raised instead
469  else
470  npc(val &~ mask(nextThumb() ? 1 : 2));
471  }
472 
473  Addr
474  instNPC() const
475  {
476  return npc();
477  }
478 
479  // Perform an interworking branch.
480  void
481  instIWNPC(Addr val)
482  {
483  bool thumbEE = (thumb() && jazelle());
484 
485  Addr newPC = val;
486  if (thumbEE) {
487  if (bits(newPC, 0)) {
488  newPC = newPC & ~mask(1);
489  } // else we have a bad interworking address; do not call
490  // panic() since the instruction could be executed
491  // speculatively
492  } else {
493  if (bits(newPC, 0)) {
494  nextThumb(true);
495  newPC = newPC & ~mask(1);
496  } else if (!bits(newPC, 1)) {
497  nextThumb(false);
498  } else {
499  // This state is UNPREDICTABLE in the ARM architecture
500  // The easy thing to do is just mask off the bit and
501  // stay in the current mode, so we'll do that.
502  newPC &= ~mask(2);
503  }
504  }
505  npc(newPC);
506  }
507 
508  // Perform an interworking branch in ARM mode, a regular branch
509  // otherwise.
510  void
511  instAIWNPC(Addr val)
512  {
513  if (!thumb() && !jazelle())
514  instIWNPC(val);
515  else
516  instNPC(val);
517  }
518 
519  bool
520  operator == (const PCState &opc) const
521  {
522  return Base::operator == (opc) &&
523  flags == opc.flags && nextFlags == opc.nextFlags &&
524  _itstate == opc._itstate &&
525  _nextItstate == opc._nextItstate &&
526  _illegalExec == opc._illegalExec &&
527  _debugStep == opc._debugStep &&
528  _stepped == opc._stepped;
529  }
530 
531  bool
532  operator != (const PCState &opc) const
533  {
534  return !(*this == opc);
535  }
536 
537  void
538  serialize(CheckpointOut &cp) const override
539  {
541  SERIALIZE_SCALAR(flags);
542  SERIALIZE_SCALAR(_size);
543  SERIALIZE_SCALAR(nextFlags);
544  SERIALIZE_SCALAR(_itstate);
545  SERIALIZE_SCALAR(_nextItstate);
546  SERIALIZE_SCALAR(_illegalExec);
547  SERIALIZE_SCALAR(_debugStep);
548  SERIALIZE_SCALAR(_stepped);
549  }
550 
551  void
552  unserialize(CheckpointIn &cp) override
553  {
555  UNSERIALIZE_SCALAR(flags);
556  UNSERIALIZE_SCALAR(_size);
557  UNSERIALIZE_SCALAR(nextFlags);
558  UNSERIALIZE_SCALAR(_itstate);
559  UNSERIALIZE_SCALAR(_nextItstate);
560  UNSERIALIZE_SCALAR(_illegalExec);
561  UNSERIALIZE_SCALAR(_debugStep);
562  UNSERIALIZE_SCALAR(_stepped);
563  }
564  };
565 
566  // Shift types for ARM instructions
568  LSL = 0,
572  };
573 
574  // Extension types for ARM instructions
576  UXTB = 0,
577  UXTH = 1,
578  UXTW = 2,
579  UXTX = 3,
580  SXTB = 4,
581  SXTH = 5,
582  SXTW = 6,
583  SXTX = 7
584  };
585 
586  typedef int RegContextParam;
587  typedef int RegContextVal;
588 
589  //used in FP convert & round function
594 
598 
603 
608 
611  };
612 
613  //used in FP convert & round function
614  enum RoundMode{
619  };
620 
622  EL0 = 0,
626  };
627 
629  MODE_EL0T = 0x0,
630  MODE_EL1T = 0x4,
631  MODE_EL1H = 0x5,
632  MODE_EL2T = 0x8,
633  MODE_EL2H = 0x9,
634  MODE_EL3T = 0xC,
635  MODE_EL3H = 0xD,
636  MODE_USER = 16,
637  MODE_FIQ = 17,
638  MODE_IRQ = 18,
639  MODE_SVC = 19,
640  MODE_MON = 22,
642  MODE_HYP = 26,
646  };
647 
650  EC_UNKNOWN = 0x0,
657  EC_TRAPPED_SIMD_FP = 0x7, // AArch64 alias
664  EC_SVC = 0x11, // AArch64 alias
665  EC_HVC = 0x12,
667  EC_SMC = 0x13, // AArch64 alias
668  EC_SVC_64 = 0x15,
669  EC_HVC_64 = 0x16,
670  EC_SMC_64 = 0x17,
674  EC_PREFETCH_ABORT_LOWER_EL = 0x20, // AArch64 alias
676  EC_PREFETCH_ABORT_CURR_EL = 0x21, // AArch64 alias
679  EC_DATA_ABORT_LOWER_EL = 0x24, // AArch64 alias
681  EC_DATA_ABORT_CURR_EL = 0x25, // AArch64 alias
685  EC_SERROR = 0x2F,
698  };
699 
703  enum DecoderFault : std::uint8_t {
704  OK = 0x0,
705  UNALIGNED = 0x1,
706 
707  PANIC = 0x3,
708  };
709 
710  BitUnion8(OperatingMode64)
711  Bitfield<0> spX;
712  Bitfield<3, 2> el;
713  Bitfield<4> width;
714  EndBitUnion(OperatingMode64)
715 
716  static bool inline
717  opModeIs64(OperatingMode mode)
718  {
719  return ((OperatingMode64)(uint8_t)mode).width == 0;
720  }
721 
722  static bool inline
724  {
725  return (mode == MODE_EL1H || mode == MODE_EL2H || mode == MODE_EL3H);
726  }
727 
728  static bool inline
730  {
731  return (mode == MODE_EL0T || mode == MODE_EL1T || mode == MODE_EL2T ||
732  mode == MODE_EL3T);
733  }
734 
735  static ExceptionLevel inline
737  {
738  bool aarch32 = ((mode >> 4) & 1) ? true : false;
739  if (aarch32) {
740  switch (mode) {
741  case MODE_USER:
742  return EL0;
743  case MODE_FIQ:
744  case MODE_IRQ:
745  case MODE_SVC:
746  case MODE_ABORT:
747  case MODE_UNDEFINED:
748  case MODE_SYSTEM:
749  return EL1;
750  case MODE_HYP:
751  return EL2;
752  case MODE_MON:
753  return EL3;
754  default:
755  panic("Invalid operating mode: %d", mode);
756  break;
757  }
758  } else {
759  // aarch64
760  return (ExceptionLevel) ((mode >> 2) & 3);
761  }
762  }
763 
764  static inline bool
766  {
767  switch (mode) {
768  case MODE_EL0T:
769  case MODE_EL1T:
770  case MODE_EL1H:
771  case MODE_EL2T:
772  case MODE_EL2H:
773  case MODE_EL3T:
774  case MODE_EL3H:
775  case MODE_USER:
776  case MODE_FIQ:
777  case MODE_IRQ:
778  case MODE_SVC:
779  case MODE_MON:
780  case MODE_ABORT:
781  case MODE_HYP:
782  case MODE_UNDEFINED:
783  case MODE_SYSTEM:
784  return false;
785  default:
786  return true;
787  }
788  }
789 
790  static inline bool
792  {
793  switch (mode) {
794  case MODE_USER:
795  case MODE_FIQ:
796  case MODE_IRQ:
797  case MODE_SVC:
798  case MODE_MON:
799  case MODE_ABORT:
800  case MODE_HYP:
801  case MODE_UNDEFINED:
802  case MODE_SYSTEM:
803  return false;
804  default:
805  return true;
806  }
807  }
808 
809  constexpr unsigned MaxSveVecLenInBits = 2048;
810  static_assert(MaxSveVecLenInBits >= 128 &&
811  MaxSveVecLenInBits <= 2048 &&
812  MaxSveVecLenInBits % 128 == 0,
813  "Unsupported max. SVE vector length");
814  constexpr unsigned MaxSveVecLenInBytes = MaxSveVecLenInBits >> 3;
815  constexpr unsigned MaxSveVecLenInWords = MaxSveVecLenInBits >> 5;
816  constexpr unsigned MaxSveVecLenInDWords = MaxSveVecLenInBits >> 6;
817 
818  constexpr unsigned VecRegSizeBytes = MaxSveVecLenInBytes;
820  constexpr unsigned VecPredRegHasPackedRepr = false;
821 } // namespace ArmISA
822 
823 #endif
ArmISA::htopcode9_4
Bitfield< 25, 20 > htopcode9_4
Definition: types.hh:189
ArmISA::MaxSveVecLenInBytes
constexpr unsigned MaxSveVecLenInBytes
Definition: types.hh:814
ArmISA::EndBitUnion
EndBitUnion(CPSR) BitUnion64(AA64DFR0) Bitfield< 43
ArmISA::ltopcode15
Bitfield< 15 > ltopcode15
Definition: types.hh:204
ArmISA::SINGLE_TO_LONG
@ SINGLE_TO_LONG
Definition: types.hh:593
ArmISA::EC_SERROR
@ EC_SERROR
Definition: types.hh:685
SparcISA::ExtMachInst
uint64_t ExtMachInst
Definition: types.hh:39
ArmISA::EC_PREFETCH_ABORT_CURR_EL
@ EC_PREFETCH_ABORT_CURR_EL
Definition: types.hh:676
ArmISA::EC_SVC_64
@ EC_SVC_64
Definition: types.hh:668
ArmISA::EC_WATCHPOINT
@ EC_WATCHPOINT
Definition: types.hh:692
ArmISA::VecRegSizeBytes
constexpr unsigned VecRegSizeBytes
Definition: types.hh:818
ArmISA::EC_TRAPPED_PAC
@ EC_TRAPPED_PAC
Definition: types.hh:659
ArmISA::MODE_HYP
@ MODE_HYP
Definition: types.hh:642
ArmISA::WORD_TO_SINGLE
@ WORD_TO_SINGLE
Definition: types.hh:604
replaceBits
void replaceBits(T &val, int first, int last, B bit_val)
A convenience function to replace bits first to last of val with bit_val in place.
Definition: bitfield.hh:179
ArmISA::SubBitUnion
SubBitUnion(puswl, 24, 20) Bitfield< 24 > prepost
ArmISA::EndSubBitUnion
EndSubBitUnion(puswl) Bitfield< 24
ArmISA::EL2
@ EL2
Definition: types.hh:624
ArmISA::EC_INVALID
@ EC_INVALID
Definition: types.hh:649
X86ISA::operator==
static bool operator==(const ExtMachInst &emi1, const ExtMachInst &emi2)
Definition: types.hh:254
ArmISA::MODE_UNDEFINED
@ MODE_UNDEFINED
Definition: types.hh:643
ArmISA::opModeIsT
static bool opModeIsT(OperatingMode mode)
Definition: types.hh:729
ArmISA::shiftSize
Bitfield< 11, 7 > shiftSize
Definition: types.hh:125
ArmISA::MODE_EL0T
@ MODE_EL0T
Definition: types.hh:629
ArmISA::ArmShiftType
ArmShiftType
Definition: types.hh:567
ArmISA::opModeIsH
static bool opModeIsH(OperatingMode mode)
Definition: types.hh:723
ArmISA::htopcode8
Bitfield< 24 > htopcode8
Definition: types.hh:190
ArmISA::EC_FP_EXCEPTION_64
@ EC_FP_EXCEPTION_64
Definition: types.hh:684
ArmISA::cpNum
Bitfield< 11, 8 > cpNum
Definition: types.hh:157
ArmISA::EC_PC_ALIGNMENT
@ EC_PC_ALIGNMENT
Definition: types.hh:677
ArmISA::sveLen
Bitfield< 59, 56 > sveLen
Definition: types.hh:76
ArmISA::DecoderFault
DecoderFault
Instruction decoder fault codes in ExtMachInst.
Definition: types.hh:703
UNSERIALIZE_SCALAR
#define UNSERIALIZE_SCALAR(scalar)
Definition: serialize.hh:797
ArmISA::EC_VECTOR_CATCH
@ EC_VECTOR_CATCH
Definition: types.hh:696
ArmISA::sField
Bitfield< 20 > sField
Definition: types.hh:121
ArmISA::htopcode5_4
Bitfield< 21, 20 > htopcode5_4
Definition: types.hh:198
ArmISA::fpRegImm
Bitfield< 3 > fpRegImm
Definition: types.hh:160
ArmISA::opcode4
Bitfield< 4 > opcode4
Definition: types.hh:118
ArmISA::isMisc
Bitfield< 32 > isMisc
Definition: types.hh:94
ArmISA::EL0
@ EL0
Definition: types.hh:622
ArmISA::ltopcode7_6
Bitfield< 7, 6 > ltopcode7_6
Definition: types.hh:206
ArmISA::topcode9_6
Bitfield< 9, 6 > topcode9_6
Definition: types.hh:176
ArmISA::MachInst
uint32_t MachInst
Definition: types.hh:52
ArmISA::MODE_EL3H
@ MODE_EL3H
Definition: types.hh:635
ArmISA::LONG_TO_PS
@ LONG_TO_PS
Definition: types.hh:602
ArmISA::EC_SMC_TO_HYP
@ EC_SMC_TO_HYP
Definition: types.hh:666
ArmISA::topcode3_0
Bitfield< 3, 0 > topcode3_0
Definition: types.hh:181
ArmISA::MaxSveVecLenInBits
constexpr unsigned MaxSveVecLenInBits
Definition: types.hh:809
ArmISA::opcode18
Bitfield< 18 > opcode18
Definition: types.hh:111
ArmISA::width
Bitfield< 4 > width
Definition: miscregs_types.hh:68
ArmISA::htopcode6_5
Bitfield< 22, 21 > htopcode6_5
Definition: types.hh:197
ArmISA::OperatingMode
OperatingMode
Definition: types.hh:628
ArmISA::ltopcode4
Bitfield< 4 > ltopcode4
Definition: types.hh:208
ArmISA::immed11_0
Bitfield< 11, 0 > immed11_0
Definition: types.hh:145
ArmISA::fd
Bitfield< 14, 12 > fd
Definition: types.hh:159
ArmISA::htopcode9_5
Bitfield< 25, 21 > htopcode9_5
Definition: types.hh:188
ArmISA::EC_ILLEGAL_INST
@ EC_ILLEGAL_INST
Definition: types.hh:662
ArmISA::DOUBLE_TO_WORD
@ DOUBLE_TO_WORD
Definition: types.hh:596
ArmISA::EC_TRAPPED_WFI_WFE
@ EC_TRAPPED_WFI_WFE
Definition: types.hh:651
ArmISA::EC_HVC
@ EC_HVC
Definition: types.hh:665
ArmISA::MODE_SYSTEM
@ MODE_SYSTEM
Definition: types.hh:644
ArmISA::top6
Bitfield< 7, 2 > top6
Definition: types.hh:64
serialize
void serialize(const ThreadContext &tc, CheckpointOut &cp)
Thread context serialization helpers.
Definition: thread_context.cc:142
ArmISA::EC_TRAPPED_CP15_MCRR_MRRC
@ EC_TRAPPED_CP15_MCRR_MRRC
Definition: types.hh:653
ArmISA::itstateMask
Bitfield< 51, 48 > itstateMask
Definition: types.hh:81
ArmISA::SXTW
@ SXTW
Definition: types.hh:582
ArmISA::opcode22
Bitfield< 22 > opcode22
Definition: types.hh:108
ArmISA::cond
cond
Definition: types.hh:61
ArmISA::MaxSveVecLenInWords
constexpr unsigned MaxSveVecLenInWords
Definition: types.hh:815
ArmISA::MODE_EL1T
@ MODE_EL1T
Definition: types.hh:630
ArmISA::EL3
@ EL3
Definition: types.hh:625
ArmISA::EC_TRAPPED_BXJ
@ EC_TRAPPED_BXJ
Definition: types.hh:660
ArmISA::EC_SOFTWARE_BREAKPOINT_64
@ EC_SOFTWARE_BREAKPOINT_64
Definition: types.hh:697
ArmISA::immedLo3_0
Bitfield< 3, 0 > immedLo3_0
Definition: types.hh:149
ArmISA::htopcode8_6
Bitfield< 24, 22 > htopcode8_6
Definition: types.hh:192
ArmISA::topcode12_10
Bitfield< 12, 10 > topcode12_10
Definition: types.hh:171
ArmISA::EC_PREFETCH_ABORT_LOWER_EL
@ EC_PREFETCH_ABORT_LOWER_EL
Definition: types.hh:674
ArmISA::htopcode10_9
Bitfield< 26, 25 > htopcode10_9
Definition: types.hh:185
ArmISA::UXTW
@ UXTW
Definition: types.hh:578
ArmISA::EC_HVC_64
@ EC_HVC_64
Definition: types.hh:669
ArmISA::thumb
Bitfield< 36 > thumb
Definition: types.hh:88
ArmISA::EC_TRAPPED_CP10_MRC_VMRS
@ EC_TRAPPED_CP10_MRC_VMRS
Definition: types.hh:658
ArmISA::useImm
Bitfield< 25 > useImm
Definition: types.hh:100
ArmISA::RND_NEAREST
@ RND_NEAREST
Definition: types.hh:618
ArmISA::htopcode7
Bitfield< 23 > htopcode7
Definition: types.hh:194
ArmISA
Definition: ccregs.hh:41
ArmISA::htrn
Bitfield< 19, 16 > htrn
Definition: types.hh:201
ArmISA::topcode11_9
Bitfield< 11, 9 > topcode11_9
Definition: types.hh:172
ArmISA::condCode
Bitfield< 31, 28 > condCode
Definition: types.hh:120
unserialize
void unserialize(ThreadContext &tc, CheckpointIn &cp)
Definition: thread_context.cc:183
ArmISA::rt
Bitfield< 15, 12 > rt
Definition: types.hh:124
ArmISA::LONG_TO_SINGLE
@ LONG_TO_SINGLE
Definition: types.hh:599
ArmISA::hts
Bitfield< 20 > hts
Definition: types.hh:202
ArmISA::aarch64
Bitfield< 34 > aarch64
Definition: types.hh:90
ArmISA::opcode23_21
Bitfield< 23, 21 > opcode23_21
Definition: types.hh:106
ArmISA::EC_SOFTWARE_STEP_CURR_EL
@ EC_SOFTWARE_STEP_CURR_EL
Definition: types.hh:691
ArmISA::regList
Bitfield< 15, 0 > regList
Definition: types.hh:151
ArmISA::LONG_TO_WORD
@ LONG_TO_WORD
Definition: types.hh:601
ArmISA::opcode6
Bitfield< 6 > opcode6
Definition: types.hh:117
ArmISA::immed23_0
Bitfield< 23, 0 > immed23_0
Definition: types.hh:155
ArmISA::topcode12_11
Bitfield< 12, 11 > topcode12_11
Definition: types.hh:170
ArmISA::SXTX
@ SXTX
Definition: types.hh:583
ArmISA::EC_SOFTWARE_STEP_LOWER_EL
@ EC_SOFTWARE_STEP_LOWER_EL
Definition: types.hh:690
ArmISA::EC_TRAPPED_CP14_LDC_STC
@ EC_TRAPPED_CP14_LDC_STC
Definition: types.hh:655
ArmISA::htopcode8_5
Bitfield< 24, 21 > htopcode8_5
Definition: types.hh:193
ArmISA::rn
Bitfield< 19, 16 > rn
Definition: types.hh:122
cp
Definition: cprintf.cc:40
ArmISA::htopcode6
Bitfield< 22 > htopcode6
Definition: types.hh:196
ArmISA::opcode20
Bitfield< 20 > opcode20
Definition: types.hh:107
ArmISA::EC_TRAPPED_SVE
@ EC_TRAPPED_SVE
Definition: types.hh:672
ArmISA::BitUnion8
BitUnion8(ITSTATE) Bitfield< 7
ArmISA::EC_HW_BREAKPOINT_CURR_EL
@ EC_HW_BREAKPOINT_CURR_EL
Definition: types.hh:688
ArmISA::EC_DATA_ABORT_FROM_HYP
@ EC_DATA_ABORT_FROM_HYP
Definition: types.hh:680
ArmISA::bigThumb
Bitfield< 35 > bigThumb
Definition: types.hh:89
ArmISA::EC_PREFETCH_ABORT_TO_HYP
@ EC_PREFETCH_ABORT_TO_HYP
Definition: types.hh:673
ArmISA::MODE_EL1H
@ MODE_EL1H
Definition: types.hh:631
ArmISA::RegContextVal
int RegContextVal
Definition: types.hh:587
ArmISA::ltopcode7_4
Bitfield< 7, 4 > ltopcode7_4
Definition: types.hh:207
ArmISA::ROR
@ ROR
Definition: types.hh:571
ArmISA::shift
Bitfield< 6, 5 > shift
Definition: types.hh:126
DPRINTF
#define DPRINTF(x,...)
Definition: trace.hh:234
ArmISA::EC_DATA_ABORT_TO_HYP
@ EC_DATA_ABORT_TO_HYP
Definition: types.hh:678
ArmISA::ExceptionLevel
ExceptionLevel
Definition: types.hh:621
ArmISA::imm
Bitfield< 7, 0 > imm
Definition: types.hh:141
MipsISA::pc
Bitfield< 4 > pc
Definition: pra_constants.hh:240
ArmISA::psruser
Bitfield< 22 > psruser
Definition: types.hh:134
bitunion.hh
ArmISA::SINGLE_TO_DOUBLE
@ SINGLE_TO_DOUBLE
Definition: types.hh:591
ArmISA::fpscrStride
Bitfield< 41, 40 > fpscrStride
Definition: types.hh:84
ArmISA::topcode11_8
Bitfield< 11, 8 > topcode11_8
Definition: types.hh:173
ArmISA::DOUBLE_TO_LONG
@ DOUBLE_TO_LONG
Definition: types.hh:597
ArmISA::EC_SVC
@ EC_SVC
Definition: types.hh:664
ArmISA::VecPredRegHasPackedRepr
constexpr unsigned VecPredRegHasPackedRepr
Definition: types.hh:820
ArmISA::mode
Bitfield< 4, 0 > mode
Definition: miscregs_types.hh:70
ArmISA::LSL
@ LSL
Definition: types.hh:568
ArmISA::fm
Bitfield< 3, 0 > fm
Definition: types.hh:161
ArmISA::el
Bitfield< 3, 2 > el
Definition: miscregs_types.hh:69
ArmISA::pubwl
pubwl
Definition: types.hh:139
ArmISA::opcode19_16
Bitfield< 19, 16 > opcode19_16
Definition: types.hh:109
ArmISA::PL_TO_SINGLE
@ PL_TO_SINGLE
Definition: types.hh:609
ArmISA::topcode10_9
Bitfield< 10, 9 > topcode10_9
Definition: types.hh:174
ArmISA::topcode15_13
Bitfield< 15, 13 > topcode15_13
Definition: types.hh:168
ArmISA::WORD_TO_DOUBLE
@ WORD_TO_DOUBLE
Definition: types.hh:605
ArmISA::m5Func
Bitfield< 15, 8 > m5Func
Definition: types.hh:165
ArmISA::instBits
uint32_t instBits
Definition: types.hh:96
ArmISA::itstate
Bitfield< 55, 48 > itstate
Definition: types.hh:79
ArmISA::PU_TO_SINGLE
@ PU_TO_SINGLE
Definition: types.hh:610
ArmISA::opModeToEL
static ExceptionLevel opModeToEL(OperatingMode mode)
Definition: types.hh:736
ArmISA::rd
Bitfield< 15, 12 > rd
Definition: types.hh:123
ArmISA::fpscrLen
Bitfield< 39, 37 > fpscrLen
Definition: types.hh:85
ArmISA::opc2
Bitfield< 7, 5 > opc2
Definition: types.hh:115
ArmISA::MODE_SVC
@ MODE_SVC
Definition: types.hh:639
ArmISA::ltrd
Bitfield< 11, 8 > ltrd
Definition: types.hh:210
ArmISA::WORD_TO_PS
@ WORD_TO_PS
Definition: types.hh:607
ArmISA::SXTH
@ SXTH
Definition: types.hh:581
ArmISA::miscOpcode
Bitfield< 7, 4 > miscOpcode
Definition: types.hh:114
ArmISA::ConvertType
ConvertType
Definition: types.hh:590
ArmISA::htopcode9_8
Bitfield< 25, 24 > htopcode9_8
Definition: types.hh:187
ArmISA::MODE_FIQ
@ MODE_FIQ
Definition: types.hh:637
ArmISA::decoderFault
decoderFault
Definition: types.hh:70
ArmISA::MODE_EL2T
@ MODE_EL2T
Definition: types.hh:632
X86ISA::val
Bitfield< 63 > val
Definition: misc.hh:769
ArmISA::topcode7_6
Bitfield< 7, 6 > topcode7_6
Definition: types.hh:178
ArmISA::writeback
Bitfield< 21 > writeback
Definition: types.hh:135
ArmISA::EC_PREFETCH_ABORT_FROM_HYP
@ EC_PREFETCH_ABORT_FROM_HYP
Definition: types.hh:675
ArmISA::sevenAndFour
Bitfield< 33 > sevenAndFour
Definition: types.hh:93
ArmISA::EL1
@ EL1
Definition: types.hh:623
Addr
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
Definition: types.hh:142
ArmISA::rm
Bitfield< 3, 0 > rm
Definition: types.hh:127
ArmISA::EC_WATCHPOINT_LOWER_EL
@ EC_WATCHPOINT_LOWER_EL
Definition: types.hh:693
ArmISA::opcode24_23
Bitfield< 24, 23 > opcode24_23
Definition: types.hh:104
ArmISA::RoundMode
RoundMode
Definition: types.hh:614
ArmISA::VecPredRegSizeBits
constexpr unsigned VecPredRegSizeBits
Definition: types.hh:819
SERIALIZE_SCALAR
#define SERIALIZE_SCALAR(scalar)
Definition: serialize.hh:790
ArmISA::EC_TRAPPED_CP15_MCR_MRC
@ EC_TRAPPED_CP15_MCR_MRC
Definition: types.hh:652
ArmISA::htopcode8_7
Bitfield< 24, 23 > htopcode8_7
Definition: types.hh:191
ArmISA::LONG_TO_DOUBLE
@ LONG_TO_DOUBLE
Definition: types.hh:600
ArmISA::topcode7
Bitfield< 7 > topcode7
Definition: types.hh:177
ArmISA::opcode
Bitfield< 24, 21 > opcode
Definition: types.hh:101
ArmISA::LSR
@ LSR
Definition: types.hh:569
ArmISA::punwl
Bitfield< 24, 20 > punwl
Definition: types.hh:163
ArmISA::EC_TRAPPED_MSR_MRS_64
@ EC_TRAPPED_MSR_MRS_64
Definition: types.hh:671
ArmISA::Decoder
Definition: decoder.hh:58
ArmISA::fpImm
Bitfield< 2, 0 > fpImm
Definition: types.hh:162
SparcISA::PCState
GenericISA::DelaySlotUPCState< MachInst > PCState
Definition: types.hh:41
ArmISA::OK
@ OK
No fault.
Definition: types.hh:704
ArmISA::RND_ZERO
@ RND_ZERO
Definition: types.hh:615
ArmISA::EC_SOFTWARE_STEP
@ EC_SOFTWARE_STEP
Definition: types.hh:689
ArmISA::ltcoproc
Bitfield< 11, 8 > ltcoproc
Definition: types.hh:211
ArmISA::immedHi11_8
Bitfield< 11, 8 > immedHi11_8
Definition: types.hh:148
ArmISA::htopcode9
Bitfield< 25 > htopcode9
Definition: types.hh:186
ArmISA::EC_DATA_ABORT_CURR_EL
@ EC_DATA_ABORT_CURR_EL
Definition: types.hh:681
ArmISA::MODE_EL3T
@ MODE_EL3T
Definition: types.hh:634
ArmISA::UXTH
@ UXTH
Definition: types.hh:577
ArmISA::ArmExtendType
ArmExtendType
Definition: types.hh:575
ArmISA::EC_FP_EXCEPTION
@ EC_FP_EXCEPTION
Definition: types.hh:683
types.hh
ArmISA::fn
Bitfield< 18, 16 > fn
Definition: types.hh:158
ArmISA::unknownMode32
static bool unknownMode32(OperatingMode mode)
Definition: types.hh:791
ArmISA::htopcode7_5
Bitfield< 23, 21 > htopcode7_5
Definition: types.hh:195
ArmISA::MODE_IRQ
@ MODE_IRQ
Definition: types.hh:638
ArmISA::MaxSveVecLenInDWords
constexpr unsigned MaxSveVecLenInDWords
Definition: types.hh:816
ArmISA::MODE_ABORT
@ MODE_ABORT
Definition: types.hh:641
ArmISA::EC_WATCHPOINT_CURR_EL
@ EC_WATCHPOINT_CURR_EL
Definition: types.hh:694
ArmISA::RND_DOWN
@ RND_DOWN
Definition: types.hh:616
ArmISA::EC_TRAPPED_HCPTR
@ EC_TRAPPED_HCPTR
Definition: types.hh:656
ArmISA::bottom2
Bitfield< 1, 0 > bottom2
Definition: types.hh:65
ArmISA::opcode7
Bitfield< 7 > opcode7
Definition: types.hh:116
ArmISA::loadOp
Bitfield< 20 > loadOp
Definition: types.hh:136
ArmISA::EC_HW_BREAKPOINT
@ EC_HW_BREAKPOINT
Definition: types.hh:686
ArmISA::opcode19
Bitfield< 19 > opcode19
Definition: types.hh:110
ArmISA::EC_DATA_ABORT_LOWER_EL
@ EC_DATA_ABORT_LOWER_EL
Definition: types.hh:679
ArmISA::WORD_TO_LONG
@ WORD_TO_LONG
Definition: types.hh:606
types.hh
ArmISA::RND_UP
@ RND_UP
Definition: types.hh:617
ArmISA::MODE_MAXMODE
@ MODE_MAXMODE
Definition: types.hh:645
ArmISA::topcode10_8
Bitfield< 10, 8 > topcode10_8
Definition: types.hh:175
operator!=
bool operator!=(const RefCountingPtr< T > &l, const RefCountingPtr< T > &r)
Check for inequality of two reference counting pointers.
Definition: refcnt.hh:272
ArmISA::opcode15_12
Bitfield< 15, 12 > opcode15_12
Definition: types.hh:112
ArmISA::UNALIGNED
@ UNALIGNED
Unaligned instruction fault.
Definition: types.hh:705
ArmISA::EC_SMC
@ EC_SMC
Definition: types.hh:667
ArmISA::opcode15
Bitfield< 15 > opcode15
Definition: types.hh:113
ArmISA::RegContextParam
int RegContextParam
Definition: types.hh:586
ArmISA::ExceptionClass
ExceptionClass
Definition: types.hh:648
ArmISA::ltopcode11_8
Bitfield< 11, 8 > ltopcode11_8
Definition: types.hh:205
ArmISA::unknownMode
static bool unknownMode(OperatingMode mode)
Definition: types.hh:765
ArmISA::UXTB
@ UXTB
Definition: types.hh:576
ArmISA::itstateCond
Bitfield< 55, 52 > itstateCond
Definition: types.hh:80
ArmISA::illegalExecution
Bitfield< 61 > illegalExecution
Definition: types.hh:71
ArmISA::SXTB
@ SXTB
Definition: types.hh:580
ArmISA::topcode7_4
Bitfield< 7, 4 > topcode7_4
Definition: types.hh:180
ArmISA::rs
Bitfield< 9, 8 > rs
Definition: miscregs_types.hh:372
ArmISA::EC_UNKNOWN
@ EC_UNKNOWN
Definition: types.hh:650
logging.hh
ArmISA::EC_SMC_64
@ EC_SMC_64
Definition: types.hh:670
ArmISA::up
Bitfield< 23 > up
Definition: types.hh:133
CheckpointOut
std::ostream CheckpointOut
Definition: serialize.hh:63
ArmISA::DOUBLE_TO_SINGLE
@ DOUBLE_TO_SINGLE
Definition: types.hh:595
ArmISA::MODE_MON
@ MODE_MON
Definition: types.hh:640
ArmISA::debugStep
Bitfield< 60 > debugStep
Definition: types.hh:72
ArmISA::EC_TRAPPED_CP14_MCR_MRC
@ EC_TRAPPED_CP14_MCR_MRC
Definition: types.hh:654
ArmISA::rotate
Bitfield< 11, 8 > rotate
Definition: types.hh:143
ArmISA::BitUnion64
BitUnion64(CNTKCTL) Bitfield< 17 > evntis
ArmISA::PANIC
@ PANIC
Internal gem5 error.
Definition: types.hh:707
ArmISA::topcode7_5
Bitfield< 7, 5 > topcode7_5
Definition: types.hh:179
ArmISA::ASR
@ ASR
Definition: types.hh:570
ArmISA::MODE_USER
@ MODE_USER
Definition: types.hh:636
ArmISA::s
Bitfield< 4 > s
Definition: miscregs_types.hh:556
ArmISA::SINGLE_TO_WORD
@ SINGLE_TO_WORD
Definition: types.hh:592
ArmISA::opcode24
Bitfield< 24 > opcode24
Definition: types.hh:103
CheckpointIn
Definition: serialize.hh:67
ArmISA::encoding
Bitfield< 27, 25 > encoding
Definition: types.hh:99
ArmISA::mediaOpcode
Bitfield< 24, 20 > mediaOpcode
Definition: types.hh:102
ArmISA::topcode13_11
Bitfield< 13, 11 > topcode13_11
Definition: types.hh:169
ArmISA::EC_TRAPPED_SIMD_FP
@ EC_TRAPPED_SIMD_FP
Definition: types.hh:657
ArmISA::EC_SOFTWARE_BREAKPOINT
@ EC_SOFTWARE_BREAKPOINT
Definition: types.hh:695
ArmISA::MODE_EL2H
@ MODE_EL2H
Definition: types.hh:633
ArmISA::EC_SVC_TO_HYP
@ EC_SVC_TO_HYP
Definition: types.hh:663
ArmISA::EC_STACK_PTR_ALIGNMENT
@ EC_STACK_PTR_ALIGNMENT
Definition: types.hh:682
ArmISA::mask
Bitfield< 28, 24 > mask
Definition: miscregs_types.hh:711
ArmISA::immed7_0
Bitfield< 7, 0 > immed7_0
Definition: types.hh:146
ArmISA::htopcode12_11
Bitfield< 28, 27 > htopcode12_11
Definition: types.hh:184
panic
#define panic(...)
This implements a cprintf based panic() function.
Definition: logging.hh:171
ArmISA::opcode23_20
Bitfield< 23, 20 > opcode23_20
Definition: types.hh:105
GenericISA::UPCState
Definition: types.hh:205
ArmISA::EC_HW_BREAKPOINT_LOWER_EL
@ EC_HW_BREAKPOINT_LOWER_EL
Definition: types.hh:687
GenericISA
Definition: debugfaults.hh:46
ArmISA::EC_TRAPPED_CP14_MCRR_MRRC
@ EC_TRAPPED_CP14_MCRR_MRRC
Definition: types.hh:661
ArmISA::offset
Bitfield< 23, 0 > offset
Definition: types.hh:153
bits
T bits(T val, int first, int last)
Extract the bitfield from position 'first' to 'last' (inclusive) from 'val' and right justify it.
Definition: bitfield.hh:75
ArmISA::UXTX
@ UXTX
Definition: types.hh:579
ArmISA::htopcode4
Bitfield< 20 > htopcode4
Definition: types.hh:199

Generated on Wed Sep 30 2020 14:02:01 for gem5 by doxygen 1.8.17