| 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