mtctl
#define REST_CR(r, where) LDREG where, %r1 ! mtctl %r1, r
mtctl %r3, %cr27
mtctl %r3, %cr27
mtctl %r0, %cr17
mtctl %r0, %cr18
mtctl %r0, %cr17 /* Clear IIASQ tail */
mtctl %r0, %cr17 /* Clear IIASQ head */
mtctl %r1, %ipsw
mtctl %r1, %cr18 /* Set IIAOQ tail */
mtctl %r1, %cr18 /* Set IIAOQ head */
mtctl(__space_to_prot(context), 8);
mtctl(__pa(__ldcw_align(&pgd_lock->rlock.raw_lock)), 28);
mtctl(__pa(next->pgd), 25);
#define set_eiem(val) mtctl(val, CR_EIEM)
mtctl(pgd_lock, 28);
mtctl(pgd, 25);
mtctl(prot, 8);
mtctl(~0UL, 23); /* EIRR : clear all pending external intr */
mtctl(mask, 23);
mtctl(-1, 0);
mtctl(0, 0);
mtctl(coproc_cfg.ccr_functional, 10); /* 10 == Coprocessor Control Reg */
mtctl(coproc_cfg.ccr_functional, 10);
mtctl(-1, 0);
mtctl(~0UL, CR_EIRR);
mtctl(0, CR_EIRR);
mtctl(new_cr16, 16);