1use crate::{
7 Amcfgr, Amcgcr, Amcntenclr0, Amcntenclr1, Amcntenset0, Amcntenset1, Amcr, Amuserenr, Ccsidr,
8 Ccsidr2, Clidr, Cntfrq, CntfrqEl0, Cnthctl, CnthpCtl, CnthpCval, CnthpTval, CnthpsCtl,
9 CnthpsCval, CnthpsTval, CnthvCtl, CnthvCval, CnthvTval, CnthvsCtl, CnthvsCval, CnthvsTval,
10 Cntkctl, CntpCtl, CntpCtlEl0, CntpCval, CntpCvalEl0, CntpTval, CntpTvalEl0, Cntpct, CntpctEl0,
11 Cntpctss, CntpctssEl0, CntvCtl, CntvCtlEl0, CntvCval, CntvCvalEl0, CntvTval, CntvTvalEl0,
12 Cntvct, CntvctEl0, Cntvctss, CntvctssEl0, Cntvoff, Contextidr, Cpacr, Csselr, Ctr, CtrEl0,
13 Currentel, Dacr, Dbgauthstatus, Dbgclaimclr, Dbgclaimset, Dbgdccint, Dbgdevid, Dbgdevid1,
14 Dbgdidr, Dbgdrar, Dbgdscrext, Dbgdscrint, Dbgdtrrxext, Dbgdtrrxint, Dbgdtrtxext, Dbgdtrtxint,
15 Dbgosdlr, Dbgoseccr, Dbgoslar, Dbgoslsr, Dbgprcr, Dbgvcr, Dfar, Dfsr, Disr, Dit, Dlr, Dspsr,
16 Dspsr2, Erridr, Errselr, Erxaddr, Erxaddr2, Erxctlr, Erxctlr2, Erxfr, Erxfr2, Erxmisc0,
17 Erxmisc1, Erxmisc2, Erxmisc3, Erxmisc4, Erxmisc5, Erxmisc6, Erxmisc7, Erxstatus, Hcptr, Hcr,
18 Hcr2, Hdcr, Hdfar, Hifar, Hmair0, Hmair1, Hpfar, Hrmr, Hsctlr, Hsr, Htcr, Htpidr, Htrfcr,
19 Httbr, Hvbar, IccAsgi1r, IccBpr0, IccBpr1, IccCtlr, IccDir, IccEoir0, IccEoir1, IccHppir0,
20 IccHppir1, IccHsre, IccIar0, IccIar1, IccIgrpen0, IccIgrpen1, IccMctlr, IccMgrpen1, IccMsre,
21 IccPmr, IccRpr, IccSgi0r, IccSgi1r, IccSre, IdDfr0, IdDfr1, IdIsar0, IdIsar1, IdIsar2, IdIsar3,
22 IdIsar4, IdIsar5, IdIsar6, IdMmfr0, IdMmfr1, IdMmfr2, IdMmfr3, IdMmfr4, IdMmfr5, IdPfr0,
23 IdPfr1, IdPfr2, Ifar, Ifsr, Isr, Mair0, Mair1, Midr, Mpidr, Mvbar, Nmrr, Nsacr, Par, Pmccfiltr,
24 Pmccntr, Pmceid0, Pmceid1, Pmceid2, Pmceid3, Pmcntenclr, Pmcntenset, Pmcr, PmcrEl0, Pmintenclr,
25 Pmintenset, Pmmir, Pmovsr, Pmovsset, Pmselr, Pmswinc, Pmuserenr, Pmxevtyper, Prrr, Rmr, Rvbar,
26 Scr, Sctlr, Sdcr, Sder, Svcr, Tlbtr, TpidrEl0, Tpidrprw, TpidrroEl0, Tpidruro, Tpidrurw, Trfcr,
27 Ttbcr, Ttbcr2, Ttbr0, Ttbr1, Vbar, Vdfsr, Vdisr, Vmpidr, Vpidr, Vtcr, Vttbr,
28};
29#[cfg(feature = "el1")]
30use crate::{
31 ApiakeyhiEl1, ApiakeyloEl1, CcsidrEl1, ClidrEl1, CntkctlEl1, CntpsCtlEl1, CntpsCvalEl1,
32 CntpsTvalEl1, ContextidrEl1, CpacrEl1, CsselrEl1, DisrEl1, ElrEl1, EsrEl1, FarEl1, GcrEl1,
33 GcscrEl1, IccAp1r0El1, IccAsgi1rEl1, IccBpr0El1, IccBpr1El1, IccCtlrEl1, IccDirEl1,
34 IccEoir0El1, IccEoir1El1, IccHppir0El1, IccHppir1El1, IccIar0El1, IccIar1El1, IccIgrpen0El1,
35 IccIgrpen1El1, IccNmiar1El1, IccPmrEl1, IccRprEl1, IccSgi0rEl1, IccSgi1rEl1, IccSreEl1,
36 IdAa64dfr0El1, IdAa64dfr1El1, IdAa64isar1El1, IdAa64isar2El1, IdAa64mmfr0El1, IdAa64mmfr1El1,
37 IdAa64mmfr2El1, IdAa64mmfr3El1, IdAa64pfr0El1, IdAa64pfr1El1, IdAa64smfr0El1, IsrEl1, MairEl1,
38 MdccintEl1, MdscrEl1, MidrEl1, MpamidrEl1, MpidrEl1, ParEl1, RgsrEl1, SctlrEl1, SpEl1, SpsrEl1,
39 Tcr2El1, TcrEl1, TfsrEl1, Tfsre0El1, TpidrEl1, Ttbr0El1, Ttbr1El1, VbarEl1,
40};
41#[cfg(feature = "el2")]
42use crate::{
43 CnthctlEl2, CnthpCtlEl2, CnthpCvalEl2, CnthpTvalEl2, CnthpsCtlEl2, CnthpsCvalEl2,
44 CnthpsTvalEl2, CnthvCtlEl2, CnthvCvalEl2, CnthvTvalEl2, CnthvsCtlEl2, CnthvsCvalEl2,
45 CnthvsTvalEl2, CntpoffEl2, CntvoffEl2, ContextidrEl2, CptrEl2, ElrEl2, ElrHyp, EsrEl2, FarEl2,
46 GcscrEl2, HafgrtrEl2, HcrEl2, HcrxEl2, Hdfgrtr2El2, HdfgrtrEl2, Hdfgwtr2El2, HdfgwtrEl2,
47 Hfgitr2El2, HfgitrEl2, Hfgrtr2El2, HfgrtrEl2, Hfgwtr2El2, HfgwtrEl2, HpfarEl2, IccSreEl2,
48 IchHcrEl2, IchVmcrEl2, MairEl2, MdcrEl2, Mpam2El2, MpamhcrEl2, Mpamvpm0El2, Mpamvpm1El2,
49 Mpamvpm2El2, Mpamvpm3El2, Mpamvpm4El2, Mpamvpm5El2, Mpamvpm6El2, Mpamvpm7El2, MpamvpmvEl2,
50 SctlrEl2, SpEl2, SpsrEl2, Tcr2El2, TcrEl2, TfsrEl2, TpidrEl2, Ttbr0El2, Ttbr1El2, VbarEl2,
51 VdisrEl2, VmpidrEl2, VpidrEl2, VsesrEl2, VtcrEl2, VttbrEl2,
52};
53#[cfg(feature = "el3")]
54use crate::{
55 CptrEl3, EsrEl3, GpccrEl3, GptbrEl3, IccCtlrEl3, IccIgrpen1El3, IccSreEl3, MairEl3, MdcrEl3,
56 Mpam3El3, ScrEl3, Sctlr2El3, SctlrEl3, SmcrEl3, SpsrEl3, TcrEl3, TpidrEl3, Ttbr0El3, ZcrEl3,
57};
58
59#[derive(Clone, Debug, Eq, PartialEq)]
61#[non_exhaustive]
62pub struct SystemRegisters {
63 pub actlr: u32,
65 pub actlr2: u32,
67 #[cfg(feature = "el1")]
68 pub actlr_el1: u64,
70 #[cfg(feature = "el2")]
71 pub actlr_el2: u64,
73 pub adfsr: u32,
75 #[cfg(feature = "el1")]
76 pub afsr0_el1: u64,
78 #[cfg(feature = "el2")]
79 pub afsr0_el2: u64,
81 #[cfg(feature = "el1")]
82 pub afsr1_el1: u64,
84 #[cfg(feature = "el2")]
85 pub afsr1_el2: u64,
87 pub aidr: u32,
89 pub aifsr: u32,
91 pub amair0: u32,
93 pub amair1: u32,
95 #[cfg(feature = "el1")]
96 pub amair_el1: u64,
98 #[cfg(feature = "el2")]
99 pub amair_el2: u64,
101 pub amcfgr: Amcfgr,
103 pub amcgcr: Amcgcr,
105 pub amcntenclr0: Amcntenclr0,
107 pub amcntenclr1: Amcntenclr1,
109 pub amcntenset0: Amcntenset0,
111 pub amcntenset1: Amcntenset1,
113 pub amcr: Amcr,
115 pub amuserenr: Amuserenr,
117 #[cfg(feature = "el1")]
118 pub apiakeyhi_el1: ApiakeyhiEl1,
120 #[cfg(feature = "el1")]
121 pub apiakeylo_el1: ApiakeyloEl1,
123 pub ccsidr: Ccsidr,
125 pub ccsidr2: Ccsidr2,
127 #[cfg(feature = "el1")]
128 pub ccsidr_el1: CcsidrEl1,
130 pub clidr: Clidr,
132 #[cfg(feature = "el1")]
133 pub clidr_el1: ClidrEl1,
135 pub cntfrq: Cntfrq,
137 pub cntfrq_el0: CntfrqEl0,
139 pub cnthctl: Cnthctl,
141 #[cfg(feature = "el2")]
142 pub cnthctl_el2: CnthctlEl2,
144 pub cnthps_ctl: CnthpsCtl,
146 #[cfg(feature = "el2")]
147 pub cnthps_ctl_el2: CnthpsCtlEl2,
149 pub cnthps_cval: CnthpsCval,
151 #[cfg(feature = "el2")]
152 pub cnthps_cval_el2: CnthpsCvalEl2,
154 pub cnthps_tval: CnthpsTval,
156 #[cfg(feature = "el2")]
157 pub cnthps_tval_el2: CnthpsTvalEl2,
159 pub cnthp_ctl: CnthpCtl,
161 #[cfg(feature = "el2")]
162 pub cnthp_ctl_el2: CnthpCtlEl2,
164 pub cnthp_cval: CnthpCval,
166 #[cfg(feature = "el2")]
167 pub cnthp_cval_el2: CnthpCvalEl2,
169 pub cnthp_tval: CnthpTval,
171 #[cfg(feature = "el2")]
172 pub cnthp_tval_el2: CnthpTvalEl2,
174 pub cnthvs_ctl: CnthvsCtl,
176 #[cfg(feature = "el2")]
177 pub cnthvs_ctl_el2: CnthvsCtlEl2,
179 pub cnthvs_cval: CnthvsCval,
181 #[cfg(feature = "el2")]
182 pub cnthvs_cval_el2: CnthvsCvalEl2,
184 pub cnthvs_tval: CnthvsTval,
186 #[cfg(feature = "el2")]
187 pub cnthvs_tval_el2: CnthvsTvalEl2,
189 pub cnthv_ctl: CnthvCtl,
191 #[cfg(feature = "el2")]
192 pub cnthv_ctl_el2: CnthvCtlEl2,
194 pub cnthv_cval: CnthvCval,
196 #[cfg(feature = "el2")]
197 pub cnthv_cval_el2: CnthvCvalEl2,
199 pub cnthv_tval: CnthvTval,
201 #[cfg(feature = "el2")]
202 pub cnthv_tval_el2: CnthvTvalEl2,
204 pub cntkctl: Cntkctl,
206 #[cfg(feature = "el1")]
207 pub cntkctl_el1: CntkctlEl1,
209 pub cntpct: Cntpct,
211 pub cntpctss: Cntpctss,
213 pub cntpctss_el0: CntpctssEl0,
215 pub cntpct_el0: CntpctEl0,
217 #[cfg(feature = "el2")]
218 pub cntpoff_el2: CntpoffEl2,
220 #[cfg(feature = "el1")]
221 pub cntps_ctl_el1: CntpsCtlEl1,
223 #[cfg(feature = "el1")]
224 pub cntps_cval_el1: CntpsCvalEl1,
226 #[cfg(feature = "el1")]
227 pub cntps_tval_el1: CntpsTvalEl1,
229 pub cntp_ctl: CntpCtl,
231 pub cntp_ctl_el0: CntpCtlEl0,
233 pub cntp_cval: CntpCval,
235 pub cntp_cval_el0: CntpCvalEl0,
237 pub cntp_tval: CntpTval,
239 pub cntp_tval_el0: CntpTvalEl0,
241 pub cntvct: Cntvct,
243 pub cntvctss: Cntvctss,
245 pub cntvctss_el0: CntvctssEl0,
247 pub cntvct_el0: CntvctEl0,
249 pub cntvoff: Cntvoff,
251 #[cfg(feature = "el2")]
252 pub cntvoff_el2: CntvoffEl2,
254 pub cntv_ctl: CntvCtl,
256 pub cntv_ctl_el0: CntvCtlEl0,
258 pub cntv_cval: CntvCval,
260 pub cntv_cval_el0: CntvCvalEl0,
262 pub cntv_tval: CntvTval,
264 pub cntv_tval_el0: CntvTvalEl0,
266 pub contextidr: Contextidr,
268 #[cfg(feature = "el1")]
269 pub contextidr_el1: ContextidrEl1,
271 #[cfg(feature = "el2")]
272 pub contextidr_el2: ContextidrEl2,
274 pub cpacr: Cpacr,
276 #[cfg(feature = "el1")]
277 pub cpacr_el1: CpacrEl1,
279 #[cfg(feature = "el2")]
280 pub cptr_el2: CptrEl2,
282 #[cfg(feature = "el3")]
283 pub cptr_el3: CptrEl3,
285 pub csselr: Csselr,
287 #[cfg(feature = "el1")]
288 pub csselr_el1: CsselrEl1,
290 pub ctr: Ctr,
292 pub ctr_el0: CtrEl0,
294 pub currentel: Currentel,
296 pub dacr: Dacr,
298 pub dbgauthstatus: Dbgauthstatus,
300 pub dbgclaimclr: Dbgclaimclr,
302 pub dbgclaimset: Dbgclaimset,
304 pub dbgdccint: Dbgdccint,
306 pub dbgdevid: Dbgdevid,
308 pub dbgdevid1: Dbgdevid1,
310 pub dbgdevid2: u32,
312 pub dbgdidr: Dbgdidr,
314 pub dbgdrar: Dbgdrar,
316 pub dbgdsar: u64,
318 pub dbgdscrext: Dbgdscrext,
320 pub dbgdscrint: Dbgdscrint,
322 pub dbgdtrrxext: Dbgdtrrxext,
324 pub dbgdtrrxint: Dbgdtrrxint,
326 pub dbgdtrtxext: Dbgdtrtxext,
328 pub dbgdtrtxint: Dbgdtrtxint,
330 pub dbgosdlr: Dbgosdlr,
332 pub dbgoseccr: Dbgoseccr,
334 pub dbgoslar: Dbgoslar,
336 pub dbgoslsr: Dbgoslsr,
338 pub dbgprcr: Dbgprcr,
340 pub dbgvcr: Dbgvcr,
342 pub dbgwfar: u32,
344 pub dfar: Dfar,
346 pub dfsr: Dfsr,
348 pub disr: Disr,
350 #[cfg(feature = "el1")]
351 pub disr_el1: DisrEl1,
353 pub dit: Dit,
355 pub dlr: Dlr,
357 pub dspsr: Dspsr,
359 pub dspsr2: Dspsr2,
361 #[cfg(feature = "el1")]
362 pub elr_el1: ElrEl1,
364 #[cfg(feature = "el2")]
365 pub elr_el2: ElrEl2,
367 #[cfg(feature = "el2")]
368 pub elr_hyp: ElrHyp,
370 pub erridr: Erridr,
372 pub errselr: Errselr,
374 pub erxaddr: Erxaddr,
376 pub erxaddr2: Erxaddr2,
378 pub erxctlr: Erxctlr,
380 pub erxctlr2: Erxctlr2,
382 pub erxfr: Erxfr,
384 pub erxfr2: Erxfr2,
386 pub erxmisc0: Erxmisc0,
388 pub erxmisc1: Erxmisc1,
390 pub erxmisc2: Erxmisc2,
392 pub erxmisc3: Erxmisc3,
394 pub erxmisc4: Erxmisc4,
396 pub erxmisc5: Erxmisc5,
398 pub erxmisc6: Erxmisc6,
400 pub erxmisc7: Erxmisc7,
402 pub erxstatus: Erxstatus,
404 #[cfg(feature = "el1")]
405 pub esr_el1: EsrEl1,
407 #[cfg(feature = "el2")]
408 pub esr_el2: EsrEl2,
410 #[cfg(feature = "el3")]
411 pub esr_el3: EsrEl3,
413 #[cfg(feature = "el1")]
414 pub far_el1: FarEl1,
416 #[cfg(feature = "el2")]
417 pub far_el2: FarEl2,
419 pub fcseidr: u32,
421 #[cfg(feature = "el1")]
422 pub gcr_el1: GcrEl1,
424 #[cfg(feature = "el1")]
425 pub gcscr_el1: GcscrEl1,
427 #[cfg(feature = "el2")]
428 pub gcscr_el2: GcscrEl2,
430 #[cfg(feature = "el3")]
431 pub gpccr_el3: GpccrEl3,
433 #[cfg(feature = "el3")]
434 pub gptbr_el3: GptbrEl3,
436 pub hacr: u32,
438 #[cfg(feature = "el2")]
439 pub hacr_el2: u64,
441 pub hactlr: u32,
443 pub hactlr2: u32,
445 pub hadfsr: u32,
447 #[cfg(feature = "el2")]
448 pub hafgrtr_el2: HafgrtrEl2,
450 pub haifsr: u32,
452 pub hamair0: u32,
454 pub hamair1: u32,
456 pub hcptr: Hcptr,
458 pub hcr: Hcr,
460 pub hcr2: Hcr2,
462 #[cfg(feature = "el2")]
463 pub hcrx_el2: HcrxEl2,
465 #[cfg(feature = "el2")]
466 pub hcr_el2: HcrEl2,
468 pub hdcr: Hdcr,
470 pub hdfar: Hdfar,
472 #[cfg(feature = "el2")]
473 pub hdfgrtr2_el2: Hdfgrtr2El2,
475 #[cfg(feature = "el2")]
476 pub hdfgrtr_el2: HdfgrtrEl2,
478 #[cfg(feature = "el2")]
479 pub hdfgwtr2_el2: Hdfgwtr2El2,
481 #[cfg(feature = "el2")]
482 pub hdfgwtr_el2: HdfgwtrEl2,
484 #[cfg(feature = "el2")]
485 pub hfgitr2_el2: Hfgitr2El2,
487 #[cfg(feature = "el2")]
488 pub hfgitr_el2: HfgitrEl2,
490 #[cfg(feature = "el2")]
491 pub hfgrtr2_el2: Hfgrtr2El2,
493 #[cfg(feature = "el2")]
494 pub hfgrtr_el2: HfgrtrEl2,
496 #[cfg(feature = "el2")]
497 pub hfgwtr2_el2: Hfgwtr2El2,
499 #[cfg(feature = "el2")]
500 pub hfgwtr_el2: HfgwtrEl2,
502 pub hifar: Hifar,
504 pub hmair0: Hmair0,
506 pub hmair1: Hmair1,
508 pub hpfar: Hpfar,
510 #[cfg(feature = "el2")]
511 pub hpfar_el2: HpfarEl2,
513 pub hrmr: Hrmr,
515 pub hsctlr: Hsctlr,
517 pub hsr: Hsr,
519 pub hstr: u32,
521 #[cfg(feature = "el2")]
522 pub hstr_el2: u64,
524 pub htcr: Htcr,
526 pub htpidr: Htpidr,
528 pub htrfcr: Htrfcr,
530 pub httbr: Httbr,
532 pub hvbar: Hvbar,
534 #[cfg(feature = "el1")]
535 pub icc_ap0r0_el1: u64,
537 #[cfg(feature = "el1")]
538 pub icc_ap0r1_el1: u64,
540 #[cfg(feature = "el1")]
541 pub icc_ap0r2_el1: u64,
543 #[cfg(feature = "el1")]
544 pub icc_ap0r3_el1: u64,
546 #[cfg(feature = "el1")]
547 pub icc_ap1r0_el1: IccAp1r0El1,
549 #[cfg(feature = "el1")]
550 pub icc_ap1r1_el1: u64,
552 #[cfg(feature = "el1")]
553 pub icc_ap1r2_el1: u64,
555 #[cfg(feature = "el1")]
556 pub icc_ap1r3_el1: u64,
558 pub icc_asgi1r: IccAsgi1r,
560 #[cfg(feature = "el1")]
561 pub icc_asgi1r_el1: IccAsgi1rEl1,
563 pub icc_bpr0: IccBpr0,
565 #[cfg(feature = "el1")]
566 pub icc_bpr0_el1: IccBpr0El1,
568 pub icc_bpr1: IccBpr1,
570 #[cfg(feature = "el1")]
571 pub icc_bpr1_el1: IccBpr1El1,
573 pub icc_ctlr: IccCtlr,
575 #[cfg(feature = "el1")]
576 pub icc_ctlr_el1: IccCtlrEl1,
578 #[cfg(feature = "el3")]
579 pub icc_ctlr_el3: IccCtlrEl3,
581 pub icc_dir: IccDir,
583 #[cfg(feature = "el1")]
584 pub icc_dir_el1: IccDirEl1,
586 pub icc_eoir0: IccEoir0,
588 #[cfg(feature = "el1")]
589 pub icc_eoir0_el1: IccEoir0El1,
591 pub icc_eoir1: IccEoir1,
593 #[cfg(feature = "el1")]
594 pub icc_eoir1_el1: IccEoir1El1,
596 pub icc_hppir0: IccHppir0,
598 #[cfg(feature = "el1")]
599 pub icc_hppir0_el1: IccHppir0El1,
601 pub icc_hppir1: IccHppir1,
603 #[cfg(feature = "el1")]
604 pub icc_hppir1_el1: IccHppir1El1,
606 pub icc_hsre: IccHsre,
608 pub icc_iar0: IccIar0,
610 #[cfg(feature = "el1")]
611 pub icc_iar0_el1: IccIar0El1,
613 pub icc_iar1: IccIar1,
615 #[cfg(feature = "el1")]
616 pub icc_iar1_el1: IccIar1El1,
618 pub icc_igrpen0: IccIgrpen0,
620 #[cfg(feature = "el1")]
621 pub icc_igrpen0_el1: IccIgrpen0El1,
623 pub icc_igrpen1: IccIgrpen1,
625 #[cfg(feature = "el1")]
626 pub icc_igrpen1_el1: IccIgrpen1El1,
628 #[cfg(feature = "el3")]
629 pub icc_igrpen1_el3: IccIgrpen1El3,
631 pub icc_mctlr: IccMctlr,
633 pub icc_mgrpen1: IccMgrpen1,
635 pub icc_msre: IccMsre,
637 #[cfg(feature = "el1")]
638 pub icc_nmiar1_el1: IccNmiar1El1,
640 pub icc_pmr: IccPmr,
642 #[cfg(feature = "el1")]
643 pub icc_pmr_el1: IccPmrEl1,
645 pub icc_rpr: IccRpr,
647 #[cfg(feature = "el1")]
648 pub icc_rpr_el1: IccRprEl1,
650 pub icc_sgi0r: IccSgi0r,
652 #[cfg(feature = "el1")]
653 pub icc_sgi0r_el1: IccSgi0rEl1,
655 pub icc_sgi1r: IccSgi1r,
657 #[cfg(feature = "el1")]
658 pub icc_sgi1r_el1: IccSgi1rEl1,
660 pub icc_sre: IccSre,
662 #[cfg(feature = "el1")]
663 pub icc_sre_el1: IccSreEl1,
665 #[cfg(feature = "el2")]
666 pub icc_sre_el2: IccSreEl2,
668 #[cfg(feature = "el3")]
669 pub icc_sre_el3: IccSreEl3,
671 #[cfg(feature = "el2")]
672 pub ich_hcr_el2: IchHcrEl2,
674 #[cfg(feature = "el2")]
675 pub ich_vmcr_el2: IchVmcrEl2,
677 #[cfg(feature = "el1")]
678 pub id_aa64dfr0_el1: IdAa64dfr0El1,
680 #[cfg(feature = "el1")]
681 pub id_aa64dfr1_el1: IdAa64dfr1El1,
683 #[cfg(feature = "el1")]
684 pub id_aa64isar1_el1: IdAa64isar1El1,
686 #[cfg(feature = "el1")]
687 pub id_aa64isar2_el1: IdAa64isar2El1,
689 #[cfg(feature = "el1")]
690 pub id_aa64mmfr0_el1: IdAa64mmfr0El1,
692 #[cfg(feature = "el1")]
693 pub id_aa64mmfr1_el1: IdAa64mmfr1El1,
695 #[cfg(feature = "el1")]
696 pub id_aa64mmfr2_el1: IdAa64mmfr2El1,
698 #[cfg(feature = "el1")]
699 pub id_aa64mmfr3_el1: IdAa64mmfr3El1,
701 #[cfg(feature = "el1")]
702 pub id_aa64pfr0_el1: IdAa64pfr0El1,
704 #[cfg(feature = "el1")]
705 pub id_aa64pfr1_el1: IdAa64pfr1El1,
707 #[cfg(feature = "el1")]
708 pub id_aa64smfr0_el1: IdAa64smfr0El1,
710 pub id_afr0: u32,
712 pub id_dfr0: IdDfr0,
714 pub id_dfr1: IdDfr1,
716 pub id_isar0: IdIsar0,
718 pub id_isar1: IdIsar1,
720 pub id_isar2: IdIsar2,
722 pub id_isar3: IdIsar3,
724 pub id_isar4: IdIsar4,
726 pub id_isar5: IdIsar5,
728 pub id_isar6: IdIsar6,
730 pub id_mmfr0: IdMmfr0,
732 pub id_mmfr1: IdMmfr1,
734 pub id_mmfr2: IdMmfr2,
736 pub id_mmfr3: IdMmfr3,
738 pub id_mmfr4: IdMmfr4,
740 pub id_mmfr5: IdMmfr5,
742 pub id_pfr0: IdPfr0,
744 pub id_pfr1: IdPfr1,
746 pub id_pfr2: IdPfr2,
748 pub ifar: Ifar,
750 pub ifsr: Ifsr,
752 pub isr: Isr,
754 #[cfg(feature = "el1")]
755 pub isr_el1: IsrEl1,
757 pub jidr: u32,
759 pub jmcr: u32,
761 pub joscr: u32,
763 pub mair0: Mair0,
765 pub mair1: Mair1,
767 #[cfg(feature = "el1")]
768 pub mair_el1: MairEl1,
770 #[cfg(feature = "el2")]
771 pub mair_el2: MairEl2,
773 #[cfg(feature = "el3")]
774 pub mair_el3: MairEl3,
776 #[cfg(feature = "el1")]
777 pub mdccint_el1: MdccintEl1,
779 #[cfg(feature = "el2")]
780 pub mdcr_el2: MdcrEl2,
782 #[cfg(feature = "el3")]
783 pub mdcr_el3: MdcrEl3,
785 #[cfg(feature = "el1")]
786 pub mdscr_el1: MdscrEl1,
788 pub midr: Midr,
790 #[cfg(feature = "el1")]
791 pub midr_el1: MidrEl1,
793 #[cfg(feature = "el2")]
794 pub mpam2_el2: Mpam2El2,
796 #[cfg(feature = "el3")]
797 pub mpam3_el3: Mpam3El3,
799 #[cfg(feature = "el2")]
800 pub mpamhcr_el2: MpamhcrEl2,
802 #[cfg(feature = "el1")]
803 pub mpamidr_el1: MpamidrEl1,
805 #[cfg(feature = "el2")]
806 pub mpamvpm0_el2: Mpamvpm0El2,
808 #[cfg(feature = "el2")]
809 pub mpamvpm1_el2: Mpamvpm1El2,
811 #[cfg(feature = "el2")]
812 pub mpamvpm2_el2: Mpamvpm2El2,
814 #[cfg(feature = "el2")]
815 pub mpamvpm3_el2: Mpamvpm3El2,
817 #[cfg(feature = "el2")]
818 pub mpamvpm4_el2: Mpamvpm4El2,
820 #[cfg(feature = "el2")]
821 pub mpamvpm5_el2: Mpamvpm5El2,
823 #[cfg(feature = "el2")]
824 pub mpamvpm6_el2: Mpamvpm6El2,
826 #[cfg(feature = "el2")]
827 pub mpamvpm7_el2: Mpamvpm7El2,
829 #[cfg(feature = "el2")]
830 pub mpamvpmv_el2: MpamvpmvEl2,
832 pub mpidr: Mpidr,
834 #[cfg(feature = "el1")]
835 pub mpidr_el1: MpidrEl1,
837 pub mvbar: Mvbar,
839 pub nmrr: Nmrr,
841 pub nsacr: Nsacr,
843 pub par: Par,
845 #[cfg(feature = "el1")]
846 pub par_el1: ParEl1,
848 pub pmccfiltr: Pmccfiltr,
850 pub pmccntr: Pmccntr,
852 pub pmceid0: Pmceid0,
854 pub pmceid1: Pmceid1,
856 pub pmceid2: Pmceid2,
858 pub pmceid3: Pmceid3,
860 pub pmcntenclr: Pmcntenclr,
862 pub pmcntenset: Pmcntenset,
864 pub pmcr: Pmcr,
866 pub pmcr_el0: PmcrEl0,
868 pub pmintenclr: Pmintenclr,
870 pub pmintenset: Pmintenset,
872 pub pmmir: Pmmir,
874 pub pmovsr: Pmovsr,
876 pub pmovsset: Pmovsset,
878 pub pmselr: Pmselr,
880 pub pmswinc: Pmswinc,
882 pub pmuserenr: Pmuserenr,
884 pub pmxevtyper: Pmxevtyper,
886 pub prrr: Prrr,
888 pub revidr: u32,
890 #[cfg(feature = "el1")]
891 pub rgsr_el1: RgsrEl1,
893 pub rmr: Rmr,
895 pub rvbar: Rvbar,
897 pub scr: Scr,
899 #[cfg(feature = "el3")]
900 pub scr_el3: ScrEl3,
902 pub sctlr: Sctlr,
904 #[cfg(feature = "el3")]
905 pub sctlr2_el3: Sctlr2El3,
907 #[cfg(feature = "el1")]
908 pub sctlr_el1: SctlrEl1,
910 #[cfg(feature = "el2")]
911 pub sctlr_el2: SctlrEl2,
913 #[cfg(feature = "el3")]
914 pub sctlr_el3: SctlrEl3,
916 pub sdcr: Sdcr,
918 pub sder: Sder,
920 #[cfg(feature = "el3")]
921 pub smcr_el3: SmcrEl3,
923 #[cfg(feature = "el1")]
924 pub spsr_el1: SpsrEl1,
926 #[cfg(feature = "el2")]
927 pub spsr_el2: SpsrEl2,
929 #[cfg(feature = "el3")]
930 pub spsr_el3: SpsrEl3,
932 #[cfg(feature = "el1")]
933 pub sp_el1: SpEl1,
935 #[cfg(feature = "el2")]
936 pub sp_el2: SpEl2,
938 pub svcr: Svcr,
940 pub tcmtr: u32,
942 #[cfg(feature = "el1")]
943 pub tcr2_el1: Tcr2El1,
945 #[cfg(feature = "el2")]
946 pub tcr2_el2: Tcr2El2,
948 #[cfg(feature = "el1")]
949 pub tcr_el1: TcrEl1,
951 #[cfg(feature = "el2")]
952 pub tcr_el2: TcrEl2,
954 #[cfg(feature = "el3")]
955 pub tcr_el3: TcrEl3,
957 #[cfg(feature = "el1")]
958 pub tfsre0_el1: Tfsre0El1,
960 #[cfg(feature = "el1")]
961 pub tfsr_el1: TfsrEl1,
963 #[cfg(feature = "el2")]
964 pub tfsr_el2: TfsrEl2,
966 pub tlbtr: Tlbtr,
968 pub tpidrprw: Tpidrprw,
970 pub tpidrro_el0: TpidrroEl0,
972 pub tpidruro: Tpidruro,
974 pub tpidrurw: Tpidrurw,
976 pub tpidr_el0: TpidrEl0,
978 #[cfg(feature = "el1")]
979 pub tpidr_el1: TpidrEl1,
981 #[cfg(feature = "el2")]
982 pub tpidr_el2: TpidrEl2,
984 #[cfg(feature = "el3")]
985 pub tpidr_el3: TpidrEl3,
987 pub trfcr: Trfcr,
989 pub ttbcr: Ttbcr,
991 pub ttbcr2: Ttbcr2,
993 pub ttbr0: Ttbr0,
995 #[cfg(feature = "el1")]
996 pub ttbr0_el1: Ttbr0El1,
998 #[cfg(feature = "el2")]
999 pub ttbr0_el2: Ttbr0El2,
1001 #[cfg(feature = "el3")]
1002 pub ttbr0_el3: Ttbr0El3,
1004 pub ttbr1: Ttbr1,
1006 #[cfg(feature = "el1")]
1007 pub ttbr1_el1: Ttbr1El1,
1009 #[cfg(feature = "el2")]
1010 pub ttbr1_el2: Ttbr1El2,
1012 pub vbar: Vbar,
1014 #[cfg(feature = "el1")]
1015 pub vbar_el1: VbarEl1,
1017 #[cfg(feature = "el2")]
1018 pub vbar_el2: VbarEl2,
1020 pub vdfsr: Vdfsr,
1022 pub vdisr: Vdisr,
1024 #[cfg(feature = "el2")]
1025 pub vdisr_el2: VdisrEl2,
1027 pub vmpidr: Vmpidr,
1029 #[cfg(feature = "el2")]
1030 pub vmpidr_el2: VmpidrEl2,
1032 pub vpidr: Vpidr,
1034 #[cfg(feature = "el2")]
1035 pub vpidr_el2: VpidrEl2,
1037 #[cfg(feature = "el2")]
1038 pub vsesr_el2: VsesrEl2,
1040 pub vtcr: Vtcr,
1042 #[cfg(feature = "el2")]
1043 pub vtcr_el2: VtcrEl2,
1045 pub vttbr: Vttbr,
1047 #[cfg(feature = "el2")]
1048 pub vttbr_el2: VttbrEl2,
1050 #[cfg(feature = "el3")]
1051 pub zcr_el3: ZcrEl3,
1053}
1054
1055impl SystemRegisters {
1056 pub(crate) const fn new() -> Self {
1057 Self {
1058 actlr: 0,
1059 actlr2: 0,
1060 #[cfg(feature = "el1")]
1061 actlr_el1: 0,
1062 #[cfg(feature = "el2")]
1063 actlr_el2: 0,
1064 adfsr: 0,
1065 #[cfg(feature = "el1")]
1066 afsr0_el1: 0,
1067 #[cfg(feature = "el2")]
1068 afsr0_el2: 0,
1069 #[cfg(feature = "el1")]
1070 afsr1_el1: 0,
1071 #[cfg(feature = "el2")]
1072 afsr1_el2: 0,
1073 aidr: 0,
1074 aifsr: 0,
1075 amair0: 0,
1076 amair1: 0,
1077 #[cfg(feature = "el1")]
1078 amair_el1: 0,
1079 #[cfg(feature = "el2")]
1080 amair_el2: 0,
1081 amcfgr: Amcfgr::empty(),
1082 amcgcr: Amcgcr::empty(),
1083 amcntenclr0: Amcntenclr0::empty(),
1084 amcntenclr1: Amcntenclr1::empty(),
1085 amcntenset0: Amcntenset0::empty(),
1086 amcntenset1: Amcntenset1::empty(),
1087 amcr: Amcr::empty(),
1088 amuserenr: Amuserenr::empty(),
1089 #[cfg(feature = "el1")]
1090 apiakeyhi_el1: ApiakeyhiEl1::empty(),
1091 #[cfg(feature = "el1")]
1092 apiakeylo_el1: ApiakeyloEl1::empty(),
1093 ccsidr: Ccsidr::empty(),
1094 ccsidr2: Ccsidr2::empty(),
1095 #[cfg(feature = "el1")]
1096 ccsidr_el1: CcsidrEl1::empty(),
1097 clidr: Clidr::empty(),
1098 #[cfg(feature = "el1")]
1099 clidr_el1: ClidrEl1::empty(),
1100 cntfrq: Cntfrq::empty(),
1101 cntfrq_el0: CntfrqEl0::empty(),
1102 cnthctl: Cnthctl::empty(),
1103 #[cfg(feature = "el2")]
1104 cnthctl_el2: CnthctlEl2::empty(),
1105 cnthps_ctl: CnthpsCtl::empty(),
1106 #[cfg(feature = "el2")]
1107 cnthps_ctl_el2: CnthpsCtlEl2::empty(),
1108 cnthps_cval: CnthpsCval::empty(),
1109 #[cfg(feature = "el2")]
1110 cnthps_cval_el2: CnthpsCvalEl2::empty(),
1111 cnthps_tval: CnthpsTval::empty(),
1112 #[cfg(feature = "el2")]
1113 cnthps_tval_el2: CnthpsTvalEl2::empty(),
1114 cnthp_ctl: CnthpCtl::empty(),
1115 #[cfg(feature = "el2")]
1116 cnthp_ctl_el2: CnthpCtlEl2::empty(),
1117 cnthp_cval: CnthpCval::empty(),
1118 #[cfg(feature = "el2")]
1119 cnthp_cval_el2: CnthpCvalEl2::empty(),
1120 cnthp_tval: CnthpTval::empty(),
1121 #[cfg(feature = "el2")]
1122 cnthp_tval_el2: CnthpTvalEl2::empty(),
1123 cnthvs_ctl: CnthvsCtl::empty(),
1124 #[cfg(feature = "el2")]
1125 cnthvs_ctl_el2: CnthvsCtlEl2::empty(),
1126 cnthvs_cval: CnthvsCval::empty(),
1127 #[cfg(feature = "el2")]
1128 cnthvs_cval_el2: CnthvsCvalEl2::empty(),
1129 cnthvs_tval: CnthvsTval::empty(),
1130 #[cfg(feature = "el2")]
1131 cnthvs_tval_el2: CnthvsTvalEl2::empty(),
1132 cnthv_ctl: CnthvCtl::empty(),
1133 #[cfg(feature = "el2")]
1134 cnthv_ctl_el2: CnthvCtlEl2::empty(),
1135 cnthv_cval: CnthvCval::empty(),
1136 #[cfg(feature = "el2")]
1137 cnthv_cval_el2: CnthvCvalEl2::empty(),
1138 cnthv_tval: CnthvTval::empty(),
1139 #[cfg(feature = "el2")]
1140 cnthv_tval_el2: CnthvTvalEl2::empty(),
1141 cntkctl: Cntkctl::empty(),
1142 #[cfg(feature = "el1")]
1143 cntkctl_el1: CntkctlEl1::empty(),
1144 cntpct: Cntpct::empty(),
1145 cntpctss: Cntpctss::empty(),
1146 cntpctss_el0: CntpctssEl0::empty(),
1147 cntpct_el0: CntpctEl0::empty(),
1148 #[cfg(feature = "el2")]
1149 cntpoff_el2: CntpoffEl2::empty(),
1150 #[cfg(feature = "el1")]
1151 cntps_ctl_el1: CntpsCtlEl1::empty(),
1152 #[cfg(feature = "el1")]
1153 cntps_cval_el1: CntpsCvalEl1::empty(),
1154 #[cfg(feature = "el1")]
1155 cntps_tval_el1: CntpsTvalEl1::empty(),
1156 cntp_ctl: CntpCtl::empty(),
1157 cntp_ctl_el0: CntpCtlEl0::empty(),
1158 cntp_cval: CntpCval::empty(),
1159 cntp_cval_el0: CntpCvalEl0::empty(),
1160 cntp_tval: CntpTval::empty(),
1161 cntp_tval_el0: CntpTvalEl0::empty(),
1162 cntvct: Cntvct::empty(),
1163 cntvctss: Cntvctss::empty(),
1164 cntvctss_el0: CntvctssEl0::empty(),
1165 cntvct_el0: CntvctEl0::empty(),
1166 cntvoff: Cntvoff::empty(),
1167 #[cfg(feature = "el2")]
1168 cntvoff_el2: CntvoffEl2::empty(),
1169 cntv_ctl: CntvCtl::empty(),
1170 cntv_ctl_el0: CntvCtlEl0::empty(),
1171 cntv_cval: CntvCval::empty(),
1172 cntv_cval_el0: CntvCvalEl0::empty(),
1173 cntv_tval: CntvTval::empty(),
1174 cntv_tval_el0: CntvTvalEl0::empty(),
1175 contextidr: Contextidr::empty(),
1176 #[cfg(feature = "el1")]
1177 contextidr_el1: ContextidrEl1::empty(),
1178 #[cfg(feature = "el2")]
1179 contextidr_el2: ContextidrEl2::empty(),
1180 cpacr: Cpacr::empty(),
1181 #[cfg(feature = "el1")]
1182 cpacr_el1: CpacrEl1::empty(),
1183 #[cfg(feature = "el2")]
1184 cptr_el2: CptrEl2::empty(),
1185 #[cfg(feature = "el3")]
1186 cptr_el3: CptrEl3::empty(),
1187 csselr: Csselr::empty(),
1188 #[cfg(feature = "el1")]
1189 csselr_el1: CsselrEl1::empty(),
1190 ctr: Ctr::empty(),
1191 ctr_el0: CtrEl0::empty(),
1192 currentel: Currentel::empty(),
1193 dacr: Dacr::empty(),
1194 dbgauthstatus: Dbgauthstatus::empty(),
1195 dbgclaimclr: Dbgclaimclr::empty(),
1196 dbgclaimset: Dbgclaimset::empty(),
1197 dbgdccint: Dbgdccint::empty(),
1198 dbgdevid: Dbgdevid::empty(),
1199 dbgdevid1: Dbgdevid1::empty(),
1200 dbgdevid2: 0,
1201 dbgdidr: Dbgdidr::empty(),
1202 dbgdrar: Dbgdrar::empty(),
1203 dbgdsar: 0,
1204 dbgdscrext: Dbgdscrext::empty(),
1205 dbgdscrint: Dbgdscrint::empty(),
1206 dbgdtrrxext: Dbgdtrrxext::empty(),
1207 dbgdtrrxint: Dbgdtrrxint::empty(),
1208 dbgdtrtxext: Dbgdtrtxext::empty(),
1209 dbgdtrtxint: Dbgdtrtxint::empty(),
1210 dbgosdlr: Dbgosdlr::empty(),
1211 dbgoseccr: Dbgoseccr::empty(),
1212 dbgoslar: Dbgoslar::empty(),
1213 dbgoslsr: Dbgoslsr::empty(),
1214 dbgprcr: Dbgprcr::empty(),
1215 dbgvcr: Dbgvcr::empty(),
1216 dbgwfar: 0,
1217 dfar: Dfar::empty(),
1218 dfsr: Dfsr::empty(),
1219 disr: Disr::empty(),
1220 #[cfg(feature = "el1")]
1221 disr_el1: DisrEl1::empty(),
1222 dit: Dit::empty(),
1223 dlr: Dlr::empty(),
1224 dspsr: Dspsr::empty(),
1225 dspsr2: Dspsr2::empty(),
1226 #[cfg(feature = "el1")]
1227 elr_el1: ElrEl1::empty(),
1228 #[cfg(feature = "el2")]
1229 elr_el2: ElrEl2::empty(),
1230 #[cfg(feature = "el2")]
1231 elr_hyp: ElrHyp::empty(),
1232 erridr: Erridr::empty(),
1233 errselr: Errselr::empty(),
1234 erxaddr: Erxaddr::empty(),
1235 erxaddr2: Erxaddr2::empty(),
1236 erxctlr: Erxctlr::empty(),
1237 erxctlr2: Erxctlr2::empty(),
1238 erxfr: Erxfr::empty(),
1239 erxfr2: Erxfr2::empty(),
1240 erxmisc0: Erxmisc0::empty(),
1241 erxmisc1: Erxmisc1::empty(),
1242 erxmisc2: Erxmisc2::empty(),
1243 erxmisc3: Erxmisc3::empty(),
1244 erxmisc4: Erxmisc4::empty(),
1245 erxmisc5: Erxmisc5::empty(),
1246 erxmisc6: Erxmisc6::empty(),
1247 erxmisc7: Erxmisc7::empty(),
1248 erxstatus: Erxstatus::empty(),
1249 #[cfg(feature = "el1")]
1250 esr_el1: EsrEl1::empty(),
1251 #[cfg(feature = "el2")]
1252 esr_el2: EsrEl2::empty(),
1253 #[cfg(feature = "el3")]
1254 esr_el3: EsrEl3::empty(),
1255 #[cfg(feature = "el1")]
1256 far_el1: FarEl1::empty(),
1257 #[cfg(feature = "el2")]
1258 far_el2: FarEl2::empty(),
1259 fcseidr: 0,
1260 #[cfg(feature = "el1")]
1261 gcr_el1: GcrEl1::empty(),
1262 #[cfg(feature = "el1")]
1263 gcscr_el1: GcscrEl1::empty(),
1264 #[cfg(feature = "el2")]
1265 gcscr_el2: GcscrEl2::empty(),
1266 #[cfg(feature = "el3")]
1267 gpccr_el3: GpccrEl3::empty(),
1268 #[cfg(feature = "el3")]
1269 gptbr_el3: GptbrEl3::empty(),
1270 hacr: 0,
1271 #[cfg(feature = "el2")]
1272 hacr_el2: 0,
1273 hactlr: 0,
1274 hactlr2: 0,
1275 hadfsr: 0,
1276 #[cfg(feature = "el2")]
1277 hafgrtr_el2: HafgrtrEl2::empty(),
1278 haifsr: 0,
1279 hamair0: 0,
1280 hamair1: 0,
1281 hcptr: Hcptr::empty(),
1282 hcr: Hcr::empty(),
1283 hcr2: Hcr2::empty(),
1284 #[cfg(feature = "el2")]
1285 hcrx_el2: HcrxEl2::empty(),
1286 #[cfg(feature = "el2")]
1287 hcr_el2: HcrEl2::empty(),
1288 hdcr: Hdcr::empty(),
1289 hdfar: Hdfar::empty(),
1290 #[cfg(feature = "el2")]
1291 hdfgrtr2_el2: Hdfgrtr2El2::empty(),
1292 #[cfg(feature = "el2")]
1293 hdfgrtr_el2: HdfgrtrEl2::empty(),
1294 #[cfg(feature = "el2")]
1295 hdfgwtr2_el2: Hdfgwtr2El2::empty(),
1296 #[cfg(feature = "el2")]
1297 hdfgwtr_el2: HdfgwtrEl2::empty(),
1298 #[cfg(feature = "el2")]
1299 hfgitr2_el2: Hfgitr2El2::empty(),
1300 #[cfg(feature = "el2")]
1301 hfgitr_el2: HfgitrEl2::empty(),
1302 #[cfg(feature = "el2")]
1303 hfgrtr2_el2: Hfgrtr2El2::empty(),
1304 #[cfg(feature = "el2")]
1305 hfgrtr_el2: HfgrtrEl2::empty(),
1306 #[cfg(feature = "el2")]
1307 hfgwtr2_el2: Hfgwtr2El2::empty(),
1308 #[cfg(feature = "el2")]
1309 hfgwtr_el2: HfgwtrEl2::empty(),
1310 hifar: Hifar::empty(),
1311 hmair0: Hmair0::empty(),
1312 hmair1: Hmair1::empty(),
1313 hpfar: Hpfar::empty(),
1314 #[cfg(feature = "el2")]
1315 hpfar_el2: HpfarEl2::empty(),
1316 hrmr: Hrmr::empty(),
1317 hsctlr: Hsctlr::empty(),
1318 hsr: Hsr::empty(),
1319 hstr: 0,
1320 #[cfg(feature = "el2")]
1321 hstr_el2: 0,
1322 htcr: Htcr::empty(),
1323 htpidr: Htpidr::empty(),
1324 htrfcr: Htrfcr::empty(),
1325 httbr: Httbr::empty(),
1326 hvbar: Hvbar::empty(),
1327 #[cfg(feature = "el1")]
1328 icc_ap0r0_el1: 0,
1329 #[cfg(feature = "el1")]
1330 icc_ap0r1_el1: 0,
1331 #[cfg(feature = "el1")]
1332 icc_ap0r2_el1: 0,
1333 #[cfg(feature = "el1")]
1334 icc_ap0r3_el1: 0,
1335 #[cfg(feature = "el1")]
1336 icc_ap1r0_el1: IccAp1r0El1::empty(),
1337 #[cfg(feature = "el1")]
1338 icc_ap1r1_el1: 0,
1339 #[cfg(feature = "el1")]
1340 icc_ap1r2_el1: 0,
1341 #[cfg(feature = "el1")]
1342 icc_ap1r3_el1: 0,
1343 icc_asgi1r: IccAsgi1r::empty(),
1344 #[cfg(feature = "el1")]
1345 icc_asgi1r_el1: IccAsgi1rEl1::empty(),
1346 icc_bpr0: IccBpr0::empty(),
1347 #[cfg(feature = "el1")]
1348 icc_bpr0_el1: IccBpr0El1::empty(),
1349 icc_bpr1: IccBpr1::empty(),
1350 #[cfg(feature = "el1")]
1351 icc_bpr1_el1: IccBpr1El1::empty(),
1352 icc_ctlr: IccCtlr::empty(),
1353 #[cfg(feature = "el1")]
1354 icc_ctlr_el1: IccCtlrEl1::empty(),
1355 #[cfg(feature = "el3")]
1356 icc_ctlr_el3: IccCtlrEl3::empty(),
1357 icc_dir: IccDir::empty(),
1358 #[cfg(feature = "el1")]
1359 icc_dir_el1: IccDirEl1::empty(),
1360 icc_eoir0: IccEoir0::empty(),
1361 #[cfg(feature = "el1")]
1362 icc_eoir0_el1: IccEoir0El1::empty(),
1363 icc_eoir1: IccEoir1::empty(),
1364 #[cfg(feature = "el1")]
1365 icc_eoir1_el1: IccEoir1El1::empty(),
1366 icc_hppir0: IccHppir0::empty(),
1367 #[cfg(feature = "el1")]
1368 icc_hppir0_el1: IccHppir0El1::empty(),
1369 icc_hppir1: IccHppir1::empty(),
1370 #[cfg(feature = "el1")]
1371 icc_hppir1_el1: IccHppir1El1::empty(),
1372 icc_hsre: IccHsre::empty(),
1373 icc_iar0: IccIar0::empty(),
1374 #[cfg(feature = "el1")]
1375 icc_iar0_el1: IccIar0El1::empty(),
1376 icc_iar1: IccIar1::empty(),
1377 #[cfg(feature = "el1")]
1378 icc_iar1_el1: IccIar1El1::empty(),
1379 icc_igrpen0: IccIgrpen0::empty(),
1380 #[cfg(feature = "el1")]
1381 icc_igrpen0_el1: IccIgrpen0El1::empty(),
1382 icc_igrpen1: IccIgrpen1::empty(),
1383 #[cfg(feature = "el1")]
1384 icc_igrpen1_el1: IccIgrpen1El1::empty(),
1385 #[cfg(feature = "el3")]
1386 icc_igrpen1_el3: IccIgrpen1El3::empty(),
1387 icc_mctlr: IccMctlr::empty(),
1388 icc_mgrpen1: IccMgrpen1::empty(),
1389 icc_msre: IccMsre::empty(),
1390 #[cfg(feature = "el1")]
1391 icc_nmiar1_el1: IccNmiar1El1::empty(),
1392 icc_pmr: IccPmr::empty(),
1393 #[cfg(feature = "el1")]
1394 icc_pmr_el1: IccPmrEl1::empty(),
1395 icc_rpr: IccRpr::empty(),
1396 #[cfg(feature = "el1")]
1397 icc_rpr_el1: IccRprEl1::empty(),
1398 icc_sgi0r: IccSgi0r::empty(),
1399 #[cfg(feature = "el1")]
1400 icc_sgi0r_el1: IccSgi0rEl1::empty(),
1401 icc_sgi1r: IccSgi1r::empty(),
1402 #[cfg(feature = "el1")]
1403 icc_sgi1r_el1: IccSgi1rEl1::empty(),
1404 icc_sre: IccSre::empty(),
1405 #[cfg(feature = "el1")]
1406 icc_sre_el1: IccSreEl1::empty(),
1407 #[cfg(feature = "el2")]
1408 icc_sre_el2: IccSreEl2::empty(),
1409 #[cfg(feature = "el3")]
1410 icc_sre_el3: IccSreEl3::empty(),
1411 #[cfg(feature = "el2")]
1412 ich_hcr_el2: IchHcrEl2::empty(),
1413 #[cfg(feature = "el2")]
1414 ich_vmcr_el2: IchVmcrEl2::empty(),
1415 #[cfg(feature = "el1")]
1416 id_aa64dfr0_el1: IdAa64dfr0El1::empty(),
1417 #[cfg(feature = "el1")]
1418 id_aa64dfr1_el1: IdAa64dfr1El1::empty(),
1419 #[cfg(feature = "el1")]
1420 id_aa64isar1_el1: IdAa64isar1El1::empty(),
1421 #[cfg(feature = "el1")]
1422 id_aa64isar2_el1: IdAa64isar2El1::empty(),
1423 #[cfg(feature = "el1")]
1424 id_aa64mmfr0_el1: IdAa64mmfr0El1::empty(),
1425 #[cfg(feature = "el1")]
1426 id_aa64mmfr1_el1: IdAa64mmfr1El1::empty(),
1427 #[cfg(feature = "el1")]
1428 id_aa64mmfr2_el1: IdAa64mmfr2El1::empty(),
1429 #[cfg(feature = "el1")]
1430 id_aa64mmfr3_el1: IdAa64mmfr3El1::empty(),
1431 #[cfg(feature = "el1")]
1432 id_aa64pfr0_el1: IdAa64pfr0El1::empty(),
1433 #[cfg(feature = "el1")]
1434 id_aa64pfr1_el1: IdAa64pfr1El1::empty(),
1435 #[cfg(feature = "el1")]
1436 id_aa64smfr0_el1: IdAa64smfr0El1::empty(),
1437 id_afr0: 0,
1438 id_dfr0: IdDfr0::empty(),
1439 id_dfr1: IdDfr1::empty(),
1440 id_isar0: IdIsar0::empty(),
1441 id_isar1: IdIsar1::empty(),
1442 id_isar2: IdIsar2::empty(),
1443 id_isar3: IdIsar3::empty(),
1444 id_isar4: IdIsar4::empty(),
1445 id_isar5: IdIsar5::empty(),
1446 id_isar6: IdIsar6::empty(),
1447 id_mmfr0: IdMmfr0::empty(),
1448 id_mmfr1: IdMmfr1::empty(),
1449 id_mmfr2: IdMmfr2::empty(),
1450 id_mmfr3: IdMmfr3::empty(),
1451 id_mmfr4: IdMmfr4::empty(),
1452 id_mmfr5: IdMmfr5::empty(),
1453 id_pfr0: IdPfr0::empty(),
1454 id_pfr1: IdPfr1::empty(),
1455 id_pfr2: IdPfr2::empty(),
1456 ifar: Ifar::empty(),
1457 ifsr: Ifsr::empty(),
1458 isr: Isr::empty(),
1459 #[cfg(feature = "el1")]
1460 isr_el1: IsrEl1::empty(),
1461 jidr: 0,
1462 jmcr: 0,
1463 joscr: 0,
1464 mair0: Mair0::empty(),
1465 mair1: Mair1::empty(),
1466 #[cfg(feature = "el1")]
1467 mair_el1: MairEl1::empty(),
1468 #[cfg(feature = "el2")]
1469 mair_el2: MairEl2::empty(),
1470 #[cfg(feature = "el3")]
1471 mair_el3: MairEl3::empty(),
1472 #[cfg(feature = "el1")]
1473 mdccint_el1: MdccintEl1::empty(),
1474 #[cfg(feature = "el2")]
1475 mdcr_el2: MdcrEl2::empty(),
1476 #[cfg(feature = "el3")]
1477 mdcr_el3: MdcrEl3::empty(),
1478 #[cfg(feature = "el1")]
1479 mdscr_el1: MdscrEl1::empty(),
1480 midr: Midr::empty(),
1481 #[cfg(feature = "el1")]
1482 midr_el1: MidrEl1::empty(),
1483 #[cfg(feature = "el2")]
1484 mpam2_el2: Mpam2El2::empty(),
1485 #[cfg(feature = "el3")]
1486 mpam3_el3: Mpam3El3::empty(),
1487 #[cfg(feature = "el2")]
1488 mpamhcr_el2: MpamhcrEl2::empty(),
1489 #[cfg(feature = "el1")]
1490 mpamidr_el1: MpamidrEl1::empty(),
1491 #[cfg(feature = "el2")]
1492 mpamvpm0_el2: Mpamvpm0El2::empty(),
1493 #[cfg(feature = "el2")]
1494 mpamvpm1_el2: Mpamvpm1El2::empty(),
1495 #[cfg(feature = "el2")]
1496 mpamvpm2_el2: Mpamvpm2El2::empty(),
1497 #[cfg(feature = "el2")]
1498 mpamvpm3_el2: Mpamvpm3El2::empty(),
1499 #[cfg(feature = "el2")]
1500 mpamvpm4_el2: Mpamvpm4El2::empty(),
1501 #[cfg(feature = "el2")]
1502 mpamvpm5_el2: Mpamvpm5El2::empty(),
1503 #[cfg(feature = "el2")]
1504 mpamvpm6_el2: Mpamvpm6El2::empty(),
1505 #[cfg(feature = "el2")]
1506 mpamvpm7_el2: Mpamvpm7El2::empty(),
1507 #[cfg(feature = "el2")]
1508 mpamvpmv_el2: MpamvpmvEl2::empty(),
1509 mpidr: Mpidr::empty(),
1510 #[cfg(feature = "el1")]
1511 mpidr_el1: MpidrEl1::empty(),
1512 mvbar: Mvbar::empty(),
1513 nmrr: Nmrr::empty(),
1514 nsacr: Nsacr::empty(),
1515 par: Par::empty(),
1516 #[cfg(feature = "el1")]
1517 par_el1: ParEl1::empty(),
1518 pmccfiltr: Pmccfiltr::empty(),
1519 pmccntr: Pmccntr::empty(),
1520 pmceid0: Pmceid0::empty(),
1521 pmceid1: Pmceid1::empty(),
1522 pmceid2: Pmceid2::empty(),
1523 pmceid3: Pmceid3::empty(),
1524 pmcntenclr: Pmcntenclr::empty(),
1525 pmcntenset: Pmcntenset::empty(),
1526 pmcr: Pmcr::empty(),
1527 pmcr_el0: PmcrEl0::empty(),
1528 pmintenclr: Pmintenclr::empty(),
1529 pmintenset: Pmintenset::empty(),
1530 pmmir: Pmmir::empty(),
1531 pmovsr: Pmovsr::empty(),
1532 pmovsset: Pmovsset::empty(),
1533 pmselr: Pmselr::empty(),
1534 pmswinc: Pmswinc::empty(),
1535 pmuserenr: Pmuserenr::empty(),
1536 pmxevtyper: Pmxevtyper::empty(),
1537 prrr: Prrr::empty(),
1538 revidr: 0,
1539 #[cfg(feature = "el1")]
1540 rgsr_el1: RgsrEl1::empty(),
1541 rmr: Rmr::empty(),
1542 rvbar: Rvbar::empty(),
1543 scr: Scr::empty(),
1544 #[cfg(feature = "el3")]
1545 scr_el3: ScrEl3::empty(),
1546 sctlr: Sctlr::empty(),
1547 #[cfg(feature = "el3")]
1548 sctlr2_el3: Sctlr2El3::empty(),
1549 #[cfg(feature = "el1")]
1550 sctlr_el1: SctlrEl1::empty(),
1551 #[cfg(feature = "el2")]
1552 sctlr_el2: SctlrEl2::empty(),
1553 #[cfg(feature = "el3")]
1554 sctlr_el3: SctlrEl3::empty(),
1555 sdcr: Sdcr::empty(),
1556 sder: Sder::empty(),
1557 #[cfg(feature = "el3")]
1558 smcr_el3: SmcrEl3::empty(),
1559 #[cfg(feature = "el1")]
1560 spsr_el1: SpsrEl1::empty(),
1561 #[cfg(feature = "el2")]
1562 spsr_el2: SpsrEl2::empty(),
1563 #[cfg(feature = "el3")]
1564 spsr_el3: SpsrEl3::empty(),
1565 #[cfg(feature = "el1")]
1566 sp_el1: SpEl1::empty(),
1567 #[cfg(feature = "el2")]
1568 sp_el2: SpEl2::empty(),
1569 svcr: Svcr::empty(),
1570 tcmtr: 0,
1571 #[cfg(feature = "el1")]
1572 tcr2_el1: Tcr2El1::empty(),
1573 #[cfg(feature = "el2")]
1574 tcr2_el2: Tcr2El2::empty(),
1575 #[cfg(feature = "el1")]
1576 tcr_el1: TcrEl1::empty(),
1577 #[cfg(feature = "el2")]
1578 tcr_el2: TcrEl2::empty(),
1579 #[cfg(feature = "el3")]
1580 tcr_el3: TcrEl3::empty(),
1581 #[cfg(feature = "el1")]
1582 tfsre0_el1: Tfsre0El1::empty(),
1583 #[cfg(feature = "el1")]
1584 tfsr_el1: TfsrEl1::empty(),
1585 #[cfg(feature = "el2")]
1586 tfsr_el2: TfsrEl2::empty(),
1587 tlbtr: Tlbtr::empty(),
1588 tpidrprw: Tpidrprw::empty(),
1589 tpidrro_el0: TpidrroEl0::empty(),
1590 tpidruro: Tpidruro::empty(),
1591 tpidrurw: Tpidrurw::empty(),
1592 tpidr_el0: TpidrEl0::empty(),
1593 #[cfg(feature = "el1")]
1594 tpidr_el1: TpidrEl1::empty(),
1595 #[cfg(feature = "el2")]
1596 tpidr_el2: TpidrEl2::empty(),
1597 #[cfg(feature = "el3")]
1598 tpidr_el3: TpidrEl3::empty(),
1599 trfcr: Trfcr::empty(),
1600 ttbcr: Ttbcr::empty(),
1601 ttbcr2: Ttbcr2::empty(),
1602 ttbr0: Ttbr0::empty(),
1603 #[cfg(feature = "el1")]
1604 ttbr0_el1: Ttbr0El1::empty(),
1605 #[cfg(feature = "el2")]
1606 ttbr0_el2: Ttbr0El2::empty(),
1607 #[cfg(feature = "el3")]
1608 ttbr0_el3: Ttbr0El3::empty(),
1609 ttbr1: Ttbr1::empty(),
1610 #[cfg(feature = "el1")]
1611 ttbr1_el1: Ttbr1El1::empty(),
1612 #[cfg(feature = "el2")]
1613 ttbr1_el2: Ttbr1El2::empty(),
1614 vbar: Vbar::empty(),
1615 #[cfg(feature = "el1")]
1616 vbar_el1: VbarEl1::empty(),
1617 #[cfg(feature = "el2")]
1618 vbar_el2: VbarEl2::empty(),
1619 vdfsr: Vdfsr::empty(),
1620 vdisr: Vdisr::empty(),
1621 #[cfg(feature = "el2")]
1622 vdisr_el2: VdisrEl2::empty(),
1623 vmpidr: Vmpidr::empty(),
1624 #[cfg(feature = "el2")]
1625 vmpidr_el2: VmpidrEl2::empty(),
1626 vpidr: Vpidr::empty(),
1627 #[cfg(feature = "el2")]
1628 vpidr_el2: VpidrEl2::empty(),
1629 #[cfg(feature = "el2")]
1630 vsesr_el2: VsesrEl2::empty(),
1631 vtcr: Vtcr::empty(),
1632 #[cfg(feature = "el2")]
1633 vtcr_el2: VtcrEl2::empty(),
1634 vttbr: Vttbr::empty(),
1635 #[cfg(feature = "el2")]
1636 vttbr_el2: VttbrEl2::empty(),
1637 #[cfg(feature = "el3")]
1638 zcr_el3: ZcrEl3::empty(),
1639 }
1640 }
1641}