diff options
Diffstat (limited to 'powerpc/Asmexpand.ml')
-rw-r--r-- | powerpc/Asmexpand.ml | 6 |
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 |