1use bitrs::{bitfield_repr, layout};
6use regio::arm64::{SysReg, spec};
7
8pub const ID_AA64ISAR0_EL1: SysReg<spec::ID_AA64ISAR0_EL1, InstructionSetAttributeRegister0> =
10 SysReg::new();
11
12#[bitfield_repr(u8)]
13#[derive(Clone, Copy)]
14pub enum IdAa64IsaR0Rndr {
15 None = 0b0000,
16 Rng = 0b0001,
17}
18
19#[bitfield_repr(u8)]
20#[derive(Clone, Copy)]
21pub enum IdAa64IsaR0Tlb {
22 None = 0b0000,
23 Tlbios = 0b0001,
24 Tlbirange = 0b0010,
25}
26
27#[bitfield_repr(u8)]
28#[derive(Clone, Copy)]
29pub enum IdAa64IsaR0Ts {
30 None = 0b0000,
31 FlagM = 0b0001,
32 FlagM2 = 0b0010,
33}
34
35#[bitfield_repr(u8)]
36#[derive(Clone, Copy)]
37pub enum IdAa64IsaR0Fhm {
38 None = 0b0000,
39 Fhm = 0b0001,
40}
41
42#[bitfield_repr(u8)]
43#[derive(Clone, Copy)]
44pub enum IdAa64IsaR0DotProd {
45 None = 0b0000,
46 DotProd = 0b0001,
47}
48
49#[bitfield_repr(u8)]
50#[derive(Clone, Copy)]
51pub enum IdAa64IsaR0Sm4 {
52 None = 0b0000,
53 Sm4 = 0b0001,
54}
55
56#[bitfield_repr(u8)]
57#[derive(Clone, Copy)]
58pub enum IdAa64IsaR0Sm3 {
59 None = 0b0000,
60 Sm3 = 0b0001,
61}
62
63#[bitfield_repr(u8)]
64#[derive(Clone, Copy)]
65pub enum IdAa64IsaR0Sha3 {
66 None = 0b0000,
67 Sha3 = 0b0001,
68}
69
70#[bitfield_repr(u8)]
71#[derive(Clone, Copy)]
72pub enum IdAa64IsaR0Rdm {
73 None = 0b0000,
74 Rdm = 0b0001,
75}
76
77#[bitfield_repr(u8)]
78#[derive(Clone, Copy)]
79pub enum IdAa64IsaR0Atomic {
80 None = 0b0000,
81 Lse = 0b0010,
82}
83
84#[bitfield_repr(u8)]
85#[derive(Clone, Copy)]
86pub enum IdAa64IsaR0Crc32 {
87 None = 0b0000,
88 Crc32 = 0b0001,
89}
90
91#[bitfield_repr(u8)]
92#[derive(Clone, Copy)]
93pub enum IdAa64IsaR0Sha2 {
94 None = 0b0000,
95 Sha256 = 0b0001,
96 Sha512 = 0b0010,
97}
98
99#[bitfield_repr(u8)]
100#[derive(Clone, Copy)]
101pub enum IdAa64IsaR0Sha1 {
102 None = 0b0000,
103 Sha1 = 0b0001,
104}
105
106#[bitfield_repr(u8)]
107#[derive(Clone, Copy)]
108pub enum IdAa64IsaR0Aes {
109 None = 0b0000,
110 Aes = 0b0001,
111 Pmull = 0b0010,
112}
113
114layout!({
115 pub struct InstructionSetAttributeRegister0(u64);
117 {
118 let rndr @ 63..60: IdAa64IsaR0Rndr;
119 let tlb @ 59..56: IdAa64IsaR0Tlb;
120 let ts @ 55..52: IdAa64IsaR0Ts;
121 let fhm @ 51..48: IdAa64IsaR0Fhm;
122 let dp @ 47..44: IdAa64IsaR0DotProd;
123 let sm4 @ 43..40: IdAa64IsaR0Sm4;
124 let sm3 @ 39..36: IdAa64IsaR0Sm3;
125 let sha3 @ 35..32: IdAa64IsaR0Sha3;
126 let rdm @ 31..28: IdAa64IsaR0Rdm;
127 let __ @ 27..24;
128 let atomic @ 23..20: IdAa64IsaR0Atomic;
129 let crc32 @ 19..16: IdAa64IsaR0Crc32;
130 let sha2 @ 15..12: IdAa64IsaR0Sha2;
131 let sha1 @ 11..8: IdAa64IsaR0Sha1;
132 let aes @ 7..4: IdAa64IsaR0Aes;
133 let __ @ 3..0;
134 }
135});
136
137pub const ID_AA64ISAR1_EL1: SysReg<spec::ID_AA64ISAR1_EL1, InstructionSetAttributeRegister1> =
139 SysReg::new();
140
141#[bitfield_repr(u8)]
142#[derive(Clone, Copy)]
143pub enum IdAa64IsaR1Ls64 {
144 None = 0b0000,
145 Ls64 = 0b0001,
146 Ls64V = 0b0010,
147 Ls64Accdata = 0b0011,
148}
149
150#[bitfield_repr(u8)]
151#[derive(Clone, Copy)]
152pub enum IdAa64IsaR1Xs {
153 None = 0b0000,
154 Xs = 0b0001,
155}
156
157#[bitfield_repr(u8)]
158#[derive(Clone, Copy)]
159pub enum IdAa64IsaR1I8mm {
160 None = 0b0000,
161 I8mm = 0b0001,
162}
163
164#[bitfield_repr(u8)]
165#[derive(Clone, Copy)]
166pub enum IdAa64IsaR1Dgh {
167 None = 0b0000,
168 Dgh = 0b0001,
169}
170
171#[bitfield_repr(u8)]
172#[derive(Clone, Copy)]
173pub enum IdAa64IsaR1Bf16 {
174 None = 0b0000,
175 Bf16 = 0b0001,
176}
177
178#[bitfield_repr(u8)]
179#[derive(Clone, Copy)]
180pub enum IdAa64IsaR1Specres {
181 None = 0b0000,
182 Specres = 0b0001,
183}
184
185#[bitfield_repr(u8)]
186#[derive(Clone, Copy)]
187pub enum IdAa64IsaR1Sb {
188 None = 0b0000,
189 Sb = 0b0001,
190}
191
192#[bitfield_repr(u8)]
193#[derive(Clone, Copy)]
194pub enum IdAa64IsaR1Frintts {
195 None = 0b0000,
196 Frintts = 0b0001,
197}
198
199#[bitfield_repr(u8)]
200#[derive(Clone, Copy)]
201pub enum IdAa64IsaR1Gpi {
202 None = 0b0000,
203 Gpi = 0b0001,
204}
205
206#[bitfield_repr(u8)]
207#[derive(Clone, Copy)]
208pub enum IdAa64IsaR1Gpa {
209 None = 0b0000,
210 Gpa = 0b0001,
211}
212
213#[bitfield_repr(u8)]
214#[derive(Clone, Copy)]
215pub enum IdAa64IsaR1Lrcpc {
216 None = 0b0000,
217 Lrcpc = 0b0001,
218 Lrcpc2 = 0b0010,
219}
220
221#[bitfield_repr(u8)]
222#[derive(Clone, Copy)]
223pub enum IdAa64IsaR1Fcma {
224 None = 0b0000,
225 Fcma = 0b0001,
226}
227
228#[bitfield_repr(u8)]
229#[derive(Clone, Copy)]
230pub enum IdAa64IsaR1Jscvt {
231 None = 0b0000,
232 Jscvt = 0b0001,
233}
234
235#[bitfield_repr(u8)]
236#[derive(Clone, Copy)]
237pub enum IdAa64IsaR1Pauth {
238 None = 0b0000,
239 Pauth = 0b0001,
240 PauthEnhanced = 0b0010,
241 Pauth2 = 0b0011,
242 Fpac = 0b0100,
243 FpacCombined = 0b0101,
244}
245
246#[bitfield_repr(u8)]
247#[derive(Clone, Copy)]
248pub enum IdAa64IsaR1Dpb {
249 None = 0b0000,
250 Dpb = 0b0001,
251 Dpb2 = 0b0010,
252}
253
254layout!({
255 pub struct InstructionSetAttributeRegister1(u64);
257 {
258 let ls64 @ 63..60: IdAa64IsaR1Ls64;
259 let xs @ 59..56: IdAa64IsaR1Xs;
260 let i8mm @ 55..52: IdAa64IsaR1I8mm;
261 let dgh @ 51..48: IdAa64IsaR1Dgh;
262 let bf16 @ 47..44: IdAa64IsaR1Bf16;
263 let specres @ 43..40: IdAa64IsaR1Specres;
264 let sb @ 39..36: IdAa64IsaR1Sb;
265 let frintts @ 35..32: IdAa64IsaR1Frintts;
266 let gpi @ 31..28: IdAa64IsaR1Gpi;
267 let gpa @ 27..24: IdAa64IsaR1Gpa;
268 let lrcpc @ 23..20: IdAa64IsaR1Lrcpc;
269 let fcma @ 19..16: IdAa64IsaR1Fcma;
270 let jscvt @ 15..12: IdAa64IsaR1Jscvt;
271 let api @ 11..8: IdAa64IsaR1Pauth;
272 let apa @ 7..4: IdAa64IsaR1Pauth;
273 let dpb @ 3..0: IdAa64IsaR1Dpb;
274 }
275});
276
277pub const ID_AA64ISAR2_EL1: SysReg<spec::ID_AA64ISAR2_EL1, InstructionSetAttributeRegister2> =
279 SysReg::new();
280
281#[bitfield_repr(u8)]
282#[derive(Clone, Copy)]
283pub enum IdAa64IsaR2Ats1a {
284 None = 0b0000,
285 Ats1a = 0b0001,
286}
287
288#[bitfield_repr(u8)]
289#[derive(Clone, Copy)]
290pub enum IdAa64IsaR2Lut {
291 None = 0b0000,
292 Lut = 0b0001,
293}
294
295#[bitfield_repr(u8)]
296#[derive(Clone, Copy)]
297pub enum IdAa64IsaR2Cssc {
298 None = 0b0000,
299 Cssc = 0b0001, }
301
302#[bitfield_repr(u8)]
303#[derive(Clone, Copy)]
304pub enum IdAa64IsaR2Rprfm {
305 None = 0b0000,
306 Rprfm = 0b0001, }
308
309#[bitfield_repr(u8)]
310#[derive(Clone, Copy)]
311pub enum IdAa64IsaR2Prfmslc {
312 None = 0b0000,
313 Prfmslc = 0b0001, }
315
316#[bitfield_repr(u8)]
317#[derive(Clone, Copy)]
318pub enum IdAa64IsaR2Sysinstr128 {
319 None = 0b0000,
320 Sysinstr128 = 0b0001, }
322
323#[bitfield_repr(u8)]
324#[derive(Clone, Copy)]
325pub enum IdAa64IsaR2Sysreg128 {
326 None = 0b0000,
327 Sysreg128 = 0b0001, }
329
330#[bitfield_repr(u8)]
331#[derive(Clone, Copy)]
332pub enum IdAa64IsaR2Clrbhb {
333 None = 0b0000,
334 Clrbhb = 0b0001, }
336
337#[bitfield_repr(u8)]
338#[derive(Clone, Copy)]
339pub enum IdAa64IsaR2PacFrac {
340 None = 0b0000,
341 PacFrac = 0b0001, }
343
344#[bitfield_repr(u8)]
345#[derive(Clone, Copy)]
346pub enum IdAa64IsaR2Bc {
347 None = 0b0000,
348 Bc = 0b0001, }
350
351#[bitfield_repr(u8)]
352#[derive(Clone, Copy)]
353pub enum IdAa64IsaR2Mops {
354 None = 0b0000,
355 Mops = 0b0001, }
357
358#[bitfield_repr(u8)]
359#[derive(Clone, Copy)]
360pub enum IdAa64IsaR2Apa3 {
361 None = 0b0000,
362 NoEnhanced = 0b0001, EnhancedPac = 0b0010, EnhancedPac2 = 0b0011, Fpac = 0b0100, FpacCombined = 0b0101, }
368
369#[bitfield_repr(u8)]
370#[derive(Clone, Copy)]
371pub enum IdAa64IsaR2Gpa3 {
372 None = 0b0000,
373 Gpa3 = 0b0001, }
375
376#[bitfield_repr(u8)]
377#[derive(Clone, Copy)]
378pub enum IdAa64IsaR2Rpres {
379 None = 0b0000,
380 Rpres = 0b0001, }
382
383#[bitfield_repr(u8)]
384#[derive(Clone, Copy)]
385pub enum IdAa64IsaR2Wfxt {
386 None = 0b0000,
387 Wfxt = 0b0001, }
389
390layout!({
391 pub struct InstructionSetAttributeRegister2(u64);
393 {
394 let ats1a @ 63..60: IdAa64IsaR2Ats1a;
395 let lut @ 59..56: IdAa64IsaR2Lut;
396 let cssc @ 55..52: IdAa64IsaR2Cssc;
397 let rprfm @ 51..48: IdAa64IsaR2Rprfm;
398 let __ @ 47..44;
399 let prfmslc @ 43..40: IdAa64IsaR2Prfmslc;
400 let sysinstr_128 @ 39..36: IdAa64IsaR2Sysinstr128;
401 let sysreg_128 @ 35..32: IdAa64IsaR2Sysreg128;
402 let clrbhb @ 31..28: IdAa64IsaR2Clrbhb;
403 let pac_frac @ 27..24: IdAa64IsaR2PacFrac;
404 let bc @ 23..20: IdAa64IsaR2Bc;
405 let mops @ 19..16: IdAa64IsaR2Mops;
406 let apa3 @ 15..12: IdAa64IsaR2Apa3;
407 let gpa3 @ 11..8: IdAa64IsaR2Gpa3;
408 let rpres @ 7..4: IdAa64IsaR2Rpres;
409 let wfxt @ 3..0: IdAa64IsaR2Wfxt;
410 }
411});
412
413pub const ID_AA64PFR0_EL1: SysReg<spec::ID_AA64PFR0_EL1, ProcessorFeatureRegister0> = SysReg::new();
415
416#[bitfield_repr(u8)]
417#[derive(Clone, Copy)]
418pub enum IdAa64Pfr0Csv3 {
419 None = 0b0000,
420 Csv3 = 0b0001,
421}
422
423#[bitfield_repr(u8)]
424#[derive(Clone, Copy)]
425pub enum IdAa64Pfr0Csv2 {
426 None = 0b0000,
427 Csv2 = 0b0001,
428 Csv2_2 = 0b0010,
429}
430
431#[bitfield_repr(u8)]
432#[derive(Clone, Copy)]
433pub enum IdAa64Pfr0Dit {
434 None = 0b0000,
435 Dit = 0b0001,
436}
437
438#[bitfield_repr(u8)]
439#[derive(Clone, Copy)]
440pub enum IdAa64Pfr0Amu {
441 None = 0b0000,
442 Amuv1 = 0b0001,
443 Amuv1p1 = 0b0010,
444}
445
446#[bitfield_repr(u8)]
447#[derive(Clone, Copy)]
448pub enum IdAa64Pfr0Mpam {
449 None = 0b0000,
450 Mpam = 0b0001,
451}
452
453#[bitfield_repr(u8)]
454#[derive(Clone, Copy)]
455pub enum IdAa64Pfr0Sel2 {
456 None = 0b0000,
457 Sel2 = 0b0001,
458}
459
460#[bitfield_repr(u8)]
461#[derive(Clone, Copy)]
462pub enum IdAa64Pfr0Sve {
463 None = 0b0000,
464 Sve = 0b0001,
465}
466
467#[bitfield_repr(u8)]
468#[derive(Clone, Copy)]
469pub enum IdAa64Pfr0Ras {
470 None = 0b0000,
471 Ras = 0b0001,
472 Rasv1p1 = 0b0010,
473}
474
475#[bitfield_repr(u8)]
476#[derive(Clone, Copy)]
477pub enum IdAa64Pfr0Gic {
478 None = 0b0000,
479 Gic4 = 0b0001,
480 Gic4_1 = 0b0010,
481}
482
483#[bitfield_repr(u8)]
484#[derive(Clone, Copy)]
485pub enum IdAa64Pfr0Fp {
486 Fp = 0b0000,
487 Fp16 = 0b0001,
488 None = 0b1111,
489}
490
491#[bitfield_repr(u8)]
492#[derive(Clone, Copy)]
493pub enum IdAa64Pfr0El {
494 None = 0b0000, El64 = 0b0001, El32 = 0b0010, }
498
499layout!({
500 pub struct ProcessorFeatureRegister0(u64);
502 {
503 let csv3 @ 63..60: IdAa64Pfr0Csv3;
504 let csv2 @ 59..56: IdAa64Pfr0Csv2;
505 let __ @ 55..52;
506 let dit @ 51..48: IdAa64Pfr0Dit;
507 let amu @ 47..44: IdAa64Pfr0Amu;
508 let mpam @ 43..40: IdAa64Pfr0Mpam;
509 let sel2 @ 39..36: IdAa64Pfr0Sel2;
510 let sve @ 35..32: IdAa64Pfr0Sve;
511 let ras @ 31..28: IdAa64Pfr0Ras;
512 let gic @ 27..24: IdAa64Pfr0Gic;
513 let advsimd @ 23..20: IdAa64Pfr0Fp;
514 let fp @ 19..16: IdAa64Pfr0Fp;
515 let el3 @ 15..12: IdAa64Pfr0El;
516 let el2 @ 11..8: IdAa64Pfr0El;
517 let el1 @ 7..4: IdAa64Pfr0El;
518 let el0 @ 3..0: IdAa64Pfr0El;
519 }
520});
521
522pub const ID_AA64PFR1_EL1: SysReg<spec::ID_AA64PFR1_EL1, ProcessorFeatureRegister1> = SysReg::new();
524
525#[bitfield_repr(u8)]
526#[derive(Clone, Copy)]
527pub enum IdAa64Pfr1El1Pfar {
528 None = 0b0000,
529 Pfar = 0b0001, }
531
532#[bitfield_repr(u8)]
533#[derive(Clone, Copy)]
534pub enum IdAa64Pfr1El1Df2 {
535 None = 0b0000,
536 Df2 = 0b0001, }
538
539#[bitfield_repr(u8)]
540#[derive(Clone, Copy)]
541pub enum IdAa64Pfr1El1Mtex {
542 None = 0b0000,
543 Mtex = 0b0001, }
545
546#[bitfield_repr(u8)]
547#[derive(Clone, Copy)]
548pub enum IdAa64Pfr1El1The {
549 None = 0b0000,
550 The = 0b0001, }
552
553#[bitfield_repr(u8)]
554#[derive(Clone, Copy)]
555pub enum IdAa64Pfr1El1Gcs {
556 None = 0b0000,
557 Gcs = 0b0001, }
559
560#[bitfield_repr(u8)]
561#[derive(Clone, Copy)]
562pub enum IdAa64Pfr1El1MteFrac {
563 Async = 0b0000, None = 0b1111,
565}
566
567#[bitfield_repr(u8)]
568#[derive(Clone, Copy)]
569pub enum IdAa64Pfr1El1Nmi {
570 None = 0b0000,
571 Nmi = 0b0001, }
573
574#[bitfield_repr(u8)]
575#[derive(Clone, Copy)]
576pub enum IdAa64Pfr1El1Csv2Frac {
577 None = 0b0000,
578 Csv2_1p1 = 0b0001, Csv2_1p2 = 0b0010, }
581
582#[bitfield_repr(u8)]
583#[derive(Clone, Copy)]
584pub enum IdAa64Pfr1El1RndrTrap {
585 None = 0b0000,
586 Trap = 0b0001, }
588
589#[bitfield_repr(u8)]
590#[derive(Clone, Copy)]
591pub enum IdAa64Pfr1El1Sme {
592 None = 0b0000,
593 Sme = 0b0001, Sme2 = 0b0010, }
596
597#[bitfield_repr(u8)]
598#[derive(Clone, Copy)]
599pub enum IdAa64Pfr1El1Mte {
600 None = 0b0000,
601 Mte = 0b0001, Mte2 = 0b0010, Mte3 = 0b0011, }
605
606#[bitfield_repr(u8)]
607#[derive(Clone, Copy)]
608pub enum IdAa64Pfr1El1Ssbs {
609 None = 0b0000,
610 Ssbs = 0b0001, Ssbs2 = 0b0010, }
613
614#[bitfield_repr(u8)]
615#[derive(Clone, Copy)]
616pub enum IdAa64Pfr1El1Bt {
617 None = 0b0000,
618 Bt = 0b0001, }
620
621layout!({
622 pub struct ProcessorFeatureRegister1(u64);
624 {
625 let pfar @ 63..60: IdAa64Pfr1El1Pfar;
626 let df2 @ 59..56: IdAa64Pfr1El1Df2;
627 let mtex @ 55..52: IdAa64Pfr1El1Mtex;
628 let the @ 51..48: IdAa64Pfr1El1The;
629 let gcs @ 47..44: IdAa64Pfr1El1Gcs;
630 let mte_frac @ 43..40: IdAa64Pfr1El1MteFrac;
631 let nmi @ 39..36: IdAa64Pfr1El1Nmi;
632 let csv2_frac @ 35..32: IdAa64Pfr1El1Csv2Frac;
633 let rndr_trap @ 31..28: IdAa64Pfr1El1RndrTrap;
634 let sme @ 27..24: IdAa64Pfr1El1Sme;
635 let __ @ 23..20;
636 let mpam_frac @ 19..16;
637 let ras_frac @ 15..12;
638 let mte @ 11..8: IdAa64Pfr1El1Mte;
639 let ssbs @ 7..4: IdAa64Pfr1El1Ssbs;
640 let bt @ 3..0: IdAa64Pfr1El1Bt;
641 }
642});
643
644pub const ID_AA64MMFR0_EL1: SysReg<spec::ID_AA64MMFR0_EL1, MemoryModelFeatureRegister0> =
646 SysReg::new();
647
648#[bitfield_repr(u8)]
650#[derive(Clone, Copy)]
651pub enum AsidSize {
652 Asid8Bits = 0b0000,
653 Asid16Bits = 0b0010,
654}
655
656#[bitfield_repr(u8)]
665#[derive(Clone, Copy)]
666pub enum PhysicalAddressSize {
667 Pa32Bits = 0b0000,
668 Pa36Bits = 0b0001,
669 Pa40Bits = 0b0010,
670 Pa42Bits = 0b0011,
671 Pa44Bits = 0b0100,
672 Pa48Bits = 0b0101,
673 Pa52Bits = 0b0110,
674 Pa56Bits = 0b0111, }
676
677layout!({
678 pub struct MemoryModelFeatureRegister0(u64);
680 {
681 let ecv @ 63..60; let fgt @ 59..56; let __ @ 55..48;
684 let exs @ 47..44; let tgran4_2 @ 43..40; let tgran64_2 @ 39..36; let tgran16_2 @ 35..32; let tgran4 @ 31..28; let tgran64 @ 27..24; let tgran16 @ 23..20; let big_end_el0 @ 19..16; let sns_mem @ 15..12; let big_end @ 11..8; let asid_bits @ 7..4: AsidSize; let pa_range @ 3..0: PhysicalAddressSize; }
697});
698
699pub const ID_AA64MMFR1_EL1: SysReg<spec::ID_AA64MMFR1_EL1, MemoryModelFeatureRegister1> =
701 SysReg::new();
702
703layout!({
704 pub struct MemoryModelFeatureRegister1(u64);
706 {
707 let __ @ 63..60;
708 let cmow @ 59..56; let tidcp1 @ 55..52; let ntlbpa @ 51..48; let afp @ 47..44; let hcx @ 43..40; let ets @ 39..36; let twed @ 35..32; let xnx @ 31..28; let spec_sei @ 27..24; let pan @ 23..20; let lo @ 19..16; let hpds @ 15..12; let vh @ 11..8; let vmid_bits @ 7..4: AsidSize; let hafdbs @ 3..0; }
724});
725
726pub const ID_AA64MMFR2_EL1: SysReg<spec::ID_AA64MMFR2_EL1, MemoryModelFeatureRegister2> =
728 SysReg::new();
729
730layout!({
731 pub struct MemoryModelFeatureRegister2(u64);
733 {
734 let e0pd @ 63..60; let evt @ 59..56; let bbm @ 55..52; let ttl @ 51..48; let __ @ 47..44;
739 let fwb @ 43..40; let ids @ 39..36; let at @ 35..32; let st @ 31..28; let nv @ 27..24; let ccidx @ 23..20; let varange @ 19..16; let iesb @ 15..12; let lsm @ 11..8; let uao @ 7..4; let cnp @ 3..0; }
751});
752
753pub const ID_AA64MMFR3_EL1: SysReg<spec::ID_AA64MMFR3_EL1, MemoryModelFeatureRegister3> =
755 SysReg::new();
756
757layout!({
758 pub struct MemoryModelFeatureRegister3(u64);
760 {
761 let spec_fpacc @ 63..60; let aderr @ 59..56; let sderr @ 55..52; let __ @ 51..48;
765 let anerr @ 47..44; let snerr @ 43..40; let d128_2 @ 39..36; let d128 @ 35..32; let mec @ 31..28; let aie @ 27..24; let s2poe @ 23..20; let s1poe @ 19..16; let s2pie @ 15..12; let s1pie @ 11..8; let sctlrx @ 7..4; let tcrx @ 3..0; }
778});
779
780pub const ID_AA64MMFR4_EL1: SysReg<spec::ID_AA64MMFR4_EL1, MemoryModelFeatureRegister4> =
782 SysReg::new();
783
784layout!({
785 pub struct MemoryModelFeatureRegister4(u64);
787 {
788 let __ @ 63..40;
789 let e3dse @ 39..36; let __ @ 35..28;
791 let e2h0 @ 27..24; let nv_frac @ 23..20; let fgwte3 @ 19..16; let hacdbs @ 15..12; let asid2 @ 11..8; let eiesb @ 7..4; let __ @ 3..0;
798 }
799});