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

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

Advertisement

czx — Compute Zero Index
(
) czx1.l
Format:
qp
(
) czx1.r
qp
(
) czx2.l
qp
(
) czx2.r
qp
GR
is scanned for a zero element. The element is either an 8-bit aligned byte
Description:
r
3
(one_byte_form) or a 16-bit aligned pair of bytes (two_byte_form). The index of the
first zero element is placed in GR
value is placed in GR
the source is scanned from most significant element to least significant element, and in
the right_form it is scanned from least significant element to most significant element.
Table 2-21.
Size
1
2
Operation:
if (PR[qp]) {
check_target_register(r
if (one_byte_form) {
if (left_form) {
} else { // right_form
}
} else { // two_byte_form
if (left_form) {
} else { // right_form
Volume 3: Instruction Reference
=
r
r
1
3
=
r
r
1
3
=
r
r
1
3
=
r
r
1
3
r
.
Table 2-21
r
1
Result Ranges for czx
Range of Result if Zero Element
Element Width
8 bit
16 bit
);
1
if
((GR[r
] & 0xff00000000000000) == 0) GR[r
3
else if ((GR[r
] & 0x00ff000000000000) == 0) GR[r
3
else if ((GR[r
] & 0x0000ff0000000000) == 0) GR[r
3
else if ((GR[r
] & 0x000000ff00000000) == 0) GR[r
3
else if ((GR[r
] & 0x00000000ff000000) == 0) GR[r
3
else if ((GR[r
] & 0x0000000000ff0000) == 0) GR[r
3
else if ((GR[r
] & 0x000000000000ff00) == 0) GR[r
3
else if ((GR[r
] & 0x00000000000000ff) == 0) GR[r
3
else GR[r
] = 8;
1
if
((GR[r
] & 0x00000000000000ff) == 0) GR[r
3
else if ((GR[r
] & 0x000000000000ff00) == 0) GR[r
3
else if ((GR[r
] & 0x0000000000ff0000) == 0) GR[r
3
else if ((GR[r
] & 0x00000000ff000000) == 0) GR[r
3
else if ((GR[r
] & 0x000000ff00000000) == 0) GR[r
3
else if ((GR[r
] & 0x0000ff0000000000) == 0) GR[r
3
else if ((GR[r
] & 0x00ff000000000000) == 0) GR[r
3
else if ((GR[r
] & 0xff00000000000000) == 0) GR[r
3
else GR[r
] = 8;
1
if
((GR[r
] & 0xffff000000000000) == 0) GR[r
3
else if ((GR[r
] & 0x0000ffff00000000) == 0) GR[r
3
else if ((GR[r
] & 0x00000000ffff0000) == 0) GR[r
3
else if ((GR[r
] & 0x000000000000ffff) == 0) GR[r
3
else GR[r
] = 4;
1
if
((GR[r
] & 0x000000000000ffff) == 0) GR[r
3
else if ((GR[r
] & 0x00000000ffff0000) == 0) GR[r
3
one_byte_form, left_form
one_byte_form, right_form
two_byte_form, left_form
two_byte_form, right_form
. If there are no zero elements in GR
1
gives the possible result values. In the left_form,
Found
0-7
0-3
// scan from most significant down
scan from least significant up
// scan from most significant down
scan from least significant up
, a default
r
3
Default Result if No Zero Element
Found
8
4
] = 0;
1
] = 1;
1
] = 2;
1
] = 3;
1
] = 4;
1
] = 5;
1
] = 6;
1
] = 7;
1
] = 0;
1
] = 1;
1
] = 2;
1
] = 3;
1
] = 4;
1
] = 5;
1
] = 6;
1
] = 7;
1
] = 0;
1
] = 1;
1
] = 2;
1
] = 3;
1
] = 0;
1
] = 1;
1
czx
I29
I29
I29
I29
3:49

Advertisement

Table of Contents
loading

This manual is also suitable for:

Itanium architecture 2.3

Table of Contents