summaryrefslogtreecommitdiffstats
path: root/docs
diff options
context:
space:
mode:
authorDan Bornstein <danfuzz@android.com>2010-10-19 16:50:25 -0700
committerDan Bornstein <danfuzz@android.com>2010-10-20 16:22:40 -0700
commita7acbf10684eb69789c1120497650fa0a8312aa7 (patch)
tree6812fd10d16b63cfb5e4072519dc2297d1ddde0c /docs
parentcbf80e1f8a13fd95a412bcd7e9af6053343c00c5 (diff)
downloadandroid_dalvik-a7acbf10684eb69789c1120497650fa0a8312aa7.tar.gz
android_dalvik-a7acbf10684eb69789c1120497650fa0a8312aa7.tar.bz2
android_dalvik-a7acbf10684eb69789c1120497650fa0a8312aa7.zip
New instruction formats for expansion beyond 256 opcodes.
Change-Id: Id57cee56a9b49a2d6434ab2c41657d4a4cb9ed61
Diffstat (limited to 'docs')
-rw-r--r--docs/instruction-formats.html70
1 files changed, 35 insertions, 35 deletions
diff --git a/docs/instruction-formats.html b/docs/instruction-formats.html
index d7bf69057..af98dde76 100644
--- a/docs/instruction-formats.html
+++ b/docs/instruction-formats.html
@@ -27,10 +27,11 @@ represents four bits, read from high bits to low, with vertical bars
("<code>|</code>") interspersed to aid in reading. Uppercase letters
in sequence from "<code>A</code>" are used to indicate fields within
the format (which then get defined further by the syntax column). The term
-"<code>op</code>" is used to indicate the position of the eight-bit
-opcode within the format. A slashed zero ("<code>&Oslash;</code>") is
-used to indicate that all bits should be zero in the indicated
-position.</p>
+"<code>op</code>" is used to indicate the position of an eight-bit
+opcode within the format, and similarly "<code>exop</code>" is used
+to indicate an extended sixteen-bit opcode. A slashed zero
+("<code>&Oslash;</code>") is used to indicate that all bits must be
+zero in the indicated position.</p>
<p>For example, the format "<code>B|A|<i>op</i> CCCC</code>" indicates
that the format consists of two 16-bit code units. The first word
@@ -364,24 +365,6 @@ the correspondence.</p>
</td>
</tr>
<tr>
- <td>B|A|<i>op</i> DDCC H|G|F|E</td>
- <td>35fs</td>
- <td><i>[<code>B=5</code>] <code>op</code></i> {vE, vF, vG, vH, vA},
- vtaboff@CC, iface@DD<br/>
- <i>[<code>B=4</code>] <code>op</code></i> {vE, vF, vG, vH},
- vtaboff@CC, iface@DD<br/>
- <i>[<code>B=3</code>] <code>op</code></i> {vE, vF, vG},
- vtaboff@CC, iface@DD<br/>
- <i>[<code>B=2</code>] <code>op</code></i> {vE, vF},
- vtaboff@CC, iface@DD<br/>
- <i>[<code>B=1</code>] <code>op</code></i> {vE},
- vtaboff@CC, iface@DD<br/>
- </td>
- <td><i>(suggested format for statically linked <code>invoke-interface</code>
- instructions of format 35c)</i>
- </td>
-</tr>
-<tr>
<td>AA|<i>op</i> BBBB CCCC</td>
<td>3rc</td>
<td><i><code>op</code></i> {vCCCC .. vNNNN}, meth@BBBB<br/>
@@ -405,24 +388,41 @@ the correspondence.</p>
</td>
</tr>
<tr>
- <td>AA|<i>op</i> CCBB DDDD</td>
- <td>3rfs</td>
- <td><i><code>op</code></i> {vDDDD .. vNNNN}, vtaboff@BB,
- iface@CC<br/>
- <p><i>(where <code>NNNN = DDDD+AA-1</code>, that is <code>A</code>
- determines the count <code>0..255</code>, and <code>D</code>
- determines the first register)</i></p>
- </td>
- <td><i>(suggested format for statically linked <code>invoke-interface</code>
- instructions of format <code>3rc</code>)</i>
- </td>
-</tr>
-<tr>
<td>AA|<i>op</i> BBBB<sub>lo</sub> BBBB BBBB BBBB<sub>hi</sub></td>
<td>51l</td>
<td><i><code>op</code></i> vAA, #+BBBBBBBBBBBBBBBB</td>
<td>const-wide</td>
</tr>
+<tr>
+ <td rowspan="2"><i>exop</i> BB|AA CCCC</td>
+ <td>33x</td>
+ <td><i><code>exop</code></i> vAA, vBB, vCCCC</td>
+ <td>&nbsp;</td>
+</tr>
+<tr>
+ <td>32s</td>
+ <td><i><code>exop</code></i> vAA, vBB, #+CCCC</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>
+ <td><i><code>exop</code></i> vBBBB, vCCCC, field@AAAAAAAA<br/>
+ <i><code>exop</code></i> vBBBB, vCCCC, type@AAAAAAAA
+ </td>
+ <td>&nbsp;</td>
+</tr>
+<tr>
+ <td>5rc</td>
+ <td><i><code>exop</code></i> {vBBBB .. vNNNN}, meth@AAAAAAAA<br/>
+ <i><code>exop</code></i> {vBBBB .. vNNNN}, type@AAAAAAAA<br/>
+ <p><i>(where <code>NNNN = BBBB+CCCC-1</code>, that is
+ <code>B</code> determines the first register and <code>C</code>
+ determines the count <code>0..65535</code>)</i></p>
+ </td>
+ <td>&nbsp;</td>
+</tr>
</tbody>
</table>