Based on Bill Verners' Inside the Java Virtual Machine, McGraw Hill Companies, 1997

f2d - Convert float to double
  opcode:  141 (0x8d)
  usage: f2d
  stack before: ..., value
stack after: ..., result.word1, result.word2
 
description: The top word of the operand stack, value, must be a float. To execute the f2d instruction, the Java Virtual Machine pops float value from the operand stack, converts the float to a double, and pushes the double result. Because all float values are representable by a double, the conversion is exact.

f2i - Convert float to int
  opcode:  139 (0x8b)
  usage: f2i
  stack before: ..., value
stack after: ..., result
 
description: The top word of the operand stack, value, must be a float. To execute the f2i instruction, the Java Virtual Machine pops the float value from the operand stack, converts the float to an int, and pushes the int result. If float is a NaN, the int result is 0. Else, if the float value is not a positive or negative infinity, the virtual machine rounds the value towards zero using IEEE 754 round-towards-zero mode. If the resulting integral value can be exactly represented by an int, the int result is that integral value. Otherwise, the magnitude of the float value is too great be represented in an int. If value is positive, the int result is the largest positive integer representable in an int. If value is negative, the int result is the smallest negative integer representable in an int. Because not all float values are representable by an int, the conversion may result in a loss of magnitude and precision.

f2l - Convert float to long
  opcode:  140 (0x8c)
  usage: f2l
  stack before: ..., value
stack after: ..., result.word1, result.word2
 
description: The top word of the operand stack, value, must be a float. To execute the f2l instruction, the Java Virtual Machine pops the float value from the operand stack, converts the float to a long, and pushes the long result. To convert the float value to long, the Java Virtual Machine first checks to see if the value equals NaN (Not a Number). If so, the long result is zero. Else, if the float value is not a positive or negative infinity, the virtual machine rounds the value towards zero using IEEE 754 round-towards-zero mode. If the resulting integral value can be exactly represented by a long, the long result is that integral value. Otherwise, the magnitude of the float value is too great be represented in a long. If value is positive, the long result is the largest positive integer representable in a long. If value is negative, the int result is the smallest negative integer representable in a long. Note that this instruction performs a narrowing primitive conversion. Because not all float values are representable by a long, the conversion may result in a loss of magnitude and precision.

fadd - Add floats
  opcode:  98 (0x62)
  usage: fadd
  stack before: ..., value1, value2
stack after: ..., result
 
description: The two top word of the operand stack must represent two float values. This instruction pops two words from the stack, adds them and pushes float result on the stack.

faload - Load float from array
  opcode:  48 (0x30)
  usage: faload
  stack before: ..., arrayref, index
stack after: ..., value
 
description: The Java Virtual Machine takes two top words from the stack. Arrayref must a reference to a float array  and i must be an integer. As a result virtual machine pushes float value from index i of array arrayref on the stack.
exceptions: NullPointerException - arrayref is null
ArrayIndexOutOfBoundsException - i is not a legal array index

fastore - Store into float array
  opcode:  81 (0x51)
  usage: fastore
  stack before: ..., arrayref, index, value
stack after: ...
 
description: The Java Virtual Machine stores byte value in index i of array arrayref. Arrayref must be a float array, i must be an integer and value must be a float.
exceptions: NullPointerException - arrayref is null
ArrayIndexOutOfBoundsException - i is not a legal array index
ArrayStoreException - value is not a float

fcmpg - Compare floats (1 on NaN)
  opcode:  150 (0x96)
  usage: fcmpg
  stack before: ..., value1, value2
stack after: ..., result
 
description: Top two words of the stack must represent two floats. Instruction pops value1 and value2 from the stack, compares them and pushes int result on the stack. If values are equal, the Java Virtual Machine pushes 0 on the stack. Else, if value1 is greater than value2, the virtual machine pushes 1 on the stack. Otherwhise, if value2 is greater than value1, the virtual machine pushes -1 on the stack. If either of the two values is a NaN, the Java Virtual Machine pushes 1 on the stack.

fcmpl - Compare floats (-1 on NaN)
  opcode:  149 (0x95)
  usage: fcmpl
  stack before: ..., value1, value2
stack after: ..., result
 
description: Top two words of the stack must represent two floats. Instruction pops value1 and value2 from the stack, compares them and pushes int result on the stack. If values are equal, the Java Virtual Machine pushes 0 on the stack. Else, if value1 is greater than value2, the virtual machine pushes 1 on the stack. Otherwhise, if value2 is greater than value1, the virtual machine pushes -1 on the stack. If either of the two values is a NaN, the Java Virtual Machine pushes -1 on the stack.

fconst_0 - Push float constant 0.0
  opcode:  11 (0xb)
  usage: fconst_0
  stack before: ...
stack after: ..., <0.0
 
description: The Java Virtual Machine pushes constant float 0.0 on the stack.

fconst_1 - Push float constant 1.0
  opcode:  12 (0xc)
  usage: fconst_1
  stack before: ...
stack after: ..., <1.0
 
description: The Java Virtual Machine pushes constant float 1.0 on the stack.

fconst_2 - Push float constant 2.0
  opcode:  13 (0xd)
  usage: fconst_2
  stack before: ...
stack after: ..., <2.0
 
description: The Java Virtual Machine pushes constant float 2.0 on the stack.

fdiv - Divide floats
  opcode:  110 (0x6e)
  usage: fdiv
  stack before: ..., value1, value2
stack after: ..., result
 
description: The top two words of the operand stack must be two floats. To execute the fdiv instruction, the Java Virtual Machine pops value1 and value2, divides them and pushes the float result.

fload - Load float from local variable
  opcode:  23 (0x17)
  usage: fload index
  stack before: ...
stack after: ..., value
 
description: The Java Virtual Machine loads value value from local variable index (unsigned 8-bit) and pushes it on the stack. The value stored in local variable index must be a float.

fload_0 - Load float from local variable 0
  opcode:  34 (0x22)
  usage: fload_0
  stack before: ...
stack after: ..., value
 
description: The Java Virtual Machine loads value value from local variable 0 and pushes it on the stack. The value stored in local variable index must be a float.

fload_1 - Load float from local variable 1
  opcode:  35 (0x23)
  usage: fload_1
  stack before: ...
stack after: ..., value
 
description: The Java Virtual Machine loads value value from local variable 1 and pushes it on the stack. The value stored in local variable index must be a float.

fload_2 - Load float from local variable 2
  opcode:  36 (0x24)
  usage: fload_2
  stack before: ...
stack after: ..., value
 
description: The Java Virtual Machine loads value value from local variable 2 and pushes it on the stack. The value stored in local variable index must be a float.

fload_3 - Load float from local variable 3
  opcode:  37 (0x25)
  usage: fload_3
  stack before: ...
stack after: ..., value
 
description: The Java Virtual Machine loads value value from local variable 3 and pushes it on the stack. The value stored in local variable index must be a float.

fmul - Multiply floats
  opcode:  106 (0x6a)
  usage: fmul
  stack before: ..., value1, value2
stack after: ..., result
 
description: The top two words of the operand stack must be two floats. To execute the fmul instruction, the Java Virtual Machine pops value1 and value2, multiplies them and pushes the float result.

fneg - Negate float
  opcode:  118 (0x76)
  usage: fneg
  stack before: ..., value
stack after: ..., result
 
description: The top word of the operand stack must be a float. To execute the fneg instruction, the Java Virtual Machine pops float value from the stack, negates it and puts float result on the operand stack.

frem - Calculate remainder of division of floats
  opcode:  114 (0x72)
  usage: frem
  stack before: ..., value1, value2
stack after: ..., result
 
description: The top two words of the operand stack must be two floats. To execute the frem instruction, the Java Virtual Machine pops value1 and value2, calculates the remainder, and pushes the float result. The remainder equals value1 - (value1 / value2) * value2.

freturn - Return float from method
  opcode:  174 (0xae)
  usage: freturn
  stack before: ..., value
stack after: [empty]
 
description: freturn must be invoked inside a method of return type being a float. It returns a top word from a stack and leaves the method.

fstore - Store float into local variable
  opcode:  56 (0x38)
  usage: fstore index
  stack before: ..., value
stack after: ...
 
description: The instruction takes parameter index and value from the stack. Top word on the stack must be a float. Index must be an unsigned 8-bit number. As a result the Java Virtual Machine stores value into local variable index.

fstore_0 - Store float into local variable 0
  opcode:  67 (0x43)
  usage: fstore_0
  stack before: ..., value
stack after: ...
 
description: Top word on the stack must be a float. The Java Virtual Machine stores value into local variable 0.

fstore_1 - Store float into local variable 1
  opcode:  68 (0x44)
  usage: fstore_1
  stack before: ..., value
stack after: ...
 
description: Top word on the stack must be a float. The Java Virtual Machine stores value into local variable 1.

fstore_2 - Store float into local variable 2
  opcode:  69 (0x45)
  usage: fstore_2
  stack before: ..., value
stack after: ...
 
description: Top word on the stack must be a float. The Java Virtual Machine stores value into local variable 2.

fstore_3 - Store float into local variable 3
  opcode:  70 (0x46)
  usage: fstore_3
  stack before: ..., value
stack after: ...
 
description: Top word on the stack must be a float. The Java Virtual Machine stores value into local variable 3.

fsub - Subtract floats
  opcode:  102 (0x66)
  usage: fsub
  stack before: ..., value1, value2
stack after: ..., result
 
description: The top two words of the operand stack must be two floats. To execute the fsub instruction, the Java Virtual Machine pops value1 and value2, substracts them and pushes the float result