| OLD | NEW |
| 1 ============================ | 1 ============================ |
| 2 PNaCl C/C++ Language Support | 2 PNaCl C/C++ Language Support |
| 3 ============================ | 3 ============================ |
| 4 | 4 |
| 5 .. contents:: | 5 .. contents:: |
| 6 :local: | 6 :local: |
| 7 :backlinks: none | 7 :backlinks: none |
| 8 :depth: 3 | 8 :depth: 3 |
| 9 | 9 |
| 10 Source language support | 10 Source language support |
| (...skipping 207 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 218 PNaCl currently disallows them in the *pexe* because they aren't | 218 PNaCl currently disallows them in the *pexe* because they aren't |
| 219 supported on all platforms and can't realistically be | 219 supported on all platforms and can't realistically be |
| 220 emulated. PNaCl could (but currently doesn't) only generate them in | 220 emulated. PNaCl could (but currently doesn't) only generate them in |
| 221 the backend if fast-math were specified and the hardware supports | 221 the backend if fast-math were specified and the hardware supports |
| 222 the operation. | 222 the operation. |
| 223 * Transcendentals aren't exposed by PNaCl's ABI; they are part of the | 223 * Transcendentals aren't exposed by PNaCl's ABI; they are part of the |
| 224 math library that is included in the *pexe*. PNaCl could, but | 224 math library that is included in the *pexe*. PNaCl could, but |
| 225 currently doesn't, use hardware support if fast-math were provided | 225 currently doesn't, use hardware support if fast-math were provided |
| 226 in the *pexe*. | 226 in the *pexe*. |
| 227 | 227 |
| 228 Computed ``goto`` |
| 229 ================= |
| 230 |
| 231 PNaCl supports computed ``goto``, a non-standard GCC extension to C used |
| 232 by some interpreters, by lowering them to ``switch`` statements. The |
| 233 resulting use of ``switch`` might not be as fast as the original |
| 234 indirect branches. If you are compiling a program that has a |
| 235 compile-time option for using computed ``goto``, it's possible that the |
| 236 program will run faster with the option turned off (e.g., if the program |
| 237 does extra work to take advantage of computed ``goto``). |
| 238 |
| 239 NaCl supports computed ``goto`` without any transformation. |
| 240 |
| 228 Future Directions | 241 Future Directions |
| 229 ================= | 242 ================= |
| 230 | 243 |
| 231 SIMD | 244 SIMD |
| 232 ---- | 245 ---- |
| 233 | 246 |
| 234 PNaCl currently doesn't support SIMD. We plan to add SIMD support in the | 247 PNaCl currently doesn't support SIMD. We plan to add SIMD support in the |
| 235 very near future. | 248 very near future. |
| 236 | 249 |
| 237 NaCl supports SIMD. | 250 NaCl supports SIMD. |
| (...skipping 28 matching lines...) Expand all Loading... |
| 266 A similar feature is **thread suspension**: The ability to | 279 A similar feature is **thread suspension**: The ability to |
| 267 asynchronously suspend and resume a thread and inspect or modify its | 280 asynchronously suspend and resume a thread and inspect or modify its |
| 268 execution state (such as register state). | 281 execution state (such as register state). |
| 269 | 282 |
| 270 Neither PNaCl nor NaCl currently support asynchronous interruption | 283 Neither PNaCl nor NaCl currently support asynchronous interruption |
| 271 or suspension of threads. | 284 or suspension of threads. |
| 272 | 285 |
| 273 If PNaCl were to support either of these, the interaction of | 286 If PNaCl were to support either of these, the interaction of |
| 274 ``volatile`` and atomics with same-thread signal handling would need | 287 ``volatile`` and atomics with same-thread signal handling would need |
| 275 to be carefully detailed. | 288 to be carefully detailed. |
| 276 | |
| 277 Computed ``goto`` | |
| 278 ----------------- | |
| 279 | |
| 280 PNaCl currently doesn't support computed ``goto``, a non-standard | |
| 281 extension to C used by some interpreters. | |
| 282 | |
| 283 NaCl supports computed ``goto``. | |
| OLD | NEW |