diff options
Diffstat (limited to 'docs/BytecodeFormat.html')
-rw-r--r-- | docs/BytecodeFormat.html | 26 |
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"> |