@@ -163,7 +163,7 @@ let get_field env layout ptr n dbg =
163
163
| Pvalue Pintval | Punboxed_int _ -> Word_int
164
164
| Pvalue _ -> Word_val
165
165
| Punboxed_float -> Double
166
- | Punboxed_vector Pvec128 -> Onetwentyeight
166
+ | Punboxed_vector ( Pvec128 _ ) -> Onetwentyeight
167
167
| Ptop ->
168
168
Misc. fatal_errorf " get_field with Ptop: %a" Debuginfo. print_compact dbg
169
169
| Pbottom ->
@@ -323,7 +323,7 @@ let typ_of_boxed_number = function
323
323
| Boxed_float _ -> Cmm. typ_float
324
324
| Boxed_integer (Pint64 , _ ,_ ) when size_int = 4 -> [|Int ;Int |]
325
325
| Boxed_integer _ -> Cmm. typ_int
326
- | Boxed_vector (Pvec128, _ , _ ) -> Cmm. typ_vec128
326
+ | Boxed_vector (Pvec128 _ , _ , _ ) -> Cmm. typ_vec128
327
327
328
328
let equal_unboxed_integer ui1 ui2 =
329
329
match ui1, ui2 with
@@ -343,7 +343,7 @@ let box_number bn arg =
343
343
match bn with
344
344
| Boxed_float (m , dbg ) -> box_float dbg m arg
345
345
| Boxed_integer (bi , m , dbg ) -> box_int dbg bi m arg
346
- | Boxed_vector (vi , m , dbg ) -> box_vector dbg vi m arg
346
+ | Boxed_vector (Pvec128 _ , m , dbg ) -> box_vec128 dbg m arg
347
347
348
348
(* Returns the unboxed representation of a boxed float or integer.
349
349
For Pint32 on 64-bit archs, the high 32 bits of the result are undefined. *)
@@ -355,8 +355,8 @@ let unbox_number dbg bn arg =
355
355
low_32 dbg (unbox_int dbg Pint32 arg)
356
356
| Boxed_integer (bi , _ , _ ) ->
357
357
unbox_int dbg bi arg
358
- | Boxed_vector (vi , _ , _ ) ->
359
- unbox_vector dbg vi arg
358
+ | Boxed_vector (Pvec128 _ , _ , _ ) ->
359
+ unbox_vec128 dbg arg
360
360
361
361
(* Auxiliary functions for optimizing "let" of boxed numbers (floats and
362
362
boxed integers *)
@@ -438,7 +438,7 @@ let rec is_unboxed_number_cmm = function
438
438
| Some (Uconst_int64 _ ) ->
439
439
Boxed (Boxed_integer (Pint64 , alloc_heap, Debuginfo. none), true )
440
440
| Some (Uconst_vec128 _ ) ->
441
- Boxed (Boxed_vector (Pvec128 , alloc_heap, Debuginfo. none), true )
441
+ Boxed (Boxed_vector (Pvec128 Unknown128 , alloc_heap, Debuginfo. none), true )
442
442
| _ ->
443
443
No_unboxing
444
444
end
@@ -932,12 +932,8 @@ and transl_ccall env prim args dbg =
932
932
| Pint32 -> XInt32
933
933
| Pint64 -> XInt64 in
934
934
(xty, transl_unbox_int dbg env bi arg)
935
- | Unboxed_vector bi ->
936
- let xty =
937
- match bi with
938
- | Pvec128 -> XVec128
939
- in
940
- (xty, transl_unbox_vector dbg env bi arg)
935
+ | Unboxed_vector (Pvec128 _ ) ->
936
+ (XVec128 , transl_unbox_vec128 dbg env arg)
941
937
| Untagged_int ->
942
938
(XInt , untag_int (transl env arg) dbg)
943
939
in
@@ -962,7 +958,7 @@ and transl_ccall env prim args dbg =
962
958
| _ , Unboxed_integer Pint64 when size_int = 4 ->
963
959
([|Int ; Int |], box_int dbg Pint64 alloc_heap)
964
960
| _ , Unboxed_integer bi -> (typ_int, box_int dbg bi alloc_heap)
965
- | _ , Unboxed_vector Pvec128 -> (typ_vec128, box_vector dbg Pvec128 alloc_heap)
961
+ | _ , Unboxed_vector ( Pvec128 _ ) -> (typ_vec128, box_vec128 dbg alloc_heap)
966
962
| _ , Untagged_int -> (typ_int, (fun i -> tag_int i dbg))
967
963
in
968
964
let typ_args, args = transl_args prim.prim_native_repr_args args in
@@ -1307,8 +1303,8 @@ and transl_unbox_float dbg env exp =
1307
1303
and transl_unbox_int dbg env bi exp =
1308
1304
unbox_int dbg bi (transl env exp)
1309
1305
1310
- and transl_unbox_vector dbg env bi exp =
1311
- unbox_vector dbg bi (transl env exp)
1306
+ and transl_unbox_vec128 dbg env exp =
1307
+ unbox_vec128 dbg (transl env exp)
1312
1308
1313
1309
(* transl_unbox_int, but may return garbage in upper bits *)
1314
1310
and transl_unbox_int_low dbg env bi e =
0 commit comments