aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorMon P Wang <wangmp@apple.com>2008-05-09 22:40:52 +0000
committerMon P Wang <wangmp@apple.com>2008-05-09 22:40:52 +0000
commit1ffe281890f3cd7728316b45a1f3dd4d3120af7b (patch)
tree5f16a0ba2fac56665a84e0696c118dfe890ef086 /include
parent580ca7859330f8c92a66b09c21399ed9efa3991e (diff)
Added support to generate some atomic operators (add, sub, and, or etc..)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@50919 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r--include/clang/AST/Builtins.def13
1 files changed, 13 insertions, 0 deletions
diff --git a/include/clang/AST/Builtins.def b/include/clang/AST/Builtins.def
index d231498582..33380baadb 100644
--- a/include/clang/AST/Builtins.def
+++ b/include/clang/AST/Builtins.def
@@ -98,4 +98,17 @@ BUILTIN(__builtin_expect, "iii" , "nc")
BUILTIN(__builtin_alloca, "v*z" , "n")
+// Atomic operators builtin.
+BUILTIN(__sync_fetch_and_add,"ii*i", "n")
+BUILTIN(__sync_fetch_and_sub,"ii*i", "n")
+BUILTIN(__sync_fetch_and_min,"ii*i", "n")
+BUILTIN(__sync_fetch_and_max,"ii*i", "n")
+BUILTIN(__sync_fetch_and_umin,"UiUi*Ui", "n")
+BUILTIN(__sync_fetch_and_umax,"UiUi*Ui", "n")
+BUILTIN(__sync_fetch_and_and,"ii*i", "n")
+BUILTIN(__sync_fetch_and_or,"ii*i", "n")
+BUILTIN(__sync_fetch_and_xor,"ii*i", "n")
+BUILTIN(__sync_lock_test_and_set,"ii*i", "n")
+BUILTIN(__sync_val_compare_and_swap,"ii*ii", "n")
+
#undef BUILTIN