dcmpl
Stack Before
Description After value1-word1 int-result value1-word2 ... value2-word1 value2-word2 ...
This takes two double-precision floating point numbers off the operand stack and compares them, using IEEE 754 rules.
If the two numbers are the same, the 32-bit integer 0 is pushed onto the stack. If value2 is greater than value1, the integer 1 is pushed onto the stack. If value1 is greater than value2, -1 is pushed onto the stack. If either numbers is NaN, the integer 1 is pushed onto the stack. +0.0 and -0.0 are treated as equal.
Example
dload_1 ; push the double in local variable 1 dconst_0 ; push the double 0.0 onto the stack dcmpl ; compare the two numbers ; The integer result on the stack is: ; 0 if local variable 1 equals 0 ; -1 if local variable 1 is less than 0 ; 1 if local variable 1 is greater than 0Bytecode
Type | Description |
u1 | dcmpl opcode = 0x97 (151) |
lcmp, fcmpl, fcmpg, dcmpg
Notes
This instruction is identical to dcmpg except for the treatment of NaN.