gem5  [DEVELOP-FOR-23.0]
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
types.hh
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2010, 2012-2013, 2017-2018, 2022 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 <cstdint>
45 
46 #include "arch/arm/pcstate.hh"
47 #include "base/bitunion.hh"
48 #include "base/logging.hh"
49 
50 namespace gem5
51 {
52 
53 namespace ArmISA
54 {
55  typedef uint32_t MachInst;
56 
57  typedef uint16_t vmid_t;
58 
60  // Decoder state
61  Bitfield<63, 62> decoderFault; // See DecoderFault
62  Bitfield<61> illegalExecution;
63  Bitfield<60> debugStep;
64 
65  // SVE vector length, encoded in the same format as the ZCR_EL<x>.LEN
66  // bitfields
67  Bitfield<59, 56> sveLen;
68 
69  // ITSTATE bits
70  Bitfield<55, 48> itstate;
71  Bitfield<55, 52> itstateCond;
72  Bitfield<51, 48> itstateMask;
73 
74  // FPSCR fields
75  Bitfield<41, 40> fpscrStride;
76  Bitfield<39, 37> fpscrLen;
77 
78  // Bitfields to select mode.
79  Bitfield<36> thumb;
80  Bitfield<35> bigThumb;
81  Bitfield<34> aarch64;
82 
83  // Made up bitfields that make life easier.
84  Bitfield<33> sevenAndFour;
85  Bitfield<32> isMisc;
86 
87  uint32_t instBits;
88 
89  // All the different types of opcode fields.
90  Bitfield<27, 25> encoding;
91  Bitfield<25> useImm;
92  Bitfield<24, 21> opcode;
93  Bitfield<24, 20> mediaOpcode;
94  Bitfield<24> opcode24;
95  Bitfield<24, 23> opcode24_23;
96  Bitfield<23, 20> opcode23_20;
97  Bitfield<23, 21> opcode23_21;
98  Bitfield<20> opcode20;
99  Bitfield<22> opcode22;
100  Bitfield<19, 16> opcode19_16;
101  Bitfield<19> opcode19;
102  Bitfield<18> opcode18;
103  Bitfield<15, 12> opcode15_12;
104  Bitfield<15> opcode15;
105  Bitfield<7, 4> miscOpcode;
106  Bitfield<7,5> opc2;
107  Bitfield<7> opcode7;
108  Bitfield<6> opcode6;
109  Bitfield<4> opcode4;
110 
111  Bitfield<31, 28> condCode;
112  Bitfield<20> sField;
113  Bitfield<19, 16> rn;
114  Bitfield<15, 12> rd;
115  Bitfield<15, 12> rt;
116  Bitfield<11, 7> shiftSize;
117  Bitfield<6, 5> shift;
118  Bitfield<3, 0> rm;
119 
120  Bitfield<11, 8> rs;
121 
122  SubBitUnion(puswl, 24, 20)
123  Bitfield<24> prepost;
124  Bitfield<23> up;
125  Bitfield<22> psruser;
126  Bitfield<21> writeback;
127  Bitfield<20> loadOp;
128  EndSubBitUnion(puswl)
129 
130  Bitfield<24, 20> pubwl;
131 
132  Bitfield<7, 0> imm;
133 
134  Bitfield<11, 8> rotate;
135 
136  Bitfield<11, 0> immed11_0;
137  Bitfield<7, 0> immed7_0;
138 
139  Bitfield<11, 8> immedHi11_8;
140  Bitfield<3, 0> immedLo3_0;
141 
142  Bitfield<15, 0> regList;
143 
144  Bitfield<23, 0> offset;
145 
146  Bitfield<23, 0> immed23_0;
147 
148  Bitfield<11, 8> cpNum;
149  Bitfield<18, 16> fn;
150  Bitfield<14, 12> fd;
151  Bitfield<3> fpRegImm;
152  Bitfield<3, 0> fm;
153  Bitfield<2, 0> fpImm;
154  Bitfield<24, 20> punwl;
155 
156  Bitfield<15, 8> m5Func;
157 
158  // 16 bit thumb bitfields
159  Bitfield<15, 13> topcode15_13;
160  Bitfield<13, 11> topcode13_11;
161  Bitfield<12, 11> topcode12_11;
162  Bitfield<12, 10> topcode12_10;
163  Bitfield<11, 9> topcode11_9;
164  Bitfield<11, 8> topcode11_8;
165  Bitfield<10, 9> topcode10_9;
166  Bitfield<10, 8> topcode10_8;
167  Bitfield<9, 6> topcode9_6;
168  Bitfield<7> topcode7;
169  Bitfield<7, 6> topcode7_6;
170  Bitfield<7, 5> topcode7_5;
171  Bitfield<7, 4> topcode7_4;
172  Bitfield<3, 0> topcode3_0;
173 
174  // 32 bit thumb bitfields
175  Bitfield<28, 27> htopcode12_11;
176  Bitfield<26, 25> htopcode10_9;
177  Bitfield<25> htopcode9;
178  Bitfield<25, 24> htopcode9_8;
179  Bitfield<25, 21> htopcode9_5;
180  Bitfield<25, 20> htopcode9_4;
181  Bitfield<24> htopcode8;
182  Bitfield<24, 23> htopcode8_7;
183  Bitfield<24, 22> htopcode8_6;
184  Bitfield<24, 21> htopcode8_5;
185  Bitfield<23> htopcode7;
186  Bitfield<23, 21> htopcode7_5;
187  Bitfield<22> htopcode6;
188  Bitfield<22, 21> htopcode6_5;
189  Bitfield<21, 20> htopcode5_4;
190  Bitfield<20> htopcode4;
191 
192  Bitfield<19, 16> htrn;
193  Bitfield<20> hts;
194 
195  Bitfield<15> ltopcode15;
196  Bitfield<11, 8> ltopcode11_8;
197  Bitfield<7, 6> ltopcode7_6;
198  Bitfield<7, 4> ltopcode7_4;
199  Bitfield<4> ltopcode4;
200 
201  Bitfield<11, 8> ltrd;
202  Bitfield<11, 8> ltcoproc;
204 
205  BitUnion32(Affinity)
206  Bitfield<31, 24> aff3;
207  Bitfield<23, 16> aff2;
208  Bitfield<15, 8> aff1;
209  Bitfield<7, 0> aff0;
210  EndBitUnion(Affinity)
211 
212  // Shift types for ARM instructions
213  enum ArmShiftType
214  {
215  LSL = 0,
216  LSR,
217  ASR,
218  ROR
219  };
220 
221  // Extension types for ARM instructions
223  {
224  UXTB = 0,
225  UXTH = 1,
226  UXTW = 2,
227  UXTX = 3,
228  SXTB = 4,
229  SXTH = 5,
230  SXTW = 6,
231  SXTX = 7
232  };
233 
234  typedef int RegContextParam;
235  typedef int RegContextVal;
236 
237  //used in FP convert & round function
239  {
243 
247 
252 
257 
260  };
261 
262  //used in FP convert & round function
264  {
269  };
270 
272  {
273  EL0 = 0,
277  };
278 
280  {
281  MODE_EL0T = 0x0,
282  MODE_EL1T = 0x4,
283  MODE_EL1H = 0x5,
284  MODE_EL2T = 0x8,
285  MODE_EL2H = 0x9,
286  MODE_EL3T = 0xC,
287  MODE_EL3H = 0xD,
288  MODE_USER = 16,
289  MODE_FIQ = 17,
290  MODE_IRQ = 18,
291  MODE_SVC = 19,
292  MODE_MON = 22,
294  MODE_HYP = 26,
298  };
299 
300  enum class ExceptionClass
301  {
302  INVALID = -1,
303  UNKNOWN = 0x0,
304  TRAPPED_WFI_WFE = 0x1,
305  TRAPPED_CP15_MCR_MRC = 0x3,
307  TRAPPED_CP14_MCR_MRC = 0x5,
308  TRAPPED_CP14_LDC_STC = 0x6,
309  TRAPPED_HCPTR = 0x7,
310  TRAPPED_SIMD_FP = 0x7, // AArch64 alias
311  TRAPPED_CP10_MRC_VMRS = 0x8,
312  TRAPPED_PAC = 0x9,
313  TRAPPED_BXJ = 0xA,
315  ILLEGAL_INST = 0xE,
316  SVC_TO_HYP = 0x11,
317  SVC = 0x11, // AArch64 alias
318  HVC = 0x12,
319  SMC_TO_HYP = 0x13,
320  SMC = 0x13, // AArch64 alias
321  SVC_64 = 0x15,
322  HVC_64 = 0x16,
323  SMC_64 = 0x17,
324  TRAPPED_MSR_MRS_64 = 0x18,
325  TRAPPED_SVE = 0x19,
326  TRAPPED_SME = 0x1D,
327  PREFETCH_ABORT_TO_HYP = 0x20,
328  PREFETCH_ABORT_LOWER_EL = 0x20, // AArch64 alias
330  PREFETCH_ABORT_CURR_EL = 0x21, // AArch64 alias
331  PC_ALIGNMENT = 0x22,
332  DATA_ABORT_TO_HYP = 0x24,
333  DATA_ABORT_LOWER_EL = 0x24, // AArch64 alias
334  DATA_ABORT_FROM_HYP = 0x25,
335  DATA_ABORT_CURR_EL = 0x25, // AArch64 alias
336  STACK_PTR_ALIGNMENT = 0x26,
337  FP_EXCEPTION = 0x28,
338  FP_EXCEPTION_64 = 0x2C,
339  SERROR = 0x2F,
340  HW_BREAKPOINT = 0x30,
341  HW_BREAKPOINT_LOWER_EL = 0x30,
342  HW_BREAKPOINT_CURR_EL = 0x31,
343  SOFTWARE_STEP = 0x32,
344  SOFTWARE_STEP_LOWER_EL = 0x32,
345  SOFTWARE_STEP_CURR_EL = 0x33,
346  WATCHPOINT = 0x34,
347  WATCHPOINT_LOWER_EL = 0x34,
348  WATCHPOINT_CURR_EL = 0x35,
349  SOFTWARE_BREAKPOINT = 0x38,
350  VECTOR_CATCH = 0x3A,
351  SOFTWARE_BREAKPOINT_64 = 0x3C,
352  };
353 
357  enum DecoderFault : std::uint8_t
358  {
359  OK = 0x0,
360  UNALIGNED = 0x1,
361 
362  PANIC = 0x3,
363  };
364 
365  BitUnion8(OperatingMode64)
366  Bitfield<0> spX;
367  Bitfield<3, 2> el;
368  Bitfield<4> width;
369  EndBitUnion(OperatingMode64)
370 
371  static bool inline
372  opModeIs64(OperatingMode mode)
373  {
374  return ((OperatingMode64)(uint8_t)mode).width == 0;
375  }
376 
377  static bool inline
379  {
380  return (mode == MODE_EL1H || mode == MODE_EL2H || mode == MODE_EL3H);
381  }
382 
383  static bool inline
385  {
386  return (mode == MODE_EL0T || mode == MODE_EL1T || mode == MODE_EL2T ||
387  mode == MODE_EL3T);
388  }
389 
390  static ExceptionLevel inline
392  {
393  bool aarch32 = ((mode >> 4) & 1) ? true : false;
394  if (aarch32) {
395  switch (mode) {
396  case MODE_USER:
397  return EL0;
398  case MODE_FIQ:
399  case MODE_IRQ:
400  case MODE_SVC:
401  case MODE_ABORT:
402  case MODE_UNDEFINED:
403  case MODE_SYSTEM:
404  return EL1;
405  case MODE_HYP:
406  return EL2;
407  case MODE_MON:
408  return EL3;
409  default:
410  panic("Invalid operating mode: %d", mode);
411  break;
412  }
413  } else {
414  // aarch64
415  return (ExceptionLevel) ((mode >> 2) & 3);
416  }
417  }
418 
419  static inline bool
421  {
422  switch (mode) {
423  case MODE_EL0T:
424  case MODE_EL1T:
425  case MODE_EL1H:
426  case MODE_EL2T:
427  case MODE_EL2H:
428  case MODE_EL3T:
429  case MODE_EL3H:
430  case MODE_USER:
431  case MODE_FIQ:
432  case MODE_IRQ:
433  case MODE_SVC:
434  case MODE_MON:
435  case MODE_ABORT:
436  case MODE_HYP:
437  case MODE_UNDEFINED:
438  case MODE_SYSTEM:
439  return false;
440  default:
441  return true;
442  }
443  }
444 
445  static inline bool
447  {
448  switch (mode) {
449  case MODE_USER:
450  case MODE_FIQ:
451  case MODE_IRQ:
452  case MODE_SVC:
453  case MODE_MON:
454  case MODE_ABORT:
455  case MODE_HYP:
456  case MODE_UNDEFINED:
457  case MODE_SYSTEM:
458  return false;
459  default:
460  return true;
461  }
462  }
463 
464  constexpr unsigned MaxSveVecLenInBits = 2048;
465  static_assert(MaxSveVecLenInBits >= 128 &&
466  MaxSveVecLenInBits <= 2048 &&
467  MaxSveVecLenInBits % 128 == 0,
468  "Unsupported max. SVE vector length");
469  constexpr unsigned MaxSveVecLenInBytes = MaxSveVecLenInBits >> 3;
470  constexpr unsigned MaxSveVecLenInWords = MaxSveVecLenInBits >> 5;
471  constexpr unsigned MaxSveVecLenInDWords = MaxSveVecLenInBits >> 6;
472 
473  constexpr unsigned VecRegSizeBytes = MaxSveVecLenInBytes;
475 
476  constexpr unsigned MaxSmeVecLenInBits = 2048;
477  static_assert(MaxSmeVecLenInBits >= 128 &&
478  MaxSmeVecLenInBits <= 2048 &&
479  // Only powers of two are supported. We don't need to
480  // check for the zero case here as we already know it
481  // is over 128.
482  (MaxSmeVecLenInBits & (MaxSmeVecLenInBits - 1)) == 0,
483  "Unsupported max. SME vector length");
484  constexpr unsigned MaxSmeVecLenInBytes = MaxSmeVecLenInBits >> 3;
485  constexpr unsigned MaxSmeVecLenInWords = MaxSmeVecLenInBits >> 5;
486  constexpr unsigned MaxSmeVecLenInDWords = MaxSmeVecLenInBits >> 6;
487 
488 } // namespace ArmISA
489 } // namespace gem5
490 
491 #endif
gem5::ArmISA::ExceptionClass::TRAPPED_SME
@ TRAPPED_SME
gem5::ArmISA::opcode23_20
Bitfield< 23, 20 > opcode23_20
Definition: types.hh:96
gem5::ArmISA::opcode15
Bitfield< 15 > opcode15
Definition: types.hh:104
gem5::ArmISA::MODE_EL2H
@ MODE_EL2H
Definition: types.hh:285
gem5::ArmISA::fpscrLen
Bitfield< 39, 37 > fpscrLen
Definition: types.hh:76
gem5::ArmISA::fpscrStride
Bitfield< 41, 40 > fpscrStride
Definition: types.hh:75
gem5::ArmISA::aff0
Bitfield< 7, 0 > aff0
Definition: types.hh:209
gem5::ArmISA::htopcode8_5
Bitfield< 24, 21 > htopcode8_5
Definition: types.hh:184
gem5::ArmISA::MaxSveVecLenInBits
constexpr unsigned MaxSveVecLenInBits
Definition: types.hh:464
gem5::ArmISA::htopcode9_5
Bitfield< 25, 21 > htopcode9_5
Definition: types.hh:179
gem5::ArmISA::immedHi11_8
Bitfield< 11, 8 > immedHi11_8
Definition: types.hh:139
gem5::ArmISA::ExceptionClass::PC_ALIGNMENT
@ PC_ALIGNMENT
gem5::ArmISA::MODE_SVC
@ MODE_SVC
Definition: types.hh:291
gem5::ArmISA::MODE_MON
@ MODE_MON
Definition: types.hh:292
gem5::ArmISA::ExceptionClass::HW_BREAKPOINT_CURR_EL
@ HW_BREAKPOINT_CURR_EL
gem5::ArmISA::UNALIGNED
@ UNALIGNED
Unaligned instruction fault.
Definition: types.hh:360
gem5::ArmISA::topcode10_9
Bitfield< 10, 9 > topcode10_9
Definition: types.hh:165
gem5::ArmISA::DOUBLE_TO_WORD
@ DOUBLE_TO_WORD
Definition: types.hh:245
gem5::ArmISA::ExceptionClass::TRAPPED_CP14_MCR_MRC
@ TRAPPED_CP14_MCR_MRC
gem5::ArmISA::htopcode9_4
Bitfield< 25, 20 > htopcode9_4
Definition: types.hh:180
gem5::ArmISA::topcode11_8
Bitfield< 11, 8 > topcode11_8
Definition: types.hh:164
gem5::ArmISA::opcode22
Bitfield< 22 > opcode22
Definition: types.hh:99
gem5::ArmISA::RND_NEAREST
@ RND_NEAREST
Definition: types.hh:268
gem5::ArmISA::hts
Bitfield< 20 > hts
Definition: types.hh:193
gem5::ArmISA::MODE_FIQ
@ MODE_FIQ
Definition: types.hh:289
gem5::ArmISA::ExceptionClass::PREFETCH_ABORT_CURR_EL
@ PREFETCH_ABORT_CURR_EL
gem5::ArmISA::opcode19_16
Bitfield< 19, 16 > opcode19_16
Definition: types.hh:100
gem5::ArmISA::fd
Bitfield< 14, 12 > fd
Definition: types.hh:150
gem5::ArmISA::el
Bitfield< 3, 2 > el
Definition: misc_types.hh:73
gem5::ArmISA::ExceptionClass::SOFTWARE_BREAKPOINT
@ SOFTWARE_BREAKPOINT
gem5::ArmISA::ExceptionClass::TRAPPED_CP14_LDC_STC
@ TRAPPED_CP14_LDC_STC
gem5::ArmISA::aarch64
Bitfield< 34 > aarch64
Definition: types.hh:81
gem5::ArmISA::opcode20
Bitfield< 20 > opcode20
Definition: types.hh:98
gem5::ArmISA::up
Bitfield< 23 > up
Definition: types.hh:124
gem5::ArmISA::writeback
Bitfield< 21 > writeback
Definition: types.hh:126
gem5::ArmISA::UXTH
@ UXTH
Definition: types.hh:225
gem5::ArmISA::condCode
Bitfield< 31, 28 > condCode
Definition: types.hh:111
gem5::ArmISA::MODE_EL2T
@ MODE_EL2T
Definition: types.hh:284
gem5::ArmISA::VecPredRegSizeBits
constexpr unsigned VecPredRegSizeBits
Definition: types.hh:474
gem5::ArmISA::htopcode9
Bitfield< 25 > htopcode9
Definition: types.hh:177
gem5::ArmISA::ltopcode15
Bitfield< 15 > ltopcode15
Definition: types.hh:195
gem5::ArmISA::opcode15_12
Bitfield< 15, 12 > opcode15_12
Definition: types.hh:103
gem5::ArmISA::MODE_UNDEFINED
@ MODE_UNDEFINED
Definition: types.hh:295
gem5::ArmISA::MODE_EL1H
@ MODE_EL1H
Definition: types.hh:283
gem5::ArmISA::opcode18
Bitfield< 18 > opcode18
Definition: types.hh:102
gem5::ArmISA::MODE_IRQ
@ MODE_IRQ
Definition: types.hh:290
gem5::ArmISA::RND_ZERO
@ RND_ZERO
Definition: types.hh:265
gem5::ArmISA::SXTX
@ SXTX
Definition: types.hh:231
gem5::ArmISA::LONG_TO_PS
@ LONG_TO_PS
Definition: types.hh:251
gem5::ArmISA::vmid_t
uint16_t vmid_t
Definition: types.hh:57
gem5::ArmISA::ExceptionClass::SMC_TO_HYP
@ SMC_TO_HYP
gem5::ArmISA::topcode7_5
Bitfield< 7, 5 > topcode7_5
Definition: types.hh:170
gem5::ArmISA::ExceptionClass::FP_EXCEPTION_64
@ FP_EXCEPTION_64
gem5::ArmISA::ExceptionClass::HVC_64
@ HVC_64
gem5::ArmISA::topcode12_11
Bitfield< 12, 11 > topcode12_11
Definition: types.hh:161
gem5::ArmISA::ExceptionClass::INVALID
@ INVALID
gem5::ArmISA::MaxSveVecLenInWords
constexpr unsigned MaxSveVecLenInWords
Definition: types.hh:470
gem5::ArmISA::ArmExtendType
ArmExtendType
Definition: types.hh:222
gem5::ArmISA::immedLo3_0
Bitfield< 3, 0 > immedLo3_0
Definition: types.hh:140
gem5::ArmISA::ltcoproc
Bitfield< 11, 8 > ltcoproc
Definition: types.hh:202
gem5::ArmISA::opModeIsT
static bool opModeIsT(OperatingMode mode)
Definition: types.hh:384
gem5::ArmISA::ltopcode7_4
Bitfield< 7, 4 > ltopcode7_4
Definition: types.hh:198
gem5::ArmISA::EL1
@ EL1
Definition: types.hh:274
gem5::ArmISA::RegContextParam
int RegContextParam
Definition: types.hh:234
gem5::ArmISA::opModeToEL
static ExceptionLevel opModeToEL(OperatingMode mode)
Definition: types.hh:391
gem5::ArmISA::itstateCond
Bitfield< 55, 52 > itstateCond
Definition: types.hh:71
gem5::ArmISA::topcode10_8
Bitfield< 10, 8 > topcode10_8
Definition: types.hh:166
gem5::ArmISA::ExceptionClass::SMC_64
@ SMC_64
gem5::ArmISA::rotate
Bitfield< 11, 8 > rotate
Definition: types.hh:134
gem5::ArmISA::htopcode6_5
Bitfield< 22, 21 > htopcode6_5
Definition: types.hh:188
gem5::ArmISA::htopcode7
Bitfield< 23 > htopcode7
Definition: types.hh:185
gem5::ArmISA::BitUnion64
BitUnion64(ExtMachInst) Bitfield< 63
gem5::ArmISA::ExceptionClass::ILLEGAL_INST
@ ILLEGAL_INST
gem5::ArmISA::ExceptionClass::TRAPPED_PAC
@ TRAPPED_PAC
gem5::ArmISA::opc2
Bitfield< 7, 5 > opc2
Definition: types.hh:106
gem5::ArmISA::encoding
Bitfield< 27, 25 > encoding
Definition: types.hh:90
gem5::ArmISA::debugStep
Bitfield< 60 > debugStep
Definition: types.hh:63
gem5::ArmISA::topcode13_11
Bitfield< 13, 11 > topcode13_11
Definition: types.hh:160
gem5::ArmISA::isMisc
Bitfield< 32 > isMisc
Definition: types.hh:85
gem5::ArmISA::MODE_EL3H
@ MODE_EL3H
Definition: types.hh:287
gem5::ArmISA::ExceptionClass::SVC_64
@ SVC_64
gem5::ArmISA::htopcode7_5
Bitfield< 23, 21 > htopcode7_5
Definition: types.hh:186
gem5::ArmISA::ltopcode4
Bitfield< 4 > ltopcode4
Definition: types.hh:199
gem5::ArmISA::ExceptionClass::SVC_TO_HYP
@ SVC_TO_HYP
gem5::ArmISA::RegContextVal
int RegContextVal
Definition: types.hh:235
gem5::ArmISA::immed11_0
Bitfield< 11, 0 > immed11_0
Definition: types.hh:136
gem5::ArmISA::PANIC
@ PANIC
Internal gem5 error.
Definition: types.hh:362
gem5::ArmISA::ExceptionClass::PREFETCH_ABORT_FROM_HYP
@ PREFETCH_ABORT_FROM_HYP
gem5::ArmISA::LONG_TO_DOUBLE
@ LONG_TO_DOUBLE
Definition: types.hh:249
gem5::ArmISA::opcode24
Bitfield< 24 > opcode24
Definition: types.hh:94
gem5::ArmISA::ExceptionClass::WATCHPOINT_LOWER_EL
@ WATCHPOINT_LOWER_EL
gem5::ArmISA::opcode24_23
Bitfield< 24, 23 > opcode24_23
Definition: types.hh:95
gem5::ArmISA::ExceptionClass::TRAPPED_CP14_MCRR_MRRC
@ TRAPPED_CP14_MCRR_MRRC
gem5::ArmISA::ExceptionClass::WATCHPOINT
@ WATCHPOINT
gem5::ArmISA::shift
Bitfield< 6, 5 > shift
Definition: types.hh:117
gem5::ArmISA::ExceptionClass::TRAPPED_MSR_MRS_64
@ TRAPPED_MSR_MRS_64
gem5::ArmISA::htopcode9_8
Bitfield< 25, 24 > htopcode9_8
Definition: types.hh:178
gem5::ArmISA::unknownMode32
static bool unknownMode32(OperatingMode mode)
Definition: types.hh:446
gem5::ArmISA::cpNum
Bitfield< 11, 8 > cpNum
Definition: types.hh:148
gem5::ArmISA::WORD_TO_PS
@ WORD_TO_PS
Definition: types.hh:256
gem5::ArmISA::opcode7
Bitfield< 7 > opcode7
Definition: types.hh:107
gem5::ArmISA::ExceptionClass::TRAPPED_CP10_MRC_VMRS
@ TRAPPED_CP10_MRC_VMRS
gem5::ArmISA::opcode6
Bitfield< 6 > opcode6
Definition: types.hh:108
gem5::ArmISA::RoundMode
RoundMode
Definition: types.hh:263
gem5::ArmISA::htopcode4
Bitfield< 20 > htopcode4
Definition: types.hh:190
gem5::ArmISA::MODE_EL3T
@ MODE_EL3T
Definition: types.hh:286
gem5::ArmISA::loadOp
Bitfield< 20 > loadOp
Definition: types.hh:127
gem5::ArmISA::mediaOpcode
Bitfield< 24, 20 > mediaOpcode
Definition: types.hh:93
gem5::ArmISA::ExceptionClass::SERROR
@ SERROR
gem5::ArmISA::opcode
Bitfield< 24, 21 > opcode
Definition: types.hh:92
gem5::ArmISA::psruser
Bitfield< 22 > psruser
Definition: types.hh:125
gem5::ArmISA::htrn
Bitfield< 19, 16 > htrn
Definition: types.hh:192
gem5::ArmISA::ExceptionClass::TRAPPED_HCPTR
@ TRAPPED_HCPTR
gem5::ArmISA::MODE_EL1T
@ MODE_EL1T
Definition: types.hh:282
gem5::ArmISA::topcode9_6
Bitfield< 9, 6 > topcode9_6
Definition: types.hh:167
gem5::ArmISA::ExceptionClass::SMC
@ SMC
gem5::ArmISA::MODE_HYP
@ MODE_HYP
Definition: types.hh:294
gem5::ArmISA::immed7_0
Bitfield< 7, 0 > immed7_0
Definition: types.hh:137
gem5::ArmISA::MODE_MAXMODE
@ MODE_MAXMODE
Definition: types.hh:297
gem5::ArmISA::htopcode12_11
Bitfield< 28, 27 > htopcode12_11
Definition: types.hh:175
gem5::ArmISA::LONG_TO_WORD
@ LONG_TO_WORD
Definition: types.hh:250
gem5::ArmISA::width
Bitfield< 4 > width
Definition: misc_types.hh:72
gem5::ArmISA::SXTW
@ SXTW
Definition: types.hh:230
gem5::ArmISA::rd
Bitfield< 15, 12 > rd
Definition: types.hh:114
gem5::ArmISA::MaxSmeVecLenInBits
constexpr unsigned MaxSmeVecLenInBits
Definition: types.hh:476
gem5::ArmISA::ExceptionClass::SOFTWARE_BREAKPOINT_64
@ SOFTWARE_BREAKPOINT_64
gem5::ArmISA::SINGLE_TO_WORD
@ SINGLE_TO_WORD
Definition: types.hh:241
gem5::ArmISA::ExceptionClass::DATA_ABORT_CURR_EL
@ DATA_ABORT_CURR_EL
gem5::ArmISA::BitUnion32
BitUnion32(PackedIntReg) Bitfield< 31
gem5::ArmISA::rt
Bitfield< 15, 12 > rt
Definition: types.hh:115
gem5::ArmISA::topcode15_13
Bitfield< 15, 13 > topcode15_13
Definition: types.hh:159
gem5::ArmISA::EL2
@ EL2
Definition: types.hh:275
gem5::ArmISA::MachInst
uint32_t MachInst
Definition: types.hh:55
gem5::ArmISA::MaxSmeVecLenInBytes
constexpr unsigned MaxSmeVecLenInBytes
Definition: types.hh:484
gem5::ArmISA::BitUnion8
BitUnion8(ITSTATE) Bitfield< 7
gem5::ArmISA::rm
Bitfield< 3, 0 > rm
Definition: types.hh:118
gem5::ArmISA::unknownMode
static bool unknownMode(OperatingMode mode)
Definition: types.hh:420
gem5::ArmISA::htopcode8_6
Bitfield< 24, 22 > htopcode8_6
Definition: types.hh:183
gem5::ArmISA::ExceptionClass::TRAPPED_CP15_MCR_MRC
@ TRAPPED_CP15_MCR_MRC
bitunion.hh
gem5::ArmISA::MaxSveVecLenInDWords
constexpr unsigned MaxSveVecLenInDWords
Definition: types.hh:471
gem5::ArmISA::htopcode6
Bitfield< 22 > htopcode6
Definition: types.hh:187
gem5::ArmISA::SINGLE_TO_LONG
@ SINGLE_TO_LONG
Definition: types.hh:242
gem5::ArmISA::sevenAndFour
Bitfield< 33 > sevenAndFour
Definition: types.hh:84
gem5::ArmISA::SXTH
@ SXTH
Definition: types.hh:229
gem5::ArmISA::MaxSmeVecLenInWords
constexpr unsigned MaxSmeVecLenInWords
Definition: types.hh:485
gem5::ArmISA::shiftSize
Bitfield< 11, 7 > shiftSize
Definition: types.hh:116
gem5::ArmISA::SXTB
@ SXTB
Definition: types.hh:228
gem5::ArmISA::offset
Bitfield< 23, 0 > offset
Definition: types.hh:144
gem5::ArmISA::PU_TO_SINGLE
@ PU_TO_SINGLE
Definition: types.hh:259
gem5::ArmISA::topcode7_4
Bitfield< 7, 4 > topcode7_4
Definition: types.hh:171
gem5::ArmISA::EL3
@ EL3
Definition: types.hh:276
gem5::ArmISA::SubBitUnion
SubBitUnion(cond_iss, 24, 0) Bitfield< 24 > cv
gem5::ArmISA::instBits
uint32_t instBits
Definition: types.hh:87
gem5::ArmISA::fm
Bitfield< 3, 0 > fm
Definition: types.hh:152
gem5::ArmISA::MaxSveVecLenInBytes
constexpr unsigned MaxSveVecLenInBytes
Definition: types.hh:469
gem5::ArmISA::MODE_USER
@ MODE_USER
Definition: types.hh:288
gem5::ArmISA::DOUBLE_TO_SINGLE
@ DOUBLE_TO_SINGLE
Definition: types.hh:244
gem5::ArmISA::ExceptionClass::SOFTWARE_STEP_CURR_EL
@ SOFTWARE_STEP_CURR_EL
gem5::ArmISA::RND_DOWN
@ RND_DOWN
Definition: types.hh:266
gem5::ArmISA::DecoderFault
DecoderFault
Instruction decoder fault codes in ExtMachInst.
Definition: types.hh:357
gem5::ArmISA::ExceptionClass::STACK_PTR_ALIGNMENT
@ STACK_PTR_ALIGNMENT
pcstate.hh
gem5::ArmISA::WORD_TO_SINGLE
@ WORD_TO_SINGLE
Definition: types.hh:253
gem5::ArmISA::ExceptionClass
ExceptionClass
Definition: types.hh:300
gem5::ArmISA::UXTB
@ UXTB
Definition: types.hh:224
gem5::ArmISA::ExceptionClass::HVC
@ HVC
gem5::ArmISA::ConvertType
ConvertType
Definition: types.hh:238
gem5::ArmISA::ltrd
Bitfield< 11, 8 > ltrd
Definition: types.hh:201
gem5::X86ISA::ExtMachInst
Definition: types.hh:212
gem5::ArmISA::PL_TO_SINGLE
@ PL_TO_SINGLE
Definition: types.hh:258
gem5::ArmISA::ExceptionClass::VECTOR_CATCH
@ VECTOR_CATCH
gem5::ArmISA::UXTW
@ UXTW
Definition: types.hh:226
gem5::ArmISA::WORD_TO_LONG
@ WORD_TO_LONG
Definition: types.hh:255
gem5::ArmISA::EL0
@ EL0
Definition: types.hh:273
gem5::ArmISA::ltopcode11_8
Bitfield< 11, 8 > ltopcode11_8
Definition: types.hh:196
gem5::ArmISA::ExceptionClass::TRAPPED_WFI_WFE
@ TRAPPED_WFI_WFE
gem5::ArmISA::imm
Bitfield< 7, 0 > imm
Definition: types.hh:132
gem5::ArmISA::regList
Bitfield< 15, 0 > regList
Definition: types.hh:142
gem5::ArmISA::OK
@ OK
No fault.
Definition: types.hh:359
gem5::ArmISA::htopcode8_7
Bitfield< 24, 23 > htopcode8_7
Definition: types.hh:182
gem5::ArmISA::MODE_EL0T
@ MODE_EL0T
Definition: types.hh:281
gem5::ArmISA::ExceptionClass::TRAPPED_SVE
@ TRAPPED_SVE
gem5::ArmISA::fpRegImm
Bitfield< 3 > fpRegImm
Definition: types.hh:151
gem5::ArmISA::UXTX
@ UXTX
Definition: types.hh:227
gem5::ArmISA::ExceptionClass::SVC
@ SVC
gem5::ArmISA::sveLen
Bitfield< 59, 56 > sveLen
Definition: types.hh:67
gem5::ArmISA::pubwl
pubwl
Definition: types.hh:130
gem5::ArmISA::DOUBLE_TO_LONG
@ DOUBLE_TO_LONG
Definition: types.hh:246
gem5::ArmISA::useImm
Bitfield< 25 > useImm
Definition: types.hh:91
gem5::ArmISA::bigThumb
Bitfield< 35 > bigThumb
Definition: types.hh:80
gem5::ArmISA::ExceptionClass::TRAPPED_CP15_MCRR_MRRC
@ TRAPPED_CP15_MCRR_MRRC
gem5::ArmISA::ExceptionClass::UNKNOWN
@ UNKNOWN
gem5::ArmISA::ExceptionClass::TRAPPED_SIMD_FP
@ TRAPPED_SIMD_FP
gem5::ArmISA::aff2
Bitfield< 23, 16 > aff2
Definition: types.hh:207
gem5::ArmISA::MODE_SYSTEM
@ MODE_SYSTEM
Definition: types.hh:296
gem5::ArmISA::ExceptionClass::DATA_ABORT_LOWER_EL
@ DATA_ABORT_LOWER_EL
gem5::ArmISA::opcode4
Bitfield< 4 > opcode4
Definition: types.hh:109
logging.hh
gem5::ArmISA::ExceptionClass::DATA_ABORT_TO_HYP
@ DATA_ABORT_TO_HYP
gem5::ArmISA::fn
Bitfield< 18, 16 > fn
Definition: types.hh:149
gem5::ArmISA::sField
Bitfield< 20 > sField
Definition: types.hh:112
gem5::ArmISA::SINGLE_TO_DOUBLE
@ SINGLE_TO_DOUBLE
Definition: types.hh:240
gem5::ArmISA::ExceptionClass::PREFETCH_ABORT_LOWER_EL
@ PREFETCH_ABORT_LOWER_EL
gem5::ArmISA::EndSubBitUnion
EndSubBitUnion(cond_iss) SubBitUnion(data_abort_iss
gem5::ArmISA::WORD_TO_DOUBLE
@ WORD_TO_DOUBLE
Definition: types.hh:254
gem5::ArmISA::topcode7
Bitfield< 7 > topcode7
Definition: types.hh:168
gem5::ArmISA::LONG_TO_SINGLE
@ LONG_TO_SINGLE
Definition: types.hh:248
gem5::ArmISA::topcode12_10
Bitfield< 12, 10 > topcode12_10
Definition: types.hh:162
gem5::ArmISA::aff3
aff3
Definition: types.hh:206
gem5::ArmISA::thumb
Bitfield< 36 > thumb
Definition: types.hh:79
gem5::ArmISA::ExceptionClass::PREFETCH_ABORT_TO_HYP
@ PREFETCH_ABORT_TO_HYP
gem5::ArmISA::ExceptionClass::TRAPPED_BXJ
@ TRAPPED_BXJ
gem5::ArmISA::ltopcode7_6
Bitfield< 7, 6 > ltopcode7_6
Definition: types.hh:197
gem5::ArmISA::opcode23_21
Bitfield< 23, 21 > opcode23_21
Definition: types.hh:97
gem5::ArmISA::MODE_ABORT
@ MODE_ABORT
Definition: types.hh:293
gem5::ArmISA::opModeIsH
static bool opModeIsH(OperatingMode mode)
Definition: types.hh:378
gem5::ArmISA::ExceptionClass::DATA_ABORT_FROM_HYP
@ DATA_ABORT_FROM_HYP
gem5::ArmISA::ExceptionClass::FP_EXCEPTION
@ FP_EXCEPTION
gem5
Reference material can be found at the JEDEC website: UFS standard http://www.jedec....
Definition: gpu_translation_state.hh:37
gem5::ArmISA::miscOpcode
Bitfield< 7, 4 > miscOpcode
Definition: types.hh:105
gem5::ArmISA::MaxSmeVecLenInDWords
constexpr unsigned MaxSmeVecLenInDWords
Definition: types.hh:486
gem5::ArmISA::itstate
Bitfield< 55, 48 > itstate
Definition: types.hh:70
gem5::ArmISA::htopcode5_4
Bitfield< 21, 20 > htopcode5_4
Definition: types.hh:189
gem5::ArmISA::ExceptionClass::WATCHPOINT_CURR_EL
@ WATCHPOINT_CURR_EL
gem5::ArmISA::htopcode10_9
Bitfield< 26, 25 > htopcode10_9
Definition: types.hh:176
gem5::ArmISA::decoderFault
decoderFault
Definition: types.hh:61
gem5::ArmISA::EndBitUnion
EndBitUnion(PackedIntReg) namespace int_reg
Definition: int.hh:65
gem5::ArmISA::itstateMask
Bitfield< 51, 48 > itstateMask
Definition: types.hh:72
gem5::ArmISA::ExceptionClass::SOFTWARE_STEP_LOWER_EL
@ SOFTWARE_STEP_LOWER_EL
gem5::ArmISA::topcode3_0
Bitfield< 3, 0 > topcode3_0
Definition: types.hh:172
gem5::ArmISA::topcode11_9
Bitfield< 11, 9 > topcode11_9
Definition: types.hh:163
gem5::ArmISA::rn
Bitfield< 19, 16 > rn
Definition: types.hh:113
gem5::ArmISA::ExceptionClass::HW_BREAKPOINT
@ HW_BREAKPOINT
gem5::ArmISA::opcode19
Bitfield< 19 > opcode19
Definition: types.hh:101
gem5::ArmISA::fpImm
Bitfield< 2, 0 > fpImm
Definition: types.hh:153
gem5::ArmISA::htopcode8
Bitfield< 24 > htopcode8
Definition: types.hh:181
gem5::ArmISA::ExceptionClass::SOFTWARE_STEP
@ SOFTWARE_STEP
gem5::ArmISA::m5Func
Bitfield< 15, 8 > m5Func
Definition: types.hh:156
gem5::ArmISA::punwl
Bitfield< 24, 20 > punwl
Definition: types.hh:154
gem5::ArmISA::RND_UP
@ RND_UP
Definition: types.hh:267
gem5::ArmISA::VecRegSizeBytes
constexpr unsigned VecRegSizeBytes
Definition: types.hh:473
gem5::ArmISA::OperatingMode
OperatingMode
Definition: types.hh:279
gem5::ArmISA::illegalExecution
Bitfield< 61 > illegalExecution
Definition: types.hh:62
gem5::ArmISA::ExceptionClass::HW_BREAKPOINT_LOWER_EL
@ HW_BREAKPOINT_LOWER_EL
gem5::ArmISA::rs
Bitfield< 9, 8 > rs
Definition: misc_types.hh:433
gem5::ArmISA::immed23_0
Bitfield< 23, 0 > immed23_0
Definition: types.hh:146
gem5::ArmISA::aff1
Bitfield< 15, 8 > aff1
Definition: types.hh:208
gem5::ArmISA::ExceptionLevel
ExceptionLevel
Definition: types.hh:271
panic
#define panic(...)
This implements a cprintf based panic() function.
Definition: logging.hh:188
gem5::ArmISA::mode
Bitfield< 4, 0 > mode
Definition: misc_types.hh:74
gem5::ArmISA::topcode7_6
Bitfield< 7, 6 > topcode7_6
Definition: types.hh:169

Generated on Sun Jul 30 2023 01:56:50 for gem5 by doxygen 1.8.17