summaryrefslogtreecommitdiff
path: root/src/binaryen-c.h
diff options
context:
space:
mode:
authorHeejin Ahn <aheejin@gmail.com>2019-07-24 23:57:04 -0700
committerGitHub <noreply@github.com>2019-07-24 23:57:04 -0700
commit443c0069df34bac9640ed75e396c8b76d3870ae0 (patch)
tree95869cd8599bf83689b7329a5ecc180622091a17 /src/binaryen-c.h
parent7bf827d38eb710069662b99eed6ba9ece20775c1 (diff)
downloadbinaryen-443c0069df34bac9640ed75e396c8b76d3870ae0.tar.gz
binaryen-443c0069df34bac9640ed75e396c8b76d3870ae0.tar.bz2
binaryen-443c0069df34bac9640ed75e396c8b76d3870ae0.zip
More push/pop support (#2260)
This adds - `push`/`pop` support for other types: v128 and exnref - `push`/`pop` support for binaryen.js Because binaryen.js follows Binaryen's AST structure, without `pop` in binaryen.js, EH instructions cannot be represented in binaryen.js.
Diffstat (limited to 'src/binaryen-c.h')
-rw-r--r--src/binaryen-c.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/binaryen-c.h b/src/binaryen-c.h
index db49c45c9..dc5d50fef 100644
--- a/src/binaryen-c.h
+++ b/src/binaryen-c.h
@@ -127,6 +127,8 @@ BinaryenExpressionId BinaryenMemoryInitId(void);
BinaryenExpressionId BinaryenDataDropId(void);
BinaryenExpressionId BinaryenMemoryCopyId(void);
BinaryenExpressionId BinaryenMemoryFillId(void);
+BinaryenExpressionId BinaryenPushId(void);
+BinaryenExpressionId BinaryenPopId(void);
// External kinds (call to get the value of each; you can cache them)
@@ -699,6 +701,9 @@ BinaryenExpressionRef BinaryenMemoryFill(BinaryenModuleRef module,
BinaryenExpressionRef dest,
BinaryenExpressionRef value,
BinaryenExpressionRef size);
+BinaryenExpressionRef BinaryenPush(BinaryenModuleRef module,
+ BinaryenExpressionRef value);
+BinaryenExpressionRef BinaryenPop(BinaryenModuleRef module, BinaryenType type);
BinaryenExpressionId BinaryenExpressionGetId(BinaryenExpressionRef expr);
BinaryenType BinaryenExpressionGetType(BinaryenExpressionRef expr);
@@ -850,6 +855,8 @@ BinaryenExpressionRef BinaryenMemoryFillGetDest(BinaryenExpressionRef expr);
BinaryenExpressionRef BinaryenMemoryFillGetValue(BinaryenExpressionRef expr);
BinaryenExpressionRef BinaryenMemoryFillGetSize(BinaryenExpressionRef expr);
+BinaryenExpressionRef BinaryenPushGetValue(BinaryenExpressionRef expr);
+
// Functions
typedef void* BinaryenFunctionRef;