summaryrefslogtreecommitdiffstats
path: root/llvm/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
commitf57b8b9e70b25a6686c198982dd2809211bb7a94 (patch)
tree613b2658b0dd1ec6f342bd89c26b8dcff37c462e /llvm/docs/BytecodeFormat.html
parent30cee49933b1cbcfdd44cfe82c08bb0d8b54c224 (diff)
downloadbcm5719-llvm-f57b8b9e70b25a6686c198982dd2809211bb7a94.tar.gz
bcm5719-llvm-f57b8b9e70b25a6686c198982dd2809211bb7a94.zip
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! llvm-svn: 15826
Diffstat (limited to 'llvm/docs/BytecodeFormat.html')
-rw-r--r--llvm/docs/BytecodeFormat.html26
1 files changed, 22 insertions, 4 deletions
diff --git a/llvm/docs/BytecodeFormat.html b/llvm/docs/BytecodeFormat.html
index 5bb5d537fb6..76365b4ea0d 100644
--- a/llvm/docs/BytecodeFormat.html
+++ b/llvm/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">
OpenPOWER on IntegriCloud