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 |