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