aboutsummaryrefslogtreecommitdiffstats
path: root/powerpc/CBuiltins.ml
diff options
context:
space:
mode:
authorBernhard Schommer <bernhardschommer@gmail.com>2015-09-14 19:41:39 +0200
committerBernhard Schommer <bernhardschommer@gmail.com>2015-09-14 19:41:39 +0200
commit9dc0dd73f75875b301c886df40087192d0fad386 (patch)
tree64d362acab74e67e6c2f80fde7e8622563c4b865 /powerpc/CBuiltins.ml
parent0de3d126e70dfedfd6f74710da31c4b9636f900a (diff)
downloadcompcert-9dc0dd73f75875b301c886df40087192d0fad386.tar.gz
compcert-9dc0dd73f75875b301c886df40087192d0fad386.zip
Use fix registers for atomic builtins.
In order to avoid clashes during register allocation etc. The builtins now use fixed registers and mark additional registers as destroyed for temporaries.
Diffstat (limited to 'powerpc/CBuiltins.ml')
-rw-r--r--powerpc/CBuiltins.ml3
1 files changed, 2 insertions, 1 deletions
diff --git a/powerpc/CBuiltins.ml b/powerpc/CBuiltins.ml
index 5409e9ef..a9e4f5e3 100644
--- a/powerpc/CBuiltins.ml
+++ b/powerpc/CBuiltins.ml
@@ -126,7 +126,8 @@ let builtins = {
(TVoid [], [TPtr (TInt(IInt, []),[]);TPtr (TInt(IInt, []),[])],false);
"__builtin_atomic_compare_exchange",
(TInt (IBool, []), [TPtr (TInt(IInt, []),[]);TPtr (TInt(IInt, []),[]);TPtr (TInt(IInt, []),[])],false);
-
+ "__builtin_sync_fetch_and_add",
+ (TInt (IInt, []), [TPtr (TInt(IInt, []),[]);TInt(IInt, [])],false);
]
}