Bring 00x and 20bc into the fold.
Change-Id: I12fde7eb665c9f3b75684018457f9464b0990156
diff --git a/docs/instruction-formats.html b/docs/instruction-formats.html
index 8374460..e9e4140 100644
--- a/docs/instruction-formats.html
+++ b/docs/instruction-formats.html
@@ -52,7 +52,7 @@
for the format, which is used in other documents and in code to identify
the format.</p>
-<p>Format IDs consist of three characters, two digits followed by a
+<p>Most format IDs consist of three characters, two digits followed by a
letter. The first digit indicates the number of 16-bit code units in the
format. The second digit indicates the maximum number of registers that the
format contains (maximum, since some formats can accomodate a variable
@@ -66,7 +66,9 @@
making them four characters total. Similarly, suggested "inline" linking
formats have an additional "<code>i</code>" suffix. (In this context, inline
linking is like static linking, except with more direct ties into a
-virtual machine's implementation.)</p>
+virtual machine's implementation.) Finally, one oddball suggested format
+("<code>20bc</code>") includes two pieces of data which are represented in
+its format ID.</p>
<p>The full list of typecode letters are as follows. Note that some
forms have different sizes, depending on the format:</p>
@@ -204,6 +206,13 @@
</thead>
<tbody>
<tr>
+ <td><i>N/A</i></td>
+ <td>00x</td>
+ <td><i><code>N/A</code></i></td>
+ <td><i>pseudo-format used for unused opcodes; suggested for use as the
+ nominal format for a breakpoint opcode</i></td>
+</tr>
+<tr>
<td>ØØ|<i>op</i></td>
<td>10x</td>
<td><i><code>op</code></i></td>
@@ -238,6 +247,14 @@
<td>goto/16</td>
</tr>
<tr>
+ <td>AA|<i>op</i> BBBB</td></td>
+ <td>20bc</td>
+ <td><i><code>op</code></i> BB, kind@AAAA</td>
+ <td><i>suggested format for statically determined verification errors;
+ B is the type of error and A is an index into a type-appropriate
+ table (e.g. method references for a no-such-method error)</i></td>
+</tr>
+<tr>
<td rowspan="5">AA|<i>op</i> BBBB</td>
<td>22x</td>
<td><i><code>op</code></i> vAA, vBBBB</td>
diff --git a/opcode-gen/bytecode.txt b/opcode-gen/bytecode.txt
index 8290b47..007c41d 100644
--- a/opcode-gen/bytecode.txt
+++ b/opcode-gen/bytecode.txt
@@ -41,8 +41,8 @@
format 35c 3rc 5rc
# Optimized formats
-format 00x # not in spec; used for undefined opcodes and breakpoint
-format 20bc # not in spec; used for throw-verification-error
+format 00x
+format 20bc
format 22cs
format 35mi
format 35ms