// Copyright 2016 the V8 project authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // Flags: --expose-wasm load("test/mjsunit/wasm/wasm-constants.js"); load("test/mjsunit/wasm/wasm-module-builder.js"); // Non-standard opcodes. let kSig_s_v = makeSig([], [kWasmS128]); let kExprS128LoadMem = 0xc0; (function() { "use asm"; var builder = new WasmModuleBuilder(); builder.addFunction("regression_648079", kSig_s_v) .addBody([ // locals: 0x00, // body: kExprI64RemU, kExprI64Ctz, kExprI64LeU, kExprUnreachable, kExprUnreachable, kExprUnreachable, kExprUnreachable, kExprI64Ctz, kExprI64Ne, kExprI64ShrS, kExprI64GtS, kExprI64RemU, kExprUnreachable, kExprI64RemU, kExprI32Eqz, kExprI64LeU, kExprDrop, kExprF32Add, kExprI64Ior, kExprF32CopySign, kExprI64Ne, kExprI64GeS, kExprUnreachable, kExprF32Trunc, kExprF32Trunc, kExprUnreachable, kExprIf, 10, // @32 kExprBlock, 00, // @34 kExprBr, // depth=109 kExprI64Shl, kExprI64LeU, kExprI64GeS, kExprI64Clz, kExprF32Min, kExprF32Eq, kExprF32Trunc, kExprF32Trunc, kExprF32Trunc, kExprUnreachable, kExprI32Const, kExprUnreachable, kExprBr, // depth=101 kExprF32Div, kExprI64GtU, kExprI64GeS, kExprI64Clz, kExprSelect, kExprI64GtS, kExprI64RemU, kExprI64LeU, kExprI64Shl, kExprI64Ctz, kExprLoop, 01, // @63 i32 kExprElse, // @65 kExprI64LeU, kExprI64RemU, kExprI64Ne, kExprI64GeS, kExprI32Const, kExprI64GtS, kExprI64LoadMem32U, kExprI64Clz, kExprI64Shl, kExprI64Ne, kExprI64ShrS, kExprI64GtS, kExprI64DivU, kExprI64Ne, kExprI64GtS, kExprI64Ne, kExprI64Popcnt, kExprI64DivU, kExprI64DivU, kExprSelect, kExprI64Ctz, kExprI64Popcnt, kExprI64RemU, kExprI64Clz, kExprF64Sub, kExprF32Trunc, kExprF32Trunc, kExprI64RemU, kExprI64Ctz, kExprI64LeU, kExprUnreachable, kExprUnreachable, kExprUnreachable, kExprBrIf, // depth=116 kExprF32Min, kExprI64GtU, kExprBlock, 01, // @107 i32 kExprTeeLocal, kExprBlock, 01, // @111 i32 kExprBlock, 01, // @113 i32 kExprBlock, 01, // @115 i32 kExprBlock, 01, // @117 i32 kExprBlock, 01, // @119 i32 kExprBlock, 01, // @121 i32 kExprBlock, 01, // @123 i32 kExprBlock, 88, // @125 kExprF32Trunc, kExprF32Trunc, kExprF32Trunc, kExprUnreachable, kExprLoop, 40, // @131 kExprUnreachable, kExprUnreachable, kExprI32Add, kExprBlock, 05, // @136 kExprUnreachable, kExprIf, 02, // @139 i64 kExprBlock, 01, // @141 i32 kExprBrIf, // depth=16 kExprLoop, 00, // @145 kExprUnreachable, kExprUnreachable, kExprReturn, kExprUnreachable, kExprUnreachable, kExprUnreachable, kExprI64LoadMem16U, kExprUnreachable, kExprUnreachable, kExprUnreachable, kExprUnreachable, kExprUnreachable, kExprNop, kExprBr, // depth=1 kExprElse, // @164 kExprF32Trunc, kExprI32Add, kExprCallIndirect, // sig #1 kExprUnreachable, kExprUnreachable, kExprUnreachable, kExprBlock, 00, // @172 kExprI64RemU, kExprI64Ctz, kExprI64LeU, kExprUnreachable, kExprUnreachable, kExprUnreachable, kExprUnreachable, kExprUnreachable, kExprDrop, kExprI64Popcnt, kExprF32Min, kExprUnreachable, kExprF64Sub, kExprI32Const, kExprUnreachable, kExprGetLocal, kExprI64LoadMem32U, kExprUnreachable, kExprI64RemU, kExprI32Eqz, kExprI64LeU, kExprDrop, kExprF32Add, kExprI64Ior, kExprF32CopySign, kExprI64Ne, kExprI64GeS, kExprUnreachable, kExprF32Trunc, kExprF32Trunc, kExprUnreachable, kExprIf, 10, // @216 kExprBlock, 00, // @218 kExprBr, // depth=109 kExprI64Shl, kExprI64LeU, kExprI64GeS, kExprI64Clz, kExprF32Min, kExprF32Eq, kExprF32Trunc, kExprF32Trunc, kExprF32Trunc, kExprUnreachable, kExprF64Min, kExprI32Const, kExprBr, // depth=101 kExprF32Div, kExprI64GtU, kExprI64GeS, kExprI64Clz, kExprI64Popcnt, kExprF64Lt, kExprF32Trunc, kExprF32Trunc, kExprF32Trunc, kExprUnreachable, kExprLoop, 01, // @247 i32 kExprElse, // @249 kExprI64LeU, kExprI64RemU, kExprI64Ne, kExprI64GeS, kExprI32Const, kExprBlock, 01, // @256 i32 kExprBlock, 01, // @258 i32 kExprBlock, 01, // @260 i32 kExprBlock, 01, // @262 i32 kExprBlock, 01, // @264 i32 kExprF32Ge, kExprF32Trunc, kExprF32Trunc, kExprF32Trunc, kExprUnreachable, kExprLoop, 40, // @271 kExprUnreachable, kExprUnreachable, kExprI32Add, kExprBlock, 01, // @276 i32 kExprUnreachable, kExprIf, 02, // @279 i64 kExprBlock, 00, // @281 kExprBrIf, // depth=16 kExprLoop, 00, // @285 kExprUnreachable, kExprUnreachable, kExprReturn, kExprUnreachable, kExprUnreachable, kExprUnreachable, kExprI64LoadMem16U, kExprUnreachable, kExprUnreachable, kExprUnreachable, kExprUnreachable, kExprUnreachable, kExprNop, kExprBr, // depth=1 kExprElse, // @304 kExprF32Trunc, kExprI32Add, kExprCallIndirect, // sig #1 kExprUnreachable, kExprUnreachable, kExprUnreachable, kExprBlock, 00, // @312 kExprI64RemU, kExprI64Ctz, kExprI64LeU, kExprUnreachable, kExprUnreachable, kExprUnreachable, kExprDrop, kExprI64Popcnt, kExprF32Min, kExprUnreachable, kExprF64Sub, kExprI32Const, kExprUnreachable, kExprGetLocal, kExprI64LoadMem32U, kExprUnreachable, kExprUnreachable, kExprNop, kExprBr, // depth=1 kExprElse, // @348 kExprF32Trunc, kExprI32Add, kExprCallIndirect, // sig #1 kExprUnreachable, kExprUnreachable, kExprUnreachable, kExprBlock, 00, // @356 kExprI64RemU, kExprI64Ctz, kExprI64LeU, kExprUnreachable, kExprUnreachable, kExprUnreachable, kExprDrop, kExprI64Popcnt, kExprF32Min, kExprUnreachable, kExprF64Sub, kExprI32Const, kExprUnreachable, kExprGetLocal, kExprI64LoadMem32U, kExprF64Min, kExprF64Min, kExprF64Min, kExprF64Min, kExprF64Min, kExprF32Trunc, kExprF32Trunc, kExprF32Trunc, kExprUnreachable, kExprF64Min, kExprF64Min, kExprF64Min, kExprF64Min, kExprF64Min, kExprF64Min, kExprF64Min, kExprF64Min, kExprF64Min, kExprF64Min, ]) .exportFunc(); assertThrows(function() { builder.instantiate(); }); })();