summaryrefslogtreecommitdiff
path: root/asmcomp/cmmgen.ml
diff options
context:
space:
mode:
authorStephen Dolan <sdolan@janestreet.com>2020-10-05 18:19:35 +0100
committerGitHub <noreply@github.com>2020-10-05 19:19:35 +0200
commite87b7ce43783297655cb8169e099eda8589671a8 (patch)
treeb8a6e5166c65b54137127d6a2f883e212a0081a1 /asmcomp/cmmgen.ml
parent786ee521cfe112b068acd3b31b8a93744203da1f (diff)
downloadocaml-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.ml38
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;