diff options
Diffstat (limited to 'deps/v8/test/mjsunit/wasm/wasm-constants.js')
-rw-r--r-- | deps/v8/test/mjsunit/wasm/wasm-constants.js | 58 |
1 files changed, 51 insertions, 7 deletions
diff --git a/deps/v8/test/mjsunit/wasm/wasm-constants.js b/deps/v8/test/mjsunit/wasm/wasm-constants.js index cc10e9953c..7583d39a9b 100644 --- a/deps/v8/test/mjsunit/wasm/wasm-constants.js +++ b/deps/v8/test/mjsunit/wasm/wasm-constants.js @@ -64,8 +64,8 @@ let kStartSectionCode = 8; // Start function declaration let kElementSectionCode = 9; // Elements section let kCodeSectionCode = 10; // Function code let kDataSectionCode = 11; // Data segments -let kNameSectionCode = 12; // Name section (encoded as string) -let kExceptionSectionCode = 13; // Exception section (must appear before code section) +let kExceptionSectionCode = 12; // Exception section (between Global & Export) +let kDataCountSectionCode = 13; // Data segments // Name section types let kModuleNameCode = 0; @@ -77,6 +77,11 @@ let kWasmAnyFunctionTypeForm = 0x70; let kHasMaximumFlag = 1; +// Segment flags +let kActiveNoIndex = 0; +let kPassive = 1; +let kActiveWithIndex = 2; + // Function declaration flags let kDeclFunctionName = 0x01; let kDeclFunctionImport = 0x02; @@ -91,6 +96,7 @@ let kWasmF32 = 0x7d; let kWasmF64 = 0x7c; let kWasmS128 = 0x7b; let kWasmAnyRef = 0x6f; +let kWasmAnyFunc = 0x70; let kWasmExceptRef = 0x68; let kExternalFunction = 0; @@ -101,6 +107,9 @@ let kExternalException = 4; let kTableZero = 0; let kMemoryZero = 0; +let kSegmentZero = 0; + +let kExceptionAttribute = 0; // Useful signatures let kSig_i_i = makeSig([kWasmI32], [kWasmI32]); @@ -108,6 +117,8 @@ let kSig_l_l = makeSig([kWasmI64], [kWasmI64]); let kSig_i_l = makeSig([kWasmI64], [kWasmI32]); let kSig_i_ii = makeSig([kWasmI32, kWasmI32], [kWasmI32]); let kSig_i_iii = makeSig([kWasmI32, kWasmI32, kWasmI32], [kWasmI32]); +let kSig_v_iiii = makeSig([kWasmI32, kWasmI32, kWasmI32, kWasmI32], []); +let kSig_f_ff = makeSig([kWasmF32, kWasmF32], [kWasmF32]); let kSig_d_dd = makeSig([kWasmF64, kWasmF64], [kWasmF64]); let kSig_l_ll = makeSig([kWasmI64, kWasmI64], [kWasmI64]); let kSig_i_dd = makeSig([kWasmF64, kWasmF64], [kWasmI32]); @@ -132,10 +143,14 @@ let kSig_iii_ii = makeSig([kWasmI32, kWasmI32], [kWasmI32, kWasmI32, kWasmI32]); let kSig_v_f = makeSig([kWasmF32], []); let kSig_f_f = makeSig([kWasmF32], [kWasmF32]); +let kSig_f_d = makeSig([kWasmF64], [kWasmF32]); let kSig_d_d = makeSig([kWasmF64], [kWasmF64]); let kSig_r_r = makeSig([kWasmAnyRef], [kWasmAnyRef]); +let kSig_a_a = makeSig([kWasmAnyFunc], [kWasmAnyFunc]); let kSig_i_r = makeSig([kWasmAnyRef], [kWasmI32]); let kSig_v_r = makeSig([kWasmAnyRef], []); +let kSig_v_a = makeSig([kWasmAnyFunc], []); +let kSig_v_rr = makeSig([kWasmAnyRef, kWasmAnyRef], []); let kSig_r_v = makeSig([], [kWasmAnyRef]); function makeSig(params, results) { @@ -172,6 +187,8 @@ let kExprElse = 0x05; let kExprTry = 0x06; let kExprCatch = 0x07; let kExprThrow = 0x08; +let kExprRethrow = 0x09; +let kExprBrOnExn = 0x0a; let kExprEnd = 0x0b; let kExprBr = 0x0c; let kExprBrIf = 0x0d; @@ -215,7 +232,7 @@ let kExprI64StoreMem8 = 0x3c; let kExprI64StoreMem16 = 0x3d; let kExprI64StoreMem32 = 0x3e; let kExprMemorySize = 0x3f; -let kExprGrowMemory = 0x40; +let kExprMemoryGrow = 0x40; let kExprI32Eqz = 0x45; let kExprI32Eq = 0x46; let kExprI32Ne = 0x47; @@ -340,10 +357,30 @@ let kExprI32ReinterpretF32 = 0xbc; let kExprI64ReinterpretF64 = 0xbd; let kExprF32ReinterpretI32 = 0xbe; let kExprF64ReinterpretI64 = 0xbf; +let kExprI32SExtendI8 = 0xc0; +let kExprI32SExtendI16 = 0xc1; +let kExprI64SExtendI8 = 0xc2; +let kExprI64SExtendI16 = 0xc3; +let kExprI64SExtendI32 = 0xc4; // Prefix opcodes +let kNumericPrefix = 0xfc; +let kSimdPrefix = 0xfd; let kAtomicPrefix = 0xfe; +// Numeric opcodes. +let kExprMemoryInit = 0x08; +let kExprMemoryDrop = 0x09; +let kExprMemoryCopy = 0x0a; +let kExprMemoryFill = 0x0b; +let kExprTableInit = 0x0c; +let kExprTableDrop = 0x0d; +let kExprTableCopy = 0x0e; + +// Atomic opcodes. +let kExprAtomicWake = 0x00; +let kExprI32AtomicWait = 0x01; +let kExprI64AtomicWait = 0x02; let kExprI32AtomicLoad = 0x10; let kExprI32AtomicLoad8U = 0x12; let kExprI32AtomicLoad16U = 0x13; @@ -368,9 +405,9 @@ let kExprI32AtomicXor16U = 0x3d; let kExprI32AtomicExchange = 0x41; let kExprI32AtomicExchange8U = 0x43; let kExprI32AtomicExchange16U = 0x44; -let kExprI32AtomicCompareExchange = 0x48 -let kExprI32AtomicCompareExchange8U = 0x4a -let kExprI32AtomicCompareExchange16U = 0x4b +let kExprI32AtomicCompareExchange = 0x48; +let kExprI32AtomicCompareExchange8U = 0x4a; +let kExprI32AtomicCompareExchange16U = 0x4b; let kExprI64AtomicLoad = 0x11; let kExprI64AtomicLoad8U = 0x14; @@ -409,6 +446,9 @@ let kExprI64AtomicCompareExchange8U = 0x4c; let kExprI64AtomicCompareExchange16U = 0x4d; let kExprI64AtomicCompareExchange32U = 0x4e; +// Simd opcodes. +let kExprF32x4Min = 0x9e; + let kTrapUnreachable = 0; let kTrapMemOutOfBounds = 1; let kTrapDivByZero = 2; @@ -419,6 +459,8 @@ let kTrapFuncInvalid = 6; let kTrapFuncSigMismatch = 7; let kTrapTypeError = 8; let kTrapUnalignedAccess = 9; +let kTrapDataSegmentDropped = 10; +let kTrapElemSegmentDropped = 11; let kTrapMsgs = [ "unreachable", @@ -430,7 +472,9 @@ let kTrapMsgs = [ "invalid index into function table", "function signature mismatch", "wasm function signature contains illegal type", - "operation does not support unaligned accesses" + "operation does not support unaligned accesses", + "data segment has been dropped", + "element segment has been dropped" ]; function assertTraps(trap, code) { |