summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorDan Bornstein <danfuzz@android.com>2010-10-20 17:32:39 -0700
committerDan Bornstein <danfuzz@android.com>2010-10-21 13:01:19 -0700
commit7f01b33ca264fef60de72fd00258dc95604286de (patch)
tree4c2db412529aebed9d219d8a22d3abf0f4b37635 /docs
parentbab85777f09b375f5301f5dbb4884b3c8f215b59 (diff)
downloaddalvik-7f01b33ca264fef60de72fd00258dc95604286de.tar.gz
One more format and our first set of wide opcodes.
Change-Id: I16731c1b66b40022c2e10c93640583ae43659701
Diffstat (limited to 'docs')
-rw-r--r--docs/dalvik-bytecode.html152
-rw-r--r--docs/instruction-formats.html8
2 files changed, 157 insertions, 3 deletions
diff --git a/docs/dalvik-bytecode.html b/docs/dalvik-bytecode.html
index 35fa64b0a..6fb3d99fc 100644
--- a/docs/dalvik-bytecode.html
+++ b/docs/dalvik-bytecode.html
@@ -706,7 +706,7 @@
72: invoke-interface
</td>
<td><code>B:</code> argument word count (4 bits)<br/>
- <code>C:</code> method index (16 bits)<br/>
+ <code>C:</code> method reference index (16 bits)<br/>
<code>D..G, A:</code> argument registers (4 bits each)</td>
<td>Call the indicated method. The result (if any) may be stored
with an appropriate <code>move-result*</code> variant as the immediately
@@ -749,7 +749,7 @@
78: invoke-interface/range
</td>
<td><code>A:</code> argument word count (8 bits)<br/>
- <code>B:</code> method index (16 bits)<br/>
+ <code>B:</code> method reference index (16 bits)<br/>
<code>C:</code> first argument register (16 bits)<br/>
<code>N = A + C - 1</code></td>
<td>Call the indicated method. See first <code>invoke-<i>kind</i></code>
@@ -927,11 +927,157 @@
</td>
</tr>
<tr>
- <td>e3..ff 10x</td>
+ <td>e3..fe 10x</td>
<td><i>(unused)</i></td>
<td>&nbsp;</td>
<td><i>(unused)</i></td>
</tr>
+<tr>
+ <td>ff -</td>
+ <td><i>(expanded opcode)</i></td>
+ <td>&nbsp;</td>
+ <td>An <code>ff</code> in the primary opcode position indicates that there
+ is a secondary opcode in the high-order byte of the opcode code unit,
+ as opposed to an argument value. These expanded opcodes are detailed
+ immediately below.
+ </td>
+</tr>
+<tr>
+ <td>00ff 41c</td>
+ <td>check-cast/jumbo vBBBB, type@AAAAAAAA</td>
+ <td><code>A:</code> type index (32 bits)<br/>
+ <code>B:</code> reference-bearing register (16 bits)
+ </td>
+ <td>Throw a <code>ClassCastException</code> if the reference in the
+ given register cannot be cast to the indicated type. See
+ <code>check-cast</code> description above for details,
+ caveats, and suggestions.
+ </td>
+</tr>
+<tr>
+ <td>01ff 52c</td>
+ <td>instance-of/jumbo vBBBB, vCCCC, type@AAAAAAAA</td>
+ <td><code>A:</code> type index (32 bits)<br/>
+ <code>B:</code> destination register (16 bits)<br/>
+ <code>C:</code> reference-bearing register (16 bits)
+ </td>
+ <td>Store in the given destination register <code>1</code>
+ if the indicated reference is an instance of the given type,
+ or <code>0</code> if not. See
+ <code>instance-of</code> description above for details,
+ caveats, and suggestions.
+ </td>
+</tr>
+<tr>
+ <td>02ff 41c</td>
+ <td>new-instance/jumbo vBBBB, type@AAAAAAAA</td>
+ <td><code>A:</code> type index (32 bits)<br/>
+ <code>B:</code> destination register (16 bits)
+ </td>
+ <td>Construct a new instance of the indicated type. See
+ <code>new-instance</code> description above for details,
+ caveats, and suggestions.
+ </td>
+</tr>
+<tr>
+ <td>03ff 52c</td>
+ <td>new-array/jumbo vBBBB, vCCCC, type@AAAAAAAA</td>
+ <td><code>A:</code> type index (32 bits)<br/>
+ <code>B:</code> destination register (16 bits)<br/>
+ <code>C:</code> size register (16 bits)
+ </td>
+ <td>Construct a new array of the indicated type and size. See
+ <code>new-array</code> description above for details,
+ caveats, and suggestions.
+ </td>
+</tr>
+<tr>
+ <td>04ff 5rc</td>
+ <td>filled-new-array/jumbo {vCCCC .. vNNNN}, type@AAAAAAAA</td>
+ <td><code>A:</code> type index (32 bits)<br/>
+ <code>B:</code> array size and argument word count (16 bits)<br/>
+ <code>C:</code> first argument register (16 bits)<br/>
+ <code>N = B + C - 1</code>
+ </td>
+ <td>Construct an array of the given type and size, filling it with the
+ supplied contents. See first
+ <code>filled-new-array</code> description above for details,
+ caveats, and suggestions.
+ </td>
+</tr>
+<tr>
+ <td>05ff..12ff 52c</td>
+ <td>i<i>instanceop</i> vBBBB, vCCCC, field@AAAAAAAA<br/>
+ 05ff: iget/jumbo<br/>
+ 06ff: iget-wide/jumbo<br/>
+ 07ff: iget-object/jumbo<br/>
+ 08ff: iget-boolean/jumbo<br/>
+ 09ff: iget-byte/jumbo<br/>
+ 0aff: iget-char/jumbo<br/>
+ 0bff: iget-short/jumbo<br/>
+ 0cff: iput/jumbo<br/>
+ 0dff: iput-wide/jumbo<br/>
+ 0eff: iput-object/jumbo<br/>
+ 0fff: iput-boolean/jumbo<br/>
+ 10ff: iput-byte/jumbo<br/>
+ 11ff: iput-char/jumbo<br/>
+ 12ff: iput-short/jumbo
+ </td>
+ <td><code>A:</code> instance field reference index (32 bits)<br/>
+ <code>B:</code> value register or pair; may be source or dest
+ (16 bits)<br/>
+ <code>C:</code> object register (16 bits)
+ </td>
+ <td>Perform the identified object instance field operation. See
+ <code>i<i>instanceop</i></code> description above for details,
+ caveats, and suggestions.
+ </td>
+</tr>
+<tr>
+ <td>13ff..20ff 41c</td>
+ <td>s<i>staticop</i> vBBBB, field@AAAAAAAA<br/>
+ 13ff: sget/jumbo<br/>
+ 14ff: sget-wide/jumbo<br/>
+ 15ff: sget-object/jumbo<br/>
+ 16ff: sget-boolean/jumbo<br/>
+ 17ff: sget-byte/jumbo<br/>
+ 18ff: sget-char/jumbo<br/>
+ 19ff: sget-short/jumbo<br/>
+ 1aff: sput/jumbo<br/>
+ 1bff: sput-wide/jumbo<br/>
+ 1cff: sput-object/jumbo<br/>
+ 1dff: sput-boolean/jumbo<br/>
+ 1eff: sput-byte/jumbo<br/>
+ 1fff: sput-char/jumbo<br/>
+ 20ff: sput-short/jumbo
+ </td>
+ <td><code>A:</code> instance field reference index (32 bits)<br/>
+ <code>B:</code> value register or pair; may be source or dest
+ (16 bits)
+ </td>
+ <td>Perform the identified object static field operation. See
+ <code>s<i>staticop</i></code> description above for details,
+ caveats, and suggestions.
+ </td>
+</tr>
+<tr>
+ <td>21ff..25ff 5rc</td>
+ <td>invoke-<i>kind</i>/jumbo {vCCCC .. vNNNN}, meth@AAAAAAAA<br/>
+ 21ff: invoke-virtual/jumbo<br/>
+ 22ff: invoke-super/jumbo<br/>
+ 23ff: invoke-direct/jumbo<br/>
+ 24ff: invoke-static/jumbo<br/>
+ 25ff: invoke-interface/jumbo
+ </td>
+ <td><code>A:</code> method reference index (32 bits)<br/>
+ <code>B:</code> argument word count (16 bits)<br/>
+ <code>C:</code> first argument register (16 bits)<br/>
+ <code>N = B + C - 1</code>
+ </td>
+ <td>Call the indicated method. See first <code>invoke-<i>kind</i></code>
+ description above for details, caveats, and suggestions.
+ </td>
+</tr>
</tbody>
</table>
diff --git a/docs/instruction-formats.html b/docs/instruction-formats.html
index af98dde76..0a58c98fa 100644
--- a/docs/instruction-formats.html
+++ b/docs/instruction-formats.html
@@ -405,6 +405,14 @@ the correspondence.</p>
<td>&nbsp;</td>
</tr>
<tr>
+ <td><i>exop</i> AAAA<sub>lo</sub> AAAA<sub>hi</sub> BBBB
+ <td>41c</td>
+ <td><i><code>exop</code></i> vBBBB, field@AAAAAAAA<br/>
+ <i><code>exop</code></i> vBBBB, type@AAAAAAAA
+ </td>
+ <td>&nbsp;</td>
+</tr>
+<tr>
<td rowspan="2"><i>exop</i> AAAA<sub>lo</sub> AAAA<sub>hi</sub>
BBBB CCCC</td>
<td>52c</td>