1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 2 3 <html> 4 5 <head> 6 <title>move-result-object</title> 7 <link rel=stylesheet href="opcode.css"> 8 </head> 9 10 <body> 11 12 <h1>move-result-object</h1> 13 14 <h2>Purpose</h2> 15 16 <p> 17 Move the object result of the most recent invoke-kind into the indicated 18 register. This must be done as the instruction immediately after an invoke-kind 19 or filled-new-array whose (object) result is not to be ignored; anywhere else 20 is invalid. 21 </p> 22 23 <h2>Details</h2> 24 25 <table class="instruc"> 26 <thead> 27 <tr> 28 <th>Op & Format</th> 29 <th>Mnemonic / Syntax</th> 30 <th>Arguments</th> 31 </tr> 32 </thead> 33 <tbody> 34 <tr> 35 <td>0c 11x</td> 36 <td>move-result-object vAA</td> 37 <td><code>A:</code> destination register (8 bits)</td> 38 </tr> 39 </tbody> 40 </table> 41 42 <h2>Constraints</h2> 43 44 <ul> 45 <li> 46 A must be a valid register index in the current stack frame. 47 </li> 48 <li> 49 The instruction must be immediately preceded (in the code array) by an 50 invoke-kind, filled-new-array, or filled-new-array/range instruction. 51 </li> 52 <li> 53 The instruction must be immediately reached (in the actual control flow) 54 through returning from this invoke-kind instruction or by passing a 55 filled-new-array or filled-new-array/range instruction (it must not be 56 jumped to). 57 </li> 58 <li> 59 The result delivered by the invoke-kind instruction must be a reference 60 value (which excludes the case of a long and double values). 61 </li> 62 </ul> 63 64 <h2>Behavior</h2> 65 66 <ul> 67 <li> 68 The result delivered by the invoke-kind instruction is moved to register 69 vA, that, is vA' = result. 70 </li> 71 <li> 72 If register v(A-1) is the lower half of a register pair, register v(A-1)' 73 becomes undefined. 74 </li> 75 <li> 76 If register v(A+1) is the upper half of a register pair, register v(A+1)' 77 becomes undefined. 78 </li> 79 </ul> 80 81 <h2>Exceptions</h2> 82 83 <p> 84 None. 85 </p> 86 87 <h2>Notes</h2> 88 89 <p> 90 This instruction can also be thought of as reading the contents of a special 91 "result" register that is made valid and defined by executing a non-void return 92 instruction or a filled-new-array instruction. The execution of any other 93 instruction (including this one) renders this special register invalid. 94 </p> 95 96 </body> 97 </html> 98