gem5  v21.1.0.2
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 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  // Shift types for ARM instructions
206  enum ArmShiftType
207  {
208  LSL = 0,
209  LSR,
210  ASR,
211  ROR
212  };
213 
214  // Extension types for ARM instructions
216  {
217  UXTB = 0,
218  UXTH = 1,
219  UXTW = 2,
220  UXTX = 3,
221  SXTB = 4,
222  SXTH = 5,
223  SXTW = 6,
224  SXTX = 7
225  };
226 
227  typedef int RegContextParam;
228  typedef int RegContextVal;
229 
230  //used in FP convert & round function
232  {
236 
240 
245 
250 
253  };
254 
255  //used in FP convert & round function
257  {
262  };
263 
265  {
266  EL0 = 0,
270  };
271 
273  {
274  MODE_EL0T = 0x0,
275  MODE_EL1T = 0x4,
276  MODE_EL1H = 0x5,
277  MODE_EL2T = 0x8,
278  MODE_EL2H = 0x9,
279  MODE_EL3T = 0xC,
280  MODE_EL3H = 0xD,
281  MODE_USER = 16,
282  MODE_FIQ = 17,
283  MODE_IRQ = 18,
284  MODE_SVC = 19,
285  MODE_MON = 22,
287  MODE_HYP = 26,
291  };
292 
294  {
296  EC_UNKNOWN = 0x0,
303  EC_TRAPPED_SIMD_FP = 0x7, // AArch64 alias
310  EC_SVC = 0x11, // AArch64 alias
311  EC_HVC = 0x12,
313  EC_SMC = 0x13, // AArch64 alias
314  EC_SVC_64 = 0x15,
315  EC_HVC_64 = 0x16,
316  EC_SMC_64 = 0x17,
320  EC_PREFETCH_ABORT_LOWER_EL = 0x20, // AArch64 alias
322  EC_PREFETCH_ABORT_CURR_EL = 0x21, // AArch64 alias
325  EC_DATA_ABORT_LOWER_EL = 0x24, // AArch64 alias
327  EC_DATA_ABORT_CURR_EL = 0x25, // AArch64 alias
331  EC_SERROR = 0x2F,
344  };
345 
349  enum DecoderFault : std::uint8_t
350  {
351  OK = 0x0,
352  UNALIGNED = 0x1,
353 
354  PANIC = 0x3,
355  };
356 
357  BitUnion8(OperatingMode64)
358  Bitfield<0> spX;
359  Bitfield<3, 2> el;
360  Bitfield<4> width;
361  EndBitUnion(OperatingMode64)
362 
363  static bool inline
364  opModeIs64(OperatingMode mode)
365  {
366  return ((OperatingMode64)(uint8_t)mode).width == 0;
367  }
368 
369  static bool inline
371  {
372  return (mode == MODE_EL1H || mode == MODE_EL2H || mode == MODE_EL3H);
373  }
374 
375  static bool inline
377  {
378  return (mode == MODE_EL0T || mode == MODE_EL1T || mode == MODE_EL2T ||
379  mode == MODE_EL3T);
380  }
381 
382  static ExceptionLevel inline
384  {
385  bool aarch32 = ((mode >> 4) & 1) ? true : false;
386  if (aarch32) {
387  switch (mode) {
388  case MODE_USER:
389  return EL0;
390  case MODE_FIQ:
391  case MODE_IRQ:
392  case MODE_SVC:
393  case MODE_ABORT:
394  case MODE_UNDEFINED:
395  case MODE_SYSTEM:
396  return EL1;
397  case MODE_HYP:
398  return EL2;
399  case MODE_MON:
400  return EL3;
401  default:
402  panic("Invalid operating mode: %d", mode);
403  break;
404  }
405  } else {
406  // aarch64
407  return (ExceptionLevel) ((mode >> 2) & 3);
408  }
409  }
410 
411  static inline bool
413  {
414  switch (mode) {
415  case MODE_EL0T:
416  case MODE_EL1T:
417  case MODE_EL1H:
418  case MODE_EL2T:
419  case MODE_EL2H:
420  case MODE_EL3T:
421  case MODE_EL3H:
422  case MODE_USER:
423  case MODE_FIQ:
424  case MODE_IRQ:
425  case MODE_SVC:
426  case MODE_MON:
427  case MODE_ABORT:
428  case MODE_HYP:
429  case MODE_UNDEFINED:
430  case MODE_SYSTEM:
431  return false;
432  default:
433  return true;
434  }
435  }
436 
437  static inline bool
439  {
440  switch (mode) {
441  case MODE_USER:
442  case MODE_FIQ:
443  case MODE_IRQ:
444  case MODE_SVC:
445  case MODE_MON:
446  case MODE_ABORT:
447  case MODE_HYP:
448  case MODE_UNDEFINED:
449  case MODE_SYSTEM:
450  return false;
451  default:
452  return true;
453  }
454  }
455 
456  constexpr unsigned MaxSveVecLenInBits = 2048;
457  static_assert(MaxSveVecLenInBits >= 128 &&
458  MaxSveVecLenInBits <= 2048 &&
459  MaxSveVecLenInBits % 128 == 0,
460  "Unsupported max. SVE vector length");
461  constexpr unsigned MaxSveVecLenInBytes = MaxSveVecLenInBits >> 3;
462  constexpr unsigned MaxSveVecLenInWords = MaxSveVecLenInBits >> 5;
463  constexpr unsigned MaxSveVecLenInDWords = MaxSveVecLenInBits >> 6;
464 
465  constexpr unsigned VecRegSizeBytes = MaxSveVecLenInBytes;
467 
468 } // namespace ArmISA
469 } // namespace gem5
470 
471 #endif
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:278
gem5::ArmISA::fpscrLen
Bitfield< 39, 37 > fpscrLen
Definition: types.hh:76
gem5::ArmISA::fpscrStride
Bitfield< 41, 40 > fpscrStride
Definition: types.hh:75
gem5::ArmISA::htopcode8_5
Bitfield< 24, 21 > htopcode8_5
Definition: types.hh:184
gem5::ArmISA::MaxSveVecLenInBits
constexpr unsigned MaxSveVecLenInBits
Definition: types.hh:456
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::EC_SOFTWARE_STEP
@ EC_SOFTWARE_STEP
Definition: types.hh:335
gem5::ArmISA::EC_PREFETCH_ABORT_TO_HYP
@ EC_PREFETCH_ABORT_TO_HYP
Definition: types.hh:319
gem5::ArmISA::MODE_SVC
@ MODE_SVC
Definition: types.hh:284
gem5::ArmISA::EC_HVC
@ EC_HVC
Definition: types.hh:311
gem5::ArmISA::MODE_MON
@ MODE_MON
Definition: types.hh:285
gem5::ArmISA::UNALIGNED
@ UNALIGNED
Unaligned instruction fault.
Definition: types.hh:352
gem5::ArmISA::topcode10_9
Bitfield< 10, 9 > topcode10_9
Definition: types.hh:165
gem5::ArmISA::DOUBLE_TO_WORD
@ DOUBLE_TO_WORD
Definition: types.hh:238
gem5::ArmISA::EC_ILLEGAL_INST
@ EC_ILLEGAL_INST
Definition: types.hh:308
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:261
gem5::ArmISA::hts
Bitfield< 20 > hts
Definition: types.hh:193
gem5::ArmISA::MODE_FIQ
@ MODE_FIQ
Definition: types.hh:282
gem5::ArmISA::EC_WATCHPOINT
@ EC_WATCHPOINT
Definition: types.hh:338
gem5::ArmISA::opcode19_16
Bitfield< 19, 16 > opcode19_16
Definition: types.hh:100
gem5::ArmISA::EC_HW_BREAKPOINT_LOWER_EL
@ EC_HW_BREAKPOINT_LOWER_EL
Definition: types.hh:333
gem5::ArmISA::SubBitUnion
SubBitUnion(puswl, 24, 20) Bitfield< 24 > prepost
gem5::ArmISA::fd
Bitfield< 14, 12 > fd
Definition: types.hh:150
gem5::ArmISA::el
Bitfield< 3, 2 > el
Definition: misc_types.hh:72
gem5::ArmISA::EC_SERROR
@ EC_SERROR
Definition: types.hh:331
gem5::ArmISA::EC_SVC_TO_HYP
@ EC_SVC_TO_HYP
Definition: types.hh:309
gem5::ArmISA::aarch64
Bitfield< 34 > aarch64
Definition: types.hh:81
gem5::ArmISA::opcode20
Bitfield< 20 > opcode20
Definition: types.hh:98
gem5::ArmISA::EC_DATA_ABORT_LOWER_EL
@ EC_DATA_ABORT_LOWER_EL
Definition: types.hh:325
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:218
gem5::ArmISA::condCode
Bitfield< 31, 28 > condCode
Definition: types.hh:111
gem5::ArmISA::MODE_EL2T
@ MODE_EL2T
Definition: types.hh:277
gem5::ArmISA::VecPredRegSizeBits
constexpr unsigned VecPredRegSizeBits
Definition: types.hh:466
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:288
gem5::ArmISA::EC_TRAPPED_CP15_MCR_MRC
@ EC_TRAPPED_CP15_MCR_MRC
Definition: types.hh:298
gem5::ArmISA::MODE_EL1H
@ MODE_EL1H
Definition: types.hh:276
gem5::ArmISA::opcode18
Bitfield< 18 > opcode18
Definition: types.hh:102
gem5::ArmISA::MODE_IRQ
@ MODE_IRQ
Definition: types.hh:283
gem5::ArmISA::EC_TRAPPED_CP14_MCRR_MRRC
@ EC_TRAPPED_CP14_MCRR_MRRC
Definition: types.hh:307
gem5::ArmISA::RND_ZERO
@ RND_ZERO
Definition: types.hh:258
gem5::ArmISA::EC_HVC_64
@ EC_HVC_64
Definition: types.hh:315
gem5::ArmISA::EC_TRAPPED_CP14_LDC_STC
@ EC_TRAPPED_CP14_LDC_STC
Definition: types.hh:301
gem5::ArmISA::SXTX
@ SXTX
Definition: types.hh:224
gem5::ArmISA::LONG_TO_PS
@ LONG_TO_PS
Definition: types.hh:244
gem5::ArmISA::vmid_t
uint16_t vmid_t
Definition: types.hh:57
gem5::ArmISA::topcode7_5
Bitfield< 7, 5 > topcode7_5
Definition: types.hh:170
gem5::ArmISA::topcode12_11
Bitfield< 12, 11 > topcode12_11
Definition: types.hh:161
gem5::ArmISA::MaxSveVecLenInWords
constexpr unsigned MaxSveVecLenInWords
Definition: types.hh:462
gem5::ArmISA::ArmExtendType
ArmExtendType
Definition: types.hh:215
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:376
gem5::ArmISA::ltopcode7_4
Bitfield< 7, 4 > ltopcode7_4
Definition: types.hh:198
gem5::ArmISA::EL1
@ EL1
Definition: types.hh:267
gem5::ArmISA::EC_SOFTWARE_BREAKPOINT
@ EC_SOFTWARE_BREAKPOINT
Definition: types.hh:341
gem5::ArmISA::RegContextParam
int RegContextParam
Definition: types.hh:227
gem5::ArmISA::opModeToEL
static ExceptionLevel opModeToEL(OperatingMode mode)
Definition: types.hh:383
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::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::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:280
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::RegContextVal
int RegContextVal
Definition: types.hh:228
gem5::ArmISA::immed11_0
Bitfield< 11, 0 > immed11_0
Definition: types.hh:136
gem5::ArmISA::PANIC
@ PANIC
Internal gem5 error.
Definition: types.hh:354
gem5::ArmISA::EC_DATA_ABORT_FROM_HYP
@ EC_DATA_ABORT_FROM_HYP
Definition: types.hh:326
gem5::ArmISA::LONG_TO_DOUBLE
@ LONG_TO_DOUBLE
Definition: types.hh:242
gem5::ArmISA::opcode24
Bitfield< 24 > opcode24
Definition: types.hh:94
gem5::ArmISA::EC_WATCHPOINT_LOWER_EL
@ EC_WATCHPOINT_LOWER_EL
Definition: types.hh:339
gem5::ArmISA::EC_TRAPPED_HCPTR
@ EC_TRAPPED_HCPTR
Definition: types.hh:302
gem5::ArmISA::opcode24_23
Bitfield< 24, 23 > opcode24_23
Definition: types.hh:95
gem5::ArmISA::shift
Bitfield< 6, 5 > shift
Definition: types.hh:117
gem5::ArmISA::EC_SMC_64
@ EC_SMC_64
Definition: types.hh:316
gem5::ArmISA::htopcode9_8
Bitfield< 25, 24 > htopcode9_8
Definition: types.hh:178
gem5::ArmISA::unknownMode32
static bool unknownMode32(OperatingMode mode)
Definition: types.hh:438
gem5::ArmISA::cpNum
Bitfield< 11, 8 > cpNum
Definition: types.hh:148
gem5::ArmISA::WORD_TO_PS
@ WORD_TO_PS
Definition: types.hh:249
gem5::ArmISA::opcode7
Bitfield< 7 > opcode7
Definition: types.hh:107
gem5::ArmISA::opcode6
Bitfield< 6 > opcode6
Definition: types.hh:108
gem5::ArmISA::EC_FP_EXCEPTION
@ EC_FP_EXCEPTION
Definition: types.hh:329
gem5::ArmISA::RoundMode
RoundMode
Definition: types.hh:256
gem5::ArmISA::htopcode4
Bitfield< 20 > htopcode4
Definition: types.hh:190
gem5::ArmISA::MODE_EL3T
@ MODE_EL3T
Definition: types.hh:279
gem5::ArmISA::loadOp
Bitfield< 20 > loadOp
Definition: types.hh:127
gem5::ArmISA::mediaOpcode
Bitfield< 24, 20 > mediaOpcode
Definition: types.hh:93
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::MODE_EL1T
@ MODE_EL1T
Definition: types.hh:275
gem5::ArmISA::topcode9_6
Bitfield< 9, 6 > topcode9_6
Definition: types.hh:167
gem5::ArmISA::EC_UNKNOWN
@ EC_UNKNOWN
Definition: types.hh:296
gem5::ArmISA::MODE_HYP
@ MODE_HYP
Definition: types.hh:287
gem5::ArmISA::immed7_0
Bitfield< 7, 0 > immed7_0
Definition: types.hh:137
gem5::ArmISA::EC_TRAPPED_BXJ
@ EC_TRAPPED_BXJ
Definition: types.hh:306
gem5::ArmISA::EC_SOFTWARE_BREAKPOINT_64
@ EC_SOFTWARE_BREAKPOINT_64
Definition: types.hh:343
gem5::ArmISA::MODE_MAXMODE
@ MODE_MAXMODE
Definition: types.hh:290
gem5::ArmISA::htopcode12_11
Bitfield< 28, 27 > htopcode12_11
Definition: types.hh:175
gem5::ArmISA::LONG_TO_WORD
@ LONG_TO_WORD
Definition: types.hh:243
gem5::ArmISA::width
Bitfield< 4 > width
Definition: misc_types.hh:71
gem5::ArmISA::SXTW
@ SXTW
Definition: types.hh:223
gem5::ArmISA::rd
Bitfield< 15, 12 > rd
Definition: types.hh:114
gem5::ArmISA::EC_TRAPPED_WFI_WFE
@ EC_TRAPPED_WFI_WFE
Definition: types.hh:297
gem5::ArmISA::SINGLE_TO_WORD
@ SINGLE_TO_WORD
Definition: types.hh:234
gem5::ArmISA::EC_TRAPPED_PAC
@ EC_TRAPPED_PAC
Definition: types.hh:305
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:268
gem5::ArmISA::EndSubBitUnion
EndSubBitUnion(puswl) Bitfield< 24
gem5::ArmISA::MachInst
uint32_t MachInst
Definition: types.hh:55
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:412
gem5::ArmISA::EC_TRAPPED_CP15_MCRR_MRRC
@ EC_TRAPPED_CP15_MCRR_MRRC
Definition: types.hh:299
gem5::ArmISA::EC_TRAPPED_MSR_MRS_64
@ EC_TRAPPED_MSR_MRS_64
Definition: types.hh:317
gem5::ArmISA::EC_FP_EXCEPTION_64
@ EC_FP_EXCEPTION_64
Definition: types.hh:330
gem5::ArmISA::htopcode8_6
Bitfield< 24, 22 > htopcode8_6
Definition: types.hh:183
bitunion.hh
gem5::ArmISA::MaxSveVecLenInDWords
constexpr unsigned MaxSveVecLenInDWords
Definition: types.hh:463
gem5::ArmISA::htopcode6
Bitfield< 22 > htopcode6
Definition: types.hh:187
gem5::ArmISA::SINGLE_TO_LONG
@ SINGLE_TO_LONG
Definition: types.hh:235
gem5::ArmISA::sevenAndFour
Bitfield< 33 > sevenAndFour
Definition: types.hh:84
gem5::ArmISA::SXTH
@ SXTH
Definition: types.hh:222
gem5::ArmISA::shiftSize
Bitfield< 11, 7 > shiftSize
Definition: types.hh:116
gem5::ArmISA::SXTB
@ SXTB
Definition: types.hh:221
gem5::ArmISA::offset
Bitfield< 23, 0 > offset
Definition: types.hh:144
gem5::ArmISA::PU_TO_SINGLE
@ PU_TO_SINGLE
Definition: types.hh:252
gem5::ArmISA::topcode7_4
Bitfield< 7, 4 > topcode7_4
Definition: types.hh:171
gem5::ArmISA::EL3
@ EL3
Definition: types.hh:269
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:461
gem5::ArmISA::MODE_USER
@ MODE_USER
Definition: types.hh:281
gem5::ArmISA::DOUBLE_TO_SINGLE
@ DOUBLE_TO_SINGLE
Definition: types.hh:237
gem5::ArmISA::RND_DOWN
@ RND_DOWN
Definition: types.hh:259
gem5::ArmISA::DecoderFault
DecoderFault
Instruction decoder fault codes in ExtMachInst.
Definition: types.hh:349
pcstate.hh
gem5::ArmISA::WORD_TO_SINGLE
@ WORD_TO_SINGLE
Definition: types.hh:246
gem5::ArmISA::ExceptionClass
ExceptionClass
Definition: types.hh:293
gem5::ArmISA::UXTB
@ UXTB
Definition: types.hh:217
gem5::ArmISA::ConvertType
ConvertType
Definition: types.hh:231
gem5::ArmISA::ltrd
Bitfield< 11, 8 > ltrd
Definition: types.hh:201
gem5::X86ISA::ExtMachInst
Definition: types.hh:206
gem5::ArmISA::PL_TO_SINGLE
@ PL_TO_SINGLE
Definition: types.hh:251
gem5::ArmISA::UXTW
@ UXTW
Definition: types.hh:219
gem5::ArmISA::WORD_TO_LONG
@ WORD_TO_LONG
Definition: types.hh:248
gem5::ArmISA::EC_SOFTWARE_STEP_LOWER_EL
@ EC_SOFTWARE_STEP_LOWER_EL
Definition: types.hh:336
gem5::ArmISA::EC_PREFETCH_ABORT_CURR_EL
@ EC_PREFETCH_ABORT_CURR_EL
Definition: types.hh:322
gem5::ArmISA::EL0
@ EL0
Definition: types.hh:266
gem5::ArmISA::ltopcode11_8
Bitfield< 11, 8 > ltopcode11_8
Definition: types.hh:196
gem5::ArmISA::imm
Bitfield< 7, 0 > imm
Definition: types.hh:132
gem5::ArmISA::EC_SMC
@ EC_SMC
Definition: types.hh:313
gem5::ArmISA::regList
Bitfield< 15, 0 > regList
Definition: types.hh:142
gem5::ArmISA::EndBitUnion
EndBitUnion(PackedIntReg) enum IntRegIndex
Definition: int.hh:63
gem5::ArmISA::OK
@ OK
No fault.
Definition: types.hh:351
gem5::ArmISA::htopcode8_7
Bitfield< 24, 23 > htopcode8_7
Definition: types.hh:182
gem5::ArmISA::MODE_EL0T
@ MODE_EL0T
Definition: types.hh:274
gem5::ArmISA::EC_TRAPPED_CP14_MCR_MRC
@ EC_TRAPPED_CP14_MCR_MRC
Definition: types.hh:300
gem5::ArmISA::EC_PREFETCH_ABORT_LOWER_EL
@ EC_PREFETCH_ABORT_LOWER_EL
Definition: types.hh:320
gem5::ArmISA::fpRegImm
Bitfield< 3 > fpRegImm
Definition: types.hh:151
gem5::ArmISA::UXTX
@ UXTX
Definition: types.hh:220
gem5::ArmISA::sveLen
Bitfield< 59, 56 > sveLen
Definition: types.hh:67
gem5::ArmISA::pubwl
pubwl
Definition: types.hh:130
gem5::ArmISA::EC_HW_BREAKPOINT_CURR_EL
@ EC_HW_BREAKPOINT_CURR_EL
Definition: types.hh:334
gem5::ArmISA::DOUBLE_TO_LONG
@ DOUBLE_TO_LONG
Definition: types.hh:239
gem5::ArmISA::useImm
Bitfield< 25 > useImm
Definition: types.hh:91
gem5::ArmISA::bigThumb
Bitfield< 35 > bigThumb
Definition: types.hh:80
gem5::ArmISA::EC_DATA_ABORT_TO_HYP
@ EC_DATA_ABORT_TO_HYP
Definition: types.hh:324
gem5::ArmISA::MODE_SYSTEM
@ MODE_SYSTEM
Definition: types.hh:289
gem5::ArmISA::EC_PC_ALIGNMENT
@ EC_PC_ALIGNMENT
Definition: types.hh:323
gem5::ArmISA::opcode4
Bitfield< 4 > opcode4
Definition: types.hh:109
logging.hh
gem5::ArmISA::EC_TRAPPED_CP10_MRC_VMRS
@ EC_TRAPPED_CP10_MRC_VMRS
Definition: types.hh:304
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:233
gem5::ArmISA::EC_INVALID
@ EC_INVALID
Definition: types.hh:295
gem5::ArmISA::EC_TRAPPED_SIMD_FP
@ EC_TRAPPED_SIMD_FP
Definition: types.hh:303
gem5::ArmISA::WORD_TO_DOUBLE
@ WORD_TO_DOUBLE
Definition: types.hh:247
gem5::ArmISA::topcode7
Bitfield< 7 > topcode7
Definition: types.hh:168
gem5::ArmISA::LONG_TO_SINGLE
@ LONG_TO_SINGLE
Definition: types.hh:241
gem5::ArmISA::topcode12_10
Bitfield< 12, 10 > topcode12_10
Definition: types.hh:162
gem5::ArmISA::thumb
Bitfield< 36 > thumb
Definition: types.hh:79
gem5::ArmISA::EC_SMC_TO_HYP
@ EC_SMC_TO_HYP
Definition: types.hh:312
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:286
gem5::ArmISA::EC_SOFTWARE_STEP_CURR_EL
@ EC_SOFTWARE_STEP_CURR_EL
Definition: types.hh:337
gem5::ArmISA::EC_SVC_64
@ EC_SVC_64
Definition: types.hh:314
gem5::ArmISA::opModeIsH
static bool opModeIsH(OperatingMode mode)
Definition: types.hh:370
gem5
Reference material can be found at the JEDEC website: UFS standard http://www.jedec....
Definition: decoder.cc:40
gem5::ArmISA::miscOpcode
Bitfield< 7, 4 > miscOpcode
Definition: types.hh:105
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::htopcode10_9
Bitfield< 26, 25 > htopcode10_9
Definition: types.hh:176
gem5::ArmISA::EC_HW_BREAKPOINT
@ EC_HW_BREAKPOINT
Definition: types.hh:332
gem5::ArmISA::decoderFault
decoderFault
Definition: types.hh:61
gem5::ArmISA::itstateMask
Bitfield< 51, 48 > itstateMask
Definition: types.hh:72
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::EC_TRAPPED_SVE
@ EC_TRAPPED_SVE
Definition: types.hh:318
gem5::ArmISA::rn
Bitfield< 19, 16 > rn
Definition: types.hh:113
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::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:260
gem5::ArmISA::VecRegSizeBytes
constexpr unsigned VecRegSizeBytes
Definition: types.hh:465
gem5::ArmISA::OperatingMode
OperatingMode
Definition: types.hh:272
gem5::ArmISA::illegalExecution
Bitfield< 61 > illegalExecution
Definition: types.hh:62
gem5::ArmISA::EC_STACK_PTR_ALIGNMENT
@ EC_STACK_PTR_ALIGNMENT
Definition: types.hh:328
gem5::ArmISA::EC_WATCHPOINT_CURR_EL
@ EC_WATCHPOINT_CURR_EL
Definition: types.hh:340
gem5::ArmISA::rs
Bitfield< 9, 8 > rs
Definition: misc_types.hh:376
gem5::ArmISA::EC_PREFETCH_ABORT_FROM_HYP
@ EC_PREFETCH_ABORT_FROM_HYP
Definition: types.hh:321
gem5::ArmISA::EC_VECTOR_CATCH
@ EC_VECTOR_CATCH
Definition: types.hh:342
gem5::ArmISA::immed23_0
Bitfield< 23, 0 > immed23_0
Definition: types.hh:146
gem5::ArmISA::EC_SVC
@ EC_SVC
Definition: types.hh:310
gem5::ArmISA::EC_DATA_ABORT_CURR_EL
@ EC_DATA_ABORT_CURR_EL
Definition: types.hh:327
gem5::ArmISA::ExceptionLevel
ExceptionLevel
Definition: types.hh:264
panic
#define panic(...)
This implements a cprintf based panic() function.
Definition: logging.hh:177
gem5::ArmISA::mode
Bitfield< 4, 0 > mode
Definition: misc_types.hh:73
gem5::ArmISA::topcode7_6
Bitfield< 7, 6 > topcode7_6
Definition: types.hh:169

Generated on Tue Sep 21 2021 12:24:46 for gem5 by doxygen 1.8.17