summaryrefslogtreecommitdiff
path: root/test/example/c-api-kitchen-sink.c
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2016-05-03 22:01:14 -0700
committerAlon Zakai <alonzakai@gmail.com>2016-05-03 22:01:14 -0700
commitc7d7083920ddd9ff7d1a44577287b8ecc048a221 (patch)
tree1eb9e0cd2e50566b62f65171ccc35b29f8ca5c4d /test/example/c-api-kitchen-sink.c
parent5b2adeb4b2a66dfcda7667ce7a4c27ec49c62b1b (diff)
downloadbinaryen-c7d7083920ddd9ff7d1a44577287b8ecc048a221.tar.gz
binaryen-c7d7083920ddd9ff7d1a44577287b8ecc048a221.tar.bz2
binaryen-c7d7083920ddd9ff7d1a44577287b8ecc048a221.zip
Harmonize the internal opcodes with the binary format (#433)
* harmonize the internal opcodes with the binary format, so they clearly parallel, and also this helps us avoid needing the type to disambiguate * comment on GetLocal in C API
Diffstat (limited to 'test/example/c-api-kitchen-sink.c')
-rw-r--r--test/example/c-api-kitchen-sink.c72
1 files changed, 41 insertions, 31 deletions
diff --git a/test/example/c-api-kitchen-sink.c b/test/example/c-api-kitchen-sink.c
index f7dc5c341..bfcb1ddea 100644
--- a/test/example/c-api-kitchen-sink.c
+++ b/test/example/c-api-kitchen-sink.c
@@ -10,11 +10,11 @@
// helpers
-BinaryenExpressionRef makeUnary(BinaryenModuleRef module, BinaryenOp op, BinaryenType inputType, BinaryenType outputType) {
- if (inputType == BinaryenInt32()) return BinaryenUnary(module, op, BinaryenConst(module, BinaryenLiteralInt32(-10)), outputType);
- if (inputType == BinaryenInt64()) return BinaryenUnary(module, op, BinaryenConst(module, BinaryenLiteralInt64(-22)), outputType);
- if (inputType == BinaryenFloat32()) return BinaryenUnary(module, op, BinaryenConst(module, BinaryenLiteralFloat32(-33.612)), outputType);
- if (inputType == BinaryenFloat64()) return BinaryenUnary(module, op, BinaryenConst(module, BinaryenLiteralFloat64(-9005.841)), outputType);
+BinaryenExpressionRef makeUnary(BinaryenModuleRef module, BinaryenOp op, BinaryenType inputType) {
+ if (inputType == BinaryenInt32()) return BinaryenUnary(module, op, BinaryenConst(module, BinaryenLiteralInt32(-10)));
+ if (inputType == BinaryenInt64()) return BinaryenUnary(module, op, BinaryenConst(module, BinaryenLiteralInt64(-22)));
+ if (inputType == BinaryenFloat32()) return BinaryenUnary(module, op, BinaryenConst(module, BinaryenLiteralFloat32(-33.612)));
+ if (inputType == BinaryenFloat64()) return BinaryenUnary(module, op, BinaryenConst(module, BinaryenLiteralFloat64(-9005.841)));
abort();
}
@@ -81,32 +81,42 @@ int main() {
BinaryenExpressionRef bodyList[] = {
// Unary
- makeUnary(module, BinaryenClz(), 1, 1),
- makeUnary(module, BinaryenCtz(), 2, 2),
- makeUnary(module, BinaryenPopcnt(), 1, 1),
- makeUnary(module, BinaryenNeg(), 3, 3),
- makeUnary(module, BinaryenAbs(), 4, 3),
- makeUnary(module, BinaryenCeil(), 3, 3),
- makeUnary(module, BinaryenFloor(), 4, 4),
- makeUnary(module, BinaryenTrunc(), 3, 3),
- makeUnary(module, BinaryenNearest(), 3, 3),
- makeUnary(module, BinaryenSqrt(), 4, 4),
- makeUnary(module, BinaryenEqZ(), 1, 1),
- makeUnary(module, BinaryenExtendSInt32(), 1, 2),
- makeUnary(module, BinaryenExtentUInt32(), 1, 2),
- makeUnary(module, BinaryenWrapInt64(), 2, 1),
- makeUnary(module, BinaryenTruncSFloat32(), 3, 1),
- makeUnary(module, BinaryenTruncUFloat32(), 3, 2),
- makeUnary(module, BinaryenTruncSFloat64(), 4, 2),
- makeUnary(module, BinaryenTruncUFloat64(), 4, 1),
- makeUnary(module, BinaryenReinterpretFloat(), 3, 1),
- makeUnary(module, BinaryenConvertSInt32(), 1, 3),
- makeUnary(module, BinaryenConvertUInt32(), 1, 4),
- makeUnary(module, BinaryenConvertSInt64(), 2, 3),
- makeUnary(module, BinaryenConvertUInt64(), 2, 4),
- makeUnary(module, BinaryenPromoteFloat32(), 3, 4),
- makeUnary(module, BinaryenDemoteFloat64(), 4, 3),
- makeUnary(module, BinaryenReinterpretInt(), 1, 3),
+ makeUnary(module, BinaryenClz(), 1),
+ makeUnary(module, BinaryenCtz(), 2),
+ makeUnary(module, BinaryenPopcnt(), 1),
+ makeUnary(module, BinaryenNeg(), 3),
+ makeUnary(module, BinaryenAbs(), 4),
+ makeUnary(module, BinaryenCeil(), 3),
+ makeUnary(module, BinaryenFloor(), 4),
+ makeUnary(module, BinaryenTrunc(), 3),
+ makeUnary(module, BinaryenNearest(), 3),
+ makeUnary(module, BinaryenSqrt(), 4),
+ makeUnary(module, BinaryenEqZ(), 1),
+ makeUnary(module, BinaryenExtendSInt32(), 1),
+ makeUnary(module, BinaryenExtentUInt32(), 1),
+ makeUnary(module, BinaryenWrapInt64(), 2),
+ makeUnary(module, BinaryenTruncSFloat32ToInt32(), 3),
+ makeUnary(module, BinaryenTruncSFloat32ToInt64(), 3),
+ makeUnary(module, BinaryenTruncUFloat32ToInt32(), 3),
+ makeUnary(module, BinaryenTruncUFloat32ToInt64(), 3),
+ makeUnary(module, BinaryenTruncSFloat64ToInt32(), 4),
+ makeUnary(module, BinaryenTruncSFloat64ToInt64(), 4),
+ makeUnary(module, BinaryenTruncUFloat64ToInt32(), 4),
+ makeUnary(module, BinaryenTruncUFloat64ToInt64(), 4),
+ makeUnary(module, BinaryenReinterpretFloat32(), 3),
+ makeUnary(module, BinaryenReinterpretFloat64(), 4),
+ makeUnary(module, BinaryenConvertSInt32ToFloat32(), 1),
+ makeUnary(module, BinaryenConvertSInt32ToFloat64(), 1),
+ makeUnary(module, BinaryenConvertUInt32ToFloat32(), 1),
+ makeUnary(module, BinaryenConvertUInt32ToFloat64(), 1),
+ makeUnary(module, BinaryenConvertSInt64ToFloat32(), 2),
+ makeUnary(module, BinaryenConvertSInt64ToFloat64(), 2),
+ makeUnary(module, BinaryenConvertUInt64ToFloat32(), 2),
+ makeUnary(module, BinaryenConvertUInt64ToFloat64(), 2),
+ makeUnary(module, BinaryenPromoteFloat32(), 3),
+ makeUnary(module, BinaryenDemoteFloat64(), 4),
+ makeUnary(module, BinaryenReinterpretInt32(), 1),
+ makeUnary(module, BinaryenReinterpretInt64(), 1),
// Binary
makeBinary(module, BinaryenAdd(), 1),
makeBinary(module, BinaryenSub(), 4),