38
38
// are visited in reverse order, which is convenient for walking by pushing
39
39
// them to a stack first).
40
40
//
41
+ // DELEGATE_FIELD_IMMEDIATE_TYPED_CHILD(id, field) - called for each child field
42
+ // whose type is given by an immediate in the binary format. If you do not
43
+ // define this, then DELEGATE_FIELD_CHILD is called.
44
+ //
41
45
// DELEGATE_FIELD_OPTIONAL_CHILD(id, field) - called for a child that may not be
42
46
// present (like a Return's value). If you do not define this then
43
47
// DELEGATE_FIELD_CHILD is called.
109
113
#error please define DELEGATE_FIELD_CHILD(id, field)
110
114
#endif
111
115
116
+ #ifndef DELEGATE_FIELD_IMMEDIATE_TYPED_CHILD
117
+ #define DELEGATE_FIELD_IMMEDIATE_TYPED_CHILD(id, field) DELEGATE_FIELD_CHILD(id, field)
118
+ #endif
119
+
112
120
#ifndef DELEGATE_FIELD_OPTIONAL_CHILD
113
121
#define DELEGATE_FIELD_OPTIONAL_CHILD(id, field) DELEGATE_FIELD_CHILD(id, field)
114
122
#endif
230
238
// By default we emit a switch and cases, but that can be customized using the
231
239
// following:
232
240
241
+
233
242
#ifndef DELEGATE_FIELD_MAIN_START
234
243
#define DELEGATE_FIELD_MAIN_START \
235
244
switch (DELEGATE_ID) { \
@@ -610,7 +619,7 @@ DELEGATE_FIELD_INT(I31Get, signed_)
610
619
DELEGATE_FIELD_CASE_END(I31Get)
611
620
612
621
DELEGATE_FIELD_CASE_START(CallRef)
613
- DELEGATE_FIELD_CHILD (CallRef, target)
622
+ DELEGATE_FIELD_IMMEDIATE_TYPED_CHILD (CallRef, target)
614
623
DELEGATE_FIELD_CHILD_VECTOR(CallRef, operands)
615
624
DELEGATE_FIELD_INT(CallRef, isReturn)
616
625
DELEGATE_FIELD_CASE_END(CallRef)
@@ -637,31 +646,31 @@ DELEGATE_FIELD_CASE_END(StructNew)
637
646
638
647
DELEGATE_FIELD_CASE_START(StructGet)
639
648
DELEGATE_FIELD_INT(StructGet, index)
640
- DELEGATE_FIELD_CHILD (StructGet, ref)
649
+ DELEGATE_FIELD_IMMEDIATE_TYPED_CHILD (StructGet, ref)
641
650
DELEGATE_FIELD_INT(StructGet, signed_)
642
651
DELEGATE_FIELD_INT(StructGet, order)
643
652
DELEGATE_FIELD_CASE_END(StructGet)
644
653
645
654
DELEGATE_FIELD_CASE_START(StructSet)
646
655
DELEGATE_FIELD_INT(StructSet, index)
647
656
DELEGATE_FIELD_CHILD(StructSet, value)
648
- DELEGATE_FIELD_CHILD (StructSet, ref)
657
+ DELEGATE_FIELD_IMMEDIATE_TYPED_CHILD (StructSet, ref)
649
658
DELEGATE_FIELD_INT(StructSet, order)
650
659
DELEGATE_FIELD_CASE_END(StructSet)
651
660
652
661
DELEGATE_FIELD_CASE_START(StructRMW)
653
662
DELEGATE_FIELD_INT(StructRMW, op)
654
663
DELEGATE_FIELD_INT(StructRMW, index)
655
664
DELEGATE_FIELD_CHILD(StructRMW, value)
656
- DELEGATE_FIELD_CHILD (StructRMW, ref)
665
+ DELEGATE_FIELD_IMMEDIATE_TYPED_CHILD (StructRMW, ref)
657
666
DELEGATE_FIELD_INT(StructRMW, order)
658
667
DELEGATE_FIELD_CASE_END(StructRMW)
659
668
660
669
DELEGATE_FIELD_CASE_START(StructCmpxchg)
661
670
DELEGATE_FIELD_INT(StructCmpxchg, index)
662
671
DELEGATE_FIELD_CHILD(StructCmpxchg, replacement)
663
672
DELEGATE_FIELD_CHILD(StructCmpxchg, expected)
664
- DELEGATE_FIELD_CHILD (StructCmpxchg, ref)
673
+ DELEGATE_FIELD_IMMEDIATE_TYPED_CHILD (StructCmpxchg, ref)
665
674
DELEGATE_FIELD_INT(StructCmpxchg, order)
666
675
DELEGATE_FIELD_CASE_END(StructCmpxchg)
667
676
@@ -688,14 +697,14 @@ DELEGATE_FIELD_CASE_END(ArrayNewFixed)
688
697
689
698
DELEGATE_FIELD_CASE_START(ArrayGet)
690
699
DELEGATE_FIELD_CHILD(ArrayGet, index)
691
- DELEGATE_FIELD_CHILD (ArrayGet, ref)
700
+ DELEGATE_FIELD_IMMEDIATE_TYPED_CHILD (ArrayGet, ref)
692
701
DELEGATE_FIELD_INT(ArrayGet, signed_)
693
702
DELEGATE_FIELD_CASE_END(ArrayGet)
694
703
695
704
DELEGATE_FIELD_CASE_START(ArraySet)
696
705
DELEGATE_FIELD_CHILD(ArraySet, value)
697
706
DELEGATE_FIELD_CHILD(ArraySet, index)
698
- DELEGATE_FIELD_CHILD (ArraySet, ref)
707
+ DELEGATE_FIELD_IMMEDIATE_TYPED_CHILD (ArraySet, ref)
699
708
DELEGATE_FIELD_CASE_END(ArraySet)
700
709
701
710
DELEGATE_FIELD_CASE_START(ArrayLen)
@@ -705,32 +714,32 @@ DELEGATE_FIELD_CASE_END(ArrayLen)
705
714
DELEGATE_FIELD_CASE_START(ArrayCopy)
706
715
DELEGATE_FIELD_CHILD(ArrayCopy, length)
707
716
DELEGATE_FIELD_CHILD(ArrayCopy, srcIndex)
708
- DELEGATE_FIELD_CHILD (ArrayCopy, srcRef)
717
+ DELEGATE_FIELD_IMMEDIATE_TYPED_CHILD (ArrayCopy, srcRef)
709
718
DELEGATE_FIELD_CHILD(ArrayCopy, destIndex)
710
- DELEGATE_FIELD_CHILD (ArrayCopy, destRef)
719
+ DELEGATE_FIELD_IMMEDIATE_TYPED_CHILD (ArrayCopy, destRef)
711
720
DELEGATE_FIELD_CASE_END(ArrayCopy)
712
721
713
722
DELEGATE_FIELD_CASE_START(ArrayFill)
714
723
DELEGATE_FIELD_CHILD(ArrayFill, size)
715
724
DELEGATE_FIELD_CHILD(ArrayFill, value)
716
725
DELEGATE_FIELD_CHILD(ArrayFill, index)
717
- DELEGATE_FIELD_CHILD (ArrayFill, ref)
726
+ DELEGATE_FIELD_IMMEDIATE_TYPED_CHILD (ArrayFill, ref)
718
727
DELEGATE_FIELD_CASE_END(ArrayFill)
719
728
720
729
DELEGATE_FIELD_CASE_START(ArrayInitData)
721
730
DELEGATE_FIELD_NAME_KIND(ArrayInitData, segment, ModuleItemKind::DataSegment)
722
731
DELEGATE_FIELD_CHILD(ArrayInitData, size)
723
732
DELEGATE_FIELD_CHILD(ArrayInitData, offset)
724
733
DELEGATE_FIELD_CHILD(ArrayInitData, index)
725
- DELEGATE_FIELD_CHILD (ArrayInitData, ref)
734
+ DELEGATE_FIELD_IMMEDIATE_TYPED_CHILD (ArrayInitData, ref)
726
735
DELEGATE_FIELD_CASE_END(ArrayInitData)
727
736
728
737
DELEGATE_FIELD_CASE_START(ArrayInitElem)
729
738
DELEGATE_FIELD_NAME_KIND(ArrayInitElem, segment, ModuleItemKind::ElementSegment)
730
739
DELEGATE_FIELD_CHILD(ArrayInitElem, size)
731
740
DELEGATE_FIELD_CHILD(ArrayInitElem, offset)
732
741
DELEGATE_FIELD_CHILD(ArrayInitElem, index)
733
- DELEGATE_FIELD_CHILD (ArrayInitElem, ref)
742
+ DELEGATE_FIELD_IMMEDIATE_TYPED_CHILD (ArrayInitElem, ref)
734
743
DELEGATE_FIELD_CASE_END(ArrayInitElem)
735
744
736
745
DELEGATE_FIELD_CASE_START(RefAs)
@@ -788,7 +797,7 @@ DELEGATE_FIELD_CHILD(ContNew, func)
788
797
DELEGATE_FIELD_CASE_END(ContNew)
789
798
790
799
DELEGATE_FIELD_CASE_START(ContBind)
791
- DELEGATE_FIELD_CHILD (ContBind, cont)
800
+ DELEGATE_FIELD_IMMEDIATE_TYPED_CHILD (ContBind, cont)
792
801
DELEGATE_FIELD_CHILD_VECTOR(ContBind, operands)
793
802
DELEGATE_FIELD_CASE_END(ContBind)
794
803
@@ -799,23 +808,23 @@ DELEGATE_FIELD_CASE_END(Suspend)
799
808
800
809
DELEGATE_FIELD_CASE_START(Resume)
801
810
DELEGATE_FIELD_TYPE_VECTOR(Resume, sentTypes)
802
- DELEGATE_FIELD_CHILD (Resume, cont)
811
+ DELEGATE_FIELD_IMMEDIATE_TYPED_CHILD (Resume, cont)
803
812
DELEGATE_FIELD_CHILD_VECTOR(Resume, operands)
804
813
DELEGATE_FIELD_SCOPE_NAME_USE_VECTOR(Resume, handlerBlocks)
805
814
DELEGATE_FIELD_NAME_KIND_VECTOR(Resume, handlerTags, ModuleItemKind::Tag)
806
815
DELEGATE_FIELD_CASE_END(Resume)
807
816
808
817
DELEGATE_FIELD_CASE_START(ResumeThrow)
809
818
DELEGATE_FIELD_TYPE_VECTOR(ResumeThrow, sentTypes)
810
- DELEGATE_FIELD_CHILD (ResumeThrow, cont)
819
+ DELEGATE_FIELD_IMMEDIATE_TYPED_CHILD (ResumeThrow, cont)
811
820
DELEGATE_FIELD_CHILD_VECTOR(ResumeThrow, operands)
812
821
DELEGATE_FIELD_SCOPE_NAME_USE_VECTOR(ResumeThrow, handlerBlocks)
813
822
DELEGATE_FIELD_NAME_KIND_VECTOR(ResumeThrow, handlerTags, ModuleItemKind::Tag)
814
823
DELEGATE_FIELD_NAME_KIND(ResumeThrow, tag, ModuleItemKind::Tag)
815
824
DELEGATE_FIELD_CASE_END(ResumeThrow)
816
825
817
826
DELEGATE_FIELD_CASE_START(StackSwitch)
818
- DELEGATE_FIELD_CHILD (StackSwitch, cont)
827
+ DELEGATE_FIELD_IMMEDIATE_TYPED_CHILD (StackSwitch, cont)
819
828
DELEGATE_FIELD_CHILD_VECTOR(StackSwitch, operands)
820
829
DELEGATE_FIELD_NAME_KIND(StackSwitch, tag, ModuleItemKind::Tag)
821
830
DELEGATE_FIELD_CASE_END(StackSwitch)
@@ -827,6 +836,7 @@ DELEGATE_FIELD_MAIN_END
827
836
#undef DELEGATE_START
828
837
#undef DELEGATE_END
829
838
#undef DELEGATE_FIELD_CHILD
839
+ #undef DELEGATE_FIELD_IMMEDIATE_TYPED_CHILD
830
840
#undef DELEGATE_FIELD_OPTIONAL_CHILD
831
841
#undef DELEGATE_FIELD_CHILD_VECTOR
832
842
#undef DELEGATE_FIELD_INT
0 commit comments