summaryrefslogtreecommitdiff
path: root/src/binaryen-c.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/binaryen-c.h')
-rw-r--r--src/binaryen-c.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/src/binaryen-c.h b/src/binaryen-c.h
index 820b23cca..19434692b 100644
--- a/src/binaryen-c.h
+++ b/src/binaryen-c.h
@@ -137,6 +137,19 @@ BinaryenExternalKind BinaryenExternalTable(void);
BinaryenExternalKind BinaryenExternalMemory(void);
BinaryenExternalKind BinaryenExternalGlobal(void);
+// Features. Call to get the value of each; you can cache them. Use bitwise
+// operators to combine and test particular features.
+
+typedef uint32_t BinaryenFeatures;
+
+BinaryenFeatures BinaryenFeatureAtomics(void);
+BinaryenFeatures BinaryenFeatureBulkMemory(void);
+BinaryenFeatures BinaryenFeatureMutableGlobals(void);
+BinaryenFeatures BinaryenFeatureNontrappingFPToInt(void);
+BinaryenFeatures BinaryenFeatureSignExt(void);
+BinaryenFeatures BinaryenFeatureSIMD128(void);
+BinaryenFeatures BinaryenFeatureExceptionHandling(void);
+
// Modules
//
// Modules contain lists of functions, imports, exports, function types. The
@@ -929,6 +942,12 @@ void BinaryenSetMemory(BinaryenModuleRef module,
void BinaryenSetStart(BinaryenModuleRef module, BinaryenFunctionRef start);
+// Features
+
+// These control what features are allowed when validation and in passes.
+BinaryenFeatures BinaryenGetFeatures(BinaryenModuleRef module);
+void BinaryenSetFeatures(BinaryenModuleRef module, BinaryenFeatures features);
+
//
// ========== Module Operations ==========
//