Skip to content

Commit 626e212

Browse files
authored
[C API] Add all features (#7362)
Also reorders existing ones to match wasm-features.h. Fixes #7361
1 parent 0472ba2 commit 626e212

File tree

3 files changed

+35
-10
lines changed

3 files changed

+35
-10
lines changed

src/binaryen-c.cpp

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -427,21 +427,21 @@ BinaryenFeatures BinaryenFeatureMVP(void) {
427427
BinaryenFeatures BinaryenFeatureAtomics(void) {
428428
return static_cast<BinaryenFeatures>(FeatureSet::Atomics);
429429
}
430-
BinaryenFeatures BinaryenFeatureBulkMemory(void) {
431-
return static_cast<BinaryenFeatures>(FeatureSet::BulkMemory);
432-
}
433430
BinaryenFeatures BinaryenFeatureMutableGlobals(void) {
434431
return static_cast<BinaryenFeatures>(FeatureSet::MutableGlobals);
435432
}
436433
BinaryenFeatures BinaryenFeatureNontrappingFPToInt(void) {
437434
return static_cast<BinaryenFeatures>(FeatureSet::TruncSat);
438435
}
439-
BinaryenFeatures BinaryenFeatureSignExt(void) {
440-
return static_cast<BinaryenFeatures>(FeatureSet::SignExt);
441-
}
442436
BinaryenFeatures BinaryenFeatureSIMD128(void) {
443437
return static_cast<BinaryenFeatures>(FeatureSet::SIMD);
444438
}
439+
BinaryenFeatures BinaryenFeatureBulkMemory(void) {
440+
return static_cast<BinaryenFeatures>(FeatureSet::BulkMemory);
441+
}
442+
BinaryenFeatures BinaryenFeatureSignExt(void) {
443+
return static_cast<BinaryenFeatures>(FeatureSet::SignExt);
444+
}
445445
BinaryenFeatures BinaryenFeatureExceptionHandling(void) {
446446
return static_cast<BinaryenFeatures>(FeatureSet::ExceptionHandling);
447447
}
@@ -472,6 +472,21 @@ BinaryenFeatures BinaryenFeatureStrings(void) {
472472
BinaryenFeatures BinaryenFeatureMultiMemory(void) {
473473
return static_cast<BinaryenFeatures>(FeatureSet::MultiMemory);
474474
}
475+
BinaryenFeatures BinaryenFeatureStackSwitching(void) {
476+
return static_cast<BinaryenFeatures>(FeatureSet::StackSwitching);
477+
}
478+
BinaryenFeatures BinaryenFeatureSharedEverything(void) {
479+
return static_cast<BinaryenFeatures>(FeatureSet::SharedEverything);
480+
}
481+
BinaryenFeatures BinaryenFeatureFP16(void) {
482+
return static_cast<BinaryenFeatures>(FeatureSet::FP16);
483+
}
484+
BinaryenFeatures BinaryenFeatureBulkMemoryOpt(void) {
485+
return static_cast<BinaryenFeatures>(FeatureSet::BulkMemoryOpt);
486+
}
487+
BinaryenFeatures BinaryenFeatureCallIndirectOverlong(void) {
488+
return static_cast<BinaryenFeatures>(FeatureSet::CallIndirectOverlong);
489+
}
475490
BinaryenFeatures BinaryenFeatureAll(void) {
476491
return static_cast<BinaryenFeatures>(FeatureSet::All);
477492
}

src/binaryen-c.h

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -210,11 +210,11 @@ typedef uint32_t BinaryenFeatures;
210210

211211
BINARYEN_API BinaryenFeatures BinaryenFeatureMVP(void);
212212
BINARYEN_API BinaryenFeatures BinaryenFeatureAtomics(void);
213-
BINARYEN_API BinaryenFeatures BinaryenFeatureBulkMemory(void);
214213
BINARYEN_API BinaryenFeatures BinaryenFeatureMutableGlobals(void);
215214
BINARYEN_API BinaryenFeatures BinaryenFeatureNontrappingFPToInt(void);
216-
BINARYEN_API BinaryenFeatures BinaryenFeatureSignExt(void);
217215
BINARYEN_API BinaryenFeatures BinaryenFeatureSIMD128(void);
216+
BINARYEN_API BinaryenFeatures BinaryenFeatureBulkMemory(void);
217+
BINARYEN_API BinaryenFeatures BinaryenFeatureSignExt(void);
218218
BINARYEN_API BinaryenFeatures BinaryenFeatureExceptionHandling(void);
219219
BINARYEN_API BinaryenFeatures BinaryenFeatureTailCall(void);
220220
BINARYEN_API BinaryenFeatures BinaryenFeatureReferenceTypes(void);
@@ -225,6 +225,11 @@ BINARYEN_API BinaryenFeatures BinaryenFeatureRelaxedSIMD(void);
225225
BINARYEN_API BinaryenFeatures BinaryenFeatureExtendedConst(void);
226226
BINARYEN_API BinaryenFeatures BinaryenFeatureStrings(void);
227227
BINARYEN_API BinaryenFeatures BinaryenFeatureMultiMemory(void);
228+
BINARYEN_API BinaryenFeatures BinaryenFeatureStackSwitching(void);
229+
BINARYEN_API BinaryenFeatures BinaryenFeatureSharedEverything(void);
230+
BINARYEN_API BinaryenFeatures BinaryenFeatureFP16(void);
231+
BINARYEN_API BinaryenFeatures BinaryenFeatureBulkMemoryOpt(void);
232+
BINARYEN_API BinaryenFeatures BinaryenFeatureCallIndirectOverlong(void);
228233
BINARYEN_API BinaryenFeatures BinaryenFeatureAll(void);
229234

230235
// Modules

src/js/binaryen.js-post.js

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -145,11 +145,11 @@ function initializeConstants() {
145145
Module['Features'] = {};
146146
[ 'MVP',
147147
'Atomics',
148-
'BulkMemory',
149148
'MutableGlobals',
150149
'NontrappingFPToInt',
151-
'SignExt',
152150
'SIMD128',
151+
'BulkMemory',
152+
'SignExt',
153153
'ExceptionHandling',
154154
'TailCall',
155155
'ReferenceTypes',
@@ -160,6 +160,11 @@ function initializeConstants() {
160160
'ExtendedConst',
161161
'Strings',
162162
'MultiMemory',
163+
'StackSwitching',
164+
'SharedEverything',
165+
'FP16',
166+
'BulkMemoryOpt',
167+
'CallIndirectOverlong',
163168
'All'
164169
].forEach(name => {
165170
Module['Features'][name] = Module['_BinaryenFeature' + name]();

0 commit comments

Comments
 (0)