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.cpp49
1 files changed, 49 insertions, 0 deletions
diff --git a/src/binaryen-c.cpp b/src/binaryen-c.cpp
index eab435caa..0a4b88a2b 100644
--- a/src/binaryen-c.cpp
+++ b/src/binaryen-c.cpp
@@ -1284,6 +1284,19 @@ BinaryenExpressionRef BinaryenTableSize(BinaryenModuleRef module,
Builder(*(Module*)module).makeTableSize(name));
}
+BinaryenExpressionRef BinaryenTableGrow(BinaryenModuleRef module,
+ const char* name,
+ BinaryenExpressionRef value,
+ BinaryenExpressionRef delta) {
+ if (value == nullptr) {
+ auto tableType = (*(Module*)module).getTableOrNull(name)->type;
+ value = BinaryenRefNull(module, (BinaryenType)tableType.getID());
+ }
+ return static_cast<Expression*>(
+ Builder(*(Module*)module)
+ .makeTableGrow(name, (Expression*)value, (Expression*)delta));
+}
+
BinaryenExpressionRef BinaryenTry(BinaryenModuleRef module,
const char* name,
BinaryenExpressionRef body,
@@ -1941,6 +1954,42 @@ void BinaryenTableSizeSetTable(BinaryenExpressionRef expr, const char* table) {
assert(table);
static_cast<TableSize*>(expression)->table = table;
}
+// TableGrow
+const char* BinaryenTableGrowGetTable(BinaryenExpressionRef expr) {
+ auto* expression = (Expression*)expr;
+ assert(expression->is<TableGrow>());
+ return static_cast<TableGrow*>(expression)->table.c_str();
+}
+void BinaryenTableGrowSetTable(BinaryenExpressionRef expr, const char* table) {
+ auto* expression = (Expression*)expr;
+ assert(expression->is<TableGrow>());
+ assert(table);
+ static_cast<TableGrow*>(expression)->table = table;
+}
+BinaryenExpressionRef BinaryenTableGrowGetValue(BinaryenExpressionRef expr) {
+ auto* expression = (Expression*)expr;
+ assert(expression->is<TableGrow>());
+ return static_cast<TableGrow*>(expression)->value;
+}
+void BinaryenTableGrowSetValue(BinaryenExpressionRef expr,
+ BinaryenExpressionRef valueExpr) {
+ auto* expression = (Expression*)expr;
+ assert(expression->is<TableGrow>());
+ assert(valueExpr);
+ static_cast<TableGrow*>(expression)->value = (Expression*)valueExpr;
+}
+BinaryenExpressionRef BinaryenTableGrowGetDelta(BinaryenExpressionRef expr) {
+ auto* expression = (Expression*)expr;
+ assert(expression->is<TableGrow>());
+ return static_cast<TableGrow*>(expression)->delta;
+}
+void BinaryenTableGrowSetDelta(BinaryenExpressionRef expr,
+ BinaryenExpressionRef deltaExpr) {
+ auto* expression = (Expression*)expr;
+ assert(expression->is<TableGrow>());
+ assert(deltaExpr);
+ static_cast<TableGrow*>(expression)->delta = (Expression*)deltaExpr;
+}
// MemoryGrow
BinaryenExpressionRef BinaryenMemoryGrowGetDelta(BinaryenExpressionRef expr) {
auto* expression = (Expression*)expr;