4
4
*/ /***/
5
5
6
6
import { Target } from "./common" ;
7
- import { Type } from "./types" ;
8
7
9
8
export type ModuleRef = usize ;
10
9
export type FunctionTypeRef = usize ;
@@ -79,6 +78,7 @@ export enum ExpressionId {
79
78
SIMDShuffle = _BinaryenSIMDShuffleId ( ) ,
80
79
SIMDTernary = _BinaryenSIMDTernaryId ( ) ,
81
80
SIMDShift = _BinaryenSIMDShiftId ( ) ,
81
+ SIMDLoad = _BinaryenSIMDLoadId ( ) ,
82
82
MemoryInit = _BinaryenMemoryInitId ( ) ,
83
83
DataDrop = _BinaryenDataDropId ( ) ,
84
84
MemoryCopy = _BinaryenMemoryCopyId ( ) ,
@@ -325,6 +325,7 @@ export enum BinaryOp {
325
325
AndV128 = _BinaryenAndVec128 ( ) ,
326
326
OrV128 = _BinaryenOrVec128 ( ) ,
327
327
XorV128 = _BinaryenXorVec128 ( ) ,
328
+ AndNotV128 = _BinaryenAndNotVec128 ( ) ,
328
329
AddI8x16 = _BinaryenAddVecI8x16 ( ) ,
329
330
AddSatI8x16 = _BinaryenAddSatSVecI8x16 ( ) ,
330
331
AddSatU8x16 = _BinaryenAddSatUVecI8x16 ( ) ,
@@ -359,7 +360,8 @@ export enum BinaryOp {
359
360
NarrowI16x8ToI8x16 = _BinaryenNarrowSVecI16x8ToVecI8x16 ( ) ,
360
361
NarrowU16x8ToU8x16 = _BinaryenNarrowUVecI16x8ToVecI8x16 ( ) ,
361
362
NarrowI32x4ToI16x8 = _BinaryenNarrowSVecI32x4ToVecI16x8 ( ) ,
362
- NarrowU32x4ToU16x8 = _BinaryenNarrowUVecI32x4ToVecI16x8 ( )
363
+ NarrowU32x4ToU16x8 = _BinaryenNarrowUVecI32x4ToVecI16x8 ( ) ,
364
+ SwizzleV8x16 = _BinaryenSwizzleVec8x16 ( )
363
365
}
364
366
365
367
export enum HostOp {
@@ -419,6 +421,19 @@ export enum SIMDTernaryOp {
419
421
QFMSF64x2 = _BinaryenQFMSVecF64x2 ( )
420
422
}
421
423
424
+ export enum SIMDLoadOp {
425
+ LoadSplatV8x16 = _BinaryenLoadSplatVec8x16 ( ) ,
426
+ LoadSplatV16x8 = _BinaryenLoadSplatVec16x8 ( ) ,
427
+ LoadSplatV32x4 = _BinaryenLoadSplatVec32x4 ( ) ,
428
+ LoadSplatV64x2 = _BinaryenLoadSplatVec64x2 ( ) ,
429
+ LoadI8ToI16x8 = _BinaryenLoadExtSVec8x8ToVecI16x8 ( ) ,
430
+ LoadU8ToU16x8 = _BinaryenLoadExtUVec8x8ToVecI16x8 ( ) ,
431
+ LoadI16ToI32x4 = _BinaryenLoadExtSVec16x4ToVecI32x4 ( ) ,
432
+ LoadU16ToU32x4 = _BinaryenLoadExtUVec16x4ToVecI32x4 ( ) ,
433
+ LoadI32ToI64x2 = _BinaryenLoadExtSVec32x2ToVecI64x2 ( ) ,
434
+ LoadU32ToU64x2 = _BinaryenLoadExtUVec32x2ToVecI64x2 ( )
435
+ }
436
+
422
437
export class MemorySegment {
423
438
424
439
buffer : Uint8Array ;
@@ -921,7 +936,7 @@ export class Module {
921
936
}
922
937
923
938
simd_ternary (
924
- op : BinaryenSIMDOp ,
939
+ op : SIMDTernaryOp ,
925
940
a : ExpressionRef ,
926
941
b : ExpressionRef ,
927
942
c : ExpressionRef
@@ -937,6 +952,15 @@ export class Module {
937
952
return _BinaryenSIMDShift ( this . ref , op , vec , shift ) ;
938
953
}
939
954
955
+ simd_load (
956
+ op : SIMDLoadOp ,
957
+ ptr : ExpressionRef ,
958
+ offset : u32 ,
959
+ align : u32
960
+ ) : ExpressionRef {
961
+ return _BinaryenSIMDLoad ( this . ref , op , offset , align , ptr ) ;
962
+ }
963
+
940
964
// meta
941
965
942
966
addGlobal (
@@ -946,7 +970,7 @@ export class Module {
946
970
initializer : ExpressionRef
947
971
) : GlobalRef {
948
972
var cStr = this . allocStringCached ( name ) ;
949
- return _BinaryenAddGlobal ( this . ref , cStr , type , mutable ? 1 : 0 , initializer ) ;
973
+ return _BinaryenAddGlobal ( this . ref , cStr , type , mutable , initializer ) ;
950
974
}
951
975
952
976
removeGlobal (
@@ -1169,7 +1193,8 @@ export class Module {
1169
1193
setFunctionTable (
1170
1194
initial : Index ,
1171
1195
maximum : Index ,
1172
- funcs : string [ ]
1196
+ funcs : string [ ] ,
1197
+ offset : ExpressionRef
1173
1198
) : void {
1174
1199
var numNames = funcs . length ;
1175
1200
var names = new Array < usize > ( numNames ) ;
@@ -1178,7 +1203,7 @@ export class Module {
1178
1203
}
1179
1204
var cArr = allocI32Array ( names ) ;
1180
1205
try {
1181
- _BinaryenSetFunctionTable ( this . ref , initial , maximum , cArr , numNames ) ;
1206
+ _BinaryenSetFunctionTable ( this . ref , initial , maximum , cArr , numNames , offset ) ;
1182
1207
} finally {
1183
1208
memory . free ( cArr ) ;
1184
1209
}
@@ -1188,6 +1213,16 @@ export class Module {
1188
1213
_BinaryenSetStart ( this . ref , func ) ;
1189
1214
}
1190
1215
1216
+ addCustomSection ( name : string , contents : Uint8Array ) : void {
1217
+ var cStr = this . allocStringCached ( name ) ;
1218
+ var cArr = allocU8Array ( contents ) ;
1219
+ try {
1220
+ _BinaryenAddCustomSection ( this . ref , cStr , cArr , contents . length ) ;
1221
+ } finally {
1222
+ memory . free ( cArr ) ;
1223
+ }
1224
+ }
1225
+
1191
1226
getOptimizeLevel ( ) : i32 {
1192
1227
return _BinaryenGetOptimizeLevel ( ) ;
1193
1228
}
@@ -2063,6 +2098,10 @@ export function traverse<T>(expr: ExpressionRef, data: T, visit: (expr: Expressi
2063
2098
visit ( _BinaryenSIMDShiftGetShift ( expr ) , data ) ;
2064
2099
break ;
2065
2100
}
2101
+ case ExpressionId . SIMDLoad : {
2102
+ visit ( _BinaryenSIMDLoadGetPtr ( expr ) , data ) ;
2103
+ break ;
2104
+ }
2066
2105
case ExpressionId . MemoryInit : {
2067
2106
visit ( _BinaryenMemoryInitGetDest ( expr ) , data ) ;
2068
2107
visit ( _BinaryenMemoryInitGetOffset ( expr ) , data ) ;
0 commit comments