diff options
author | Thomas Lively <7121787+tlively@users.noreply.github.com> | 2019-09-23 18:15:14 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-09-23 18:15:14 -0700 |
commit | 835581f58eb5040656243f7345ebcacf6d7deee5 (patch) | |
tree | d5f8878015be2edcdf3d69306c0a8bc20ecd9bf6 /src/binaryen-c.h | |
parent | fb217c80c6d9c4b52d90571c435fc52dc868df47 (diff) | |
download | binaryen-835581f58eb5040656243f7345ebcacf6d7deee5.tar.gz binaryen-835581f58eb5040656243f7345ebcacf6d7deee5.tar.bz2 binaryen-835581f58eb5040656243f7345ebcacf6d7deee5.zip |
vNxM.load_splat instructions (#2350)
Introduces a new instruction class, `SIMDLoad`. Implements encoding,
decoding, parsing, printing, and interpretation of the load and splat
instructions, including in the C and JS APIs. `v128.load` remains in
the `Load` instruction class for now because the interpreter code
expects a `Load` to be able to load any memory value type.
Diffstat (limited to 'src/binaryen-c.h')
-rw-r--r-- | src/binaryen-c.h | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/binaryen-c.h b/src/binaryen-c.h index 8667f7a6d..c4fbb9748 100644 --- a/src/binaryen-c.h +++ b/src/binaryen-c.h @@ -131,6 +131,7 @@ BINARYEN_API BinaryenExpressionId BinaryenSIMDReplaceId(void); BINARYEN_API BinaryenExpressionId BinaryenSIMDShuffleId(void); BINARYEN_API BinaryenExpressionId BinaryenSIMDTernaryId(void); BINARYEN_API BinaryenExpressionId BinaryenSIMDShiftId(void); +BINARYEN_API BinaryenExpressionId BinaryenSIMDLoadId(void); BINARYEN_API BinaryenExpressionId BinaryenMemoryInitId(void); BINARYEN_API BinaryenExpressionId BinaryenDataDropId(void); BINARYEN_API BinaryenExpressionId BinaryenMemoryCopyId(void); @@ -522,6 +523,10 @@ BINARYEN_API BinaryenOp BinaryenConvertSVecI32x4ToVecF32x4(void); BINARYEN_API BinaryenOp BinaryenConvertUVecI32x4ToVecF32x4(void); BINARYEN_API BinaryenOp BinaryenConvertSVecI64x2ToVecF64x2(void); BINARYEN_API BinaryenOp BinaryenConvertUVecI64x2ToVecF64x2(void); +BINARYEN_API BinaryenOp BinaryenLoadSplatVec8x16(void); +BINARYEN_API BinaryenOp BinaryenLoadSplatVec16x8(void); +BINARYEN_API BinaryenOp BinaryenLoadSplatVec32x4(void); +BINARYEN_API BinaryenOp BinaryenLoadSplatVec64x2(void); BINARYEN_API BinaryenOp BinaryenNarrowSVecI16x8ToVecI8x16(void); BINARYEN_API BinaryenOp BinaryenNarrowUVecI16x8ToVecI8x16(void); BINARYEN_API BinaryenOp BinaryenNarrowSVecI32x4ToVecI16x8(void); @@ -736,6 +741,11 @@ BinaryenSIMDShift(BinaryenModuleRef module, BinaryenOp op, BinaryenExpressionRef vec, BinaryenExpressionRef shift); +BINARYEN_API BinaryenExpressionRef BinaryenSIMDLoad(BinaryenModuleRef module, + BinaryenOp op, + uint32_t offset, + uint32_t align, + BinaryenExpressionRef ptr); BINARYEN_API BinaryenExpressionRef BinaryenMemoryInit(BinaryenModuleRef module, uint32_t segment, @@ -962,6 +972,12 @@ BinaryenSIMDShiftGetVec(BinaryenExpressionRef expr); BINARYEN_API BinaryenExpressionRef BinaryenSIMDShiftGetShift(BinaryenExpressionRef expr); +BINARYEN_API BinaryenOp BinaryenSIMDLoadGetOp(BinaryenExpressionRef expr); +BINARYEN_API uint32_t BinaryenSIMDLoadGetOffset(BinaryenExpressionRef expr); +BINARYEN_API uint32_t BinaryenSIMDLoadGetAlign(BinaryenExpressionRef expr); +BINARYEN_API BinaryenExpressionRef +BinaryenSIMDLoadGetPtr(BinaryenExpressionRef expr); + BINARYEN_API uint32_t BinaryenMemoryInitGetSegment(BinaryenExpressionRef expr); BINARYEN_API BinaryenExpressionRef BinaryenMemoryInitGetDest(BinaryenExpressionRef expr); |