__ARMREG_STRING
"at " __ARMREG_STRING(stage) ", %1 \n" \
__asm __volatile("mrs %0, " __ARMREG_STRING(reg) : "=&r" (val)); \
__asm __volatile("msr " __ARMREG_STRING(reg) ", %0" : : "r"((uint64_t)val))