OLD | NEW |
---|---|
1 //===- Intrinsics.td - Defines all LLVM intrinsics ---------*- tablegen -*-===// | 1 //===- Intrinsics.td - Defines all LLVM intrinsics ---------*- tablegen -*-===// |
2 // | 2 // |
3 // The LLVM Compiler Infrastructure | 3 // The LLVM Compiler Infrastructure |
4 // | 4 // |
5 // This file is distributed under the University of Illinois Open Source | 5 // This file is distributed under the University of Illinois Open Source |
6 // License. See LICENSE.TXT for details. | 6 // License. See LICENSE.TXT for details. |
7 // | 7 // |
8 //===----------------------------------------------------------------------===// | 8 //===----------------------------------------------------------------------===// |
9 // | 9 // |
10 // This file defines properties of all LLVM intrinsics. | 10 // This file defines properties of all LLVM intrinsics. |
(...skipping 480 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
491 def int_nacl_tp_tls_offset : Intrinsic<[llvm_i32_ty], [llvm_i32_ty]>, | 491 def int_nacl_tp_tls_offset : Intrinsic<[llvm_i32_ty], [llvm_i32_ty]>, |
492 GCCBuiltin<"__builtin_nacl_tp_tls_offset">; | 492 GCCBuiltin<"__builtin_nacl_tp_tls_offset">; |
493 def int_nacl_tp_tdb_offset : Intrinsic<[llvm_i32_ty], [llvm_i32_ty]>, | 493 def int_nacl_tp_tdb_offset : Intrinsic<[llvm_i32_ty], [llvm_i32_ty]>, |
494 GCCBuiltin<"__builtin_nacl_tp_tdb_offset">; | 494 GCCBuiltin<"__builtin_nacl_tp_tdb_offset">; |
495 | 495 |
496 // The following intrinsic provides a target-specific constant value to | 496 // The following intrinsic provides a target-specific constant value to |
497 // indicate the target platform compiled to. The enum values are enumerated | 497 // indicate the target platform compiled to. The enum values are enumerated |
498 // pnaclintrin.h. | 498 // pnaclintrin.h. |
499 def int_nacl_target_arch : Intrinsic<[llvm_i32_ty], []>, | 499 def int_nacl_target_arch : Intrinsic<[llvm_i32_ty], []>, |
500 GCCBuiltin<"__builtin_nacl_target_arch">; | 500 GCCBuiltin<"__builtin_nacl_target_arch">; |
501 | |
502 // Atomic intrinsics. | |
503 // | |
504 // Volatiles and atomics are encoded through these intrinsics to make | |
505 // them platform-independent, remove some of LLVM's legacy, and isolate | |
506 // PNaCl from future changes to IR. The intrinsics allow user code to | |
507 // use `__sync_*` builtins as well as C11/C++11 atomics. | |
508 // | |
509 // These are further documented in docs/PNaClLangRef.rst. | |
510 // | |
511 // Note that IntrReadWriteArgMem is used it all cases to prevent | |
Derek Schuff
2013/07/02 22:13:17
s/it/in
JF
2013/07/02 23:14:54
Done.
| |
512 // reordering. | |
513 def int_nacl_atomic_load : Intrinsic<[llvm_anyint_ty], | |
514 [LLVMPointerType<LLVMMatchType<0>>, llvm_i32_ty], | |
Mark Seaborn
2013/07/02 19:16:02
Can you comment the argument meanings here, please
JF
2013/07/02 23:14:54
The comment above says "These are further document
| |
515 [IntrReadWriteArgMem]>; | |
516 def int_nacl_atomic_store : Intrinsic<[], | |
517 [llvm_anyint_ty, LLVMPointerType<LLVMMatchType<0>>, llvm_i32_ty], | |
518 [IntrReadWriteArgMem]>; | |
519 def int_nacl_atomic_rmw : Intrinsic<[llvm_anyint_ty], | |
520 [llvm_i32_ty, LLVMPointerType<LLVMMatchType<0>>, LLVMMatchType<0>, | |
521 llvm_i32_ty], | |
Mark Seaborn
2013/07/02 19:16:02
Indent by 1 more space since this is inside a list
JF
2013/07/02 23:14:54
Done, and below.
| |
522 [IntrReadWriteArgMem]>; | |
523 def int_nacl_atomic_cmpxchg : Intrinsic<[llvm_anyint_ty], | |
524 [LLVMPointerType<LLVMMatchType<0>>, LLVMMatchType<0>, LLVMMatchType<0>, | |
525 llvm_i32_ty, llvm_i32_ty], | |
526 [IntrReadWriteArgMem]>; | |
527 def int_nacl_atomic_fence : Intrinsic<[], [llvm_i32_ty], | |
528 [IntrReadWriteArgMem]>; | |
501 // @LOCALMOD-END | 529 // @LOCALMOD-END |
502 | 530 |
503 //===----------------------------------------------------------------------===// | 531 //===----------------------------------------------------------------------===// |
504 // Target-specific intrinsics | 532 // Target-specific intrinsics |
505 //===----------------------------------------------------------------------===// | 533 //===----------------------------------------------------------------------===// |
506 | 534 |
507 include "llvm/IR/IntrinsicsPowerPC.td" | 535 include "llvm/IR/IntrinsicsPowerPC.td" |
508 include "llvm/IR/IntrinsicsX86.td" | 536 include "llvm/IR/IntrinsicsX86.td" |
509 include "llvm/IR/IntrinsicsARM.td" | 537 include "llvm/IR/IntrinsicsARM.td" |
510 include "llvm/IR/IntrinsicsXCore.td" | 538 include "llvm/IR/IntrinsicsXCore.td" |
511 include "llvm/IR/IntrinsicsHexagon.td" | 539 include "llvm/IR/IntrinsicsHexagon.td" |
512 include "llvm/IR/IntrinsicsNVVM.td" | 540 include "llvm/IR/IntrinsicsNVVM.td" |
513 include "llvm/IR/IntrinsicsMips.td" | 541 include "llvm/IR/IntrinsicsMips.td" |
514 include "llvm/IR/IntrinsicsR600.td" | 542 include "llvm/IR/IntrinsicsR600.td" |
OLD | NEW |