diff options
author | Stephen Dolan <sdolan@janestreet.com> | 2020-10-05 18:19:35 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-10-05 19:19:35 +0200 |
commit | e87b7ce43783297655cb8169e099eda8589671a8 (patch) | |
tree | b8a6e5166c65b54137127d6a2f883e212a0081a1 /asmcomp/cmmgen.ml | |
parent | 786ee521cfe112b068acd3b31b8a93744203da1f (diff) | |
download | ocaml-e87b7ce43783297655cb8169e099eda8589671a8.tar.gz |
Use Cmm_helpers for boxed int arithmetic (#9959)
This way, Cmm's arithmetic optimisations also apply to boxed integer arithmetic.
Diffstat (limited to 'asmcomp/cmmgen.ml')
-rw-r--r-- | asmcomp/cmmgen.ml | 38 |
1 files changed, 19 insertions, 19 deletions
diff --git a/asmcomp/cmmgen.ml b/asmcomp/cmmgen.ml index 7b7656cdbb..bda1ee9827 100644 --- a/asmcomp/cmmgen.ml +++ b/asmcomp/cmmgen.ml @@ -975,17 +975,17 @@ and transl_prim_2 env p arg1 arg2 dbg = (* Boxed integers *) | Paddbint bi -> - box_int dbg bi (Cop(Caddi, - [transl_unbox_int_low dbg env bi arg1; - transl_unbox_int_low dbg env bi arg2], dbg)) + box_int dbg bi (add_int + (transl_unbox_int_low dbg env bi arg1) + (transl_unbox_int_low dbg env bi arg2) dbg) | Psubbint bi -> - box_int dbg bi (Cop(Csubi, - [transl_unbox_int_low dbg env bi arg1; - transl_unbox_int_low dbg env bi arg2], dbg)) + box_int dbg bi (sub_int + (transl_unbox_int_low dbg env bi arg1) + (transl_unbox_int_low dbg env bi arg2) dbg) | Pmulbint bi -> - box_int dbg bi (Cop(Cmuli, - [transl_unbox_int_low dbg env bi arg1; - transl_unbox_int_low dbg env bi arg2], dbg)) + box_int dbg bi (mul_int + (transl_unbox_int_low dbg env bi arg1) + (transl_unbox_int_low dbg env bi arg2) dbg) | Pdivbint { size = bi; is_safe } -> box_int dbg bi (safe_div_bi is_safe (transl_unbox_int dbg env bi arg1) @@ -1009,18 +1009,18 @@ and transl_prim_2 env p arg1 arg2 dbg = [transl_unbox_int_low dbg env bi arg1; transl_unbox_int_low dbg env bi arg2], dbg)) | Plslbint bi -> - box_int dbg bi (Cop(Clsl, - [transl_unbox_int_low dbg env bi arg1; - untag_int(transl env arg2) dbg], dbg)) + box_int dbg bi (lsl_int + (transl_unbox_int_low dbg env bi arg1) + (untag_int(transl env arg2) dbg) dbg) | Plsrbint bi -> - box_int dbg bi (Cop(Clsr, - [make_unsigned_int bi (transl_unbox_int dbg env bi arg1) - dbg; - untag_int(transl env arg2) dbg], dbg)) + box_int dbg bi (lsr_int + (make_unsigned_int bi (transl_unbox_int dbg env bi arg1) + dbg) + (untag_int(transl env arg2) dbg) dbg) | Pasrbint bi -> - box_int dbg bi (Cop(Casr, - [transl_unbox_int dbg env bi arg1; - untag_int(transl env arg2) dbg], dbg)) + box_int dbg bi (asr_int + (transl_unbox_int dbg env bi arg1) + (untag_int(transl env arg2) dbg) dbg) | Pbintcomp(bi, cmp) -> tag_int (Cop(Ccmpi cmp, [transl_unbox_int dbg env bi arg1; |