gem5 v24.1.0.1
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-2023 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
50namespace gem5
51{
52
53namespace 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;
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
261
262 //used in FP convert & round function
270
272 enum class SecurityState
273 {
274 NonSecure,
275 Secure
276 };
277
279 enum class PASpace
280 {
281 NonSecure,
282 Secure
283 };
284
285 enum class TranMethod
286 {
287 LpaeTran,
288 VmsaTran,
290 };
291
292 enum class DomainType : std::uint8_t
293 {
294 NoAccess = 0,
295 Client,
296 Reserved,
297 Manager
298 };
299
301 {
302 EL0 = 0,
305 EL3
306 };
307
309 {
310 EL10,
311 EL20,
312 EL2,
313 EL3
314 };
315
336
337 enum class ExceptionClass
338 {
339 INVALID = -1,
340 UNKNOWN = 0x0,
341 TRAPPED_WFI_WFE = 0x1,
346 TRAPPED_HCPTR = 0x7,
347 TRAPPED_SIMD_FP = 0x7, // AArch64 alias
349 TRAPPED_PAC = 0x9,
350 TRAPPED_BXJ = 0xA,
352 ILLEGAL_INST = 0xE,
353 SVC_TO_HYP = 0x11,
354 SVC = 0x11, // AArch64 alias
355 HVC = 0x12,
356 SMC_TO_HYP = 0x13,
357 SMC = 0x13, // AArch64 alias
358 SVC_64 = 0x15,
359 HVC_64 = 0x16,
360 SMC_64 = 0x17,
361 TRAPPED_MSR_MRS_64 = 0x18,
362 TRAPPED_SVE = 0x19,
363 TRAPPED_ERET = 0x1A,
364 TRAPPED_SME = 0x1D,
366 PREFETCH_ABORT_LOWER_EL = 0x20, // AArch64 alias
368 PREFETCH_ABORT_CURR_EL = 0x21, // AArch64 alias
369 PC_ALIGNMENT = 0x22,
370 DATA_ABORT_TO_HYP = 0x24,
371 DATA_ABORT_LOWER_EL = 0x24, // AArch64 alias
372 DATA_ABORT_FROM_HYP = 0x25,
373 DATA_ABORT_CURR_EL = 0x25, // AArch64 alias
374 STACK_PTR_ALIGNMENT = 0x26,
375 FP_EXCEPTION = 0x28,
376 FP_EXCEPTION_64 = 0x2C,
377 SERROR = 0x2F,
378 HW_BREAKPOINT = 0x30,
381 SOFTWARE_STEP = 0x32,
384 WATCHPOINT = 0x34,
385 WATCHPOINT_LOWER_EL = 0x34,
386 WATCHPOINT_CURR_EL = 0x35,
387 SOFTWARE_BREAKPOINT = 0x38,
388 VECTOR_CATCH = 0x3A,
390 };
391
395 enum DecoderFault : std::uint8_t
396 {
397 OK = 0x0,
398 UNALIGNED = 0x1,
399
400 PANIC = 0x3,
401 };
402
403 BitUnion8(OperatingMode64)
404 Bitfield<0> spX;
405 Bitfield<3, 2> el;
406 Bitfield<4> width;
407 EndBitUnion(OperatingMode64)
408
409 static bool inline
410 opModeIs64(OperatingMode mode)
411 {
412 return ((OperatingMode64)(uint8_t)mode).width == 0;
413 }
414
415 static bool inline
417 {
418 return (mode == MODE_EL1H || mode == MODE_EL2H || mode == MODE_EL3H);
419 }
420
421 static bool inline
423 {
424 return (mode == MODE_EL0T || mode == MODE_EL1T || mode == MODE_EL2T ||
425 mode == MODE_EL3T);
426 }
427
428 static ExceptionLevel inline
430 {
431 bool aarch32 = ((mode >> 4) & 1) ? true : false;
432 if (aarch32) {
433 switch (mode) {
434 case MODE_USER:
435 return EL0;
436 case MODE_FIQ:
437 case MODE_IRQ:
438 case MODE_SVC:
439 case MODE_ABORT:
440 case MODE_UNDEFINED:
441 case MODE_SYSTEM:
442 return EL1;
443 case MODE_HYP:
444 return EL2;
445 case MODE_MON:
446 return EL3;
447 default:
448 panic("Invalid operating mode: %d", mode);
449 break;
450 }
451 } else {
452 // aarch64
453 return (ExceptionLevel) ((mode >> 2) & 3);
454 }
455 }
456
457 static inline bool
459 {
460 switch (mode) {
461 case MODE_EL0T:
462 case MODE_EL1T:
463 case MODE_EL1H:
464 case MODE_EL2T:
465 case MODE_EL2H:
466 case MODE_EL3T:
467 case MODE_EL3H:
468 case MODE_USER:
469 case MODE_FIQ:
470 case MODE_IRQ:
471 case MODE_SVC:
472 case MODE_MON:
473 case MODE_ABORT:
474 case MODE_HYP:
475 case MODE_UNDEFINED:
476 case MODE_SYSTEM:
477 return false;
478 default:
479 return true;
480 }
481 }
482
483 static inline bool
485 {
486 switch (mode) {
487 case MODE_USER:
488 case MODE_FIQ:
489 case MODE_IRQ:
490 case MODE_SVC:
491 case MODE_MON:
492 case MODE_ABORT:
493 case MODE_HYP:
494 case MODE_UNDEFINED:
495 case MODE_SYSTEM:
496 return false;
497 default:
498 return true;
499 }
500 }
501
502 static inline const char*
504 {
505 switch (regime) {
507 return "EL10";
509 return "EL20";
511 return "EL2";
513 return "EL3";
514 default:
515 GEM5_UNREACHABLE;
516 }
517 }
518
519 static inline std::ostream&
520 operator<<(std::ostream& os, SecurityState ss)
521 {
522 switch (ss) {
524 os << "NonSecure";
525 break;
527 os << "Secure";
528 break;
529 default:
530 panic("Invalid SecurityState\n");
531 }
532 return os;
533 }
534
535 constexpr unsigned MaxSveVecLenInBits = 2048;
536 static_assert(MaxSveVecLenInBits >= 128 &&
537 MaxSveVecLenInBits <= 2048 &&
538 MaxSveVecLenInBits % 128 == 0,
539 "Unsupported max. SVE vector length");
540 constexpr unsigned MaxSveVecLenInBytes = MaxSveVecLenInBits >> 3;
541 constexpr unsigned MaxSveVecLenInWords = MaxSveVecLenInBits >> 5;
542 constexpr unsigned MaxSveVecLenInDWords = MaxSveVecLenInBits >> 6;
543
546
547 constexpr unsigned MaxSmeVecLenInBits = 2048;
548 static_assert(MaxSmeVecLenInBits >= 128 &&
549 MaxSmeVecLenInBits <= 2048 &&
550 // Only powers of two are supported. We don't need to
551 // check for the zero case here as we already know it
552 // is over 128.
554 "Unsupported max. SME vector length");
555 constexpr unsigned MaxSmeVecLenInBytes = MaxSmeVecLenInBits >> 3;
556 constexpr unsigned MaxSmeVecLenInWords = MaxSmeVecLenInBits >> 5;
557 constexpr unsigned MaxSmeVecLenInDWords = MaxSmeVecLenInBits >> 6;
558
559} // namespace ArmISA
560} // namespace gem5
561
562#endif
#define BitUnion32(name)
Definition bitunion.hh:495
#define BitUnion8(name)
Definition bitunion.hh:497
#define BitUnion64(name)
Use this to define conveniently sized values overlayed with bitfields.
Definition bitunion.hh:494
#define EndBitUnion(name)
This closes off the class and union started by the above macro.
Definition bitunion.hh:428
#define SubBitUnion(name, first, last)
Regular bitfields These define macros for read/write regular bitfield based subbitfields.
Definition bitunion.hh:470
#define EndSubBitUnion(name)
This closes off the union created above and gives it a name.
Definition bitunion.hh:455
#define panic(...)
This implements a cprintf based panic() function.
Definition logging.hh:188
Bitfield< 24 > htopcode8
Definition types.hh:181
Bitfield< 18, 16 > fn
Definition types.hh:149
Bitfield< 11, 8 > cpNum
Definition types.hh:148
Bitfield< 33 > sevenAndFour
Definition types.hh:84
@ MODE_UNDEFINED
Definition types.hh:332
Bitfield< 14, 12 > fd
Definition types.hh:150
int RegContextVal
Definition types.hh:235
Bitfield< 7, 6 > topcode7_6
Definition types.hh:169
Bitfield< 10, 8 > topcode10_8
Definition types.hh:166
Bitfield< 25 > htopcode9
Definition types.hh:177
static bool opModeIsT(OperatingMode mode)
Definition types.hh:422
Bitfield< 15, 8 > aff1
Definition types.hh:208
Bitfield< 11, 9 > topcode11_9
Definition types.hh:163
Bitfield< 11, 0 > immed11_0
Definition types.hh:136
constexpr unsigned MaxSmeVecLenInBytes
Definition types.hh:555
Bitfield< 15, 12 > rd
Definition types.hh:114
Bitfield< 15, 12 > rt
Definition types.hh:115
constexpr unsigned MaxSmeVecLenInWords
Definition types.hh:556
Bitfield< 32 > isMisc
Definition types.hh:85
Bitfield< 24, 20 > punwl
Definition types.hh:154
Bitfield< 4, 0 > mode
Definition misc_types.hh:74
Bitfield< 4 > width
Definition misc_types.hh:72
Bitfield< 3 > fpRegImm
Definition types.hh:151
Bitfield< 11, 8 > immedHi11_8
Definition types.hh:139
Bitfield< 3, 0 > rm
Definition types.hh:118
Bitfield< 11, 8 > ltrd
Definition types.hh:201
Bitfield< 3, 0 > topcode3_0
Definition types.hh:172
Bitfield< 7, 0 > immed7_0
Definition types.hh:137
Bitfield< 31, 28 > condCode
Definition types.hh:111
Bitfield< 24, 23 > htopcode8_7
Definition types.hh:182
Bitfield< 9, 6 > topcode9_6
Definition types.hh:167
Bitfield< 13, 11 > topcode13_11
Definition types.hh:160
Bitfield< 4 > opcode4
Definition types.hh:109
Bitfield< 7, 0 > imm
Definition types.hh:132
Bitfield< 23 > htopcode7
Definition types.hh:185
Bitfield< 51, 48 > itstateMask
Definition types.hh:72
static bool unknownMode32(OperatingMode mode)
Definition types.hh:484
Bitfield< 21 > writeback
Definition types.hh:126
Bitfield< 15, 0 > regList
Definition types.hh:142
Bitfield< 7, 4 > miscOpcode
Definition types.hh:105
static bool unknownMode(OperatingMode mode)
Definition types.hh:458
constexpr unsigned VecPredRegSizeBits
Definition types.hh:545
Bitfield< 18 > opcode18
Definition types.hh:102
Bitfield< 15 > ltopcode15
Definition types.hh:195
Bitfield< 23, 0 > offset
Definition types.hh:144
Bitfield< 24, 21 > htopcode8_5
Definition types.hh:184
Bitfield< 9, 8 > rs
Bitfield< 60 > debugStep
Definition types.hh:63
Bitfield< 3, 0 > fm
Definition types.hh:152
Bitfield< 24 > opcode24
Definition types.hh:94
Bitfield< 26, 25 > htopcode10_9
Definition types.hh:176
Bitfield< 36 > thumb
Definition types.hh:79
Bitfield< 22 > htopcode6
Definition types.hh:187
Bitfield< 23 > up
Definition types.hh:124
Bitfield< 19, 16 > rn
Definition types.hh:113
Bitfield< 22 > psruser
Definition types.hh:125
Bitfield< 10, 9 > topcode10_9
Definition types.hh:165
Bitfield< 7, 5 > opc2
Definition types.hh:106
Bitfield< 25, 21 > htopcode9_5
Definition types.hh:179
Bitfield< 7, 5 > topcode7_5
Definition types.hh:170
Bitfield< 15, 13 > topcode15_13
Definition types.hh:159
static const char * regimeToStr(TranslationRegime regime)
Definition types.hh:503
Bitfield< 15 > opcode15
Definition types.hh:104
DecoderFault
Instruction decoder fault codes in ExtMachInst.
Definition types.hh:396
@ UNALIGNED
Unaligned instruction fault.
Definition types.hh:398
@ OK
No fault.
Definition types.hh:397
@ PANIC
Internal gem5 error.
Definition types.hh:400
Bitfield< 7, 4 > topcode7_4
Definition types.hh:171
Bitfield< 41, 40 > fpscrStride
Definition types.hh:75
Bitfield< 39, 37 > fpscrLen
Definition types.hh:76
Bitfield< 11, 8 > ltcoproc
Definition types.hh:202
Bitfield< 15, 8 > m5Func
Definition types.hh:156
Bitfield< 20 > opcode20
Definition types.hh:98
Bitfield< 6 > opcode6
Definition types.hh:108
Bitfield< 22, 21 > htopcode6_5
Definition types.hh:188
uint32_t MachInst
Definition types.hh:55
Bitfield< 23, 20 > opcode23_20
Definition types.hh:96
constexpr unsigned MaxSveVecLenInWords
Definition types.hh:541
static bool opModeIsH(OperatingMode mode)
Definition types.hh:416
constexpr unsigned VecRegSizeBytes
Definition types.hh:544
Bitfield< 25 > useImm
Definition types.hh:91
Bitfield< 55, 52 > itstateCond
Definition types.hh:71
constexpr unsigned MaxSveVecLenInDWords
Definition types.hh:542
SecurityState
Security State.
Definition types.hh:273
Bitfield< 55, 48 > itstate
Definition types.hh:70
Bitfield< 24, 23 > opcode24_23
Definition types.hh:95
Bitfield< 23, 16 > aff2
Definition types.hh:207
Bitfield< 25, 24 > htopcode9_8
Definition types.hh:178
constexpr unsigned MaxSmeVecLenInBits
Definition types.hh:547
constexpr unsigned MaxSveVecLenInBits
Definition types.hh:535
static std::ostream & operator<<(std::ostream &os, SecurityState ss)
Definition types.hh:520
Bitfield< 7, 0 > aff0
Definition types.hh:209
Bitfield< 23, 21 > opcode23_21
Definition types.hh:97
uint32_t instBits
Definition types.hh:87
Bitfield< 20 > sField
Definition types.hh:112
Bitfield< 19 > opcode19
Definition types.hh:101
Bitfield< 7 > topcode7
Definition types.hh:168
Bitfield< 3, 0 > immedLo3_0
Definition types.hh:140
int RegContextParam
Definition types.hh:234
Bitfield< 2, 0 > fpImm
Definition types.hh:153
Bitfield< 22 > opcode22
Definition types.hh:99
Bitfield< 24, 21 > opcode
Definition types.hh:92
Bitfield< 21, 20 > htopcode5_4
Definition types.hh:189
Bitfield< 20 > htopcode4
Definition types.hh:190
Bitfield< 23, 21 > htopcode7_5
Definition types.hh:186
Bitfield< 25, 20 > htopcode9_4
Definition types.hh:180
Bitfield< 35 > bigThumb
Definition types.hh:80
Bitfield< 3, 2 > el
Definition misc_types.hh:73
uint16_t vmid_t
Definition types.hh:57
Bitfield< 28, 27 > htopcode12_11
Definition types.hh:175
Bitfield< 12, 10 > topcode12_10
Definition types.hh:162
static ExceptionLevel opModeToEL(OperatingMode mode)
Definition types.hh:429
Bitfield< 23, 0 > immed23_0
Definition types.hh:146
Bitfield< 7 > opcode7
Definition types.hh:107
Bitfield< 34 > aarch64
Definition types.hh:81
Bitfield< 11, 8 > ltopcode11_8
Definition types.hh:196
Bitfield< 27, 25 > encoding
Definition types.hh:90
Bitfield< 19, 16 > htrn
Definition types.hh:192
Bitfield< 24, 22 > htopcode8_6
Definition types.hh:183
Bitfield< 11, 8 > rotate
Definition types.hh:134
Bitfield< 11, 7 > shiftSize
Definition types.hh:116
PASpace
Physical Address Space.
Definition types.hh:280
Bitfield< 15, 12 > opcode15_12
Definition types.hh:103
constexpr unsigned MaxSmeVecLenInDWords
Definition types.hh:557
Bitfield< 59, 56 > sveLen
Definition types.hh:67
Bitfield< 7, 4 > ltopcode7_4
Definition types.hh:198
Bitfield< 7, 6 > ltopcode7_6
Definition types.hh:197
Bitfield< 11, 8 > topcode11_8
Definition types.hh:164
Bitfield< 12, 11 > topcode12_11
Definition types.hh:161
Bitfield< 6, 5 > shift
Definition types.hh:117
Bitfield< 61 > illegalExecution
Definition types.hh:62
@ SINGLE_TO_LONG
Definition types.hh:242
@ DOUBLE_TO_WORD
Definition types.hh:245
@ SINGLE_TO_DOUBLE
Definition types.hh:240
@ DOUBLE_TO_LONG
Definition types.hh:246
@ WORD_TO_SINGLE
Definition types.hh:253
@ WORD_TO_DOUBLE
Definition types.hh:254
@ LONG_TO_DOUBLE
Definition types.hh:249
@ LONG_TO_SINGLE
Definition types.hh:248
@ SINGLE_TO_WORD
Definition types.hh:241
@ DOUBLE_TO_SINGLE
Definition types.hh:244
Bitfield< 21 > ss
Definition misc_types.hh:60
Bitfield< 19, 16 > opcode19_16
Definition types.hh:100
Bitfield< 20 > hts
Definition types.hh:193
constexpr unsigned MaxSveVecLenInBytes
Definition types.hh:540
Bitfield< 20 > loadOp
Definition types.hh:127
Bitfield< 4 > ltopcode4
Definition types.hh:199
Bitfield< 24, 20 > mediaOpcode
Definition types.hh:93
Bitfield< 17 > os
Definition misc.hh:838
Copyright (c) 2024 Arm Limited All rights reserved.
Definition binary32.hh:36

Generated on Mon Jan 13 2025 04:28:31 for gem5 by doxygen 1.9.8