mov ar Operation Font Conventions
if (PR[qp]) {
tmp_type = (i_form ? AR_I_TYPE : AR_M_TYPE);
if ( is_reserved_reg(tmp_type, ar3))
illegal_operation_fault();

if (from_form) {
check_target_register
;
if (((ar3 == BSPSTORE) || (ar3 == RNAT)) && ( AR[RSC].mode != 0))
illegal_operation_fault();

if (ar3 == ITC && PSR.si && PSR.cpl != 0)
privileged_register_fault();

GR
[r1] = ( is_ignored_reg(ar3)) ? 0 : AR[ar3];
GR[r1].nat = 0;
} else { // to_form
tmp_val = (register_form) ? GR[r2] : sign_ext(imm8, 8);

if (is_read_only_register(AR_TYPE, ar3) ||
(((ar3 == BSPSTORE) || (ar3 == RNAT)) && (AR[RSC].mode != 0))) illegal_operation_fault();

if (register_form && GR[r2].nat)
register_nat_consumption_fault(0);

if ( is_reserved_field(AR_TYPE, ar3, tmp_val))
reserved_register_field_fault();

if (( is_kernel_reg(ar3) || ar3 == ITC) && (PSR.cpl != 0))
privileged_register_fault();

if (! is_ignored_reg(ar3)) {
tmp_val = ignored_field_mask(AR_TYPE, ar3, tmp_val);
// check for illegal promotion
if (ar3 == RSC && tmp_val{3:2} u< PSR.cpl)
tmp_val{3:2} = PSR.cpl;
AR
[ar3] = tmp_val;

if (ar3 == BSPSTORE) {
AR[BSP] = rse_update_internal_stack_pointers(tmp_val);
AR[RNAT] = undefined();
}
}
}
}