3:36
Volume 3: Instruction Reference
chk
Operation:
if (PR[
qp
]) {
if (control_form) {
if (fr_form && (tmp_isrcode = fp_reg_disabled(
f
2
, 0, 0, 0)))
disabled_fp_register_fault(tmp_isrcode, 0);
check_type = gr_form ? CHKS_GENERAL : CHKS_FLOAT;
fail = (gr_form && GR[
r
2
].nat) || (fr_form && FR[
f
2
] == NATVAL);
} else {
// data_form
if (gr_form) {
reg_type = GENERAL;
check_type = CHKA_GENERAL;
alat_index =
r
1
;
always_fail = (alat_index == 0);
} else {
// fr_form
reg_type = FLOAT;
check_type = CHKA_FLOAT;
alat_index =
f
1
;
always_fail = ((alat_index == 0) || (alat_index == 1));
}
fail = (always_fail || (!alat_cmp(reg_type, alat_index)));
}
if (fail) {
if (check_branch_implemented(check_type)) {
taken_branch = 1;
IP = IP + sign_ext((
imm
21
<< 4), 25);
if (!impl_uia_fault_supported() &&
((PSR.it && unimplemented_virtual_address(IP, PSR.vm))
|| (!PSR.it && unimplemented_physical_address(IP))))
unimplemented_instruction_address_trap(0, IP);
if (PSR.tb)
taken_branch_trap();
} else
speculation_fault(check_type, zero_ext(
imm
21
, 21));
} else if (data_form && (
aclr
== ‘clr’))
alat_inval_single_entry(reg_type, alat_index);
}
Interruptions:
Disabled Floating-point Register fault
Unimplemented Instruction Address trap
Speculative Operation fault
Taken Branch trap
Summary of Contents for Itanium 9150M
Page 1: ......
Page 209: ...3 200 Volume 3 Instruction Reference padd Interruptions Illegal Operation fault...
Page 405: ...3 396 Volume 3 Resource and Dependency Semantics...
Page 406: ...3 397 Intel Itanium Architecture Software Developer s Manual Rev 2 3 Index...
Page 407: ...3 398 Intel Itanium Architecture Software Developer s Manual Rev 2 3...
Page 419: ...INDEX Index 12 Index for Volumes 1 2 3 and 4...
Page 420: ......