gem5 v24.0.0.0
Loading...
Searching...
No Matches
int.hh
Go to the documentation of this file.
1/*
2 * Copyright (c) 2010-2014 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) 2009 The Regents of The University of Michigan
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#include <cassert>
42
43#ifndef __ARCH_ARM_REGS_INT_HH__
44#define __ARCH_ARM_REGS_INT_HH__
45
46#include "arch/arm/types.hh"
47#include "base/logging.hh"
48#include "cpu/reg_class.hh"
49#include "debug/IntRegs.hh"
50#include "sim/core.hh"
51
52namespace gem5
53{
54
55namespace ArmISA
56{
57
58BitUnion32(PackedIntReg)
59 Bitfield<31, 16> uh1;
60 Bitfield<15, 0> uh0;
61 SignedBitfield<31, 16> sh1;
62 SignedBitfield<15, 0> sh0;
63 Bitfield<31, 0> uw;
64 SignedBitfield<31, 0> sw;
65EndBitUnion(PackedIntReg)
66
67namespace int_reg
68{
69
70enum : RegIndex
71{
72 /* All the unique register indices. */
73 _R0Idx,
74 _R1Idx,
75 _R2Idx,
76 _R3Idx,
77 _R4Idx,
78 _R5Idx,
79 _R6Idx,
80 _R7Idx,
81 _R8Idx,
82 _R9Idx,
83 _R10Idx,
84 _R11Idx,
85 _R12Idx,
86 _R13Idx,
87 _R14Idx,
88 _R15Idx,
89
90 _R13SvcIdx,
91 _R14SvcIdx,
92
93 _R13MonIdx,
94 _R14MonIdx,
95
96 _R13HypIdx,
97
98 _R13AbtIdx,
99 _R14AbtIdx,
100
101 _R13UndIdx,
102 _R14UndIdx,
103
104 _R13IrqIdx,
105 _R14IrqIdx,
106
107 _R8FiqIdx,
108 _R9FiqIdx,
109 _R10FiqIdx,
110 _R11FiqIdx,
111 _R12FiqIdx,
112 _R13FiqIdx,
113 _R14FiqIdx,
114
115 _ZeroIdx,
116 _Ureg0Idx,
117 _Ureg1Idx,
118 _Ureg2Idx,
119
120 _Sp0Idx,
121 _Sp1Idx,
122 _Sp2Idx,
123 _Sp3Idx,
124
125 NumRegs,
126 _SpxIdx = NumRegs,
127
128 NumArchRegs = 32,
129
130 _X0Idx = 0,
131 _X1Idx,
132 _X2Idx,
133 _X3Idx,
134 _X4Idx,
135 _X5Idx,
136 _X6Idx,
137 _X7Idx,
138 _X8Idx,
139 _X9Idx,
140 _X10Idx,
141 _X11Idx,
142 _X12Idx,
143 _X13Idx,
144 _X14Idx,
145 _X15Idx,
146 _X16Idx,
147 _X17Idx,
148 _X18Idx,
149 _X19Idx,
150 _X20Idx,
151 _X21Idx,
152 _X22Idx,
153 _X23Idx,
154 _X24Idx,
155 _X25Idx,
156 _X26Idx,
157 _X27Idx,
158 _X28Idx,
159 _X29Idx,
160 _X30Idx,
161 _X31Idx
162};
163
164} // namespace int_reg
165
167{
168 RegId flatten(const BaseISA &isa, const RegId &id) const override;
169};
170
172
173inline constexpr RegClass intRegClass =
175 ops(intRegClassOps).
176 needsFlattening();
177
178inline constexpr RegClass flatIntRegClass =
180
181namespace int_reg
182{
183
184inline constexpr RegId
185 /* All the unique register indices. */
186 R0 = intRegClass[_R0Idx],
187 R1 = intRegClass[_R1Idx],
188 R2 = intRegClass[_R2Idx],
189 R3 = intRegClass[_R3Idx],
190 R4 = intRegClass[_R4Idx],
191 R5 = intRegClass[_R5Idx],
192 R6 = intRegClass[_R6Idx],
193 R7 = intRegClass[_R7Idx],
194 R8 = intRegClass[_R8Idx],
195 R9 = intRegClass[_R9Idx],
196 R10 = intRegClass[_R10Idx],
197 R11 = intRegClass[_R11Idx],
198 R12 = intRegClass[_R12Idx],
199 R13 = intRegClass[_R13Idx],
200 R14 = intRegClass[_R14Idx],
201 R15 = intRegClass[_R15Idx],
202
203 R13Svc = intRegClass[_R13SvcIdx],
204 R14Svc = intRegClass[_R14SvcIdx],
205
206 R13Mon = intRegClass[_R13MonIdx],
207 R14Mon = intRegClass[_R14MonIdx],
208
209 R13Hyp = intRegClass[_R13HypIdx],
210
211 R13Abt = intRegClass[_R13AbtIdx],
212 R14Abt = intRegClass[_R14AbtIdx],
213
214 R13Und = intRegClass[_R13UndIdx],
215 R14Und = intRegClass[_R14UndIdx],
216
217 R13Irq = intRegClass[_R13IrqIdx],
218 R14Irq = intRegClass[_R14IrqIdx],
219
220 R8Fiq = intRegClass[_R8FiqIdx],
221 R9Fiq = intRegClass[_R9FiqIdx],
222 R10Fiq = intRegClass[_R10FiqIdx],
223 R11Fiq = intRegClass[_R11FiqIdx],
224 R12Fiq = intRegClass[_R12FiqIdx],
225 R13Fiq = intRegClass[_R13FiqIdx],
226 R14Fiq = intRegClass[_R14FiqIdx],
227
228 Zero = intRegClass[_ZeroIdx],
229 Ureg0 = intRegClass[_Ureg0Idx],
230 Ureg1 = intRegClass[_Ureg1Idx],
231 Ureg2 = intRegClass[_Ureg2Idx],
232
233 Sp0 = intRegClass[_Sp0Idx],
234 Sp1 = intRegClass[_Sp1Idx],
235 Sp2 = intRegClass[_Sp2Idx],
236 Sp3 = intRegClass[_Sp3Idx],
237
238 Spx = intRegClass[_SpxIdx],
239
240 X0 = intRegClass[_X0Idx],
241 X1 = intRegClass[_X1Idx],
242 X2 = intRegClass[_X2Idx],
243 X3 = intRegClass[_X3Idx],
244 X4 = intRegClass[_X4Idx],
245 X5 = intRegClass[_X5Idx],
246 X6 = intRegClass[_X6Idx],
247 X7 = intRegClass[_X7Idx],
248 X8 = intRegClass[_X8Idx],
249 X9 = intRegClass[_X9Idx],
250 X10 = intRegClass[_X10Idx],
251 X11 = intRegClass[_X11Idx],
252 X12 = intRegClass[_X12Idx],
253 X13 = intRegClass[_X13Idx],
254 X14 = intRegClass[_X14Idx],
255 X15 = intRegClass[_X15Idx],
256 X16 = intRegClass[_X16Idx],
257 X17 = intRegClass[_X17Idx],
258 X18 = intRegClass[_X18Idx],
259 X19 = intRegClass[_X19Idx],
260 X20 = intRegClass[_X20Idx],
261 X21 = intRegClass[_X21Idx],
262 X22 = intRegClass[_X22Idx],
263 X23 = intRegClass[_X23Idx],
264 X24 = intRegClass[_X24Idx],
265 X25 = intRegClass[_X25Idx],
266 X26 = intRegClass[_X26Idx],
267 X27 = intRegClass[_X27Idx],
268 X28 = intRegClass[_X28Idx],
269 X29 = intRegClass[_X29Idx],
270 X30 = intRegClass[_X30Idx],
271 X31 = intRegClass[_X31Idx];
272
273inline constexpr auto
274 &Sp = R13,
275 &Lr = R14,
276 &Pc = R15,
277
280
283
285
288
291
294
297
298 /* USR mode */
318
319 /* SVC mode */
335
336 /* MON mode */
352
353 /* ABT mode */
369
370 /* HYP mode */
388
389 /* UND mode */
405
406 /* IRQ mode */
422
423 /* FIQ mode */
434
435typedef const RegId RegMap[NumArchRegs];
436
443
444static inline RegId
445x(unsigned index)
446{
447 assert(index < NumArchRegs);
448 return intRegClass[_X0Idx + index];
449}
450
457
458static inline const RegId &
459usr(unsigned index)
460{
461 assert(index < NumArchRegs);
462 return RegUsrMap[index];
463}
464
471
472static inline const RegId &
473hyp(unsigned index)
474{
475 assert(index < NumArchRegs);
476 return RegHypMap[index];
477}
478
485
486static inline const RegId &
487svc(unsigned index)
488{
489 assert(index < NumArchRegs);
490 return RegSvcMap[index];
491}
492
499
500static inline const RegId &
501mon(unsigned index)
502{
503 assert(index < NumArchRegs);
504 return RegMonMap[index];
505}
506
513
514static inline const RegId &
515abt(unsigned index)
516{
517 assert(index < NumArchRegs);
518 return RegAbtMap[index];
519}
520
527
528static inline const RegId &
529und(unsigned index)
530{
531 assert(index < NumArchRegs);
532 return RegUndMap[index];
533}
534
541
542static inline const RegId &
543irq(unsigned index)
544{
545 assert(index < NumArchRegs);
546 return RegIrqMap[index];
547}
548
555
556static inline const RegId &
557fiq(unsigned index)
558{
559 assert(index < NumArchRegs);
560 return RegFiqMap[index];
561}
562
563static const unsigned regsPerMode = NumRegs;
564
565static inline int
567{
568 assert(reg < NumArchRegs);
569 return mode * regsPerMode + reg;
570}
571
572} // namespace int_reg
573
574static inline const RegId &
576{
579 switch (mode) {
580 case MODE_USER:
581 case MODE_SYSTEM:
582 return int_reg::usr(reg);
583 case MODE_FIQ:
584 return int_reg::fiq(reg);
585 case MODE_IRQ:
586 return int_reg::irq(reg);
587 case MODE_SVC:
588 return int_reg::svc(reg);
589 case MODE_MON:
590 return int_reg::mon(reg);
591 case MODE_ABORT:
592 return int_reg::abt(reg);
593 case MODE_HYP:
594 return int_reg::hyp(reg);
595 case MODE_UNDEFINED:
596 return int_reg::und(reg);
597 default:
598 panic("%d: Flattening into an unknown mode: reg:%#x mode:%#x\n",
599 curTick(), reg, mode);
600 }
601}
602
603
604static inline RegIndex
606{
607 if (reg == int_reg::X31)
609 return reg;
610}
611
612static inline bool
614{
615 return (reg == int_reg::X31 || reg == int_reg::Spx);
616}
617
618static inline bool
620{
621 return reg == int_reg::Spx;
622}
623
624static inline bool
626{
627 return (reg == int_reg::X31 || reg == int_reg::Zero);
628}
629
630static inline bool
632{
633 return reg == int_reg::Zero;
634}
635
636static inline RegIndex
638{
639 if (reg == int_reg::X31)
641 return reg;
642}
643
644// Semantically meaningful register indices
645inline constexpr size_t NumArgumentRegs = 4;
646inline constexpr size_t NumArgumentRegs64 = 8;
647inline constexpr auto
656
660
661} // namespace ArmISA
662} // namespace gem5
663
664#endif
#define BitUnion32(name)
Definition bitunion.hh:495
RegId flatten(const BaseISA &isa, const RegId &id) const override
Flatten register id id using information in the ISA object isa.
Definition int.cc:55
Definition pc.hh:47
Register ID: describe an architectural register with its class and index.
Definition reg_class.hh:94
#define EndBitUnion(name)
This closes off the class and union started by the above macro.
Definition bitunion.hh:428
#define panic(...)
This implements a cprintf based panic() function.
Definition logging.hh:188
constexpr auto & R11Svc
Definition int.hh:331
constexpr auto & R9Irq
Definition int.hh:416
constexpr auto & R5Hyp
Definition int.hh:376
constexpr RegId X0
Definition int.hh:240
constexpr auto & LRIrq
Definition int.hh:293
constexpr RegId R14Und
Definition int.hh:215
constexpr RegId X30
Definition int.hh:270
constexpr auto & PcHyp
Definition int.hh:386
constexpr RegId X17
Definition int.hh:257
constexpr RegId R4
Definition int.hh:190
constexpr RegId X6
Definition int.hh:246
static const RegId & und(unsigned index)
Definition int.hh:529
constexpr RegId Sp2
Definition int.hh:235
constexpr auto & R15Svc
Definition int.hh:334
constexpr auto & R0Fiq
Definition int.hh:424
constexpr RegId R9
Definition int.hh:195
const RegMap RegIrqMap
Definition int.hh:535
constexpr RegId R6
Definition int.hh:192
constexpr auto & R9Abt
Definition int.hh:363
constexpr auto & R8Irq
Definition int.hh:415
constexpr auto & R6Usr
Definition int.hh:305
constexpr auto & R3Und
Definition int.hh:393
constexpr RegId R14Abt
Definition int.hh:212
constexpr auto & R0Mon
Definition int.hh:337
constexpr auto & SPUsr
Definition int.hh:313
constexpr auto & R11Abt
Definition int.hh:365
constexpr RegId R9Fiq
Definition int.hh:221
constexpr RegId Sp3
Definition int.hh:236
constexpr auto & LRHyp
Definition int.hh:384
constexpr auto & LRMon
Definition int.hh:282
constexpr RegId X13
Definition int.hh:253
constexpr auto & R1Irq
Definition int.hh:408
constexpr auto & Sp
Definition int.hh:274
constexpr RegId R14Mon
Definition int.hh:207
constexpr RegId X14
Definition int.hh:254
constexpr auto & R13Usr
Definition int.hh:312
constexpr RegId X1
Definition int.hh:241
constexpr auto & R11Usr
Definition int.hh:310
constexpr auto & R11Mon
Definition int.hh:348
constexpr auto & R4Fiq
Definition int.hh:428
constexpr RegId R12
Definition int.hh:198
const RegId RegMap[NumArchRegs]
Definition int.hh:435
constexpr auto & R12Hyp
Definition int.hh:383
constexpr auto & R1Abt
Definition int.hh:355
constexpr auto & R8Svc
Definition int.hh:328
constexpr auto & R0Und
Definition int.hh:390
constexpr auto & R5Und
Definition int.hh:395
constexpr auto & R12Und
Definition int.hh:402
constexpr auto & SPMon
Definition int.hh:281
constexpr RegId Sp0
Definition int.hh:233
constexpr RegId X27
Definition int.hh:267
constexpr RegId R14Fiq
Definition int.hh:226
constexpr auto & R2Svc
Definition int.hh:322
constexpr auto & R10Und
Definition int.hh:400
constexpr RegId X20
Definition int.hh:260
constexpr auto & R1Hyp
Definition int.hh:372
constexpr RegId R13Irq
Definition int.hh:217
constexpr auto & LRFiq
Definition int.hh:296
constexpr auto & R2Mon
Definition int.hh:339
constexpr RegId X18
Definition int.hh:258
constexpr RegId R7
Definition int.hh:193
constexpr auto & R3Hyp
Definition int.hh:374
constexpr auto & R10Svc
Definition int.hh:330
constexpr auto & R5Mon
Definition int.hh:342
constexpr RegId X3
Definition int.hh:243
constexpr RegId X29
Definition int.hh:269
constexpr auto & R14Hyp
Definition int.hh:385
constexpr auto & R11Hyp
Definition int.hh:382
constexpr auto & PcAbt
Definition int.hh:367
constexpr auto & PcIrq
Definition int.hh:420
constexpr auto & SPFiq
Definition int.hh:295
constexpr auto & R1Fiq
Definition int.hh:425
constexpr auto & R1Usr
Definition int.hh:300
constexpr auto & R4Irq
Definition int.hh:411
constexpr RegId Sp1
Definition int.hh:234
constexpr auto & R3Abt
Definition int.hh:357
constexpr auto & R2Hyp
Definition int.hh:373
constexpr RegId X12
Definition int.hh:252
constexpr auto & SPIrq
Definition int.hh:292
constexpr auto & R2Und
Definition int.hh:392
constexpr auto & SPUnd
Definition int.hh:289
constexpr auto & R3Mon
Definition int.hh:340
constexpr auto & R8Abt
Definition int.hh:362
constexpr RegId X26
Definition int.hh:266
constexpr auto & R3Fiq
Definition int.hh:427
static const RegId & mon(unsigned index)
Definition int.hh:501
constexpr auto & R9Mon
Definition int.hh:346
constexpr RegId X24
Definition int.hh:264
static const RegId & hyp(unsigned index)
Definition int.hh:473
constexpr auto & R10Hyp
Definition int.hh:381
const RegMap RegUsrMap
Definition int.hh:451
constexpr auto & R1Und
Definition int.hh:391
constexpr RegId X16
Definition int.hh:256
constexpr RegId Ureg0
Definition int.hh:229
constexpr RegId X21
Definition int.hh:261
constexpr auto & R8Mon
Definition int.hh:345
constexpr auto & R3Irq
Definition int.hh:410
constexpr auto & R5Usr
Definition int.hh:304
constexpr RegId X4
Definition int.hh:244
const RegMap RegSvcMap
Definition int.hh:479
constexpr auto & R11Und
Definition int.hh:401
constexpr auto & R12Svc
Definition int.hh:332
constexpr auto & R8Usr
Definition int.hh:307
constexpr auto & R10Abt
Definition int.hh:364
constexpr RegId R3
Definition int.hh:189
constexpr RegId R11Fiq
Definition int.hh:223
constexpr auto & R6Irq
Definition int.hh:413
constexpr auto & LRUnd
Definition int.hh:290
constexpr auto & R6Svc
Definition int.hh:326
constexpr auto & R12Abt
Definition int.hh:366
constexpr auto & R5Irq
Definition int.hh:412
constexpr auto & R8Und
Definition int.hh:398
constexpr auto & R2Irq
Definition int.hh:409
constexpr RegId R13Mon
Definition int.hh:206
constexpr RegId R8
Definition int.hh:194
constexpr RegId X9
Definition int.hh:249
constexpr RegId Zero
Definition int.hh:228
constexpr auto & R0Hyp
Definition int.hh:371
const RegMap RegFiqMap
Definition int.hh:549
constexpr auto & R9Und
Definition int.hh:399
constexpr auto & Pc
Definition int.hh:276
constexpr RegId Spx
Definition int.hh:238
constexpr auto & R15Fiq
Definition int.hh:433
constexpr RegId R13Svc
Definition int.hh:203
constexpr auto & R2Usr
Definition int.hh:301
constexpr auto & R4Usr
Definition int.hh:303
constexpr auto & R12Usr
Definition int.hh:311
constexpr RegId Ureg1
Definition int.hh:230
constexpr auto & R3Svc
Definition int.hh:323
constexpr auto & R7Und
Definition int.hh:397
constexpr RegId X23
Definition int.hh:263
constexpr auto & PcUsr
Definition int.hh:317
constexpr RegId X28
Definition int.hh:268
constexpr RegId R8Fiq
Definition int.hh:220
constexpr auto & SPAbt
Definition int.hh:286
constexpr RegId R14Irq
Definition int.hh:218
constexpr auto & R2Abt
Definition int.hh:356
constexpr auto & R7Svc
Definition int.hh:327
constexpr auto & R7Hyp
Definition int.hh:378
constexpr auto & R6Mon
Definition int.hh:343
constexpr auto & R6Und
Definition int.hh:396
constexpr auto & R0Svc
Definition int.hh:320
static const RegId & usr(unsigned index)
Definition int.hh:459
constexpr auto & R10Irq
Definition int.hh:417
constexpr RegId R13Fiq
Definition int.hh:225
const RegMap RegAbtMap
Definition int.hh:507
constexpr RegId R13Hyp
Definition int.hh:209
constexpr RegId R13Abt
Definition int.hh:211
const RegMap RegMonMap
Definition int.hh:493
constexpr RegId R14Svc
Definition int.hh:204
static const RegId & fiq(unsigned index)
Definition int.hh:557
const RegMap Reg64Map
Definition int.hh:437
constexpr RegId X7
Definition int.hh:247
constexpr auto & R12Irq
Definition int.hh:419
constexpr RegId X19
Definition int.hh:259
constexpr auto & LRUsr
Definition int.hh:315
constexpr auto & R4Hyp
Definition int.hh:375
constexpr auto & PcUnd
Definition int.hh:403
constexpr auto & LRAbt
Definition int.hh:287
constexpr RegId R11
Definition int.hh:197
constexpr auto & R15Hyp
Definition int.hh:387
constexpr auto & R15Und
Definition int.hh:404
constexpr RegId X22
Definition int.hh:262
constexpr auto & PcMon
Definition int.hh:350
constexpr RegId X25
Definition int.hh:265
constexpr auto & R8Hyp
Definition int.hh:379
constexpr auto & R2Fiq
Definition int.hh:426
constexpr auto & R1Svc
Definition int.hh:321
constexpr auto & R3Usr
Definition int.hh:302
constexpr auto & R15Usr
Definition int.hh:316
constexpr auto & R7Fiq
Definition int.hh:431
constexpr RegId R5
Definition int.hh:191
constexpr auto & R4Abt
Definition int.hh:358
constexpr auto & PcFiq
Definition int.hh:432
constexpr auto & R4Svc
Definition int.hh:324
constexpr RegId X8
Definition int.hh:248
constexpr auto & PcSvc
Definition int.hh:333
constexpr auto & R12Mon
Definition int.hh:349
constexpr RegId R14
Definition int.hh:200
constexpr auto & R10Usr
Definition int.hh:309
constexpr auto & R4Mon
Definition int.hh:341
constexpr RegId X31
Definition int.hh:271
constexpr auto & R6Abt
Definition int.hh:360
constexpr auto & R9Hyp
Definition int.hh:380
constexpr auto & R1Mon
Definition int.hh:338
constexpr auto & R5Svc
Definition int.hh:325
constexpr auto & R7Abt
Definition int.hh:361
constexpr RegId R13Und
Definition int.hh:214
constexpr RegId X11
Definition int.hh:251
constexpr auto & R0Usr
Definition int.hh:299
constexpr auto & Lr
Definition int.hh:275
constexpr RegId R10
Definition int.hh:196
constexpr RegId X2
Definition int.hh:242
constexpr auto & R9Usr
Definition int.hh:308
static const RegId & irq(unsigned index)
Definition int.hh:543
static const RegId & abt(unsigned index)
Definition int.hh:515
constexpr auto & R0Irq
Definition int.hh:407
constexpr auto & R6Hyp
Definition int.hh:377
const RegMap RegUndMap
Definition int.hh:521
constexpr auto & R7Mon
Definition int.hh:344
static int regInMode(OperatingMode mode, int reg)
Definition int.hh:566
constexpr RegId R2
Definition int.hh:188
constexpr auto & R7Irq
Definition int.hh:414
constexpr auto & R10Mon
Definition int.hh:347
constexpr auto & R5Abt
Definition int.hh:359
constexpr auto & R4Und
Definition int.hh:394
constexpr RegId X15
Definition int.hh:255
constexpr RegId R1
Definition int.hh:187
constexpr auto & R5Fiq
Definition int.hh:429
constexpr auto & SpSvc
Definition int.hh:278
const RegMap RegHypMap
Definition int.hh:465
constexpr RegId R15
Definition int.hh:201
constexpr auto & R15Irq
Definition int.hh:421
constexpr RegId X5
Definition int.hh:245
constexpr auto & R6Fiq
Definition int.hh:430
constexpr RegId R0
Definition int.hh:186
constexpr auto & LRSvc
Definition int.hh:279
constexpr RegId X10
Definition int.hh:250
static const RegId & svc(unsigned index)
Definition int.hh:487
constexpr RegId R10Fiq
Definition int.hh:222
constexpr RegId R12Fiq
Definition int.hh:224
constexpr auto & R0Abt
Definition int.hh:354
constexpr RegId Ureg2
Definition int.hh:231
constexpr auto & R15Mon
Definition int.hh:351
constexpr RegId R13
Definition int.hh:199
constexpr auto & R7Usr
Definition int.hh:306
constexpr auto & R14Usr
Definition int.hh:314
constexpr auto & SPHyp
Definition int.hh:284
constexpr auto & R15Abt
Definition int.hh:368
static const unsigned regsPerMode
Definition int.hh:563
constexpr auto & R11Irq
Definition int.hh:418
constexpr auto & R9Svc
Definition int.hh:329
constexpr auto & SyscallSuccessReg
Definition int.hh:659
static bool isSP(RegIndex reg)
Definition int.hh:619
@ MODE_UNDEFINED
Definition types.hh:303
constexpr RegClass flatIntRegClass
Definition int.hh:178
constexpr auto & ArgumentReg0
Definition int.hh:650
Bitfield< 15, 0 > uh0
Definition int.hh:60
static bool couldBeZero(RegIndex reg)
Definition int.hh:625
static bool couldBeSP(RegIndex reg)
Definition int.hh:613
Bitfield< 4, 0 > mode
Definition misc_types.hh:74
Bitfield< 31, 0 > uw
Definition int.hh:63
constexpr auto & ArgumentReg2
Definition int.hh:652
constexpr auto & ReturnValueReg
Definition int.hh:648
SignedBitfield< 31, 0 > sw
Definition int.hh:64
constexpr auto & SyscallPseudoReturnReg
Definition int.hh:658
constexpr auto & StackPointerReg
Definition int.hh:654
constexpr auto & ArgumentReg1
Definition int.hh:651
static bool isZero(RegIndex reg)
Definition int.hh:631
constexpr auto & ReturnAddressReg
Definition int.hh:655
static RegIndex makeSP(RegIndex reg)
Definition int.hh:605
static const RegId & flattenIntRegModeIndex(int reg)
Definition int.hh:575
constexpr auto & SyscallNumReg
Definition int.hh:657
constexpr auto & ReturnValueReg1
Definition int.hh:649
constexpr size_t NumArgumentRegs
Definition int.hh:645
Bitfield< 2 > fiq
constexpr RegClass intRegClass
Definition int.hh:173
Bitfield< 1 > irq
constexpr size_t NumArgumentRegs64
Definition int.hh:646
SignedBitfield< 31, 16 > sh1
Definition int.hh:61
static RegIndex makeZero(RegIndex reg)
Definition int.hh:637
SignedBitfield< 15, 0 > sh0
Definition int.hh:62
constexpr IntRegClassOps intRegClassOps
Definition int.hh:171
constexpr auto & FramePointerReg
Definition int.hh:653
Bitfield< 30, 0 > index
Bitfield< 3 > x
Definition pagetable.hh:73
Bitfield< 5, 3 > reg
Definition types.hh:92
Bitfield< 16 > usr
Definition misc.hh:837
Copyright (c) 2024 - Pranith Kumar Copyright (c) 2020 Inria All rights reserved.
Definition binary32.hh:36
uint16_t RegIndex
Definition types.hh:176
Tick curTick()
The universal simulation clock.
Definition cur_tick.hh:46
constexpr char IntRegClassName[]
Definition reg_class.hh:75
Bitfield< 9 > hyp
@ IntRegClass
Integer register.
Definition reg_class.hh:61

Generated on Tue Jun 18 2024 16:23:59 for gem5 by doxygen 1.11.0