1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
6 <title>return-object</title>
7 <link rel=stylesheet href="opcode.css">
12 <h1>return-object</h1>
17 Return from an object-returning method.
22 <table class="instruc">
25 <th>Op & Format</th>
26 <th>Mnemonic / Syntax</th>
33 <td>return-object vAA</td>
34 <td><code>A:</code> return value register (8 bits)</td>
43 The return type of the current method must be a reference.
46 A must be a valid register index in the current stack frame.
49 Register vA must be known to be reference-bearing.
57 If the method is synchronized, the object's monitor is released in a way
58 similar to the monitor-exit instruction.
61 The stack frame of the current method invocation is removed from the stack.
62 This includes all its registers becoming invalid.
65 If the stack is now empty, the current thread terminates.
68 Otherwise, the following happens:
72 The stack frame that caused this method invocation becomes valid. This
73 includes all its registers and their old values.
76 Execution continues at the bytecode instruction immediately following
77 the invoke instruction that caused this method invocation.
80 The return value can be consumed by (exactly) the first instruction
81 following the invoke-kind or invoke-kind/range instruction that caused
82 this method invocation, and this instructions needs to be a
83 move-result-object instruction.