fcmpl
Stack
Before
|
After
|
| value1
|
result
|
| value2
|
...
|
| ...
|
This takes two single-precision floating point numbers off the stack and compares them, using IEEE 754 rules.
If the two numbers are the same, the 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, the integer -1 is pushed onto the stack. If either number is NaN, the integer 1 is pushed onto the stack. +0.0 and -0.0 are treated as equal.
Example
fload_1 ; push the float in local variable 1 fconst_0 ; push the float 0 onto the stack fcmpl ; 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
|
fcmpl
opcode = 0x95 (149)
|
lcmp, fcmpg, dcmpl, dcmpg
Notes
This instruction is identical to fcmpg except for the treatment of NaN.