USER_SR
if (i == USER_SR || i == KERNEL_SR || i == KERNEL2_SR) {
#define PMAP_DIRECT_MAPPED_SR (MIN(USER_SR, KERNEL_SR) - 1)
#ifndef USER_SR
#define USER_ADDR ((void *)(USER_SR << ADDR_SR_SHFT))
__asm ("mfsr %0,%1" : "=r"(savesr) : "K"(USER_SR)); /* see above XXX */
__asm ("mtsr %0,%1; isync" :: "K"(USER_SR), "r"(savesr));
KASSERT((va >> ADDR_SR_SHFT) != USER_SR);
else if (__predict_false((va >> ADDR_SR_SHFT) == USER_SR)) {
pcb->pcb_kmapsr = USER_SR;
p = (USER_SR << ADDR_SR_SHFT) + (uva & ~SEGMENT_MASK);
:: "n"(USER_SR), "r"(pcb->pcb_pm->pm_sr[pcb->pcb_umapsr]));
:: "n"(USER_SR), "r"(EMPTY_SEGMENT));
sf->sf_user_sr = pmap_kernel()->pm_sr[USER_SR]; /* again, just in case */