if_icmpge :
jump if one integer is greater than or equal to
another : index : visitJumpInsn()
- Description
- if_icmpge pops the top two ints off the stack and compares
them. If value2 is greater than or equal to value1, execution
branches to the address (pc + branchoffset), where pc is
the address of the if_icmpge opcode in the bytecode and
branchoffset is a 16-bit signed integer parameter following the
if_icmpge opcode in the bytecode. If value2 is less than
value1, execution continues at the next instruction.
If you are using Jasmin, branchoffset is computed for you from the
address of <label>. - Example
iload_1 ; push the int value in local variable 1 onto the stack
bipush 2 ; push the int 2 onto the stack
if_icmpge Label ; if the value of local variable 1 >= 2, jump to Label
return ; return if local variable 1 < 2
Label:
; execution continues here if local variable 1 >= 2...
- Notes
- Addresses are measured in bytes from the start of the bytecode (i.e.
address 0 is the first byte in the bytecode of the currently executing
method).
- See also
- if_icmpeq if_icmpne if_icmplt if_icmpgt if_icmple
- Stack
Before
|
After |
value1 |
... |
value2 |
... |
|
... |
- Bytecode
Type
|
Description |
u1
|
if_icmpge
opcode = 0xA2 (162)
|
s2
|
branchoffset |