@@ -507,73 +507,87 @@ let comp_primitive stack_info p sz args =
507
507
(* In bytecode, nothing is ever actually stack-allocated, so we ignore the
508
508
array modes (allocation for [Parrayref{s,u}], modification for
509
509
[Parrayset{s,u}]). *)
510
- | Parrayrefs (Pgenarray_ref _, index_kind, _)
510
+ (* XXX think about reinterpret cases for bytecode *)
511
+ | Parrayrefs (Pgenarray_ref _, _, index_kind, _)
511
512
| Parrayrefs ((Paddrarray_ref | Pintarray_ref | Pfloatarray_ref _
512
513
| Punboxedfloatarray_ref (Pfloat64 | Pfloat32 )
513
514
| Punboxedintarray_ref _
514
515
| Pgcscannableproductarray_ref _
515
516
| Pgcignorableproductarray_ref _),
517
+ _,
516
518
(Punboxed_int_index _ as index_kind),
517
519
_) ->
518
520
Kccall (indexing_primitive index_kind " caml_array_get" , 2 )
519
- | Parrayrefs ((Punboxedfloatarray_ref Pfloat64 | Pfloatarray_ref _ ), Ptagged_int_index , _ ) ->
521
+ | Parrayrefs ((Punboxedfloatarray_ref Pfloat64 | Pfloatarray_ref _),
522
+ _, Ptagged_int_index , _) ->
520
523
Kccall (" caml_floatarray_get" , 2 )
521
524
| Parrayrefs ((Punboxedfloatarray_ref Pfloat32 | Punboxedintarray_ref _
522
525
| Paddrarray_ref | Pintarray_ref
523
526
| Pgcscannableproductarray_ref _
524
527
| Pgcignorableproductarray_ref _),
528
+ _,
525
529
Ptagged_int_index ,
526
530
_) ->
527
531
Kccall (" caml_array_get_addr" , 2 )
528
- | Parraysets (Pgenarray_set _, index_kind)
532
+ | Parraysets (Pgenarray_set _, _, index_kind)
529
533
| Parraysets ((Paddrarray_set _ | Pintarray_set | Pfloatarray_set
530
534
| Punboxedfloatarray_set (Pfloat64 | Pfloat32 )
531
535
| Punboxedintarray_set _
532
536
| Pgcscannableproductarray_set _
533
537
| Pgcignorableproductarray_set _),
538
+ _,
534
539
(Punboxed_int_index _ as index_kind)) ->
535
540
Kccall (indexing_primitive index_kind " caml_array_set" , 3 )
536
- | Parraysets ((Punboxedfloatarray_set Pfloat64 | Pfloatarray_set ),
541
+ | Parraysets ((Punboxedfloatarray_set Pfloat64 | Pfloatarray_set ), _,
537
542
Ptagged_int_index ) ->
538
543
Kccall (" caml_floatarray_set" , 3 )
539
544
| Parraysets ((Punboxedfloatarray_set Pfloat32 | Punboxedintarray_set _
540
545
| Paddrarray_set _ | Pintarray_set
541
546
| Pgcscannableproductarray_set _
542
547
| Pgcignorableproductarray_set _),
548
+ _,
543
549
Ptagged_int_index ) ->
544
550
Kccall (" caml_array_set_addr" , 3 )
545
- | Parrayrefu (Pgenarray_ref _, index_kind, _)
551
+ | Parrayrefu (Pgenarray_ref _, _, index_kind, _)
546
552
| Parrayrefu ((Paddrarray_ref | Pintarray_ref | Pfloatarray_ref _
547
553
| Punboxedfloatarray_ref (Pfloat64 | Pfloat32 )
548
554
| Punboxedintarray_ref _
549
555
| Pgcscannableproductarray_ref _
550
556
| Pgcignorableproductarray_ref _),
557
+ _,
551
558
(Punboxed_int_index _ as index_kind), _) ->
552
559
Kccall (indexing_primitive index_kind " caml_array_unsafe_get" , 2 )
553
- | Parrayrefu ((Punboxedfloatarray_ref Pfloat64 | Pfloatarray_ref _ ), Ptagged_int_index , _ ) ->
560
+ | Parrayrefu ((Punboxedfloatarray_ref Pfloat64 | Pfloatarray_ref _),
561
+ _, Ptagged_int_index , _) ->
554
562
Kccall (" caml_floatarray_unsafe_get" , 2 )
555
563
| Parrayrefu ((Punboxedfloatarray_ref Pfloat32 | Punboxedintarray_ref _
556
564
| Paddrarray_ref | Pintarray_ref
557
565
| Pgcscannableproductarray_ref _
558
566
| Pgcignorableproductarray_ref _),
567
+ _,
559
568
Ptagged_int_index , _) -> Kgetvectitem
560
- | Parraysetu (Pgenarray_set _, index_kind)
569
+ | Parraysetu (Pgenarray_set _, _, index_kind)
561
570
| Parraysetu ((Paddrarray_set _ | Pintarray_set | Pfloatarray_set
562
571
| Punboxedfloatarray_set (Pfloat64 | Pfloat32 )
563
572
| Punboxedintarray_set _
564
573
| Pgcscannableproductarray_set _
565
574
| Pgcignorableproductarray_set _),
575
+ _,
566
576
(Punboxed_int_index _ as index_kind)) ->
567
577
Kccall (indexing_primitive index_kind " caml_array_unsafe_set" , 3 )
568
- | Parraysetu ((Punboxedfloatarray_set Pfloat64 | Pfloatarray_set ), Ptagged_int_index ) ->
578
+ | Parraysetu ((Punboxedfloatarray_set Pfloat64 | Pfloatarray_set ),
579
+ _, Ptagged_int_index ) ->
569
580
Kccall (" caml_floatarray_unsafe_set" , 3 )
570
581
| Parraysetu ((Punboxedfloatarray_set Pfloat32 | Punboxedintarray_set _
571
582
| Paddrarray_set _ | Pintarray_set
572
583
| Pgcscannableproductarray_set _
573
584
| Pgcignorableproductarray_set _),
585
+ _,
574
586
Ptagged_int_index ) -> Ksetvectitem
575
- | Parrayrefs (Punboxedvectorarray_ref _, _, _) | Parraysets (Punboxedvectorarray_set _, _)
576
- | Parrayrefu (Punboxedvectorarray_ref _ , _ , _ ) | Parraysetu (Punboxedvectorarray_set _ , _ ) ->
587
+ | Parrayrefs (Punboxedvectorarray_ref _, _, _, _)
588
+ | Parraysets (Punboxedvectorarray_set _, _, _)
589
+ | Parrayrefu (Punboxedvectorarray_ref _, _, _, _)
590
+ | Parraysetu (Punboxedvectorarray_set _ , _ , _ ) ->
577
591
fatal_error " SIMD is not supported in bytecode mode."
578
592
| Pctconst c ->
579
593
let const_name = match c with
0 commit comments