| OLD | NEW |
| 1 {{+bindTo:partials.standard_nacl_article}} | 1 {{+bindTo:partials.standard_nacl_article}} |
| 2 | 2 |
| 3 <section id="pnacl-bitcode-reference-manual"> | 3 <section id="pnacl-bitcode-reference-manual"> |
| 4 <h1 id="pnacl-bitcode-reference-manual">PNaCl Bitcode Reference Manual</h1> | 4 <h1 id="pnacl-bitcode-reference-manual">PNaCl Bitcode Reference Manual</h1> |
| 5 <div class="contents local" id="contents" style="display: none"> | 5 <div class="contents local" id="contents" style="display: none"> |
| 6 <ul class="small-gap"> | 6 <ul class="small-gap"> |
| 7 <li><a class="reference internal" href="#introduction" id="id1">Introduction</a>
</li> | 7 <li><a class="reference internal" href="#introduction" id="id1">Introduction</a>
</li> |
| 8 <li><p class="first"><a class="reference internal" href="#high-level-structure"
id="id2">High Level Structure</a></p> | 8 <li><p class="first"><a class="reference internal" href="#high-level-structure"
id="id2">High Level Structure</a></p> |
| 9 <ul class="small-gap"> | 9 <ul class="small-gap"> |
| 10 <li><a class="reference internal" href="#data-model" id="id3">Data Model</a></li
> | 10 <li><a class="reference internal" href="#data-model" id="id3">Data Model</a></li
> |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 52 </ul> | 52 </ul> |
| 53 </li> | 53 </li> |
| 54 </ul> | 54 </ul> |
| 55 | 55 |
| 56 </div><section id="introduction"> | 56 </div><section id="introduction"> |
| 57 <h2 id="introduction">Introduction</h2> | 57 <h2 id="introduction">Introduction</h2> |
| 58 <p>This document is a reference manual for the PNaCl bitcode format. It describe
s | 58 <p>This document is a reference manual for the PNaCl bitcode format. It describe
s |
| 59 the bitcode on a <em>semantic</em> level; the physical encoding level will be de
scribed | 59 the bitcode on a <em>semantic</em> level; the physical encoding level will be de
scribed |
| 60 elsewhere. For the purpose of this document, the textual form of LLVM IR is | 60 elsewhere. For the purpose of this document, the textual form of LLVM IR is |
| 61 used to describe instructions and other bitcode constructs.</p> | 61 used to describe instructions and other bitcode constructs.</p> |
| 62 <p>Since the PNaCl bitcode is based to a large extent on LLVM IR, many sections | 62 <p>Since the PNaCl bitcode is based to a large extent on LLVM IR as of |
| 63 in this document point to a relevant section of the LLVM language reference | 63 version 3.3, many sections in this document point to a relevant section |
| 64 manual. Only the changes, restrictions and variations specific to PNaCl are | 64 of the LLVM language reference manual. Only the changes, restrictions |
| 65 described—full semantic descriptions are not duplicated from the LLVM | 65 and variations specific to PNaCl are described—full semantic |
| 66 reference manual.</p> | 66 descriptions are not duplicated from the LLVM reference manual.</p> |
| 67 </section><section id="high-level-structure"> | 67 </section><section id="high-level-structure"> |
| 68 <h2 id="high-level-structure">High Level Structure</h2> | 68 <h2 id="high-level-structure">High Level Structure</h2> |
| 69 <p>A PNaCl portable executable (<strong>pexe</strong> in short) is a single LLVM
IR module.</p> | 69 <p>A PNaCl portable executable (<strong>pexe</strong> in short) is a single LLVM
IR module.</p> |
| 70 <section id="data-model"> | 70 <section id="data-model"> |
| 71 <h3 id="data-model">Data Model</h3> | 71 <h3 id="data-model">Data Model</h3> |
| 72 <p>The data model for PNaCl bitcode is fixed at little-endian ILP32: pointers ar
e | 72 <p>The data model for PNaCl bitcode is fixed at little-endian ILP32: pointers ar
e |
| 73 32 bits in size. 64-bit integer types are also supported natively via the i64 | 73 32 bits in size. 64-bit integer types are also supported natively via the i64 |
| 74 type (for example, a front-end can generate these from the C/C++ type | 74 type (for example, a front-end can generate these from the C/C++ type |
| 75 <code>long long</code>).</p> | 75 <code>long long</code>).</p> |
| 76 <p>Floating point support is fixed at IEEE 754 32-bit and 64-bit values (f32 and | 76 <p>Floating point support is fixed at IEEE 754 32-bit and 64-bit values (f32 and |
| (...skipping 369 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 446 <p>The <code>llvm.nacl.atomic.is.lock.free</code> intrinsic is designed to | 446 <p>The <code>llvm.nacl.atomic.is.lock.free</code> intrinsic is designed to |
| 447 determine at translation time whether atomic operations of a certain | 447 determine at translation time whether atomic operations of a certain |
| 448 <code>byte_size</code> (a compile-time constant), at a particular <code>address<
/code>, | 448 <code>byte_size</code> (a compile-time constant), at a particular <code>address<
/code>, |
| 449 are lock-free or not. This reflects the C11 <code>atomic_is_lock_free</code> | 449 are lock-free or not. This reflects the C11 <code>atomic_is_lock_free</code> |
| 450 function from header <code><stdatomic.h></code> and the C++11 <code>is_loc
k_free</code> | 450 function from header <code><stdatomic.h></code> and the C++11 <code>is_loc
k_free</code> |
| 451 member function in header <code><atomic></code>. It can be used through th
e | 451 member function in header <code><atomic></code>. It can be used through th
e |
| 452 <code>__nacl_atomic_is_lock_free</code> builtin.</p> | 452 <code>__nacl_atomic_is_lock_free</code> builtin.</p> |
| 453 </section></section></section> | 453 </section></section></section> |
| 454 | 454 |
| 455 {{/partials.standard_nacl_article}} | 455 {{/partials.standard_nacl_article}} |
| OLD | NEW |