NonStop S-Series Server Description Manual (G06.24+)

TNS Instruction Set
HP NonStop S-Series Server Description Manual520331-003
11-24
Definitions of TNS Instructions
Condition Code settings; the “a” states apply for comparisons.) Both operands are
then deleted from the stack.
FDIV (000273). Floating-Point Divide. The floating-point quantity in DC is divided in
floating-point form by the floating-point quantity in BA. Both operands are deleted and
the result is pushed onto the stack. Overflow is set if the result falls outside the range
of floating-point numbers. Condition Code is set on the result.
FMPY (000272). Floating-Point Multiply. The floating-point quantities in DC and BA
are multiplied in floating-point form. Both operands are deleted, and the result is
pushed onto the stack. Overflow is set if the result falls outside the range of floating-
point numbers. Condition Code is set on the result.
FNEG (000274). Floating-Point Negate. The floating-point quantity in BA (if not zero)
is negated. The sign of BA is reversed from positive to negative or negative to
positive, and the Condition Code reflects the final state of the sign (see Table B-1 on
page B-1).
FSUB (000271). Floating-Point Subtract. The floating-point quantity in BA is negated,
and then DC and BA are added in floating-point form. Both operands are deleted, and
the result is pushed onto the stack. Overflow is set if the result falls outside the range
of floating-point numbers. Condition Code is set on the result.
IADD (000210). Integer Add A to B. A is added to B in integer (signed) form. A and B
are then deleted from the stack and the sum is pushed onto the stack. Overflow is set
if the result is greater than 32767 or less than –32768. Condition Code is set.
ICMP (000215). Integer Compare B With A. B is compared to A in integer (signed)
form and the Condition Code set accordingly. A and B are then deleted from the stack.
IDIV (000213). Integer (Signed) Divide B by A. B is divided by A in integer (signed)
form. A and B are deleted from the stack and the result pushed on. Overflow is set if
the divisor is zero, or if the result is greater than 32767 or less than –32768. Condition
Code is set.
IDX1 (000344). Calculate Index, 1 Dimension. For a one-dimensional array, IDX1
compares the subscript value in B against lower and upper bounds in a two-word table
in the current code segment starting at the address specified in A. The element offset
value is computed and stored in register R[7]. Condition Code is set based on the
result in R[7]. If the subscript is out of bounds, overflow is set. BA is then deleted.
IDX2 (000345). Calculate Index, 2 Dimensions. For a two-dimensional array, IDX2
compares the subscript values in B and C against lower and upper bounds in a four-
word table in the current code segment starting at the address in A. The element
offset value is computed and stored in register R[7]. Condition Code is set based on
the result in R[7]. If a subscript is out of bounds, overflow is set. CBA is then deleted.
IDX3 (000346). Calculate Index, 3 Dimensions. For a three-dimensional array, IDX3
compares the subscript values in B, C, and D against lower and upper bounds in a
six-word table in the current code segment starting at the address in A. The element
offset value is computed and stored in register R[7]. Condition Code is set based on