From 626ea26cb58e50e7a42f90a6e23218d90df6dd5a Mon Sep 17 00:00:00 2001 From: xleroy Date: Wed, 20 Aug 2014 14:24:42 +0000 Subject: Add builtins for load with reservation and conditional store. git-svn-id: https://yquem.inria.fr/compcert/svn/compcert/trunk@2613 fca1b0fc-160b-0410-b1d3-a4f43f01ea2e --- powerpc/Asmexpand.ml | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'powerpc/Asmexpand.ml') diff --git a/powerpc/Asmexpand.ml b/powerpc/Asmexpand.ml index bec4daa..3554de8 100644 --- a/powerpc/Asmexpand.ml +++ b/powerpc/Asmexpand.ml @@ -418,6 +418,12 @@ let expand_builtin_inline name args res = emit (Pisync) | "__builtin_trap", [], _ -> emit (Ptrap) + | "__builtin_lwar", [IR addr], [IR res] -> + emit (Plwarx(res, GPR0, addr)) + | "__builtin_stwc", [IR addr; IR src], [IR res] -> + emit (Pstwcx_(src, GPR0, addr)); + emit (Pmfcr res); + emit (Prlwinm(res, res, Z.of_uint 3, _1)) (* Vararg stuff *) | "__builtin_va_start", [IR a], _ -> expand_builtin_va_start a -- cgit v1.2.3