| OLD | NEW |
| 1 ============================== | 1 ============================== |
| 2 PNaCl Bitcode Reference Manual | 2 PNaCl Bitcode Reference Manual |
| 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 Introduction | 10 Introduction |
| (...skipping 350 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 361 * ``bitcast`` | 361 * ``bitcast`` |
| 362 | 362 |
| 363 The pointer argument of a ``bitcast`` instruction must be a *inherent* pointer | 363 The pointer argument of a ``bitcast`` instruction must be a *inherent* pointer |
| 364 (see :ref:`pointer types <bitcode_pointertypes>`). | 364 (see :ref:`pointer types <bitcode_pointertypes>`). |
| 365 | 365 |
| 366 * ``icmp`` | 366 * ``icmp`` |
| 367 * ``fcmp`` | 367 * ``fcmp`` |
| 368 * ``phi`` | 368 * ``phi`` |
| 369 * ``select`` | 369 * ``select`` |
| 370 * ``call`` | 370 * ``call`` |
| 371 * ``unreachable`` |
| 371 | 372 |
| 372 .. _bitcode_allocainst: | 373 .. _bitcode_allocainst: |
| 373 | 374 |
| 374 ``alloca`` | 375 ``alloca`` |
| 375 ---------- | 376 ---------- |
| 376 | 377 |
| 377 The only allowed type for ``alloca`` instructions in PNaCl bitcode is i8. The | 378 The only allowed type for ``alloca`` instructions in PNaCl bitcode is i8. The |
| 378 size argument must be an i32. For example: | 379 size argument must be an i32. For example: |
| 379 | 380 |
| 380 .. naclcode:: | 381 .. naclcode:: |
| (...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 545 | 546 |
| 546 declare i1 @llvm.nacl.atomic.is.lock.free(i32 <byte_size>, i8* <address>) | 547 declare i1 @llvm.nacl.atomic.is.lock.free(i32 <byte_size>, i8* <address>) |
| 547 | 548 |
| 548 The ``llvm.nacl.atomic.is.lock.free`` intrinsic is designed to | 549 The ``llvm.nacl.atomic.is.lock.free`` intrinsic is designed to |
| 549 determine at translation time whether atomic operations of a certain | 550 determine at translation time whether atomic operations of a certain |
| 550 ``byte_size`` (a compile-time constant), at a particular ``address``, | 551 ``byte_size`` (a compile-time constant), at a particular ``address``, |
| 551 are lock-free or not. This reflects the C11 ``atomic_is_lock_free`` | 552 are lock-free or not. This reflects the C11 ``atomic_is_lock_free`` |
| 552 function from header ``<stdatomic.h>`` and the C++11 ``is_lock_free`` | 553 function from header ``<stdatomic.h>`` and the C++11 ``is_lock_free`` |
| 553 member function in header ``<atomic>``. It can be used through the | 554 member function in header ``<atomic>``. It can be used through the |
| 554 ``__nacl_atomic_is_lock_free`` builtin. | 555 ``__nacl_atomic_is_lock_free`` builtin. |
| OLD | NEW |