WRITE_SPECIALREG
WRITE_SPECIALREG(tpidr_el1, t);
WRITE_SPECIALREG(SCTLR_EL1, sctlr);
WRITE_SPECIALREG(SCTLR_EL2, sctlr);
WRITE_SPECIALREG(SCTLR_EL3, sctlr);
WRITE_SPECIALREG(TCR_EL1, tcr);
WRITE_SPECIALREG(MAIR_EL1, MAIR_VALUE);
WRITE_SPECIALREG(TTBR0_EL1, sTTBR0);
WRITE_SPECIALREG(TTBR1_EL1, sTTBR1);
WRITE_SPECIALREG(HCR_EL2, HCR_RW | HCR_TGE | HCR_E2H | HCR_AMO | HCR_IMO | HCR_FMO);
WRITE_SPECIALREG(CPACR_EL1, CPACR_FPEN_TRAP_NONE);
WRITE_SPECIALREG(CNTKCTL_EL1, 0b11);
WRITE_SPECIALREG(SCTLR_EL1, SCTLR_LSMAOE | SCTLR_nTLSMD
WRITE_SPECIALREG(TTBR0_EL1, ((uint64_t)to->fASID << 48) | ttbr);
WRITE_SPECIALREG(TTBR0_EL1, (allocatedAsid << 48) | ttbr);
WRITE_SPECIALREG(TTBR0_EL1, (i << 48) | ttbr);
WRITE_SPECIALREG(VBAR_EL1, _exception_vectors);
WRITE_SPECIALREG(TCR_EL1, tcr);
WRITE_SPECIALREG(CNTV_TVAL_EL0, timeout * sTimerTicksUS);
WRITE_SPECIALREG(CNTV_CTL_EL0, TIMER_ENABLE);
WRITE_SPECIALREG(CNTV_CTL_EL0, TIMER_DISABLED);
WRITE_SPECIALREG(CNTV_CTL_EL0, TIMER_DISABLED);
WRITE_SPECIALREG(CNTV_CTL_EL0, TIMER_DISABLED);
WRITE_SPECIALREG(TTBR0_EL1, sEmptyTable);