forked from grain-lang/binaryen.ml
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmodule_feature.c
More file actions
168 lines (140 loc) · 3.89 KB
/
module_feature.c
File metadata and controls
168 lines (140 loc) · 3.89 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
#define CAML_NAME_SPACE
#include <caml/mlvalues.h>
#include <caml/fail.h>
#include <caml/memory.h>
#include "binaryen-c.h"
#include "ocaml_helpers.h"
CAMLprim value
caml_binaryen_module_get_features(value _module) {
CAMLparam1(_module);
BinaryenModuleRef module = BinaryenModuleRef_val(_module);
CAMLreturn(Val_int(BinaryenModuleGetFeatures(module)));
}
CAMLprim value
caml_binaryen_module_set_features(value _module, value _features) {
CAMLparam2(_module, _features);
BinaryenModuleRef module = BinaryenModuleRef_val(_module);
uint32_t features = Int_val(_features);
BinaryenModuleSetFeatures(module, features);
CAMLreturn(Val_unit);
}
CAMLprim value
caml_binaryen_feature_mvp(value unit) {
CAMLparam1(unit);
CAMLreturn(Val_int(BinaryenFeatureMVP()));
}
CAMLprim value
caml_binaryen_feature_atomics(value unit) {
CAMLparam1(unit);
CAMLreturn(Val_int(BinaryenFeatureAtomics()));
}
CAMLprim value
caml_binaryen_feature_mutable_globals(value unit) {
CAMLparam1(unit);
CAMLreturn(Val_int(BinaryenFeatureMutableGlobals()));
}
CAMLprim value
caml_binaryen_feature_nontrapping_fp_to_int(value unit) {
CAMLparam1(unit);
CAMLreturn(Val_int(BinaryenFeatureNontrappingFPToInt()));
}
CAMLprim value
caml_binaryen_feature_simd128(value unit) {
CAMLparam1(unit);
CAMLreturn(Val_int(BinaryenFeatureSIMD128()));
}
CAMLprim value
caml_binaryen_feature_bulk_memory(value unit) {
CAMLparam1(unit);
CAMLreturn(Val_int(BinaryenFeatureBulkMemory()));
}
CAMLprim value
caml_binaryen_feature_sign_ext(value unit) {
CAMLparam1(unit);
CAMLreturn(Val_int(BinaryenFeatureSignExt()));
}
CAMLprim value
caml_binaryen_feature_exception_handling(value unit) {
CAMLparam1(unit);
CAMLreturn(Val_int(BinaryenFeatureExceptionHandling()));
}
CAMLprim value
caml_binaryen_feature_tail_call(value unit) {
CAMLparam1(unit);
CAMLreturn(Val_int(BinaryenFeatureTailCall()));
}
CAMLprim value
caml_binaryen_feature_reference_types(value unit) {
CAMLparam1(unit);
CAMLreturn(Val_int(BinaryenFeatureReferenceTypes()));
}
CAMLprim value
caml_binaryen_feature_multivalue(value unit) {
CAMLparam1(unit);
CAMLreturn(Val_int(BinaryenFeatureMultivalue()));
}
CAMLprim value
caml_binaryen_feature_gc(value unit) {
CAMLparam1(unit);
CAMLreturn(Val_int(BinaryenFeatureGC()));
}
CAMLprim value
caml_binaryen_feature_memory64(value unit) {
CAMLparam1(unit);
CAMLreturn(Val_int(BinaryenFeatureMemory64()));
}
CAMLprim value
caml_binaryen_feature_relaxed_simd(value unit) {
CAMLparam1(unit);
CAMLreturn(Val_int(BinaryenFeatureRelaxedSIMD()));
}
CAMLprim value
caml_binaryen_feature_extended_const(value unit) {
CAMLparam1(unit);
CAMLreturn(Val_int(BinaryenFeatureExtendedConst()));
}
CAMLprim value
caml_binaryen_feature_strings(value unit) {
CAMLparam1(unit);
CAMLreturn(Val_int(BinaryenFeatureStrings()));
}
CAMLprim value
caml_binaryen_feature_multi_memory(value unit) {
CAMLparam1(unit);
CAMLreturn(Val_int(BinaryenFeatureMultiMemory()));
}
CAMLprim value
caml_binaryen_feature_stack_switching(value unit) {
CAMLparam1(unit);
CAMLreturn(Val_int(BinaryenFeatureStackSwitching()));
}
CAMLprim value
caml_binaryen_feature_shared_everything(value unit) {
CAMLparam1(unit);
CAMLreturn(Val_int(BinaryenFeatureSharedEverything()));
}
CAMLprim value
caml_binaryen_feature_fp16(value unit) {
CAMLparam1(unit);
CAMLreturn(Val_int(BinaryenFeatureFP16()));
}
CAMLprim value
caml_binaryen_feature_bulk_memory_opt(value unit) {
CAMLparam1(unit);
CAMLreturn(Val_int(BinaryenFeatureBulkMemoryOpt()));
}
CAMLprim value
caml_binaryen_feature_call_indirect_overlong(value unit) {
CAMLparam1(unit);
CAMLreturn(Val_int(BinaryenFeatureCallIndirectOverlong()));
}
CAMLprim value
caml_binaryen_feature_relaxed_atomics(value unit) {
CAMLparam1(unit);
CAMLreturn(Val_int(BinaryenFeatureRelaxedAtomics()));
}
CAMLprim value
caml_binaryen_feature_all(value unit) {
CAMLparam1(unit);
CAMLreturn(Val_int(BinaryenFeatureAll()));
}