<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html>

<head>
<title>instance-of</title>
<link rel=stylesheet href="opcode.css">
</head>

<body>

<h1>instance-of</h1>

<h2>Purpose</h2>

<p>
Store in the given destination register 1 if the indicated reference is an
instance of the given type, or 0 if not. The type must be a reference type (not
a primitive type).
</p>

<h2>Details</h2>

<table class="instruc">
<thead>
<tr>
  <th>Op &amp; Format</th>
  <th>Mnemonic / Syntax</th>
  <th>Arguments</th>
</tr>
</thead>
<tbody>
<tr>
  <td>20 22c</td>
  <td>instance-of vA, vB, type@CCCC</td>
  <td><code>A:</code> destination register (4 bits)<br/>
    <code>B:</code> reference-bearing register (4 bits)<br/>
    <code>C:</code> type index (16 bits)</td>
</tr>
</tbody>
</table>

<h2>Constraints</h2>

<ul>
  <li>
    Both A and B must be a valid register indices for the current stack frame.
  </li>
  <li>
    Register vB must contain a reference value.
  </li>
  <li>
    C must be a valid index into the type constant pool.
  </li>
  <li>
    Type constant pool entry C must contain a valid type descriptor for a
    reference type.
  </li> 
</ul>

<h2>Behavior</h2>

<ul>
  <li>
    An attempt is made to get a reference to the class K the name of which is
    contained in type pool entry C.
  </li>
  <li>
    If K has not been loaded and resolved before, it is being loaded and
    resolved. All exceptions that are possible during class loading can occur at
    this point.
  </li>
  <li>
    The run-time type of the object reference vB is compared against K. The
    register vA reflects the result:
    <ul>
      <li>
        vA' = 1 if (and only if) vB is not null and vB is assignment compatible
        with K according to the usual rules of the Java programming language.
      </li>
      <li>
        vA' = 0 otherwise
      </li>
    </ul>
  </li>
  <li>
    If v(A-1) is the lower half of a register pair, v(A-1)' becomes undefined.
  </li>
  <li>
    If v(A+1) is the upper half of a register pair, v(A+1)' becomes undefined.
  </li> 

<h2>Exceptions</h2>

<p>
None.
</p>

</body>
</html>
