Home | History | Annotate | Download | only in opcodes
      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 &amp; 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