aboutsummaryrefslogtreecommitdiffstats
path: root/mppa_k1c/Asmexpand.ml
diff options
context:
space:
mode:
Diffstat (limited to 'mppa_k1c/Asmexpand.ml')
-rw-r--r--mppa_k1c/Asmexpand.ml8
1 files changed, 8 insertions, 0 deletions
diff --git a/mppa_k1c/Asmexpand.ml b/mppa_k1c/Asmexpand.ml
index c4e73b76..872a29f5 100644
--- a/mppa_k1c/Asmexpand.ml
+++ b/mppa_k1c/Asmexpand.ml
@@ -405,6 +405,14 @@ let expand_builtin_inline name args res = let open Asmvliw in
emit (Pitouchl addr)
| "__builtin_k1_dzerol", [BA(IR addr)], _ ->
emit (Pdzerol addr)
+ | "__builtin_k1_afaddd", [BA(IR addr); BA (IR incr_res)], BR(IR res) ->
+ (if res <> incr_res
+ then (emit (Pmv(res, incr_res)); emit Psemi));
+ emit (Pafaddd(addr, res))
+ | "__builtin_k1_afaddw", [BA(IR addr); BA (IR incr_res)], BR(IR res) ->
+ (if res <> incr_res
+ then (emit (Pmv(res, incr_res)); emit Psemi));
+ emit (Pafaddw(addr, res))
(* Byte swaps *)
(*| "__builtin_bswap16", [BA(IR a1)], BR(IR res) ->