aboutsummaryrefslogtreecommitdiff
path: root/docs/BytecodeFormat.html
diff options
context:
space:
mode:
authorReid Spencer <rspencer@reidspencer.com>2004-08-16 19:24:36 +0000
committerReid Spencer <rspencer@reidspencer.com>2004-08-16 19:24:36 +0000
commit5bc74d551a530491984bd9e78b331e6664188058 (patch)
tree1e469814a274f8d5bfb895731de7a583503f597c /docs/BytecodeFormat.html
parentcdc4b86e35e8f091ec3f24c9205f6d645b4d03d6 (diff)
Correct the documentation for the module block header which uses the long
format instead of the short format used in other blocks. Discrepancy noted by Robert Mykland. Thanks Robert! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15826 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'docs/BytecodeFormat.html')
-rw-r--r--docs/BytecodeFormat.html26
1 files changed, 22 insertions, 4 deletions
diff --git a/docs/BytecodeFormat.html b/docs/BytecodeFormat.html
index 5bb5d537fb..76365b4ea0 100644
--- a/docs/BytecodeFormat.html
+++ b/docs/BytecodeFormat.html
@@ -614,10 +614,13 @@ sections.</p>
<th class="td_left"><b>Field Description</b></th>
</tr>
<tr>
- <td><a href="#block">block</a><br>
- </td>
- <td class="td_left">Module Block Identifier (0x01) and Size<br>
- </td>
+ <td><a href="#unsigned">unsigned</a><br></td>
+ <td class="td_left"><a href="#mod_header">Module Block Identifier
+ (0x01)</a></td>
+ </tr>
+ <tr>
+ <td><a href="#unsigned">unsigned</a></td>
+ <td class="td_left"><a href="#mod_header">Module Block Size</a></td>
</tr>
<tr>
<td><a href="#uint32_vbr">uint32_vbr</a></td>
@@ -646,6 +649,21 @@ sections.</p>
</tbody>
</table>
</div>
+
+<!-- _______________________________________________________________________ -->
+<div class="doc_subsubsection"><a name="mod_header">Module Block Header</a></div>
+<div class="doc_text">
+ <p>The block header for the module block uses a longer format than the other
+ blocks in a bytecode file. Specifically, instead of encoding the type and size
+ of the block into a 32-bit integer with 5-bits for type and 27-bits for size,
+ the module block header uses two 32-bit unsigned values, one for type, and one
+ for size. While the 2<sup>27</sup> byte limit on block size is sufficient for the blocks
+ contained in the module, it isn't sufficient for the module block itself
+ because we want to ensure that bytecode files as large as 2<sup>32</sup> bytes
+ are possible. For this reason, the module block (and only the module block)
+ uses a long format header.</p>
+</div>
+
<!-- _______________________________________________________________________ -->
<div class="doc_subsubsection"><a name="format">Format Information</a></div>
<div class="doc_text">