[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