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 130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
141 <h3 id="module-level-inline-assembly">Module-Level Inline Assembly</h3> | 141 <h3 id="module-level-inline-assembly">Module-Level Inline Assembly</h3> |
142 <p><a class="reference external" href="http://llvm.org/releases/3.3/docs/LangRef
.html#moduleasm">LLVM LangRef: Module-Level Inline Assembly</a></p> | 142 <p><a class="reference external" href="http://llvm.org/releases/3.3/docs/LangRef
.html#moduleasm">LLVM LangRef: Module-Level Inline Assembly</a></p> |
143 <p>PNaCl bitcode does not support inline assembly.</p> | 143 <p>PNaCl bitcode does not support inline assembly.</p> |
144 <h3 id="volatile-memory-accesses">Volatile Memory Accesses</h3> | 144 <h3 id="volatile-memory-accesses">Volatile Memory Accesses</h3> |
145 <p><a class="reference external" href="http://llvm.org/releases/3.3/docs/LangRef
.html#volatile">LLVM LangRef: Volatile Memory Accesses</a></p> | 145 <p><a class="reference external" href="http://llvm.org/releases/3.3/docs/LangRef
.html#volatile">LLVM LangRef: Volatile Memory Accesses</a></p> |
146 <p>PNaCl bitcode does not support volatile memory accesses. The | 146 <p>PNaCl bitcode does not support volatile memory accesses. The |
147 <code>volatile</code> attribute on loads and stores is not supported. See the | 147 <code>volatile</code> attribute on loads and stores is not supported. See the |
148 <a class="reference internal" href="/native-client/reference/pnacl-c-cpp-languag
e-support.html"><em>PNaCl C/C++ Language Support</em></a> for more details.</p> | 148 <a class="reference internal" href="/native-client/reference/pnacl-c-cpp-languag
e-support.html"><em>PNaCl C/C++ Language Support</em></a> for more details.</p> |
149 <h3 id="memory-model-for-concurrent-operations">Memory Model for Concurrent Oper
ations</h3> | 149 <h3 id="memory-model-for-concurrent-operations">Memory Model for Concurrent Oper
ations</h3> |
150 <p><a class="reference external" href="http://llvm.org/releases/3.3/docs/LangRef
.html#memmodel">LLVM LangRef: Memory Model for Concurrent Operations</a></p> | 150 <p><a class="reference external" href="http://llvm.org/releases/3.3/docs/LangRef
.html#memmodel">LLVM LangRef: Memory Model for Concurrent Operations</a></p> |
151 <p>See the <a class="reference external" href="PNaClDeveloperGuide.html">PNaCl D
eveloper’s Guide</a> for more | 151 <p>See the <a class="reference internal" href="/native-client/reference/pnacl-c-
cpp-language-support.html"><em>PNaCl C/C++ Language Support</em></a> |
152 details.</p> | 152 for details.</p> |
153 <h3 id="fast-math-flags">Fast-Math Flags</h3> | 153 <h3 id="fast-math-flags">Fast-Math Flags</h3> |
154 <p><a class="reference external" href="http://llvm.org/releases/3.3/docs/LangRef
.html#fastmath">LLVM LangRef: Fast-Math Flags</a></p> | 154 <p><a class="reference external" href="http://llvm.org/releases/3.3/docs/LangRef
.html#fastmath">LLVM LangRef: Fast-Math Flags</a></p> |
155 <p>Fast-math mode is not currently supported by the PNaCl bitcode.</p> | 155 <p>Fast-math mode is not currently supported by the PNaCl bitcode.</p> |
156 <h2 id="type-system">Type System</h2> | 156 <h2 id="type-system">Type System</h2> |
157 <p><a class="reference external" href="http://llvm.org/releases/3.3/docs/LangRef
.html#typesystem">LLVM LangRef: Type System</a></p> | 157 <p><a class="reference external" href="http://llvm.org/releases/3.3/docs/LangRef
.html#typesystem">LLVM LangRef: Type System</a></p> |
158 <p>The LLVM types allowed in PNaCl bitcode are restricted, as follows:</p> | 158 <p>The LLVM types allowed in PNaCl bitcode are restricted, as follows:</p> |
159 <h3 id="scalar-types">Scalar types</h3> | 159 <h3 id="scalar-types">Scalar types</h3> |
160 <ul class="small-gap"> | 160 <ul class="small-gap"> |
161 <li><p class="first">The only scalar types allowed are integer, float (32-bit fl
oating point), | 161 <li><p class="first">The only scalar types allowed are integer, float (32-bit fl
oating point), |
162 double (64-bit floating point) and void.</p> | 162 double (64-bit floating point) and void.</p> |
(...skipping 273 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
436 <p>The <code>llvm.nacl.atomic.is.lock.free</code> intrinsic is designed to | 436 <p>The <code>llvm.nacl.atomic.is.lock.free</code> intrinsic is designed to |
437 determine at translation time whether atomic operations of a certain | 437 determine at translation time whether atomic operations of a certain |
438 <code>byte_size</code> (a compile-time constant), at a particular <code>address<
/code>, | 438 <code>byte_size</code> (a compile-time constant), at a particular <code>address<
/code>, |
439 are lock-free or not. This reflects the C11 <code>atomic_is_lock_free</code> | 439 are lock-free or not. This reflects the C11 <code>atomic_is_lock_free</code> |
440 function from header <code><stdatomic.h></code> and the C++11 <code>is_loc
k_free</code> | 440 function from header <code><stdatomic.h></code> and the C++11 <code>is_loc
k_free</code> |
441 member function in header <code><atomic></code>. It can be used through th
e | 441 member function in header <code><atomic></code>. It can be used through th
e |
442 <code>__nacl_atomic_is_lock_free</code> builtin.</p> | 442 <code>__nacl_atomic_is_lock_free</code> builtin.</p> |
443 </section> | 443 </section> |
444 | 444 |
445 {{/partials.standard_nacl_article}} | 445 {{/partials.standard_nacl_article}} |
OLD | NEW |