summaryrefslogtreecommitdiff
path: root/src/binaryen-c.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/binaryen-c.cpp')
-rw-r--r--src/binaryen-c.cpp31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/binaryen-c.cpp b/src/binaryen-c.cpp
index 2f1d3f5ff..6dc6f7821 100644
--- a/src/binaryen-c.cpp
+++ b/src/binaryen-c.cpp
@@ -271,6 +271,7 @@ BinaryenExpressionId BinaryenRefIsNullId(void) {
BinaryenExpressionId BinaryenRefFuncId(void) {
return Expression::Id::RefFuncId;
}
+BinaryenExpressionId BinaryenRefEqId(void) { return Expression::Id::RefEqId; }
BinaryenExpressionId BinaryenTryId(void) { return Expression::Id::TryId; }
BinaryenExpressionId BinaryenThrowId(void) { return Expression::Id::ThrowId; }
BinaryenExpressionId BinaryenRethrowId(void) {
@@ -1290,6 +1291,13 @@ BinaryenExpressionRef BinaryenRefFunc(BinaryenModuleRef module,
return static_cast<Expression*>(Builder(*(Module*)module).makeRefFunc(func));
}
+BinaryenExpressionRef BinaryenRefEq(BinaryenModuleRef module,
+ BinaryenExpressionRef left,
+ BinaryenExpressionRef right) {
+ return static_cast<Expression*>(
+ Builder(*(Module*)module).makeRefEq((Expression*)left, (Expression*)right));
+}
+
BinaryenExpressionRef BinaryenTry(BinaryenModuleRef module,
BinaryenExpressionRef body,
BinaryenExpressionRef catchBody) {
@@ -2786,6 +2794,29 @@ void BinaryenRefFuncSetFunc(BinaryenExpressionRef expr, const char* funcName) {
assert(expression->is<RefFunc>());
static_cast<RefFunc*>(expression)->func = funcName;
}
+// RefEq
+BinaryenExpressionRef BinaryenRefEqGetLeft(BinaryenExpressionRef expr) {
+ auto* expression = (Expression*)expr;
+ assert(expression->is<RefEq>());
+ return static_cast<RefEq*>(expression)->left;
+}
+void BinaryenRefEqSetLeft(BinaryenExpressionRef expr,
+ BinaryenExpressionRef left) {
+ auto* expression = (Expression*)expr;
+ assert(expression->is<RefEq>());
+ static_cast<RefEq*>(expression)->left = (Expression*)left;
+}
+BinaryenExpressionRef BinaryenRefEqGetRight(BinaryenExpressionRef expr) {
+ auto* expression = (Expression*)expr;
+ assert(expression->is<RefEq>());
+ return static_cast<RefEq*>(expression)->right;
+}
+void BinaryenRefEqSetRight(BinaryenExpressionRef expr,
+ BinaryenExpressionRef right) {
+ auto* expression = (Expression*)expr;
+ assert(expression->is<RefEq>());
+ static_cast<RefEq*>(expression)->right = (Expression*)right;
+}
// Try
BinaryenExpressionRef BinaryenTryGetBody(BinaryenExpressionRef expr) {
auto* expression = (Expression*)expr;