aboutsummaryrefslogtreecommitdiffstats
path: root/powerpc/CBuiltins.ml
diff options
context:
space:
mode:
authorBernhard Schommer <bernhardschommer@gmail.com>2015-09-10 10:20:15 +0200
committerBernhard Schommer <bernhardschommer@gmail.com>2015-09-10 10:20:15 +0200
commit41655f6c8d38270cc50407b0141b443f6ee90100 (patch)
tree838b8432f9a66123ca876579298e2eb34b51d407 /powerpc/CBuiltins.ml
parentbe6dc9e64912901b8217f56656d770f957d15cb4 (diff)
downloadcompcert-kvx-41655f6c8d38270cc50407b0141b443f6ee90100.tar.gz
compcert-kvx-41655f6c8d38270cc50407b0141b443f6ee90100.zip
Added builtin for atomic compare and exchange.
The new __builtin_atomic_compare_exchange(int *ptr,int *exp,int *dsr); writes dsr into ptr if ptr is equal to exp and returns true if ptr is not equal to exp it writes ptr into exp and returns false.
Diffstat (limited to 'powerpc/CBuiltins.ml')
-rw-r--r--powerpc/CBuiltins.ml5
1 files changed, 4 insertions, 1 deletions
diff --git a/powerpc/CBuiltins.ml b/powerpc/CBuiltins.ml
index b61028d3..5409e9ef 100644
--- a/powerpc/CBuiltins.ml
+++ b/powerpc/CBuiltins.ml
@@ -123,7 +123,10 @@ let builtins = {
"__builtin_atomic_exchange",
(TVoid [], [TPtr (TInt(IInt, []),[]);TPtr (TInt(IInt, []),[]);TPtr (TInt(IInt, []),[])],false);
"__builtin_atomic_load",
- (TVoid [], [TPtr (TInt(IInt, []),[]);TPtr (TInt(IInt, []),[])],false)
+ (TVoid [], [TPtr (TInt(IInt, []),[]);TPtr (TInt(IInt, []),[])],false);
+ "__builtin_atomic_compare_exchange",
+ (TInt (IBool, []), [TPtr (TInt(IInt, []),[]);TPtr (TInt(IInt, []),[]);TPtr (TInt(IInt, []),[])],false);
+
]
}