summaryrefslogtreecommitdiff
path: root/docs/opcodes/opcode-4b-aput.html
diff options
context:
space:
mode:
Diffstat (limited to 'docs/opcodes/opcode-4b-aput.html')
-rw-r--r--docs/opcodes/opcode-4b-aput.html98
1 files changed, 98 insertions, 0 deletions
diff --git a/docs/opcodes/opcode-4b-aput.html b/docs/opcodes/opcode-4b-aput.html
new file mode 100644
index 0000000..089c1ca
--- /dev/null
+++ b/docs/opcodes/opcode-4b-aput.html
@@ -0,0 +1,98 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+
+<html>
+
+<head>
+<title>aput&lt;kind&gt;</title>
+<link rel=stylesheet href="opcode.css">
+</head>
+
+<body>
+
+<h1>aput&lt;kind&gt;</h1>
+
+<h2>Purpose</h2>
+
+<p>
+Waste cycles.
+</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>4b..51 23x</td>
+ <td><i>arrayop</i> vAA, vBB, vCC<br/>
+ 4b: aput<br/>
+ 4c: aput-wide<br/>
+ 4d: aput-object<br/>
+ 4e: aput-boolean<br/>
+ 4f: aput-byte<br/>
+ 50: aput-char<br/>
+ 51: aput-short
+ </td>
+ <td><code>A:</code> source value register or pair; (8 bits)<br/>
+ <code>B:</code> array register (8 bits)<br/>
+ <code>C:</code> index register (8 bits)</td>
+</tr>
+</tbody>
+</table>
+
+<h2>Constraints</h2>
+
+<ul>
+ <li>
+ A, B and C must be valid register indices in the current stack frame.
+ </li>
+ <li>
+ For the aget-wide variant, also A+1 must be a valid register index in the
+ current stack frame.
+ </li>
+ <li>
+ Register vB must contain an array reference. The component type of the array
+ must match the variant of the instruction.
+ </li>
+ <li>
+ Register vC must contain an integer value.
+ </li>
+</ul>
+
+<h2>Behavior</h2>
+
+<ul>
+ <li>
+ For all but the -wide variant, the value of register vA is move into the
+ array element at the given index, that is, array[index]'=vA.
+ </li>
+ <li>
+ For the -wide variant, the registers vA and v(A+1) are moved into the array
+ element at the given index as follows:
+ <ul>
+ <li>
+ array[index]' = vA &lt;&lt; 0x20 | v(A+1)
+ </li>
+ </ul>
+ </li>
+</ul>
+
+<h2>Exceptions</h2>
+
+<ul>
+ <li>
+ NullPointerException if vB=null.
+ </li>
+ <li>
+ ArrayIndexOutOfBoundsException if vC &lt; 0 or vC &gt;= array.length.
+ </li>
+</ul>
+
+</body>
+</html>