[llvm-commits] CVS: llvm/docs/BytecodeFormat.html
Chris Lattner
lattner at cs.uiuc.edu
Wed Jan 25 15:32:05 PST 2006
Changes in directory llvm/docs:
BytecodeFormat.html updated: 1.49 -> 1.50
---
Log message:
update the bytecode format guide for the encoding of inline asm.
---
Diffs of the changes: (+62 -10)
BytecodeFormat.html | 72 ++++++++++++++++++++++++++++++++++++++++++++--------
1 files changed, 62 insertions(+), 10 deletions(-)
Index: llvm/docs/BytecodeFormat.html
diff -u llvm/docs/BytecodeFormat.html:1.49 llvm/docs/BytecodeFormat.html:1.50
--- llvm/docs/BytecodeFormat.html:1.49 Mon Jan 23 17:38:09 2006
+++ llvm/docs/BytecodeFormat.html Wed Jan 25 17:31:53 2006
@@ -1275,16 +1275,21 @@
</tbody>
</table>
</div>
+
<!-- _______________________________________________________________________ -->
-<div class="doc_subsubsection"><a name="constant">Constant Field</a></div>
+<div class="doc_subsubsection"><a name="constant">Simple Constant Pool
+Entries</a></div>
+
<div class="doc_text">
-<p>Constants come in many shapes and flavors. The sections that follow
-define the format for each of them. All constants start with a <a
+
+<p>Constant pool entries come in many shapes and flavors. The sections that
+follow define the format for each of them. All constants start with a <a
href="#uint32_vbr">uint32_vbr</a> encoded integer that provides the
number of operands for the constant. For primitive, structure, and
-array constants, this will always be zero since those types of
-constants have no operands. In this case, we have the following field
-definitions:</p>
+array constants, this will always be zero to indicate that the form of the
+constant is solely determined by its type. In this case, we have the following
+field definitions, based on type:</p>
+
<ul>
<li><b>Bool</b>. This is written as an <a href="#uint32_vbr">uint32_vbr</a>
of value 1U or 0U.</li>
@@ -1303,12 +1308,59 @@
field values of the structure.</li>
</ul>
+</div>
+
+<!-- _______________________________________________________________________ -->
+<div class="doc_subsubsection">Undef Entries</a></div>
+
+<div class="doc_text">
<p>When the number of operands to the constant is one, we have an 'undef' value
of the specified type.</p>
+</div>
+
+<!-- _______________________________________________________________________ -->
+<div class="doc_subsubsection">Inline Assembler Entries</a></div>
+
+<div class="doc_text">
+<p>Inline Assembler entries are stored in the constant pool, though they are not
+ officially LLVM constants. These entries are marked with a value of
+ "4294967295" (all ones) for the number of operands. They are encoded as
+ follows:</p>
+
+<table>
+ <tbody>
+ <tr>
+ <th><b>Type</b></th>
+ <th class="td_left"><b>Field Description</b></th>
+ </tr>
+ <tr>
+ <td><a href="#string">string</a></td>
+ <td class="td_left">The asm string.</td>
+ </tr>
+ <tr>
+ <td><a href="#string">string</a></td>
+ <td class="td_left">The constraints string.</td>
+ </tr>
+ <tr>
+ <td><a href="#uint32_vbr">uint32_vbr</a></td>
+ <td class="td_left">Flags</sup></td>
+ </tr>
+ </tbody>
+</table>
+
+<p>Currently, the only defined flag, the low bit, indicates whether or not the
+ inline assembler has side effects.</p>
+
+</div>
+
+<!-- _______________________________________________________________________ -->
+<div class="doc_subsubsection">Constant Expression Entries</a></div>
+
+<div class="doc_text">
-<p>When the number of operands to the constant is greater than one, we have a
-constant expression and its field format is provided in the table below, and the
-number is equal to the number of operands+1.</p>
+<p>Otherwise, we have a constant expression. The format of the constant
+expression is specified in the table below, and the number is equal to the
+number of operands+1.</p>
<table>
<tbody>
<tr>
@@ -2096,7 +2148,7 @@
<a href="mailto:rspencer at x10sys.com">Reid Spencer</a> and <a
href="mailto:sabre at nondot.org">Chris Lattner</a><br>
<a href="http://llvm.cs.uiuc.edu">The LLVM Compiler Infrastructure</a><br>
-Last modified: $Date: 2006/01/23 23:38:09 $
+Last modified: $Date: 2006/01/25 23:31:53 $
</address>
</body>
</html>
More information about the llvm-commits
mailing list