summaryrefslogtreecommitdiffstats
path: root/libclc/generic/include/clc/atomic
diff options
context:
space:
mode:
authorAaron Watry <awatry@gmail.com>2013-09-05 16:04:01 +0000
committerAaron Watry <awatry@gmail.com>2013-09-05 16:04:01 +0000
commit50a7bcbac92afc472f381f4dde694a613f411daf (patch)
tree4e7bc5551942abe06081ea5b42726ae404a478c7 /libclc/generic/include/clc/atomic
parent785ee472a35148486f024c85191df8364ed4f35d (diff)
downloadbcm5719-llvm-50a7bcbac92afc472f381f4dde694a613f411daf.tar.gz
bcm5719-llvm-50a7bcbac92afc472f381f4dde694a613f411daf.zip
Add atomic_inc and atomic_add builtins
Reviewed-by: Aaron Watry <awatry@gmail.com> llvm-svn: 190058
Diffstat (limited to 'libclc/generic/include/clc/atomic')
-rw-r--r--libclc/generic/include/clc/atomic/atomic_add.h3
-rw-r--r--libclc/generic/include/clc/atomic/atomic_decl.inc10
-rw-r--r--libclc/generic/include/clc/atomic/atomic_inc.h1
3 files changed, 14 insertions, 0 deletions
diff --git a/libclc/generic/include/clc/atomic/atomic_add.h b/libclc/generic/include/clc/atomic/atomic_add.h
new file mode 100644
index 00000000000..66d897805ca
--- /dev/null
+++ b/libclc/generic/include/clc/atomic/atomic_add.h
@@ -0,0 +1,3 @@
+#define __CLC_FUNCTION atomic_add
+#include <clc/atomic/atomic_decl.inc>
+#undef __CLC_FUNCTION
diff --git a/libclc/generic/include/clc/atomic/atomic_decl.inc b/libclc/generic/include/clc/atomic/atomic_decl.inc
new file mode 100644
index 00000000000..03d01aa045e
--- /dev/null
+++ b/libclc/generic/include/clc/atomic/atomic_decl.inc
@@ -0,0 +1,10 @@
+
+#define __CLC_DECLARE_ATOMIC(ADDRSPACE, TYPE) \
+ _CLC_OVERLOAD _CLC_DECL TYPE __CLC_FUNCTION (volatile ADDRSPACE TYPE *, TYPE);
+
+#define __CLC_DECLARE_ATOMIC_ADDRSPACE(TYPE) \
+ __CLC_DECLARE_ATOMIC(global, TYPE); \
+ __CLC_DECLARE_ATOMIC(local, TYPE);
+
+__CLC_DECLARE_ATOMIC_ADDRSPACE(int);
+__CLC_DECLARE_ATOMIC_ADDRSPACE(uint);
diff --git a/libclc/generic/include/clc/atomic/atomic_inc.h b/libclc/generic/include/clc/atomic/atomic_inc.h
new file mode 100644
index 00000000000..21373919804
--- /dev/null
+++ b/libclc/generic/include/clc/atomic/atomic_inc.h
@@ -0,0 +1 @@
+#define atomic_inc(p) atomic_add(p, 1);
OpenPOWER on IntegriCloud