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-exception</title> 7 <link rel=stylesheet href="opcode.css"> 8 </head> 9 10 <body> 11 12 <h1>move-exception</h1> 13 14 <h2>Purpose</h2> 15 16 <p> 17 Save a just-caught exception into the given register. This should be the first 18 instruction of any exception handler whose caught exception is not to be 19 ignored, and this instruction may only ever occur as the first instruction of an 20 exception handler; anywhere else 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>0d 11x</td> 36 <td>move-exception 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 the first instruction (in the code array) of an 50 instruction handler, that is, its offset in the code array must match one of 51 the handlers defined for the method in the Dex file. 52 </li> 53 </ul> 54 55 <h2>Behavior</h2> 56 57 <ul> 58 <li> 59 The active exception of the current thread is moved to register vA, that is, 60 vA' = exception. 61 </li> 62 <li> 63 If register v(A-1) is the lower half of a register pair, register v(A-1)' 64 becomes undefined. 65 </li> 66 <li> 67 If register v(A+1) is the upper half of a register pair, register v(A+1)' 68 becomes undefined. 69 </li> 70 </ul> 71 72 <h2>Exceptions</h2> 73 74 <p> 75 None. 76 </p> 77 78 </body> 79 </html> 80