iadd = 96 |
Stack: ..., value1, value2 => ..., resultvalue1 and value2 must be integers. The values are added and are replaced on the stack by their integer sum.
ladd = 97 |
Stack: ..., value1value1 and value2 must be long integers. The values are added and are replaced on the stack by their long integer sum.-word1
, value1-word2
, value2-word1
, value2-word2
=> ..., result-word1
, result-word2
fadd = 98 |
Stack: ..., value1, value2 => ..., resultvalue1 and value2 must be single-precision floating point numbers. The values are added and are replaced on the stack by their single-precision floating point sum.
dadd = 99 |
Stack: ..., value1value1 and value2 must be double-precision floating point numbers. The values are added and are replaced on the stack by their double-precision floating point sum.-word1
, value1-word2
, value2-word1
, value2-word2
=> ..., result-word1
, result-word2
isub = 100 |
Stack: ..., value1, value2 => ..., resultvalue1 and value2 must be integers. value2 is subtracted from value1, and both values are replaced on the stack by their integer difference.
lsub = 101 |
Stack: ..., value1value1 and value2 must be long integers. value2 is subtracted from value1, and both values are replaced on the stack by their long integer difference.-word1
, value1-word2
, value2-word1
, value2-word2
=> ..., result-word1
, result-word2
fsub = 102 |
Stack: ..., value1, value2 => ..., resultvalue1 and value2 must be single-precision floating point numbers. value2 is subtracted from value1, and both values are replaced on the stack by their single-precision floating point difference.
dsub = 103 |
Stack: ..., value1value1 and value2 must be double-precision floating point numbers. value2 is subtracted from value1, and both values are replaced on the stack by their double-precision floating point difference.-word1
, value1-word2
, value2-word1
, value2-word2
=> ..., result-word1
, result-word2
imul = 104 |
Stack: ..., value1, value2 => ..., resultvalue1 and value2 must be integers. Both values are replaced on the stack by their integer product.
imul = 105 |
Stack: ..., value1value1 and value2 must be long integers. Both values are replaced on the stack by their long integer product.-word1
, value1-word2
, value2-word1
, value2-word2
=> ..., result-word1
, result-word2
fmul = 106 |
Stack: ..., value1, value2 => ..., resultvalue1 and value2 must be single-precision floating point numbers. Both values are replaced on the stack by their single-precision floating point product.
dmul = 107 |
Stack: ..., value1value1 and value2 must be double-precision floating point numbers. Both values are replaced on the stack by their double-precision floating point product.-word1
, value1-word2
, value2-word1
, value2-word2
=> ..., result-word1
, result-word2
idiv = 108 |
Stack: ..., value1, value2 => ..., resultvalue1 and value2 must be integers. value1 is divided by value2, and both values are replaced on the stack by their integer quotient.
The result is truncated to the nearest integer that is between it and 0. An attempt to divide by zero results in a "/ by zero" ArithmeticException
being thrown.
ldiv = 109 |
Stack: ..., value1value1 and value2 must be long integers. value1 is divided by value2, and both values are replaced on the stack by their long integer quotient.-word1
, value1-word2
, value2-word1
, value2-word2
=> ..., result-word1
, result-word2
The result is truncated to the nearest integer that is between it and 0. An attempt to divide by zero results in a "/ by zero" ArithmeticException
being thrown.
fdiv = 110 |
Stack: ..., value1, value2 => ..., resultvalue1 and value2 must be single-precision floating point numbers. value1 is divided by value2, and both values are replaced on the stack by their single-precision floating point quotient.
Divide by zero results in the quotient being NaN.
ddiv = 111 |
Stack: ..., value1value1 and value2 must be double-precision floating point numbers. value1 is divided by value2, and both values are replaced on the stack by their double-precision floating point quotient.-word1
, value1-word2
, value2-word1
, value2-word2
=> ..., result-word1
, result-word2
Divide by zero results in the quotient being NaN.
irem = 112 |
Stack: ..., value1, value2 => ..., resultvalue1 and value2 must both be integers. value1 is divided by value2, and both values are replaced on the stack by their integer remainder.
An attempt to divide by zero results in a "/ by zero" ArithmeticException
being thrown.
Note: need a description of the integer remainder semantics
lrem = 113 |
Stack: ..., value1value1 and value2 must both be long integers. value1 is divided by value2, and both values are replaced on the stack by their long integer remainder.-word1
, value1-word2
, value2-word1
, value2-word2
=> ..., result-word1
, result-word2
An attempt to divide by zero results in a "/ by zero" ArithmeticException
being thrown.
Note: need a description of the integer remainder semantics
frem = 114 |
Stack: ..., value1, value2 => ..., resultvalue1 and value2 must both be single-precision floating point numbers. value1 is divided by value2, and the quotient is truncated to an integer, and then multiplied by value2. The product is subtracted from value1.The result, as a single-precision floating point number, replaces both values on the stack. result = value1 - (integral_part(value1/value2) * value2), where integral_part() rounds to the nearest integer, with a tie going to the even number.
An attempt to divide by zero results in NaN.
Note: gls to provide a better definition of the floating remainder semantics
drem = 115 |
Stack: ..., value1value1 and value2 must both be double-precision floating point numbers. value1 is divided by value2, and the quotient is truncated to an integer, and then multiplied by value2. The product is subtracted from value1.The result, as a double-precision floating point number, replaces both values on the stack. result = value1 - (integral_part(value1/value2) * value2), where integral_part() rounds to the nearest integer, with a tie going to the even number.-word1
, value1-word2
, value2-word1
, value2-word2
=> ..., result-word1
, result-word2
An attempt to divide by zero results in NaN.
Note: gls to provide a better definition of the floating remainder semantics
ineg = 116 |
Stack: ..., value => ..., resultvalue must be an integer. It is replaced on the stack by its arithmetic negation.
lneg = 117 |
Stack: ..., valuevalue must be a long integer. It is replaced on the stack by its arithmetic negation.-word1
, value-word2
=> ..., result-word1
, result-word2
fneg = 118 |
Stack: ..., value => ..., resultvalue must be a single-precision floating point number. It is replaced on the stack by its arithmetic negation.
dneg = 119 |
Stack: ..., valuevalue must be a double-precision floating point number. It is replaced on the stack by its arithmetic negation.-word1
, value-word2
=> ..., result-word1
, result-word2