fpmerge Operation Font Conventions 
if 
 (PR[qp]) { 
fp_check_target_register; 
 
if (tmp_isrcode = 
fp_reg_disabled(f1, 
 f2, f3, 0)) 
disabled_fp_register_fault(tmp_isrcode, 0); 
if (
fp_is_natval([f2]) 
 || fp_is_natval(FR[f3])) { 
FR[f1] = NATVAL; 
} else { 
if (neg_sign_form) { 
tmp_res_hi = (!FR[f2].significand{63} << 31) 
| (FR[f3].significand{62:32}); 
tmp_res_lo = (!FR[f2].significand{31} << 31) 
| (FR[f3].significand{30:0}); 
} else if (sign_form) { 
tmp_res_hi = (FR[f2].significand{63} << 31) 
| (FR[f3].significand{62:32}); 
tmp_res_lo = (FR[f2].significand{31} << 31) 
| (FR[f3].significand{30:0}); 
} else { // sign_exp_form 
tmp_res_hi = (FR[f2].significand{63:55} << 23) 
| (FR[f3].significand{54:32}); 
tmp_res_lo = (FR[f2].significand{31:23} << 23) 
| (FR[f3].significand{22:0}); 
} 
FR[f1].significand = fp_concatenate(tmp_res_hi, tmp_res_lo); 
FR[f1].exponent = FP_INTEGER_EXP; 
FR[f1].sign = FP_SIGN_POSITIVE; 
} 
fp_update_psr(f1); 
 
}