OLD | NEW |
1 {{+bindTo:partials.standard_nacl_article}} | 1 {{+bindTo:partials.standard_nacl_article}} |
2 | 2 |
3 <section id="pnacl-c-c-language-support"> | 3 <section id="pnacl-c-c-language-support"> |
4 <h1 id="pnacl-c-c-language-support">PNaCl C/C++ Language Support</h1> | 4 <h1 id="pnacl-c-c-language-support">PNaCl C/C++ Language Support</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><p class="first"><a class="reference internal" href="#source-language-suppor
t" id="id3">Source language support</a></p> | 7 <li><p class="first"><a class="reference internal" href="#source-language-suppor
t" id="id3">Source language support</a></p> |
8 <ul class="small-gap"> | 8 <ul class="small-gap"> |
9 <li><a class="reference internal" href="#versions" id="id4">Versions</a></li> | 9 <li><a class="reference internal" href="#versions" id="id4">Versions</a></li> |
10 <li><a class="reference internal" href="#preprocessor-definitions" id="id5">Prep
rocessor definitions</a></li> | 10 <li><a class="reference internal" href="#preprocessor-definitions" id="id5">Prep
rocessor definitions</a></li> |
(...skipping 350 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
361 v4s tmp = {shift_amount}; | 361 v4s tmp = {shift_amount}; |
362 return shift_me >> __builtin_shuffle_vector(tmp, tmp, 0, 0, 0, 0); | 362 return shift_me >> __builtin_shuffle_vector(tmp, tmp, 0, 0, 0, 0); |
363 } | 363 } |
364 </pre> | 364 </pre> |
365 <h3 id="auto-vectorization">Auto-Vectorization</h3> | 365 <h3 id="auto-vectorization">Auto-Vectorization</h3> |
366 <p>Auto-vectorization is currently not enabled for Portable Native Client, | 366 <p>Auto-vectorization is currently not enabled for Portable Native Client, |
367 but will be in a future release.</p> | 367 but will be in a future release.</p> |
368 <h2 id="undefined-behavior">Undefined Behavior</h2> | 368 <h2 id="undefined-behavior">Undefined Behavior</h2> |
369 <p>The C and C++ languages expose some undefined behavior which is | 369 <p>The C and C++ languages expose some undefined behavior which is |
370 discussed in <a class="reference internal" href="/native-client/reference/pnacl-
undefined-behavior.html#undefined-behavior"><em>PNaCl Undefined Behavior</em></a
>.</p> | 370 discussed in <a class="reference internal" href="/native-client/reference/pnacl-
undefined-behavior.html#undefined-behavior"><em>PNaCl Undefined Behavior</em></a
>.</p> |
371 <h2 id="floating-point">Floating-Point</h2> | 371 <h2 id="floating-point"><span id="c-cpp-floating-point"></span>Floating-Point</h
2> |
372 <p>PNaCl exposes 32-bit and 64-bit floating point operations which are | 372 <p>PNaCl exposes 32-bit and 64-bit floating point operations which are |
373 mostly IEEE-754 compliant. There are a few caveats:</p> | 373 mostly IEEE-754 compliant. There are a few caveats:</p> |
374 <ul class="small-gap"> | 374 <ul class="small-gap"> |
375 <li>Some <a class="reference internal" href="/native-client/reference/pnacl-unde
fined-behavior.html#undefined-behavior-fp"><em>floating-point behavior is curren
tly left as undefined</em></a>.</li> | 375 <li>Some <a class="reference internal" href="/native-client/reference/pnacl-unde
fined-behavior.html#undefined-behavior-fp"><em>floating-point behavior is curren
tly left as undefined</em></a>.</li> |
376 <li>The default rounding mode is round-to-nearest and other rounding modes | 376 <li>The default rounding mode is round-to-nearest and other rounding modes |
377 are currently not usable, which isn’t IEEE-754 compliant. PNaCl could | 377 are currently not usable, which isn’t IEEE-754 compliant. PNaCl could |
378 support switching modes (the 4 modes exposed by C99 <code>FLT_ROUNDS</code> | 378 support switching modes (the 4 modes exposed by C99 <code>FLT_ROUNDS</code> |
379 macros).</li> | 379 macros).</li> |
380 <li>Signaling <code>NaN</code> never fault.</li> | 380 <li>Signaling <code>NaN</code> never fault.</li> |
381 <li><p class="first">Fast-math optimizations are currently supported before <em>
pexe</em> creation | 381 <li><p class="first">Fast-math optimizations are currently supported before <em>
pexe</em> creation |
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
432 <p>Neither PNaCl nor NaCl currently support asynchronous interruption | 432 <p>Neither PNaCl nor NaCl currently support asynchronous interruption |
433 or suspension of threads.</p> | 433 or suspension of threads.</p> |
434 </li> | 434 </li> |
435 </ul> | 435 </ul> |
436 <p>If PNaCl were to support either of these, the interaction of | 436 <p>If PNaCl were to support either of these, the interaction of |
437 <code>volatile</code> and atomics with same-thread signal handling would need | 437 <code>volatile</code> and atomics with same-thread signal handling would need |
438 to be carefully detailed.</p> | 438 to be carefully detailed.</p> |
439 </section> | 439 </section> |
440 | 440 |
441 {{/partials.standard_nacl_article}} | 441 {{/partials.standard_nacl_article}} |
OLD | NEW |