summaryrefslogtreecommitdiff
path: root/powerpc/Asmexpand.ml
diff options
context:
space:
mode:
Diffstat (limited to 'powerpc/Asmexpand.ml')
-rw-r--r--powerpc/Asmexpand.ml6
1 files changed, 6 insertions, 0 deletions
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