if_acmp<cond>


Operation Branch if reference comparison succeeds

if_acmp<cond>
branchbyte1
branchbyte2


Forms if_acmpeq = 165 (0xa5)

if_acmpne = 166 (0xa6)

Stack ..., value1, value2 ...

Description Both value1 and value2 must be of type reference. They are both popped from the operand stack and compared. The results of the comparison are as follows:

If the comparison succeeds, the unsigned branchbyte1 and branchbyte2 are used to construct a signed 16-bit offset, where the offset is calculated to be (branchbyte1 << 8) | branchbyte2. Execution then proceeds at that offset from the address of the opcode of this if_acmp<cond> instruction. The target address must be that of an opcode of an instruction within the method that contains this if_acmp<cond> instruction.

Otherwise, if the comparison fails, execution proceeds at the address of the instruction following this if_acmp<cond> instruction.