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.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/binaryen-c.cpp b/src/binaryen-c.cpp
index d9d330082..51a401a3c 100644
--- a/src/binaryen-c.cpp
+++ b/src/binaryen-c.cpp
@@ -2134,6 +2134,16 @@ BinaryenExpressionRef BinaryenSwitchGetValue(BinaryenExpressionRef expr) {
return static_cast<Switch*>(expression)->value;
}
// Call
+int BinaryenCallIsReturn(BinaryenExpressionRef expr) {
+ if (tracing) {
+ std::cout << " BinaryenCallIsReturn(expressions[" << expressions[expr]
+ << "]);\n";
+ }
+
+ auto* expression = (Expression*)expr;
+ assert(expression->is<Call>());
+ return static_cast<Call*>(expression)->isReturn;
+}
const char* BinaryenCallGetTarget(BinaryenExpressionRef expr) {
if (tracing) {
std::cout << " BinaryenCallGetTarget(expressions[" << expressions[expr]
@@ -2167,6 +2177,16 @@ BinaryenExpressionRef BinaryenCallGetOperand(BinaryenExpressionRef expr,
return static_cast<Call*>(expression)->operands[index];
}
// CallIndirect
+int BinaryenCallIndirectIsReturn(BinaryenExpressionRef expr) {
+ if (tracing) {
+ std::cout << " BinaryenCallIndirectIsReturn(expressions["
+ << expressions[expr] << "]);\n";
+ }
+
+ auto* expression = (Expression*)expr;
+ assert(expression->is<CallIndirect>());
+ return static_cast<CallIndirect*>(expression)->isReturn;
+}
BinaryenExpressionRef
BinaryenCallIndirectGetTarget(BinaryenExpressionRef expr) {
if (tracing) {