aboutsummaryrefslogtreecommitdiff
path: root/docs/BytecodeFormat.html
diff options
context:
space:
mode:
authorReid Spencer <rspencer@reidspencer.com>2004-05-22 05:56:41 +0000
committerReid Spencer <rspencer@reidspencer.com>2004-05-22 05:56:41 +0000
commit939290f808fb8dbed0d09d2a657bb70b239c4aa9 (patch)
treefb003035ab37e355972508fff8d5c6c28844bd2c /docs/BytecodeFormat.html
parent500266187c677671905399680787d8d0881d2ea5 (diff)
Some additional data added to the bytecode specification.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13626 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'docs/BytecodeFormat.html')
-rw-r--r--docs/BytecodeFormat.html55
1 files changed, 35 insertions, 20 deletions
diff --git a/docs/BytecodeFormat.html b/docs/BytecodeFormat.html
index 3169f162ee..48b9f09e2a 100644
--- a/docs/BytecodeFormat.html
+++ b/docs/BytecodeFormat.html
@@ -67,9 +67,21 @@ the next block. The possible types of blocks are described below in the section
it is possible for entire blocks to be omitted from the file if they are
empty. The block identifier helps the reader determine which kind of block is
next in the file.</p>
-<p>
-Except for the <a href="#header">Header Block</a> all blocks are variable
-length. The consume just enough bytes to express their contents.</p>
+<p>The following block identifiers are currently in use
+(from llvm/Bytecode/Format.h):</p>
+<ol>
+ <li><b>Module (0x01)</b>.</li>
+ <li><b>Function (0x11)</b>.</li>
+ <li><b>ConstantPool (0x12)</b>.</li>
+ <li><b>SymbolTable (0x13)</b>.</li>
+ <li><b>ModuleGlobalInfo (0x14)</b>.</li>
+ <li><b>GlobalTypePlane (0x15)</b>.</li>
+ <li><b>BasicBlock (0x31)</b>.</li>
+ <li><b>InstructionList (0x32)</b>.</li>
+ <li><b>CompactionTable (0x33)</b>.</li>
+</ol>
+<p> Except for the <a href="#header">Header Block</a> all blocks are variable
+length. They consume just enough bytes to express their contents.</p>
</div>
<!-- _______________________________________________________________________ -->
<div class="doc_subsection"><a name="lists">Lists</a> </div>
@@ -130,6 +142,7 @@ will be added to ensure that the next entry is aligned to a 32-bit boundary.
<li><b>Align?</b> Indicates if this field is aligned to 32 bits or not.
This indicates where the <em>next</em> field starts, always on a 32 bit
boundary.</li>
+ <li><b>Type</b>. The basic type of information contained in the field.</li>
<li><b>Description</b>. Descripts the contents of the field.</li>
</ol>
</div>
@@ -168,42 +181,43 @@ bytecode version. This block is fixed length and always eight bytes, as follows:
<th><b>Byte(s)</b></th>
<th><b>Bit(s)</b></th>
<th><b>Align?</b></th>
+ <th><b>Type</b></th>
<th align="left"><b>Field Description</b></th>
</tr>
<tr>
- <td>00</td><td>00-07</td><td>No</td>
- <td align="left">Constant "l"</td>
+ <td>00</td><td>00-07</td><td>No</td><td>Char</td>
+ <td align="left">Constant "l" (0x6C)</td>
</tr>
<tr>
- <td>01</td><td>00-07</td><td>No</td>
- <td align="left">Constant "l"</td>
+ <td>01</td><td>00-07</td><td>No</td><td>Char</td>
+ <td align="left">Constant "l" (0x6C)</td>
</tr>
<tr>
- <td>02</td><td>00-07</td><td>No</td>
- <td align="left">Constant "v"</td>
+ <td>02</td><td>00-07</td><td>No</td><td>Char</td>
+ <td align="left">Constant "v" (0x76)</td>
</tr>
<tr>
- <td>03</td><td>00-07</td><td>No</td>
- <td align="left">Constant "m"</td>
+ <td>03</td><td>00-07</td><td>No</td><td>Char</td>
+ <td align="left">Constant "m" (0x6D)</td>
</tr>
<tr>
- <td>04-07</td><td>00</td><td>No</td>
- <td align="left">Target is big endian</td>
+ <td>04-07</td><td>00</td><td>No</td><td>Bool</td>
+ <td align="left">Target is big endian?</td>
</tr>
<tr>
- <td>04-07</td><td>01</td><td>No</td>
- <td align="left">Target has long pointers</td>
+ <td>04-07</td><td>01</td><td>No</td><td>Bool</td>
+ <td align="left">Target has long pointers?</td>
</tr>
<tr>
- <td>04-07</td><td>02</td><td>No</td>
- <td align="left">Target has no endianess</td>
+ <td>04-07</td><td>02</td><td>No</td><td>Bool</td>
+ <td align="left">Target has no endianess?</td>
</tr>
<tr>
- <td>04-07</td><td>03</td><td>No</td>
- <td align="left">Target has no pointer size</td>
+ <td>04-07</td><td>03</td><td>No</td><td>Bool</td>
+ <td align="left">Target has no pointer size?</td>
</tr>
<tr>
- <td>04-07</td><td>04-31</td><td>Yes</td>
+ <td>04-07</td><td>04-31</td><td>Yes</td><td>Unsigned</td>
<td align="left">The LLVM bytecode format version number</td>
</tr>
</table>
@@ -227,6 +241,7 @@ bytecode version. This block is fixed length and always eight bytes, as follows:
<!-- _______________________________________________________________________ -->
<div class="doc_subsection"><a name="symtab">Module Symbol Table</a> </div>
<div class="doc_text">
+<p>The module symbol table is a list of
</div>
<!-- *********************************************************************** -->