@@ -199,7 +199,12 @@ BinaryenExpressionId BinaryenBinaryId(void) { return Expression::Id::BinaryId; }
199199BinaryenExpressionId BinaryenSelectId (void ) { return Expression::Id::SelectId; }
200200BinaryenExpressionId BinaryenDropId (void ) { return Expression::Id::DropId; }
201201BinaryenExpressionId BinaryenReturnId (void ) { return Expression::Id::ReturnId; }
202- BinaryenExpressionId BinaryenHostId (void ) { return Expression::Id::HostId; }
202+ BinaryenExpressionId BinaryenMemorySizeId (void ) {
203+ return Expression::Id::MemorySizeId;
204+ }
205+ BinaryenExpressionId BinaryenMemoryGrowId (void ) {
206+ return Expression::Id::MemoryGrowId;
207+ }
203208BinaryenExpressionId BinaryenNopId (void ) { return Expression::Id::NopId; }
204209BinaryenExpressionId BinaryenUnreachableId (void ) {
205210 return Expression::Id::UnreachableId;
@@ -509,8 +514,6 @@ BinaryenOp BinaryenLtFloat64(void) { return LtFloat64; }
509514BinaryenOp BinaryenLeFloat64 (void ) { return LeFloat64; }
510515BinaryenOp BinaryenGtFloat64 (void ) { return GtFloat64; }
511516BinaryenOp BinaryenGeFloat64 (void ) { return GeFloat64; }
512- BinaryenOp BinaryenMemorySize (void ) { return MemorySize; }
513- BinaryenOp BinaryenMemoryGrow (void ) { return MemoryGrow; }
514517BinaryenOp BinaryenAtomicRMWAdd (void ) { return AtomicRMWOp::Add; }
515518BinaryenOp BinaryenAtomicRMWSub (void ) { return AtomicRMWOp::Sub; }
516519BinaryenOp BinaryenAtomicRMWAnd (void ) { return AtomicRMWOp::And; }
@@ -1056,20 +1059,13 @@ BinaryenExpressionRef BinaryenReturn(BinaryenModuleRef module,
10561059 auto * ret = Builder (*(Module*)module ).makeReturn ((Expression*)value);
10571060 return static_cast <Expression*>(ret);
10581061}
1059- BinaryenExpressionRef BinaryenHost (BinaryenModuleRef module ,
1060- BinaryenOp op,
1061- const char * name,
1062- BinaryenExpressionRef* operands,
1063- BinaryenIndex numOperands) {
1064- auto * ret = ((Module*)module )->allocator .alloc <Host>();
1065- ret->op = HostOp (op);
1066- if (name) {
1067- ret->nameOperand = name;
1068- }
1069- for (BinaryenIndex i = 0 ; i < numOperands; i++) {
1070- ret->operands .push_back ((Expression*)operands[i]);
1071- }
1072- ret->finalize ();
1062+ BinaryenExpressionRef BinaryenMemorySize (BinaryenModuleRef module ) {
1063+ auto * ret = Builder (*(Module*)module ).makeMemorySize ();
1064+ return static_cast <Expression*>(ret);
1065+ }
1066+ BinaryenExpressionRef BinaryenMemoryGrow (BinaryenModuleRef module ,
1067+ BinaryenExpressionRef delta) {
1068+ auto * ret = Builder (*(Module*)module ).makeMemoryGrow ((Expression*)delta);
10731069 return static_cast <Expression*>(ret);
10741070}
10751071BinaryenExpressionRef BinaryenNop (BinaryenModuleRef module ) {
@@ -1826,72 +1822,18 @@ void BinaryenGlobalSetSetValue(BinaryenExpressionRef expr,
18261822 assert (valueExpr);
18271823 static_cast <GlobalSet*>(expression)->value = (Expression*)valueExpr;
18281824}
1829- // Host
1830- BinaryenOp BinaryenHostGetOp (BinaryenExpressionRef expr) {
1831- auto * expression = (Expression*)expr;
1832- assert (expression->is <Host>());
1833- return static_cast <Host*>(expression)->op ;
1834- }
1835- void BinaryenHostSetOp (BinaryenExpressionRef expr, BinaryenOp op) {
1836- auto * expression = (Expression*)expr;
1837- assert (expression->is <Host>());
1838- static_cast <Host*>(expression)->op = (HostOp)op;
1839- }
1840- const char * BinaryenHostGetNameOperand (BinaryenExpressionRef expr) {
1841- auto * expression = (Expression*)expr;
1842- assert (expression->is <Host>());
1843- return static_cast <Host*>(expression)->nameOperand .c_str ();
1844- }
1845- void BinaryenHostSetNameOperand (BinaryenExpressionRef expr, const char * name) {
1846- auto * expression = (Expression*)expr;
1847- assert (expression->is <Host>());
1848- static_cast <Host*>(expression)->nameOperand = name ? name : " " ;
1849- }
1850- BinaryenIndex BinaryenHostGetNumOperands (BinaryenExpressionRef expr) {
1851- auto * expression = (Expression*)expr;
1852- assert (expression->is <Host>());
1853- return static_cast <Host*>(expression)->operands .size ();
1854- }
1855- BinaryenExpressionRef BinaryenHostGetOperandAt (BinaryenExpressionRef expr,
1856- BinaryenIndex index) {
1825+ // MemoryGrow
1826+ BinaryenExpressionRef BinaryenMemoryGrowGetDelta (BinaryenExpressionRef expr) {
18571827 auto * expression = (Expression*)expr;
1858- assert (expression->is <Host>());
1859- assert (index < static_cast <Host*>(expression)->operands .size ());
1860- return static_cast <Host*>(expression)->operands [index];
1828+ assert (expression->is <MemoryGrow>());
1829+ return static_cast <MemoryGrow*>(expression)->delta ;
18611830}
1862- void BinaryenHostSetOperandAt (BinaryenExpressionRef expr,
1863- BinaryenIndex index,
1864- BinaryenExpressionRef operandExpr) {
1865- auto * expression = (Expression*)expr;
1866- assert (expression->is <Host>());
1867- assert (index < static_cast <Host*>(expression)->operands .size ());
1868- assert (operandExpr);
1869- static_cast <Host*>(expression)->operands [index] = (Expression*)operandExpr;
1870- }
1871- BinaryenIndex BinaryenHostAppendOperand (BinaryenExpressionRef expr,
1872- BinaryenExpressionRef operandExpr) {
1873- auto * expression = (Expression*)expr;
1874- assert (expression->is <Host>());
1875- assert (operandExpr);
1876- auto & list = static_cast <Host*>(expression)->operands ;
1877- auto index = list.size ();
1878- list.push_back ((Expression*)operandExpr);
1879- return index;
1880- }
1881- void BinaryenHostInsertOperandAt (BinaryenExpressionRef expr,
1882- BinaryenIndex index,
1883- BinaryenExpressionRef operandExpr) {
1884- auto * expression = (Expression*)expr;
1885- assert (expression->is <Host>());
1886- assert (operandExpr);
1887- static_cast <Host*>(expression)
1888- ->operands .insertAt (index, (Expression*)operandExpr);
1889- }
1890- BinaryenExpressionRef BinaryenHostRemoveOperandAt (BinaryenExpressionRef expr,
1891- BinaryenIndex index) {
1831+ void BinaryenMemoryGrowSetDelta (BinaryenExpressionRef expr,
1832+ BinaryenExpressionRef deltaExpr) {
18921833 auto * expression = (Expression*)expr;
1893- assert (expression->is <Host>());
1894- return static_cast <Host*>(expression)->operands .removeAt (index);
1834+ assert (expression->is <MemoryGrow>());
1835+ assert (deltaExpr);
1836+ static_cast <MemoryGrow*>(expression)->delta = (Expression*)deltaExpr;
18951837}
18961838// Load
18971839int BinaryenLoadIsAtomic (BinaryenExpressionRef expr) {
0 commit comments