diff options
author | Heejin Ahn <aheejin@gmail.com> | 2019-07-24 23:57:04 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-07-24 23:57:04 -0700 |
commit | 443c0069df34bac9640ed75e396c8b76d3870ae0 (patch) | |
tree | 95869cd8599bf83689b7329a5ecc180622091a17 /src/binaryen-c.h | |
parent | 7bf827d38eb710069662b99eed6ba9ece20775c1 (diff) | |
download | binaryen-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.h | 7 |
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; |