Multiply double
Bytecode
Type | Description |
u1 | dmul opcode = 0x6B (107) |
Stack ..., value1.word1, value1.word2, value2.word1, value2.word2 => ..., result.word1, result.word2
Description
Pops the top two double-precision floating point numbers off the stack, multiplies them,
and pushes the double-precision result back onto the stack. Multiplication is performed
using the standard IEEE rules for double precision floating point arithmetic.
Both value1 and value2 must be of type double
.
The values are popped from the operand stack. The double
result is value1
* value2. The result is pushed onto the operand stack.
The result of a dmul instruction is governed by the rules of IEEE arithmetic:
double
, we say the
operation overflows; the result is then an infinity of appropriate sign. If the magnitude
is too small to represent as a double
, we say the operation underflows; the
result is then a zero of appropriate sign. The Java Virtual Machine requires support of gradual underflow as defined by IEEE 754. Despite the fact that overflow, underflow, or loss of precision may occur, execution of a dmul instruction never throws a runtime exception.