Intel ITANIUM ARCHITECTURE - SOFTWARE DEVELOPERS MANUAL VOLUME 1 REV 2.3 Manual page 934

Hide thumbs Also See for ITANIUM ARCHITECTURE - SOFTWARE DEVELOPERS MANUAL VOLUME 1 REV 2.3:
Table of Contents

Advertisement

chk — Speculation Check
(
) chk.s
Format:
qp
(
) chk.s.i
qp
(
) chk.s.m
qp
(
) chk.s
qp
(
) chk.a.
qp
(
) chk.a.
qp
The result of a control- or data-speculative calculation is checked for success or failure.
Description:
If the check fails, a branch to
In the control_form, success is determined by a NaT indication for the source register.
If the NaT bit corresponding to GR
the fr_form), the check fails.
In the data_form, success is determined by the ALAT. The ALAT is queried using the
general register specifier
(in the fr_form). If no ALAT entry matches, the check fails. An implementation may
optionally cause the check to fail independent of whether an ALAT entry matches. A
chk.a with general register specifier r0 or floating-point register specifiers f0 or f1
always fails.
The target
instruction as a signed immediate displacement (
the bundle containing this instruction (
The branching behavior of this instruction can be optionally unimplemented. If the
instruction would have branched, and the branching behavior is not implemented, then
a Speculative Operation fault is taken and the value specified by
and placed in the Interruption Immediate control register (IIM). The fault handler
emulates the branch by sign-extending the IIM value, adding it to IIP and returning.
The control_form of this instruction for checking general registers can be encoded on
either an I-unit or an M-unit. The pseudo-op can be used if the unit type to execute on
is unimportant.
For the data_form, if an ALAT entry matches, the matching ALAT entry can be optionally
invalidated, based on the value of the aclr completer (See
Table 2-14.
aclr Completer
clr
nc
Note that if the clr value of the aclr completer is used and the check succeeds, the
matching ALAT entry is invalidated. However, if the check fails (which may happen even
if there is a matching ALAT entry), any matching ALAT entry may optionally be
invalidated, but this is not required. Recovery code for data speculation, therefore,
cannot rely on the absence of a matching ALAT entry.
Volume 3: Instruction Reference
,
r
target
2
25
,
r
target
2
25
,
r
target
2
25
,
f
target
2
25
,
aclr r
target
1
25
,
aclr f
target
1
25
target
(in the gr_form), or the floating-point register specifier f
r
1
operand, in assembly, specifies a label to branch to. This is encoded in the
25
ALAT Clear Completer
Invalidate matching ALAT entry
Don't invalidate
control_form, i_unit_form, gr_form
control_form, m_unit_form, gr_form
is taken.
25
is 1 (in the gr_form), or FR f
r
2
) between the target bundle and
imm
21
=
- IP >> 4).
imm
target
21
25
Effect on ALAT
pseudo-op
control_form, fr_form
data_form, gr_form
data_form, fr_form
contains a NaTVal (in
2
is zero-extended
imm
21
Table
2-14).
chk
I20
M20
M21
M22
M23
1
3:35

Advertisement

Table of Contents
loading

This manual is also suitable for:

Itanium architecture 2.3

Table of Contents