return-wide
Purpose
Return from a double-width (64-bit) value-returning method.
Details
Op & Format |
Mnemonic / Syntax |
Arguments |
10 11x |
return-wide vAA |
A: return value register-pair (8 bits) |
Constraints
-
The return type of the current method must be double or long.
-
A+1 must be a valid register index in the current stack frame (which
includes A being valid).
-
Register vA must be the lower half of a register pair.
-
The type of vA must match the return type of the method.
Behavior
-
If the method is synchronized, the object's monitor is released in a way
similar to the monitor-exit instruction.
-
The stack frame of the current method invocation is removed from the stack.
This includes all its registers becoming invalid.
-
If the stack is now empty, the current thread terminates.
-
Otherwise, the following happens:
-
The stack frame that caused this method invocation becomes valid. This
includes all its registers and their old values.
-
Execution continues at the bytecode instruction immediately following
the invoke instruction that caused this method invocation.
-
The return value can be consumed by (exactly) the first instruction
following the invoke-kind or invoke-kind/range instruction that caused
this method invocation, and this instructions needs to be a
move-result-wide instruction.
Exceptions
None.