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

<html>

<head>
<title>new-array</title>
<link rel=stylesheet href="opcode.css">
</head>

<body>

<h1>new-array</h1>

<h2>Purpose</h2>

<p>
Construct a new array of the indicated type and size. The type must be an array
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>23 22c</td>
  <td>new-array vA, vB, type@CCCC</td>
  <td><code>A:</code> destination register (8 bits)<br/>
    <code>B:</code> size register<br/>
    <code>C:</code> type index</td>
</tr>
</tbody>
</table>

<h2>Constraints</h2>

<ul>
  <li>
    A and B must be valid register indices for the current stack frame.
  </li>
  <li>
    Register vB must not contain a reference value.
  </li>
  <li>
    Register vB must not be part of a register pair.
  </li>
  <li>
    C must be a valid index into the type pool.
  </li>
  <li>
    Type constant pool entry C must contain a valid array type descriptor.
  </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>
    An attempt is made to create a new instance I of K and length B. All
    exceptions that are possible during instantiation can occur at this point.
  </li>
  <li>
    All elements of the new array are initialized to null (for object arrays) or
    0 (for numeric arrays) or false (for boolean arrays).
  </li>
  <li>
    A reference to the new array is moved to register vA, that is, vA' = I.
  </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>
</ul>

<h2>Exceptions</h2>

<ul>
  <li>
    NegativeArraySizeException if vB < 0
  </li>
  <li>
    All exceptions that are possible during class loading can occur.
  </li>
  <li>
    All exceptions that are possible during instantiation can occur.
  </li>
</ul>

</body>
</html>
