From 5bc74d551a530491984bd9e78b331e6664188058 Mon Sep 17 00:00:00 2001 From: Reid Spencer Date: Mon, 16 Aug 2004 19:24:36 +0000 Subject: 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 --- docs/BytecodeFormat.html | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) (limited to 'docs/BytecodeFormat.html') diff --git a/docs/BytecodeFormat.html b/docs/BytecodeFormat.html index 5bb5d53..76365b4 100644 --- a/docs/BytecodeFormat.html +++ b/docs/BytecodeFormat.html @@ -614,10 +614,13 @@ sections.

Field Description - block
- - Module Block Identifier (0x01) and Size
- + unsigned
+ Module Block Identifier + (0x01) + + + unsigned + Module Block Size uint32_vbr @@ -646,6 +649,21 @@ sections.

+ + +
Module Block Header
+
+

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 227 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 232 bytes + are possible. For this reason, the module block (and only the module block) + uses a long format header.

+
+
Format Information
-- cgit v1.1